Einzelnen Beitrag anzeigen

shmia

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

Re: Dreieck um Punkt auf der Hypotenuse drehen

  Alt 17. Mär 2010, 14:02
Schau mal hier, damit wirst du bestimmt zurechtkommen.

Also du hast deine drei Punkte des Dreiecks (a,b,c) und den roten Drehpunkt (dreh).
Dann muss das Dreieck so verschoben werden, dass der Drehpunkt in den Ursprung (0,0) fällt.
Nun wird gedreht und anschliessend das Polygon wieder zurückverschoben.
Man kann das Verschieben, Drehen und Zurückverschieben auch mit einer 2D-Matrix berechnen,
aber so ist es leichter verständlich.

Delphi-Quellcode:
var
  dreieck : array[0..2] of TPoint;
  dreh, t : TPoint;
begin
  // Anfangspunkte setzen
  dreieck[0] := Point(..,..);
  dreieck[1] := Point(..,..);
  dreieck[2] := Point(..,..);
  dreh := Point(...,...);

  // Dreieck in den Ursprung verschieben
  t := Point(-dreh.x,-dreh.y);
  Translate2Darray(dreieck, t);

  // Dreieck drehen
  Rotate2Darray(dreieck, DegToRad(30)); // Drehung 30 Grad

  // zurück in den Drehpunkt schieben
  Translate2Darray(dreieck, dreh);
Andreas
  Mit Zitat antworten Zitat