Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

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

  Alt 29. Okt 2007, 12:51
Ich würde dringend empfehlen, folgende Funktionen zu verwenden:
Drehung und Verschiebung im 2D Raum
Damit wird das Zeichnen eines Flügels stark vereinfacht.
1.) ein Flügel ist ein Polygon und wird mit Canvas.Polygon(Points: array of TPoint) gezeichnet
2.) die Punkte des Flügel werden auf Karopapier so gezeichnet, dass der Drehpunkt auf (0,0) liegt
3.) jetzt braucht es 2 Operationen, um einen Flügel in beliebiger Richtung und Position zu zeichen
4.) mit Rotate2Darray() werden alle Punkte um den vorgegebenen Winkel gedreht
5.) mit Translate2Darray() wird der Drehpunkt des Flügels (der ja noch immer bei (0,0) liegt)
in den Drehpunkt der Windmühle verschoben

Diese Vorgehensweise hat viele Vorteile:
* wiederverwendbar (taugt auch für Games, Spielkarten, ...)
* flexibel (das Flügelprofil in Schritt 2.) kann völlig frei gestaltet werden)
* sauber gekapselt (die ganze Mathematik liegt in Rotate2Darray() & Translate2Darray())
* mit etwas Zusatzaufwand kann man die ganze Zeichnung auch zoomen
Andreas
  Mit Zitat antworten Zitat