( je précise, meme si ca n´a pas beaucoup d´importance que je programme en c++)
Je cherche à faire une fonction de ce type:
void Rotation(float *x,float *y,float *z,float nx,float ny,float nz,float mx,float my,float mz,float a)
{
}
où :
( x,y,z) est un point dans l´espace.
( nx,ny,nz) et ( mx,my,mz) sont 2 points formant un axe de rotation.
et ( a) le nombre de degré de rotation.
Le probleme étant à partir de ca de trouver l´algorythme.
Je précise que si je poste ce problème ici, ce n´est pas par parresse. Ce problème dépasse largement mes connaissance en mathématique.
Je n´attend évidament pas que quelqu´un me fasse ma fonction. Mais quelques petites indications ou des liens vers des pages qui traitent de ca me seraient bien utiles.
En openGL tu as une fonction qui te fait la rotation qui prend presque les mêmes paramètres que la tienne. Mais tu veux faire tourner un truc grace à quoi ?
Ou ptetre tu veux l´equation pour calculer les nouvelles coordonnées du points c´est ça ?
Tu pourrais transformer en coordonnées sphèrique. Ce type de repère est tout à fait adapté pour une rotation.
" Ou ptetre tu veux l´equation pour calculer les nouvelles coordonnées du points c´est ça ? "
oui, c´est tout à fait ca.
Sinon, pour les coordonnées sphèrique ( ou polaire je crois), je vois comment faire ca en 2D, mais pas en 3D.
Les coordonnées sphérique s´applique a un plan 2 D et les sphériques en 3 D. On y exprime les coordonnée en fonction de alpha, phi et r. Soit 2 angles et le rayon .
http://fr.wikipedia.org/wiki/Coordonn%C3%A9es_polaires#G.C3.A9n.C3.A9ralisation_des_coordonn.C3.A9es_sph.C3.A9riques_:_angles_d.27Euler
rotation arbitraire autour d´un axe arbitraire => quaternions, c´est fait pour.
les quaternions ? c´est pas cet ensemble dans lequel sont inclu les complexes ? Si oui, c´est largement hors de ma portée. J´ai déjà un peu de mal avec les complexes.....
C´est très simple ! Je suppose que tu as déja programmé une fonction de multiplication matricielle ? Si oui tu as fini !
Il te suffit en effet de faire la multiplication de ton vecteur ( x,y,z) avec la " matrice de rotation"
Je peux te filler cette matrice dans quelques temps, laisse moi juste le temps de le faire sur papier.
neg282 je crois que tu as un peu trop fumé avec les quaternions !
Ils ont été inventé pour avoir un exemple théorique de groupe non commutatif. Et je ne vois pas l´intéret d´utiliser des points dans un espace à 4 dimensions pour une simple rotation qui se fait comme je l´ai dit par simple multiplication matricielle ( je sais de quoi je parle, on ne cause absolument pas de quaternions dans mon cours de mécanique théorique en trois dimensions de 2ème fac math ! )
ca faisait un peu argument d´autorité mon truc là... ![]()
ouais en fait ca prend un peu plus de temps que je pensais et je n´en dispose pas mnt ! Je te le fais pour ce soir au plus tard !
dis moi juste si je peux modifier un peu les données de la fonctions ? il y aurais plus facile je pense.
tant qu´a etre dans les arguments d´autorites, et si tu veux jouer a qui a la plus grosse ( formation.. ; ) ) j´ai fini mes etudes et mon boulot c´est de faire des jeux en 3D : quand on parle de skinning de bones et autres joyeusetes, je sais aussi de quoi je parle..
Ici on parle de rotations arbitraire autour d´un AXE ARBITRAIRE. Oui tu peux ecrire la matrice de rotation, mais tu verras que c´est bcp plus complique que de le faire avec un quaternion. Qu´il s´agisse d´une extension des complexes, c´est une chose et on est bien d´accord ; savoir a quoi ca peut servir c´est bien aussi...
( et comme un bon lien vaut mieux qu´un long discours http://en.wikipedia.org/wiki/Quaternion )
pourquoi ils ne m´ont pas appris ca l´année passée
On a fait toute notre géométrie de fou sans ca ! J´ai bien vu apres que ce n´était pas une simple matrice de rotation mais c´est qmeme pas très compliqué, le plus chiant c´est de généraliser. Il faudrait en effet une matrice de changement de base pour simplifier, une translation et une rotation autour d´un des axes du nouveau repère. Pour les quaternions, je sais pas comment ca marche et je comprend pas l´anglais
tu peux m´expliquer ca en deux mots
ps mon but n´était pas de faire la grose tête mais je met ca souvent depuis qu´un *** de terminale qui racontais n´importe quoi m´a dit " t´es qui toi en math pour me parler comme ca ? " et disons que j´ai pas aimé
mais il semblerait effectivement que je ne savais pas de quoi je parlais
, mais bon, en deux ans de math pures, je n´ai vu des quaternions qu´en algèbre théorique...
Pauvre neg282 ![]()
En mathématique, les quaternions sont une extension non-commutatives des nombres complexes. Ils ont été décrit pour la première fois par Sir William Rowan Hamilton d´Irlande en 1843 et appliqués à la mécanique dans un espace à trois dimensions. Premièrement, les quaternions étaient vue comme de la folie car ils n´obéissaient pas à la règle de commutativité ab = ba. Bien qu´ils aient été remplacés dans la plupart des applications par les vecteurs, ils trouvent encore leur utilité en théorie et en mathématiques appliquées ( pas sur là), en particulier dans pour les calculs incluant une rotation en trois dimensions.
Dans le langage moderne, les quaternions forment une quatrième dimensions ? de la division de l´algèbre ? par delà les nombres réels ( X Files dites-vous). Les algèbres des quaternions sont souvent dénotées par H.
Voilà, c´est pour l´intro, le reste j´ai la flegme de tout traduire ![]()
En fait les quaternions consistent à apporter aux nombres réels les éléments i ( des nombres complexes), j et l tel que :
i² = j² = k² = ijk = -1
ij = k et ji = -k
jk = i et kj = -i
ki = j et ik = -j
Tous les quaternions sont une combinaison linéaire du quaternion de base 1, i, j et k et tous les quaternions s´écrivent sous la forme a + bi + cj + dk ( avec, bien sur, a, b, c et d en tant que nombres réels).
Après si tu veux il y a les exemples où seule la beauté des maths s´exprime ![]()
ca je connais ![]()
Je sais juste pas comment on les utilise pour faire une rotation...
( paragraphe " Group rotation" si tu as encore le courage...) bien qu´une explication de qqun qui les as deja utilisé est parfois meilleure que de la théorie d´un bouquin...
t´es en train de te fatiguer pour rien, tu fais un re-make de mon cours de l´année passée là ![]()