2009-12-16 9 views
0

Je développe un suiveur oculaire interactif. Je veux faire pivoter 2 sphères en fonction du mouvement de la souris. Ces sphères représentent les globes oculaires. Quelle est la meilleure façon de faire cela? J'ai besoin de trouver le vecteur qui pointe dans la direction de la position actuelle de la souris, mais je ne sais pas comment trouver la matrice de rotation pour la rotation de la bille. J'utilise silverlight + kit3d, mais ce n'est pas pertinent .. il pourrait être opengl, directx ou quoi que ce soit .. Merci,Rotation du globe oculaire

Répondre

1

Il y a un paper par Möller et Hughes du Journal of Graphics Tools intitulé «Construire efficacement une matrice pour faire tourner un vecteur vers un autre» est exactement ce que vous voulez. Il y a aussi example code disponible.

Compte tenu de votre problème spécifique, vous pouvez probablement simplifier un peu la procédure exacte suggérée dans le document.

+0

C'est exactement ce dont j'ai besoin. très bonne réponse. – jose

0

Voulez-vous vraiment l'implémenter ou simplement l'utiliser. J'en ai un similaire comme un gadget dans igoogle. vous pouvez rechercher igoogle pour un si vous voulez.

+0

Salut merci, mais j'ai préféré le faire moi-même. Merci quand même:) – jose

1

Ok je pense que cela devrait fonctionner

picture at imagebin.ca/img/Bz7zhY.png http://imagebin.ca/img/Bz7zhY.png

30 est la distance du curseur de la souris à partir du centre de l'écran (ou le centre de l'œil à l'écran si vous voulez déplacer indépendamment).

25 est la distance de l'œil de l'écran (axe Z)

Ceci est seulement pour un axe (X ou Y) dont vous avez besoin todo ce pour chaque axe

+0

Mais la souris et le modèle ont des systèmes de coordonnées différents .. – jose

+0

Pas nécessairement, vous pouvez penser au plan de l'écran 2D comme un plan dans votre monde 3d et la taille/positionner les globes oculaires par rapport à cela. De cette façon, il vous permet d'économiser une autre couche de maths/transformations en convertissant l'espace de l'écran en espace monde. –

+0

@ tm1rbrt - Je pense que le problème avec l'image était le "http:" dans le texte alt – ChrisF