Pregunta

Entrada:. Dos multidimensional (por ejemplo dim = 8) vectores A y B

I que averiguar el ángulo "dirigido" (0-2 * Pi, no 0-Pi) entre aquellos vectores a y b. Y si no son paralelas I necesidad de rotar el vector b en el plano a, b por "dirigido" ángulo de L. Si son paralelas, avión no importa, pero el ángulo de rotación sigue siendo el mismo L.

Para 2D y 3D que esto es bastante fácil, pero para más dimensiones estoy perdido, que no encontró nada en google, y yo prefiero usar algunas ecuaciones ya probadas y ensayadas (evitando errores introducidos por mis cálculos :-D).

Gracias de antemano por consejos, enlaces, etc.

¿Fue útil?

Solución

Creo que se debe trabajar en el plano generado por los vectores a y b. El código será entonces el mismo, independientemente de la dimensión (por cierto, la dimensión de los vectores es por definición la dimensión del espacio).

Se puede hacer esto mediante la ortogonalización (a, b) tal como:

a' = a/||a||
b1 = b - (a'·b)a'  <-- scalar product denoted by ·
b' = b1/||b||

Ahora usted está en un avión con una base ortonormal y debe estar de vuelta en los negocios. Las coordenadas de B en esa base es (a '· b, b' · b). Para una es similar (|| a ||, 0). Cuando desee volver al espacio ambiente, simplemente escriba su vector de coordenadas (x1, x2) como x1 a '+ b x2'.

espero que la notación matemática no es demasiado confuso.

Otros consejos

Se puede encontrar este artículo útil: Rotaciones de Gráficos n-dimensional por AJ Hanson . También existe este documento: Generales Las rotaciones n-dimensional . También puede comprobar fuera de este hilo del foro donde un grupo de personas tratan a trabajar hacia fuera. Y aquí tenemos otro papel: sobre el concepto de rotación rígida en n-dimensional espacios . Debe. Detener. Buscar en Google.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top