Registriert seit: 18. Feb 2005
286 Beiträge
Delphi 2010 Enterprise
|
AW: Vektorklasse mit echten Operatoren
17. Mär 2014, 14:30
Eine Beispiel-Implementierung um ein Dreieck um einen Punkt zu drehen; die Verwendung:
Delphi-Quellcode:
var
Alpha: Extended;
O, X, Y, Z: TVector2D;
U, V, W: TPoint;
begin
Alpha := 0; // Drehwinkel
O := TVector2D.New(200, 200); // Ortsvektor zum Drehpunkt
X := TVector2D.New(-80, 0); // Dreieckspunkte relativ zum Drehpunkt
Y := TVector2D.New(0, -80);
Z := TVector2D.New(80, 0);
{ Das Dreieck erst drehen, dann um den Ortsvektor verschieben; denn:
O + X.Rotated(Alpha) <> (O + X).Rotated(Alpha). }
U := O + X.Rotated(Alpha);
V := O + Y.Rotated(Alpha);
W := O + Z.Rotated(Alpha);
Image1.Canvas.Polygon([U, V, W]);
end;
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
|
|
Zitat
|