10 votos

En el cálculo de un Ángulo de $2$ puntos en el espacio

Dados dos puntos alrededor de un origen $(0,0)$ $2D$ espacio, ¿cómo podría usted calcular un ángulo de$p_1$$p_2$?

¿Cómo este cambio en $3D$ espacio?

12voto

JimDaniel Puntos 4853

Suponiendo que esto es en relación con el origen (como John señaló): Dados dos vectores de posición $\vec p_1$$\vec p_2$, su producto escalar es:

$$\vec p_1\cdot \vec p_2 = |\vec p_1| \cdot |\vec p_2| \cdot \cos \theta$$

La solución para $\theta$, obtenemos:

$$\theta = \arccos\left(\frac{\vec p_1 \cdot \vec p_2}{|\vec p_1| \cdot |\vec p_2|}\right)$$

En un espacio 2D esto es igual a:

$$v = \arccos\left(\frac{x_1x_2 + y_1y_2}{\sqrt{(x_1^2+y_1^2) \cdot (x_2^2+y_2^2)}}\right)$$

Y se extendieron por espacio 3D:

$$v = \arccos\left(\frac{x_1x_2 + y_1y_2 + z_1z_2}{\sqrt{(x_1^2+y_1^2+z_1^2) \cdot (x_2^2+y_2^2+z_2^2)}}\right)$$

2voto

Yaakov Ellis Puntos 15470

Voy a suponer que te refieres a el ángulo de la línea de p1 a p2 con respecto al eje de las x

Esto es lo mejor que puedo hacer teniendo en cuenta la información que usted ha proporcionado.

En cualquier caso, el oficial mathsy manera sería encontrar el producto escalar entre los dos, y se divide por la magnitud de p1-p2 y tomar el arccossine.

v = (normalized vector from p1 to p2)
theta = arccos( v * <1,0> )    (dot product)

Usted puede normalizar un vector dividiendo cada término por la magnitud (longitud) de todo el vector.

Para el 3D, la misma cosa se aplica:

theta = arccos( v * <1,0,0> )   (dot product)

Usted también podría significar que el ángulo entre la línea que va desde el origen a p1 y la línea desde el origen hasta p2.

Usted puede hacer esto con productos de puntos, así; pero ambos vectores debe ser normalizado.

theta = arccos( a * b ) (dot product)

donde a es la normalizado vector desde el origen a p1 y b es la normalizado vector desde el origen hasta p2.

0voto

Jay Puntos 395

En caso de que quieras aplicar en algún lenguaje de programación.

Por lo general, hay una función llamada como atan2(y, x), que devuelve orientado ángulo entre los puntos (x, y) y (1, 0). En ese caso, se podría utilizar

atan2(productos de vectores, producto escalar).

Esto es generalmente más estable que si se utiliza sólo arccos o arcsen.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X