Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Problem mit Polygon auf Canvas Drehen

  Alt 14. Mär 2006, 09:43
Herzlich willkommen in der Delphi-PRAXiS, TiPi.

Für dich und andere ist es wichtig, dass du dein Problem in möglichst überschaubarer Form darstellst. Bei einem rein algorithmischen Problem interessiert die Benutzerschnittstelle (Edit3, Button1) niemanden, dafür aber die von dir verwendeten Variablen.

Die Punkte für dein Polygon musst du nicht in zwei Arrays getrennt nach Abszisse und Ordinate speichern:

Delphi-Quellcode:
type
  TPointDynArray = array of TPoint;
var
  polygon: TPointDynArray;
Für das Zeichnen kannst du statt MoveTo() und LineTo() gleich Polygon() verwenden. Rotieren wird von Windows NT ff. direkt unterstützt (SetGraphicsMode, SetWorldTransform). Wenn du um einen bestimmten Punkt rotieren willst, dann musst du diesen Punkt zuerst in den Ursprung verschieben, dann das Polygon rotieren und zuletzt die Verschiebung wieder rückgängig machen. Auch dabei hilft dir Windows (CombineTransform). Natürlich geht das alles auch zu Fuß, aber die Vorgehensweise ist trotzdem die selbe.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat