2 votos

¿Cómo girar un vector a través de otro vector en la misma dirección?

Tengo dos vectores $v_{1}$ y $v_{2}$ el ángulo entre ellos es $\theta$

$\theta\neq 0$ por lo que ambos vectores comparten un plano.

Digamos que operamos en una dimensión arbitraria cualquiera, por favor, ¿cómo puedo rotar generalmente el vector $v_{1}$ a través de $v_{2}$ de $0^\text{o}$ a $360^\text{o},$ vector rotation para conseguir $_{rot}v_{1}$ para cualquier valor de $\theta.$ vector rotation

ACTUALIZACIÓN
Parece que hay un pequeño error en el segundo diagrama, debería haber dejado las cosas más claras, aquí hay una mejor representación del problema. (Ahora $\theta$ es el ángulo entre los dos vectores $v_1$ y $v_2$ , $\phi$ es el ángulo entre $v_1$ y $_{rot}v_1$ Por lo tanto, el problema ha evolucionado para abordar específicamente cómo se puede rotar $v_1$ a través de $\phi$ a través de $v_2$ para obtener $_{rot}v_1$ , dado $\theta\neq 0$ es decir, girando $v_1$ en el plano que hace con $v_2$ ) vector rotation

3voto

David K Puntos 19172

Ya hay muchas preguntas sobre rotaciones de vectores en este sitio, Me sorprendió cuando no encontré una que realmente está haciendo exactamente la misma pregunta.

Hay algunas preguntas y respuestas que suponen que ya tienes un vector paralelo al eje de rotación deseado. Y obtendrás dicho vector si calculas el producto cruzado $v_1 \times v_2$ Pero voy a mostrar un método alternativo que no requiere un eje de rotación conocido y que funciona en cualquier número de dimensiones, no sólo en 3D.

El truco está en expresar $v_2$ como suma de dos vectores unitarios ortogonales $e_1$ y $e_2$ en el mismo plano que $v_1$ y $v_2.$ Mientras que $v_1$ y $v_2$ son una base para el subespacio vectorial (el plano) dentro del cual se quiere rotar $v_1,$ los vectores $e_1$ y $e_2$ son una base ortonormal para ese plano. Construiremos esta base ortonormal de manera que $e_1$ apunta en la misma dirección que $v_1.$ Encontrar estos vectores significará que podremos escribir $$ v_2 = c_1 e_1 + c_2 e_2 $$ donde $c_1$ y $c_2$ son algunos valores escalares. Será conveniente elegir la base ortonormal de tal manera que $c_2$ es positivo.

En primer lugar, fijamos $e_1$ al vector unitario en la misma dirección que $v_1$ :

$$ e_1 = \frac{1}{\lVert v_1\rVert} v_1. $$

Ahora es sencillo encontrar $c_1$ utilizando el producto punto:

$$ c_1 = v_2 \cdot e_1. $$

Dejemos que $u_2 = c_2 e_2$ Entonces

$$ u_2 = c_2 e_2 = v_2 - c_1 e_1 = v_2 - (v_2 \cdot e_1) e_1. $$

Set $c_2$ a la longitud de $u_2$ Es decir, $ c_2 = \lVert u_2\rVert$ ; esto garantiza que $c_2$ es positivo. Entonces

$$ e_2 = \frac{1}{c_2} u_2 = \frac{1}{\lVert u_2\rVert}u_2. $$

Esto es esencialmente el proceso de Gram-Schmidt aplicado a la base $v_1, v_2.$

Una vez hecho todo esto, resulta que \begin{align} c_1 &= \lVert v_2\rVert \cos \theta,\\ c_2 &= \lVert v_2\rVert\sin \theta, \end{align} es decir,

$$ v_2 = (\lVert v_2\rVert\cos\theta) e_1 + (\lVert v_2\rVert\sin\theta) e_2. $$

Para girar $v_1$ a través de un ángulo de exactamente $\theta$ para que apunte exactamente en la misma dirección que $v_2$ , computa

$$ (\lVert v_1\rVert\cos\theta) e_1 + (\lVert v_1\rVert\sin\theta) e_2. $$

Es un vector igual que $v_2$ excepto que su longitud es $\lVert v_1\rVert$ en lugar de $\lVert v_2\rVert$ -- sólo compara las fórmulas.

Para girar $v_1$ hacia $v_2$ por algún otro ángulo $\phi$ , sólo hay que calcular

$$ \mathop{\mathrm{rot}_\phi} v_1 = (\lVert v_1\rVert\cos\phi) e_1 + (\lVert v_1\rVert\sin\phi) e_2. $$


Tenga cuidado al hacer estas operaciones de que realmente está trabajando con 3D vectores en el sentido matemático habitual; sólo representan una dirección y una longitud, no puntos específicos de inicio y final. Agrego esta advertencia a la respuesta porque el primer diagrama que ilustra el problema parece mostrar una base o conjunto de ejes para sus coordenadas 3D, mientras que los vectores están dibujados como si se originaran en un punto distinto al origen de las coordenadas. Dado que los vectores en el espacio 3D deberían estar completamente descritos por sólo tres coordenadas, debería ser posible simplificar la figura colocando la intersección de los ejes, las colas de los vectores $v_1$ y $v_2,$ y el centro del círculo en el mismo punto.

Si la razón para dibujar la figura como lo hiciste es porque en realidad estás tratando de encontrar coordenadas a lo largo de un círculo en el espacio 3D con un centro que no está en el origen, querrás encontrar un vector $v_c$ desde el origen hasta el centro de la circunferencia y luego añadir $v_1'$ (la rotación $v_1$ ) al vector $v_c$ . Las coordenadas de $v_c + v_1'$ serán las coordenadas de un punto del círculo.

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