Rotation de la toupie Exercice P10

Rotation de la toupie Exercice P10

by Maryam Laguecir -
Number of replies: 7
Bonjour,

J’ai un problème avec la rotation de ma toupie dans l’exercice P10.
J’ai réussi à la faire dessiner, cependant, sa rotation est très irrégulière : elle commence par tourner doucement avant d’accélérer d’un coup et disparaît de l’écran. Je n’ai malheureusement pas réussi à identifier la source du problème jusqu'ici.

Quel pourrait-être l'origine du problème et comment pourrais-je le résoudre ?

Merci d’avance
In reply to Maryam Laguecir

Re: Rotation de la toupie Exercice P10

by Josué Antoine Maechling -
As-tu essayé d'afficher les valeurs de la Toupie pour voir si elles ont l'air de diverger ou sont cohérentes avec l'irrégularité que tu observes ? Si oui ça peut être dû à des erreurs dans le code (vérifie que tu as bien les mêmes valeurs que le professeur tout d'abord), et essaye avec d'autres valeurs initiales, peut-être celles que tu as mises sont proches d'une singularité.

J'ai eu un groupe sur zoom qui avait un problème un peu similaire avec leur toupie qui accélérait et décélérait au lieu d'avoir une rotation fluide, ils pensaient que c'était le graphisme qui buguait mais je leur ai dit que c'était plutôt lié aux valeurs de la toupie et qu'il fallait vérifier de ce côté-là. Je ne sais pas si ils ont résolu leur problème, si oui ils peuvent peut-être le signaler ici.
In reply to Josué Antoine Maechling

Re: Rotation de la toupie Exercice P10

by Maeva Thiévent -

Bonjour,

J'ai un problème très similaire. Ma toupie évolue correctement et avec les bonnes valeurs. J'ai vérifié les valeurs en affichant la position de la toupie en format texte après chaque pas de temps. Sauf que quand je dessine la même toupie avec le graphisme, elle tourne de manière désordonnée et s'éloigne du centre jusqu'à disparaître de l'écran. Je ne comprends pas quelle est la raison de ce comportement de la toupie et comment y remédier. Par contre, en affichant les valeurs d'évolution en parallèle de l'affichage graphique, j'ai remarqué que vers la fin de la simulation certaines valeurs des vecteurs deviennent négatives... Je ne comprends pas à quoi cela peut être dû, est-ce que c'est lié à la divergence de l'intégrateur Euler Cromer ? Je tiens à préciser que j'ai bien mis un modulo 2pi, ce n'est donc pas la cause de ce soucis.

Merci d'avance

In reply to Maeva Thiévent

Re: Rotation de la toupie Exercice P10

by Deleted user -

Je ne comprends pas à quoi cela peut être dû, est-ce que c'est lié à la divergence de l'intégrateur Euler Cromer ?

Cela y ressemble en tout cas. Essaye de tourner avec un plus petit pas de temps dans GLWidget, là où tu redémarres le chronomètre.

Attention à la façon dont tu prends le modulo également, car il peut retourner des valeurs négatives, par exemple "std::fmod(-5.1,3)" donne "-2.1".

In reply to Deleted user

Re: Rotation de la toupie Exercice P10

by Maeva Thiévent -

J'ai essayé, mais ma toupie a toujours le même comportement. Ce que je ne comprends pas est qu'elle tourne mais elle s'éloigne en même temps du centre (elle ne fait pas que une rotation sur elle-même), alors que pourtant dans la méthode, je fais seulement tourner les axes et je ne lui fais faire aucune translation. Je ne comprends pas d'où ça peut venir, j'ai vérifié en mettant un cout que la fonction translate n'était pas appelée et ce n'est effectivement pas le cas.

In reply to Maeva Thiévent

Re: Rotation de la toupie Exercice P10

by Deleted user -

Donc, quand tu dessines ta Toupie (avec VueOpenGL), tu n'utilises ni "translate" ni "scale"? Simplement "rotate"? As-tu bien pensé à appeler QMatrix4x4::setToIdentity() avant de faire des rotations?

Assure toi également que ta caméra est fixe, et que ce n'est pas elle qui s'éloigne par erreur.

In reply to Maryam Laguecir

Re: Rotation de la toupie Exercice P10

by Julius Emile Girardin -

Salut,

je ne sais pas si tu as résolu ton problème, mais j'ai eu le même. Quand j'ai réessayé avec un intégrateur Newark ou Runge-Kutta d'ordre 4, tout allait bien.

Julius Girardin


In reply to Maryam Laguecir

Re: Rotation de la toupie Exercice P10

by Jean-Cédric Chappelier -

Une réponse globale à ce genre de problèmes :
c'est possible que ceci soit du à un pas d'intégration trop grand.
Affichez le pas d’intégration que vous utilisez (par exemple en affichant la variable dt dans GLWidget::timerEvent()) et ajustez le ratio entre le temps réel mesuré et ce dt (le ratio est à 1000.0 dans l'exemple donné mais ce n'est certainement pas assez grand) : visez d'avoir un dt similaire (ou plus petit) à celui utilisé dans les exemples testés en mode texte (dt = 0.01)