Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Line mit Winkel zeichnen

  Alt 11. Okt 2014, 15:22
Da hilft die gute alte Vektorrechnung. Für die Winkelstücke nimmst du einfach den Vektor von p1 nach p2 (oder umgekehrt) und drehst diesen um 90°. Das auf p1 und p2 addiert ergibt deine weiteren gesuchten Punkte.

Die Idee: Bei einem Vektor (x, y) ist 90° dazu (y, -x) und (-y, x). Man kommt da also komplett ohne Trigonometrie aus - sogar ohne Rechnen Diese müssen dann nur noch auf deine gewünschte Länge gebracht werden:
(v': Längenangepasster Vektor; L: Deine Ziellänge; v: Gedrehter Vektor (p1-p2))
Code:
         /        v.x        \
         | ----------------- |
         | sqrt(v.x² + v.y²) |
v' = L * |                   |
         |        v.y        |
         | ----------------- |
         \ sqrt(v.x² + v.y²) /
Und dann auf die Endpunkte addieren. Welche Richtung man nachher erhält hängt davon ab, wie rum man den Ausgangsvektor (p1-p2 oder p2-p1) bildet, und welche der beiden 90° Varianten man nimmt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat