Forum: Multimedia
Delphi
by Bummi,
11. Dez 2011
ABS > Betrag > Wert ohne Vorzeichen
Beispiel
wert := 10 - 7; >> 3
wert := 7 - 10; >> -3
wert := ABS(10 - 7); >> 3
wert := ABS(7 - 10); >> 3
Du fragst ja nach Wert > Schwellenwert ...
Die Bereiche zu vergrößern würde meine ich gegen die Aufgabenstellung verstossen.
Forum: Multimedia
Delphi
by Bummi,
11. Dez 2011
Das Überlappen durch mehrmaliges Drücken sollte nicht mehr auftreten, Du musst allenfalls noch das Problem in den Griff bekommen wenn Du bei angenommener Schrittweite von 8 z.B. einen Punkt bei 10/10 und einen bei 15/15 hast
Du malst dann 6/6 > 14/14 und wieder bei 11/11 > 19/19 ob die Überlappung bei 11/11 > 14/14 unerwünscht ist kann ich nicht sagen, so wie ich die Definition der Aufgabe...
Forum: Multimedia
Delphi
by Bummi,
11. Dez 2011
genau
genau
und Du hast es schon verstanden ...
und wenn es bei b und h Probleme gibt einfach kurz nachdenken ...
Forum: Multimedia
Delphi
by Bummi,
11. Dez 2011
Wenn Du nirgendwo die roten Dreiecke entfernst .....
initialisier doch mal Bild 3 beim Drücken von Button1 ....
Forum: Multimedia
Delphi
by Bummi,
11. Dez 2011
überlappen sich bei mehrmaligem drücken und geändertem Spinedit?
image3.canvas.brush.color:=clblack;
image3.canvas.fillrect(rect(0,0,b,h));
wenn Du mehrmals malen willst musst Du das Bild vorher wieder schwarz füllen ...
Forum: Multimedia
Delphi
by Bummi,
11. Dez 2011
Wenn Du den Button mehrmals drücken willst musst Du Image 3 vorher wieder initialisieren wie das siehst Du im FormCreate.
If (wert > schwellwert) and (Image3.Canvas.pixels <> clRed) then
Forum: Multimedia
Delphi
by Bummi,
10. Dez 2011
@bernhard_LA
es handelt sich um eine Schulaufgabe mit fest vorgegebenem Rahmen
Forum: Multimedia
Delphi
by Bummi,
10. Dez 2011
Ich hatte Dir geschrieben wo und wie die Prozedur aufzurufen ist.
Ich hatte geschrieben was da nicht reingehört und was wie geändert werden muss.
Der MoveTo LineTo Part passt im Prinzip nur solltest Du top_ und left_ statt y und x verwenden, sowie wie beriets geschrieben kantenlaenge und farbe.
Vielleicht solltest Du mal da http://www.christian-stelzmann.de/artikel/crashkurs.htm...
Forum: Multimedia
Delphi
by Bummi,
10. Dez 2011
das gehört da nicht rein:
x:=stringgrid1.cells;
....
wenn es Sinn machen würde müsstest Du den String auch noch in einen Integer umwandeln (StrToInt)
Forum: Multimedia
Delphi
by Bummi,
9. Dez 2011
kante:=spinedit2.value;
gehört nicht in die Prozedur, hier soll kantenlaenge verwendet werden, also im Aufruf spinedit2.value mitgeben.
Die Quadratemalfuntion ist nicht rekursiv (selbstaufrufend wie floodfill) zu implementieren.
Der Code der zu implementieren ist kommt nur in Case 3:
Quadrate kann man malen mit
MoveTo und 4 * LineTo
oder
Image3.Canvas.Brush.Style := bsClear;...
Forum: Multimedia
Delphi
by Bummi,
9. Dez 2011
Doch ..... ich habe die Schleife ungeprüft kopiert und angepasst ...
Forum: Multimedia
Delphi
by Bummi,
9. Dez 2011
DeddyH war wieder mal schneller, da ich es schon habe poste ich es trotzdem mal ...
BTW.: wenn Du es es optimieren willst steig von Pixels auf Scanline um, Beiträge hierzu liefert die Forensuche bis zum Abwinken
Die bildest im Moment die Differenz nur für das letzte Pixel Deiner Schleifen, man könnte es so lösen
var
i,j,z:Integer;
begin
Forum: Multimedia
Delphi
by Bummi,
9. Dez 2011
wenn Du
wert:= (farbe1 AND clRed) - (farbe2 AND clRed);
verwendest bist Du diesbezüglich näher an den Vorgaben.