Code Vonc

Physique 2D élémentaire

CommentairesComments
Sans transition

Boucle
cible = souris
Transition progressive


Initialisation
cible = souris

Boucle
cible += (souris - cible) * rapidite
Transition élastique


Initialisation
cible = souris
vitesse = 0

Boucle
vitesse = (vitesse + (souris - cible) * rapidite) * elasticite
cible += vitesse
Suivi rigide


Boucle
direction = (cible - souris).getNormalized()
cible = souris + direction * longueur
Suivi souple


Boucle
difference = cible - souris
longueurDiff = difference.getLength()

direction = Vector()
if (longueurDiff > 0) direction = difference / longueurDiff

longueurCible = longueur
if (longueur > longueurDiff) longueurCible = longueurDiff;

cible = souris + direction * longueurCible
Suivi rigide élastique


Initialisation
cible = souris
vitesse = 0

Boucle
direction = (cible - souris).getNormalized()
destination = souris + (direction * longueur)
vitesse = (vitesse + (destination - cible) * rapidite) * elasticite
cible += vitesse
Gravité et inertie


Initialisation
cible = souris
vitesse = 0

Boucle
destination = cible + vitesse + gravite

vitesse = destination - cible
vitesse *= friction

cible = destination

Cliquez pour lancer la bille.
Liaison souple avec inertie et gravité


Initialisation
cible = souris
vitesse = 0
attache = true

Boucle
destination = cible + vitesse + gravite

difference = destination - souris
longueurDiff = difference.getLength()

if (attache && longueurDiff >= longueur) {
	
	direction = difference.getNormalized()
	destination = souris + (direction * longueur);
}
			
vitesse = destination - cible
vitesse *= friction

cible = destination
Liaison élastique avec inertie et gravité


Initialisation
cible = souris
vitesse = 0
attache = true
elasticiteVitesse = 0

Boucle
destination = cible + vitesse + gravite

difference = destination - souris
longueurDiff = difference.getLength()

if (attache && longueurDiff >= longueur) {
	
	direction = difference.getNormalized()
	
	destinationLiee = souris + (direction * longueur)
	liaison = destinationLiee - destination
	
	elasticiteVitesse += liaison * elasticite
	elasticiteVitesse *= rapidite
	destination += elasticiteVitesse
}
			
vitesse = destination - cible
vitesse *= friction

cible = destination
Corde avec inertie et gravité