Wie finde ich einen Punkt auf einer Linie?

11

Ich habe zwei Punkte (A, B) und die Länge von d. Wie finde ich Punkt C?

Beispiel

Eempee
quelle

Antworten:

26

Berechnen Sie einen Vektor Vvon Abis Bund normalisieren Sie ihn.

V = (B - A) / |B - A|

Da der Vektor normalisiert ist, hat er eine Länge von eins und gibt die Richtung Brelativ zu an A. Wenn Sie dann den Vektor nach skalieren, erhalten dSie die Verschiebung von AbisC

V' = d * V

was Sie einfach hinzufügen können, um Azu ergeben C:

C = V' + A
Sam Hocevar
quelle
Übrigens: Kann mir jemand ein Buch empfehlen, in dem ich so etwas lernen kann? :)
Eempee
Ich habe diesen Artikel nicht gelesen, aber mir wurde gesagt, dass er auch ziemlich gut ist. Amazon.com/Mathematics-Programming-Computer-Graphics-Second/dp/…
Ricky AH
Übrigens sind dies die letzten Schritte in Strahlschnittalgorithmen: Sie ermitteln, wie weit der Schnittpunkt entlang des Strahls entfernt ist, und erhalten dann die Koordinaten des Punkts geomalgorithms.com/a05-_intersect-1.html#Plane-Intersections
jhocking
1

Wenn Ihr d ein Verhältnis anstelle einer Länge ist, z. B. 0,5, setzt es auf den gleichen Abstand von A und B, können Sie Folgendes tun und eine Normalisierung vermeiden:

C = A * (1 - ratio) + B * ratio
Mussi
quelle