2010-04-08 7 views
0

Entrée: deux vecteurs multidimensionnels (par exemple dim = 8) a et b.rotation de vecteur multidimensionnel et calcul d'angle - comment?

J'ai besoin de trouver l'angle "dirigé" (0-2 * Pi, pas 0-Pi) entre les vecteurs a et b. Et s'ils ne sont pas parallèles j'ai besoin de faire tourner le vecteur b dans le plan a, b par l'angle "dirigé" L. S'ils sont parallèles, le plan n'a pas d'importance, mais l'angle de rotation est toujours le même. et 3d c'est assez facile, mais pour plus de dimensions je suis perdu, je n'ai rien trouvé sur google, et je préfère utiliser quelques équations testées prouvées & (éviter les erreurs introduites par mes calculs :-D).

Nous vous remercions à l'avance pour obtenir des conseils, des liens, etc.

+0

Comment avez-vous fait cela pour le boîtier 3D? – andand

+0

En outre, il semble que vous essayez simplement de faire pivoter b pour qu'il soit parallèle à a. Si c'est le cas, pourquoi la «directionnalité» que vous décrivez est-elle importante? – andand

Répondre

1

Je crois que vous devriez travailler sur le plan généré par vos vecteurs a et b. Le code sera alors le même quelle que soit la dimension (btw, la dimension des vecteurs est par définition la dimension de l'espace).

Vous pouvez le faire par orthogonalisation (a, b) comme:

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

Vous êtes maintenant sur un plan avec une base orthonormée et devrait être de retour dans les affaires. Les coordonnées de b dans cette base sont (a '· b, b' · b). Pour a, il est similaire (|| a ||, 0). Quand vous voulez revenir à l'espace ambiant, écrivez simplement votre vecteur avec les coordonnées (x1, x2) comme x1 a '+ x2 b'. J'espère que la notation mathématique n'est pas trop confuse.

+0

Merci! J'ai commencé à faire pivoter le plan entier sur l'axe XY avec n'importe quelle autre coordonnée = 0, mais je n'ai pas pensé à exprimer ces vecteurs en termes de nouvelle base. – greenoldman

2

Vous pouvez trouver ce papier utile: Rotations for N-Dimensional Graphics by AJ Hanson. Il y a aussi cet article: General n-Dimensional Rotations. Vous pouvez également consulter ce forum thread où un groupe de personnes essaie de s'en sortir. Et voici encore un autre document: On the Rigid Rotation Concept in n-Dimensional Spaces. Doit. Arrêtez. Google.

+0

Merci beaucoup. Bonne leçon sur l'utilisation de google, j'ai cherché "multidimensionnel" pas "n-dimensionnel" :-) – greenoldman