¿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

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

por cierto: ¿alguien podría recomendarme un libro donde pueda aprender sobre cosas como esa? :)
eempee


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.