PDA

Voir la version complète : Rotation d'une sphere...


WormsParty
11/12/2005, 01h29
J'ai une sphere de rayon 1, se déplaçant sur un sol plat.
A l'aide si clavier, on peut donner une impulsion vers l'avant avec haut et bas,
vers les côtés avec gauche et droite.
J'ai le vecteur séparant la caméra de la sphère que j'ai nommé D. Au niveau du déplacement, c'est simple : vers l'avant j'ajoute le vecteur D, vers l'arrière je le soustrais, vers les côtés je le cross avec un vecteur vertical.
Malheureusement il y a encore les angles que je dois changer en fonction du déplacement... et je ne sais pas quels calculs effectuer... il y a les 3 axes de rotations à prendre en compte et je ne trouve pas de formules

Lightness1024!
11/12/2005, 03h46
ca dépend comment tu vois les choses.

premierement une sphere qui rotate ca sert pas a grand chose vu que c'est une forme symétrique par rapport a tous les plans passant par son centre.

ca peut etre utile pour tourer la texture qui est dessous disont...

deuxiemmement, pour moi il n'y a qu'un axe de rotation, l'axe orthogonal a la direction et dans le plan du sol et passant par son centre.
ce qui selon Euler pourrait se décomposer en trois rotations autours des axes de la base, je te l'accorde. Mais aussi selon cette même personne, il est possible de multiplier par un quaternion mais alors la c pas a moi qu'il faut demander comment faire.

voici un module cpp que j'ai fait pour mon programme d'abres procéduraux qui m'a servir pour la rotation des branches autours de leur parentes.
il comporte des fonctions de rotation, dont une (basée sur les autres) qui permet la rotation autour d'un axe quelconque.

http://lightness.ath.cx/apache2-default/fichiers/arbres%20proceduraux%20gprog%202k5/funcs.cpp
http://lightness.ath.cx/apache2-default/fichiers/arbres%20proceduraux%20gprog%202k5/funcs.h

pour trouver l'axe:
tu prend ton vecteur vitesse, tu prends la normale du plan de glissement, et hop produit vectoriel voila tu as ton axe.