Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > Physique
Physique Forum d'entraide sur les algorithmes et moteurs physiques (ODE, Newton...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/04/2012, 13h25   #1
Rewpparo
Membre confirmé
 
Avatar de Rewpparo
 
Homme
Amateur
Inscription : décembre 2005
Messages : 170
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Amateur

Informations forums :
Inscription : décembre 2005
Messages : 170
Points : 299
Points : 299
Par défaut Déplacement du centre de gravité

Bonjour,
Je travaille actuellement sur un petit intégrateur newtonien en mécanique du solide. Je cherche a pouvoir rajouter ou enlever des morceaux de mes solides de manière réaliste.
Le problème que je rencontre est le suivant : quand je rajoute un morceau à mon solide, le centre de masse se déplace. Si le solide était en rotation autour de son centre de masse, est ce que le solide tournera autour de son ancien centre de masse ? Sinon comment transformer la rotation pour qu'il tourne autour de son nouveau centre de masse, tout en gardant une cohérence visuelle ?
J'ai la vitesse et la position sous la forme d'un vecteur, la vitesse de rotation sous forme de vecteur avec les angles d'Euler, et l'orientation sous forme de quaternion.
Merci d'avance
Rewpparo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 09h27   #2
pyros
Membre Expert
 
Homme
Inscription : mars 2011
Messages : 531
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 531
Points : 1 042
Points : 1 042
Salut,

Déjà, un solide en rotation soumis à aucune force tourne toujours autour de son centre de masse. Essaye de faire tourner une roue excentrée, tu verra qu'elle ne veut pas

Ensuite, au moment ou le centre de masse est déplacé, le nouveau centre possède une vitesse initiale (du fait de la rotation qui s'effectuait avant autour de l'ancien centre). Donc, au moment ou ton solide change de masse, il devrait se mettre à avancer (trajectoire rectiligne uniforme de vitesse OA * w * n, ou OA est la distance entre le nouveau centre et l'ancien centre, w la vitesse de rotation avant changement de masse et n le vecteur normal à OA), et tourner autour du nouveau centre avec la même vitesse de rotation.
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry
pyros est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/04/2012, 09h55   #3
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 314
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 314
Points : 19 504
Points : 19 504
Citation:
Envoyé par pyros Voir le message
Ensuite, au moment ou le centre de masse est déplacé, le nouveau centre possède une vitesse initiale (du fait de la rotation qui s'effectuait avant autour de l'ancien centre). Donc, au moment ou ton solide change de masse, il devrait se mettre à avancer (trajectoire rectiligne uniforme de vitesse OA * w * n, ou OA est la distance entre le nouveau centre et l'ancien centre, w la vitesse de rotation avant changement de masse et n le vecteur normal à OA), et tourner autour du nouveau centre avec la même vitesse de rotation.
Ce n'est pas si simple je pense.
Un contre exemple simple. 2 masses reliées entre elle par une tige rigide sans masse et qui tourne autour du centre de gravité (le milieu de la tige). On supprime la tige, les 2 masses vont suivre une trajectoire rectiligne sans tourner sur eux même
Il faut faire les tours des doc sur les moteurs physiques (recherche solide destructible), les équations doivent probablement traîner quelque part
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 11h04   #4
dourouc05
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 18 577
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 18 577
Points : 74 149
Points : 74 149
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
De manière simple : avec Newton, tu considères que ta masse est constante. Si tu enlèves un bout de solide, tu dois passer à autre chose ou à un cache-misère. On peut utiliser une série de poussées, qui caractérisent ce qui est ajouté/retiré et la vitesse des particules, que tu ajoutes à ton équilibre de force (enfin, dans la résolution symbolique sur papier, à voir pour adapter à ton moteur).
__________________
Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 11h45   #5
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 314
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 314
Points : 19 504
Points : 19 504
Citation:
Envoyé par dourouc05 Voir le message
De manière simple : avec Newton, tu considères que ta masse est constante. Si tu enlèves un bout de solide, tu dois passer à autre chose ou à un cache-misère. On peut utiliser une série de poussées, qui caractérisent ce qui est ajouté/retiré et la vitesse des particules, que tu ajoutes à ton équilibre de force (enfin, dans la résolution symbolique sur papier, à voir pour adapter à ton moteur).
En fait Newton est encore applicable dans ce cas (Newton n'est surtout pas applicable lorsque l'on a une variation relativiste de la masse ; ou tous les cas où l'énergie totale du système n'est pas conservée). Là, on peut considérer que l'on a initialement 2 objets avec leurs propres masses, qui sont liés. Puis les 2 systèmes ne sont plus liés. On n'a pas de changement de masse et newton continu d'être applicable.
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 12h04   #6
pyros
Membre Expert
 
Homme
Inscription : mars 2011
Messages : 531
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 531
Points : 1 042
Points : 1 042
Citation:
On supprime la tige, les 2 masses vont suivre une trajectoire rectiligne sans tourner sur eux même
Si tes masses sont ponctuelles, on ne considère pas la rotation, donc la question ne se pose pas. S'il s'agit de solides possédant un moment d'inertie, elles continueront de tourner sur elle-même .

Ps: Au passage, Newton n'a pas attendu les moteurs physiques pour faire ses recherches. Un bon cour sur la mécanique Newtonienne te donnera toutes les équations que tu cherche .
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry
pyros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 12h28   #7
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 314
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 314
Points : 19 504
Points : 19 504
Citation:
Envoyé par pyros Voir le message
Si tes masses sont ponctuelles, on ne considère pas la rotation, donc la question ne se pose pas. S'il s'agit de solides possédant un moment d'inertie, elles continueront de tourner sur elle-même .
Je pensais bien à des masses non ponctuelles (petites sphères). Et intuitivement, je pense qu'elles ne tournent pas. Je vérifie

Citation:
Envoyé par pyros Voir le message
Ps: Au passage, Newton n'a pas attendu les moteurs physiques pour faire ses recherches. Un bon cour sur la mécanique Newtonienne te donnera toutes les équations que tu cherche .
Je pensais aux moteurs parce que les équations sont simplifiées alors que les cours de mécanique vont utiliser des maths plus avancées

EDIT : ma physique (un peu rouillé) me donne que les 2 masses ont une trajectoire rectiligne après séparation, avec une vitesse v=r.w.sqrt(2). Sans rotation autour de son centre de gravité
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 13h45   #8
pyros
Membre Expert
 
Homme
Inscription : mars 2011
Messages : 531
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 531
Points : 1 042
Points : 1 042
C'est vrai qu'intuitivement, on a tendance à pense qu'elles ne tourneront pas. Mais, on peut imaginer plusieurs "contre-exemples intuitif" (avec un dessin ça serait plus simple, mais bon...):

Imagine une roue qui tourne sur son axe. Si tu la lance, intuitivement, tu te dis qu'elle continuera de tourner. Fait-là tourner de manière très légèrement désaxée. Tu l'imagine toujours tourner si tu la lance. Si tu éloigne beaucoup l'axes, tu te retrouve dans ton cas de figure.
Question: Si tu considère que peu désaxée elle tourne et que très désaxée elle ne tourne plus, à parti de quand la roue arrête-t-elle de tourner ?...

Maintenant, imagine une boussole que tu fait tourner au bout d'une ficelle. La flèche indique toujours le nord. Cette flèche, bien qu'en mouvement circulaire autour de ton doigt, n'est pas en rotation en tant que tel, elle suit une trajectoire circulaire, ce qui est différent. Si tu lâche la ficelle, elle partira en trajectoire rectiligne, sans tourner (car elle ne tournait pas au moment ou tu a lâché la ficelle).

Lorsque tu fait tourner un solide au bout d'un ficelle, à un instant t, il n'est pas en rotation autour de ton doigt. Il est animé d'une vitesse v=rw * n, d'une force qu'il l'empêche de se barrer (la ficelle), et d'une rotation autour de son centre de masse, d'angle w. Rotation qu'il vas conserver en vertu du PFD en rotation.

La lune tourne autour de la terre, mais elle tourne aussi sur elle-même à la même vitesse (ce qui fait qu'elle nous montre toujours la même face, comme si elle était accrochée). Si tu supprime l'attraction terrestre, elle sera éjectée, mais continuera à tourner.

J'espère t'avoir convaincu
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry
pyros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 14h03   #9
gbdivers
Responsable C++

 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 5 314
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 37
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 5 314
Points : 19 504
Points : 19 504
Citation:
Envoyé par pyros Voir le message
C'est vrai qu'intuitivement, on a tendance à pense qu'elles ne tourneront pas. Mais, on peut imaginer plusieurs "contre-exemples intuitif" (avec un dessin ça serait plus simple, mais bon...):

Imagine une roue qui tourne sur son axe. Si tu la lance, intuitivement, tu te dis qu'elle continuera de tourner. Fait-là tourner de manière très légèrement désaxée. Tu l'imagine toujours tourner si tu la lance. Si tu éloigne beaucoup l'axes, tu te retrouve dans ton cas de figure.
Question: Si tu considère que peu désaxée elle tourne et que très désaxée elle ne tourne plus, à parti de quand la roue arrête-t-elle de tourner ?...

Maintenant, imagine une boussole que tu fait tourner au bout d'une ficelle. La flèche indique toujours le nord. Cette flèche, bien qu'en mouvement circulaire autour de ton doigt, n'est pas en rotation en tant que tel, elle suit une trajectoire circulaire, ce qui est différent. Si tu lâche la ficelle, elle partira en trajectoire rectiligne, sans tourner (car elle ne tournait pas au moment ou tu a lâché la ficelle).

Lorsque tu fait tourner un solide au bout d'un ficelle, à un instant t, il n'est pas en rotation autour de ton doigt. Il est animé d'une vitesse v=rw * n, d'une force qu'il l'empêche de se barrer (la ficelle), et d'une rotation autour de son centre de masse, d'angle w. Rotation qu'il vas conserver en vertu du PFD en rotation.

La lune tourne autour de la terre, mais elle tourne aussi sur elle-même à la même vitesse (ce qui fait qu'elle nous montre toujours la même face, comme si elle était accrochée). Si tu supprime l'attraction terrestre, elle sera éjectée, mais continuera à tourner.

J'espère t'avoir convaincu
Non. Tes exemples me semblent bancales (tout au moins, ne constituent pas de bons modèles de mon exemple). Je verrai ça ce soir
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.

Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2012, 20h55   #10
Rewpparo
Membre confirmé
 
Avatar de Rewpparo
 
Homme
Amateur
Inscription : décembre 2005
Messages : 170
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Amateur

Informations forums :
Inscription : décembre 2005
Messages : 170
Points : 299
Points : 299
Citation:
Envoyé par pyros Voir le message
Ensuite, au moment ou le centre de masse est déplacé, le nouveau centre possède une vitesse initiale (du fait de la rotation qui s'effectuait avant autour de l'ancien centre). Donc, au moment ou ton solide change de masse, il devrait se mettre à avancer (trajectoire rectiligne uniforme de vitesse OA * w * n, ou OA est la distance entre le nouveau centre et l'ancien centre, w la vitesse de rotation avant changement de masse et n le vecteur normal à OA), et tourner autour du nouveau centre avec la même vitesse de rotation.
Ca me semble très bien ca, j'implémenterais ca dans un premier temps, histoire de voir ce que ca donne.

Citation:
Envoyé par gbdivers Voir le message
Je pensais bien à des masses non ponctuelles (petites sphères). Et intuitivement, je pense qu'elles ne tournent pas. Je vérifie
Ca me semble pas mal moi, surtout l'analogie avec la Lune. Vu qu'elle présente toujours la même face, c'est comme si elle était reliée à la Terre par une tige. Et en effet elle tournerait.

Citation:
Envoyé par gbdivers Voir le message
Je pensais aux moteurs parce que les équations sont simplifiées alors que les cours de mécanique vont utiliser des maths plus avancée
Je valide. Ma prépa est loin derrière moi, et j'ai vraiment du mal a me plonger dans des articles de wikipedia sur la mécanique. Et pour l'instant j'ai besoin de quelque chose qui tourne correctement sans pour autant être physiquement réaliste. Les cache-misère ca me va bien

Merci a tous, je suis preneur d'améliorations et j'ai hâte de lire la fin du débat sur la rotation.
Rewpparo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2012, 08h57   #11
pyros
Membre Expert
 
Homme
Inscription : mars 2011
Messages : 531
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2011
Messages : 531
Points : 1 042
Points : 1 042
Citation:
Je valide. Ma prépa est loin derrière moi, et j'ai vraiment du mal a me plonger dans des articles de wikipedia sur la mécanique.
Un ancien taupin
Je suis aussi d'accord, mais que je croise souvent des gens qui s'imaginent que les matrices ont été inventées avec OpenGL et la mécanique du solide avec PhysX. J'aime juste rappeler qu'au final les informatitiens n'ont pas inventé grand chose
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry
pyros est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h45.


 
 
 
 
Partenaires

Hébergement Web