¿Cómo encuentro un punto en una línea?

11

Tengo dos puntos (A, B) y la longitud de d. ¿Cómo puedo encontrar el punto C?

ejemplo

eempee
fuente

Respuestas:

26

Calcule un vector Vde Aa By normalícelo.

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

Dado que el vector está normalizado, tendrá una longitud de uno e indicará la dirección de Brelativa A. Si luego escala el vector d, tendrá el desplazamiento de AaC

V' = d * V

que simplemente puedes agregar Apara obtener C:

C = V' + A
sam hocevar
fuente
por cierto: ¿alguien podría recomendarme un libro donde pueda aprender sobre cosas como esa? :)
eempee
La cartilla 3D Math es buena: amazon.com/Primer-Graphics-Development-Wordware-Library/dp/… .
Ricky AH
No leí este, pero me han dicho que también es bastante bueno amazon.com/Mathematics-Programming-Computer-Graphics-Second/dp/…
Ricky AH
Por cierto, este es el último par de pasos en los algoritmos de intersección de rayos: descubres
jhocking
1

En caso de que su d sea una relación en lugar de una longitud, por ejemplo, 0.5 la coloca a la misma distancia de A y B, puede hacer lo siguiente y evitar una normalización:

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