Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#13

Re: Windmühle, bei der die Flügelanzahl variabel ist

  Alt 11. Nov 2007, 19:24
Ich glaube, du machst einen grundlegenden Fehler beim Programmieren:
Bevor du auch nur eine einzelne Zeile Code schreibst, musst du wissen, was du eigentlich machen willst und noch wichtiger: WIE du es machen willst:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Canvas.Pen.Color:= clBlack;
Muehle (8,150,50,50);
Image1.Canvas.Pen.Color:= clWhite;
Muehle (8,150,50,50);
Image1.Canvas.Pen.Color:= clBlack;
Muehle (8,150,50,50);
end;
Was soll das bedeuten? Male eine schwarze Mühle, dann eine Weisse und wieder eine Schwarze? Dreht sich doch etwas im Kreis, oder?

Und wenn du hier Code veröffentlichst, dann bitte nur den sinnvollen. Die ersten 50 Zeilen sind völlig egal (dein Problem dürfte kaum an der Benennung deiner Edits liegen, ausser, dass es sehr schlechter Stil ist, Komponenten nicht sinnvoll zu benennen). Und alles ab 72 (ausser dem Timer) ist auch wieder uninteressant. Es werden dir mehr Leute helfen, wenn sie sich nicht erst noch duch 75 Zeilen uninteressanten Code durchlesen müssen.

Delphi-Quellcode:
procedure TForm1.Muehle (anzahl,hoehe,x,y:integer);
(...)
   for nr:= 1 to anzahl do
   begin
    FluegelEndeX:= x2+round(flange*cos(nr*(2*pi+v)/anzahl));
    FluegelEndeY:= y2+round(flange*sin(nr*(2*pi+v)/anzahl));
    lineTo (FluegelEndeX,FluegelEndeY);
    moveTo (x2,y2);
   end;
  (...)
Hast du schon mal so eine Windmühle per Hand gezeichnet? Zwei benachbarte Blätter haben die Winkeldifferenz von (2*pi+v)/anzahl. Das sollte dich schon stark wundern, denn dieser Abstand sollte doch auf keinen Fall vom Drehwinkel v abhängen, oder? Bei vier Blättern siehts doch so aus:

v=0
0
90
180
270

v=30
30
120
210
300

v=60
60
150
230
330

v=x
-> na, was könnte hier wohl stehen???
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat