Simulation d'un rebond sur un mur

Description

Voici un petit programme simulant un rebond d'une balle sur un mur.
La balle est modelisee par un polyedre regulier (tetraedre ou icosaedre,
pour leur construction cf autre de mes sources SPHERE).Chaque sommet
possede une petite masse (une masselote) et chaque arete est un ressort,
j'ajoute a cela une masselote au centre qui est reliee a chaque sommet
par un ressort, cela pour assurer la rigidite de la balle.

Le mur est modelise par une force exterieur agissant dans un demi-espace.
Si on veut simuler un mur a la position x<=0, alors
la force derive d'un potentiel qui est nul pour x>0 et qui est repulsive
(dans le sens des x>0) pour x<=0 et qui verifie F(x->-infini)=+infini,
autrement dit pour n'importe quelle vitesse d'impact, on aura une
barriere de potentiel, l'objet sera forcement rejete, i.e. il y aura
rebond. Il faut que le potentiel soit derivable (=0 si x>0) donc j'ai
choisi (arbitrairement) le potentiel V(x)=exp(-x/d)*exp(d/x) si x<=0
avec d la "distance de peau", qui est un parametre qui mesure la rigidite
du mur.(Les matheux pourront verifier que toutes les derivees a gauche en
zero sont bien nulles, enfin les matheux... c'est vite dit, un gars de
terminal S en est tres bien capable...)(pour les physiciens : pas la peine
de faire remarquer que mon potentiel n'est pas homogene, V0=1. arbitrairement)
Le ballon peut etre considere comme un solide (i.e. les ressorts interieurs
sont rigides, de constante de raideur k=+infini), alors comme la force
derive d'un potentiel, il y aura conservation de l'energie
(mais pas de la quantite de mouvement, et encore moins du moment angulaire :
le programme montre bien que les balles acquierent une rotation avec le
passage du mur !

Le programme permet de comparer deux murs differents (en haut la distance de peau
est elevee (mur souple), et en bas elle est basse (mur rigide, choc plus violent))

On peut facilement modifier les parametres, les formes ... ce que vous voulez.

Ce programme est une modeste simulation d'un "machin" plein de ressort que
l'on fait evoluer dans un monde...

Source / Exemple :


cf ODE.c et ODE.h utilises dans le main.c avec des ressorts (cf autres de mes sources RESSORT & RUNGE-KUTTA) et une force exterieure derivant d'un potentiel

Conclusion :


Désolé d'emcombrer le site de mes simulations, mais moi je trouve ca marrant les simulations...
a chacun ses passions... (faut etre tolerant :-) )

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.