Treize nœuds, trois carrés
Un pantin de 22 ressorts. Une construction au repos précise, puis des déformations élastiques à explorer.
Contraintes géométriques et ressorts
Hypothèse de construction : les trois carrés sont à l’intérieur du triangle ABC et partagent D. À l’initialisation, toutes les contraintes sont satisfaites à la précision des calculs numériques. Pendant l’animation, côtés, angles droits, angle de 75° et alignements sont des rappels élastiques : ils peuvent donc se déformer sous un effort. Il ne s’agit pas de contraintes rigides imposées à chaque instant.
Les 22 ressorts sont exactement ceux de l’énoncé. Leurs longueurs de repos non précisées sont choisies égales aux distances de la construction initiale. Les 19 rappels angulaires comprennent les 12 angles des carrés, les 6 alignements et l’angle EAG. Aucun ressort diagonal supplémentaire n’est ajouté.
Le moteur Reseau 0.1.0 est inclus dans cette page.
L’adaptateur angulaire applique les forces dérivées d’une énergie de
rappel quadratique, avec une erreur angulaire ramenée dans [−π, π] ;
il ne représente pas une torsion mémorisant plusieurs tours. Pas de
gravité ni de collision. La simulation est amortie ; les triangles des
formes peuvent se croiser lors d’une forte déformation.
Les 22 longueurs de repos
| Ressort | Longueur |
|---|
Construction et lecture du code
On place E, G, H, J, K et M sur un cercle de centre D et de rayon 28. Les secteurs EDG, HDJ et KDM font 90°. On fixe JDK à 60° : les intersections des droites GH, JK et ME donnent un angle EAG de 75°. Une recherche par dichotomie ajuste le secteur GDH pour obtenir BC = 108. Les deux branches donnent les deux configurations présentées.
Le fichier contient le style, la page, le moteur puis l’application,
indentés et commentés. Les fonctions solve,
angularForces, step et
draw séparent la construction, les rappels angulaires,
l’intégration et le dessin. L’objet window.pantin donne
accès au réseau et aux positions depuis le débogueur.