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