Einzelnen Beitrag anzeigen

shmia

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

AW: Polygon drehen

  Alt 30. Jun 2011, 17:11
@Bjoerk ich würde die Prozedure nicht "Transformiere" sondern "Rotiere" nennen.
Aber ich möchte doch nochmal auf meinen vorherigen Beitrag verweisen.
Eleganter kann man es eigentlich nicht programmieren.
Das es sich bei Rotate2D und Translate2D um Funktionen handelt, kann man sie problemlos verketten:
Delphi-Quellcode:
// verschieben, drehen um 45 Grad und zurückverschieben
NeuPunkt := Translate2D(Rotate2D(Translate2D(orgPunkt, P2), DegToRad(45.0)), invP2);
Durch die Verwendung des Records TPoint wird der Code leichter lesbar.
Bleibt man bei x und y, braucht man doppelt so viele Variablen.

Man kann aus den Verschiebungen und Drehungen auch eine Transformationsmatrix berechnen.
Dann kann man diese Transformationsmatrix auf alle Punkte anwenden und spart so Rechenzeit. Dafür ist dann die nötige Mathematik etwas aufwändiger.
Andreas

Geändert von shmia (30. Jun 2011 um 17:13 Uhr)
  Mit Zitat antworten Zitat