Combiner plusieurs rotations [OpenGL] - Divers - Programmation
Marsh Posté le 04-03-2006 à 19:21:10
J'ai fais une ébauche de solution, évidemment c'est un peu lourd :
(je pourrais calculer les matrices moi même)
Code :
|
Edit : En fait ça ne fonctionne même pas
Marsh Posté le 04-03-2006 à 22:32:20
WarDrone a écrit : J'aimerais pouvoir bouger un objet à l'aide de rotation sur les 3 axes.
|
Ton objet se trouve-t-il à l'origine?
Marsh Posté le 13-05-2006 à 19:21:47
Salut, as tu trouvé la solution à ton problème ?
Parce que je pense que ce que tu cherchais à faire (rotationner l'objet dans un repère "global fixe" ), peut trouver sa solution simplement en inversant l'ordre des rotations.
Ainsi le code devient simplement cela :
Code :
|
Je crois bien avoir lu ça dans le red book. Je m'en vais de ce pas vérifier sur un exemple mais je pense que ça devrait effectivement te donner une rotation autour d'un repère global fixe.
Marsh Posté le 15-05-2006 à 08:18:02
Oui j'ai trouvé une solution, j'utilise des quaternions.
Je conserve un quaternion total auquel j'ajoute un quaternion représentant la rotation courante.
Dans ton exemple, la 2eme rotation se fera a partir du nouvel axe Y et non pas le Y global.
Marsh Posté le 15-05-2006 à 09:12:26
stochastik a écrit : Salut, as tu trouvé la solution à ton problème ?
|
la rotation n'est pas commutative ?
Marsh Posté le 15-05-2006 à 11:11:46
c'est pour ça que je doute du bien fondé de la solution quotée
Marsh Posté le 04-03-2006 à 18:25:11
J'aimerais pouvoir bouger un objet à l'aide de rotation sur les 3 axes.
Ce code ne fonctionne pas comme je le veux :
(On imagine que les variables rotX, rotY, rotZ changent en fonction des coordonnées de la souris)
Le problème est que la deuxième rotation se fait par rapport au repère modifié par la première, et non par rapport au repère absolu (ce qui est normal en ogl). Il en ai de même pour la 3eme.
Existe t'il un moyen de combiner les 3 rotations en une seule pour qu'elle s'applique au repère de base? Il y a t'il une autre solution?
(Je ne parle pas de Gimbal Lock, d'ailleurs je compte utiliser des Quaternions, j'ai implémenté la classe, mais j'aimerais résoudre ce problème tout d'abord)
Message édité par WarDrone le 04-03-2006 à 19:05:13