Come trovo un punto su una linea?


11

Ho due punti (A, B) e la lunghezza di d. Come posso trovare il punto C?

esempio

Risposte:


26

Calcola un vettore Vda Aa Be normalizzalo.

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

Poiché il vettore è normalizzato, avrà una lunghezza di uno e indicherà la direzione di Brispetto a A. Se quindi ridimensionate il vettore d, avrete lo spostamento da AaC

V' = d * V

a cui puoi semplicemente aggiungere Aper cedere C:

C = V' + A

btw: qualcuno mi potrebbe consigliare un libro in cui posso imparare cose del genere? :)
eempee,


Non ho letto questo, ma mi è stato detto che è anche abbastanza buono amazon.com/Mathematics-Programming-Computer-Graphics-Second/dp/…
Ricky AH,

1

tra questi sono gli ultimi due passi negli algoritmi di intersezione del raggio: capisci quanto è lungo il raggio il punto di intersezione, quindi ottieni le coordinate del punto geomalgorithms.com/a05-_intersect-1.html#Plane-Intersections
jhocking

1

Nel caso in cui d sia un rapporto anziché una lunghezza, ad esempio 0,5 lo pone a uguale distanza da A e B, è possibile effettuare le seguenti operazioni ed evitare una normalizzazione:

C = A * (1 - ratio) + B * ratio
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.