![]() |
Re: Windmühle, bei der die Flügelanzahl variabel ist
Ein gaaaanz kleiner Tipp am Rande: Du brauchst keine Konstante namens Pi zu deklarieren, Delphi bringt von Haus aus bereits eine gleichnamige Konstante mit, die obendrein auch noch genauer ist.
|
Re: Windmühle, bei der die Flügelanzahl variabel ist
Danke für deine Antwort, aber richtig was gebracht, hat es mir jetzt nicht :?
Hat denn keiner einen Tipp oder eine Idee? |
Re: Windmühle, bei der die Flügelanzahl variabel ist
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:
Was soll das bedeuten? Male eine schwarze Mühle, dann eine Weisse und wieder eine Schwarze? Dreht sich doch etwas im Kreis, oder?
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; 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:
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:
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; (...) 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??? |
Re: Windmühle, bei der die Flügelanzahl variabel ist
Juhuuuu ... ich habs geschafft =)
Nächstes mal werde ich dann nur den wichtigen Code posten :wink: |
Re: Windmühle, bei der die Flügelanzahl variabel ist
Dann poste doch hier bitte noch deine Lösung. Wenn jemand ein ähnliches Problem hat, würde er sich doch freuen, hier eine Lösug zu finden und nicht nur einen Hinweis, dass du jetzt die Lösung kennst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz