HELLO FLASH !


Nouveautés
Contact
Livre d'or
Accueil

CATEGORIES


ActionScript (0)
Bézier (2)
Physique (3)
Effets de texte (0)
Effets d'image (3)
Création (1)
Outils (1)

ARCHIVES


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

BEST OF


bras préhensile
image sinusoïdale
rebond sur Bézier
ville à vélo
Mona Lisa
pantin
lettres de glace
image cylindrique

LIENS


Paul Prudence
MyPhysicLab
Thimotée Groleau
MathCurve
Alcys
Maths magiques
MetanetSoftware (A)
MetanetSoftware (B)
Orisinal
Vincent Crublé

Coup de Coeur



SITES PARTENAIRES

ABC Webmasters

Positron Libre

Webrankinfo

Ressorts, pendules et élasticité
Publié par Gilles Bernard le 11 octobre 2013 - [Catégorie : physique] - Difficulté : niveau 4

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

 


Pendule simple


Pendule double

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

 


Ressort simple


3 ressorts liés

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 :

\vec{T}=-k\,\cdot x\cdot\vec{i}, où k est la constante de raideur du ressort.

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


3 particules

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é : niveau 4

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...

 


Diverses chaînes élastiques

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