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

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

Ü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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.