![]() |
|||||||||
![]() |
|||||||||
![]() |
![]() |
![]() |
![]() |
||||||
![]() ![]() ![]() Nouveautés Contact Livre d'or ![]() Accueil ![]() ![]() ![]() ActionScript (0) Bézier (2) Physique (3) Effets de texte (0) Effets d'image (3) Création (1) Outils (1) ![]() ![]() ![]() courbe de lumière balle et courbe ruban de Bézier bouger sur une courbe drag sur une courbe drag d'une courbe lettres de glace bulles de savon image chewing-gum image sinusoïdale vissage image déformable image cylindrique bras préhensile fonctions pantin articulé prismes droits rhéostats étiquette suspendue courbes de Bézier longueur d'une courbe courbe avec pointillés ![]() ![]() ![]() bras préhensile image sinusoïdale rebond sur Bézier ville à vélo Mona Lisa pantin lettres de glace image cylindrique ![]() ![]() ![]() Paul Prudence MyPhysicLab Thimotée Groleau MathCurve Alcys Maths magiques MetanetSoftware (A) MetanetSoftware (B) Orisinal Vincent Crublé ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||||||||
![]() |
Ressorts, pendules et élasticité | ![]() |
|||||||
![]() |
|||||||||
Publié par Gilles Bernard le 11 octobre 2013 - [Catégorie : physique] - Difficulté : | ![]() |
||||||||
![]() |
|||||||||
J'ai codé un moteur dans l'esprit de Meccano. Il est composé de diverses classes dotées de propriétés physiques élémentaires : ressort, pendule, particules unies par un lien élastique, murs avec lesquels ces éléments entrent en collision. C'est l'occasion d'étudier des forces mécaniques utiles dans les jeux ou pour rendre certaines animations réalistes. J'ai appliqué la gravité, l'élasticité, les forces et les principes de la physique de Newton. Les formes généralement déplacées à l'aide des touches du clavier sont ici manipulées grâce au pointeur. Le moteur proposera par exemple des groupes de pendules et de ressorts suspendus les uns aux autres. Une action sur l'un de ces objets entraînant la réaction en chaîne des autres. Mais avant de rendre ces classes cohérentes entre elles pour les intégrer à un moteur, il faut simuler les propriétés physiques de chacune d'entre elles. La nature n'est évidemment pas reproduite à l'identique : il s'agit d'obtenir un code léger, logique, et qui donne l'effet le plus fluide...
|
|||||||||
Pendules |
|||||||||
|
|
||||||||
![]() |
|||||||||
Les pendules m'ont vraiment donné du fil à retordre ! Dans l'absolu on peut tendre vers les lois de la physique en calculant la vitesse angulaire d'un pendule pesant, mais si on saisit son axe pour exercer une force centripète (en le faisant tourner de façon à le ramener sans cesse vers soi) le mouvement n’est plus exclusivement pendulaire. Il faut donc créer un code qui tient compte de ces deux réalités. Lorsqu'il n'a pas d’effet centrifuge, le pendule n’est soumis qu’à la gravité et à la force de tension de la masse, ce qui n’est plus le cas lorsqu’on le fait tournoyer.
|
|||||||||
Ressorts |
|||||||||
![]() |
|||||||||
|
|
||||||||
![]() |
|||||||||
A la force qui lui est appliquée pour l'allonger ou le raccourcir, un ressort oppose une force de rappel tendant à lui faire reprendre sa position d'équilibre. Cette tension du ressort qui s'oppose à la déformation est proportionnelle à son allongement x = l - lo. Elle a pour expression vectorielle :
k n'est rien de moins que le rapport entre la sollicitation et la déformation qui caractérise le ressort. Si on pose k = T/|x|, on comprend que pour une force appliquée équivalente, plus un ressort a de propension à s’allonger, plus k diminue. Dans le contexte d'une simulation, on imagine un ressort à spires accroché par une extrémité à une potence. A l'autre extrémité est suspendue une masse m manipulable grâce au pointeur. Parmi les forces qui s'appliquent figurent la tension du ressort : T = k.|x|, et le poids de la masse : P = m.g. Il est donc intéressant de vérifier les réactions du ressort en faisant varier g ou k comme dans les exemples ci-dessus.
|
|||||||||
Liens
élastiques |
|||||||||
![]() |
|||||||||
|
|||||||||
![]() |
|||||||||
Ces particules possèdent de belles qualités élastiques. Elles ont été construites en reprenant ni plus ni moins la logique des ressorts. Une fonction limitant arbitrairement la vitesse empêche tout bogue. En effet, au-delà de certaines valeurs de k, lorsque le lien est très dynamique et rigide, l’animation peut s’emballer parce que la longueur des vecteurs vitesse créés dépasse les dimensions du cadre. Une option ajoutée au drag permet d'affecter une vitesse à la particule lancée. Chaque point est soumis à la tension de ses liens. Si un point est relié à deux autres, ce sont deux forces simultanées qui lui sont appliquées. C'est la raison pour laquelle le code prend bien garde de calculer d'abord ces forces respectives avant de les cumuler, afin d'appliquer in fine les forces antagonistes (force de rappel, frottement de l'air). C'est ainsi que le mouvement élastique gagne en tonicité... et en durabilité !
|
|||||||||
![]() |
|||||||||
Objets attachés, chaînes élastiques | |||||||||
![]() |
|||||||||
Publié par Gilles Bernard le 11 octobre 2013 - [Catégorie : physique] - Difficulté : | ![]() |
||||||||
![]() |
|||||||||
Après avoir créé les classes de base (pendule, ressort, particule élastique), je les ai liées entre elles comme si j’assemblais les éléments d’un jeu de construction : dans des ordres différents, en utilisant de multiples connexions. Cette succession d’essais commence enfin à ressembler à un moteur ! L’intérêt ? Doter à terme de propriétés physiques des objets d’apparence réelle : une voiture qui rebondit sur les bords irréguliers d'un cadre ou sur différents volumes, un pantin articulé actionné par la souris...
|
|||||||||
|
|||||||||
L’étape suivante pourrait consister à permettre le rebond de ces éléments sur des murs inclinés ou sur des objets de forme complexe à l’aide d’une fonction spécialement créée pour calculer leurs nouveaux vecteurs vitesse en fonction de la norme. |
|||||||||
![]() |
|||||||||
« page précédente | |||||||||
![]() |
|||||||||