Autor Beitrag
Waldkauz
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102



BeitragVerfasst: So 08.03.09 14:12 
Hallo.

Tut mir leid, aber ich muss mich nochmal wegen diesem blöden Kreis-Problem melden.
Ich kann die Sache einfach nicht lassen.

Wie es aussieht und wie es aussehen soll, sieht man eh auf den Bildern.
Die Buttonfunktion sieht folgendermaßen aus:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button4Click(Sender: TObject);
var
  i: Integer;
  zahleins : integer;
  zahlzwei : integer;
  zahldrei : integer;
  zahlvier : integer;
begin

  Image1.Canvas.Pen.Color:=clblack;
  Image1.Canvas.Brush.Style:= bsSolid;
  Image1.Canvas.Brush.Color:=rgb(random(256),random(256),random(256));
  zahleins := random(200);
  zahlzwei := zahleins;
  zahldrei := random(200);
  zahlvier := zahldrei;
  Image1.Canvas.Ellipse(zahleins,zahlzwei,zahldrei,zahlvier);

end;


Die Kreise sind also nur entlang der ersten Diagonale...

Moderiert von user profile iconAXMD: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Titel geändert.
Einloggen, um Attachments anzusehen!
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 764
Erhaltene Danke: 127



BeitragVerfasst: So 08.03.09 14:45 
So sollte es gehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
zahleins := random(200);
zahlzwei := random(200);
Durchmesser := random(200);
Image1.Canvas.Ellipse(zahleins, zahlzwei, zahleins+Durchmesser, zahlzwei+Durchmesser);

ub60
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: So 08.03.09 15:05 
Du setzt zahl1 und zahl2 gleich. Kein Wunder, dass du deine Kreise nur auf der Diagonale von links oben nach rechts unten siehst, denn x- und y-Werte sind ja immer gleich. Denn wenn du

ausblenden Delphi-Quelltext
1:
2:
zahl1 := random(xxx);
zahl2 := zahl1;


schreibst, ist das was anderes als

ausblenden Delphi-Quelltext
1:
2:
zahl1 := random(xxx);
zahl2 := random(xxx);


Denn random(xxx) wird ja nicht neu berechnet, sondern es wird nur der Speicherinhalt von zahl1 ausgelesen.

edit @ub60: Das wäre dann der Radius, nicht der Durchmesser.

Die Variante von ub60 ist aber sonst "richtig".
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: So 08.03.09 15:14 
Und gewöhn Dir an, den Variablen ordentliche, aussagekräftige Namen zu geben. In einem Monat wirst Du nicht mehr wissen, was Zahl42 ist, aber Du würdest wissen, was PosX, PosY und Durchmesser sind.


user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
edit @ub60: Das wäre dann der Radius, nicht der Durchmesser.

Denk nochmal drüber nach, wie Canvas.Ellispe funktioniert! Durchmesser ist schon richtig,

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: So 08.03.09 15:18 
Sry, da hatte ich mir irgendwie was dazugedacht, als ich es gelesen habe (aus Gewohnheit).
Waldkauz Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102



BeitragVerfasst: So 08.03.09 15:57 
Wahnsinn - echt super das Forum hier! Jetzt funktionierts problemlos.
Danke nochmal
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 764
Erhaltene Danke: 127



BeitragVerfasst: So 08.03.09 16:54 
user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Sry, da hatte ich mir irgendwie was dazugedacht, als ich es gelesen habe (aus Gewohnheit).

Und ich bin jetzt mal prophetisch und sage Dir, was Du gedacht hast :wink: :wink: :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
xMittelpunkt:= random(200);
yMittelpunkt := random(200);
Radius := random(200);
Image1.Canvas.Ellipse(xMittelpunkt-Radius, yMittelpunkt-Radius , xMittelpunkt+Radius, yMittelpunkt+Radius);

So gehts natürlich auch.

ub60
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: So 08.03.09 17:05 
Richtig. :)