⇨ MENU ⇨ BIBLIOTHEQUE ⇨ box2dlib.bbc
FN_b2PulleyJoint()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ box2dlib.bbc
FN_b2PulleyJoint()
DESCRIPTION.
La fonction FN_b2PulleyJoint() permet de créer un système de poulies entre deux corps dans un monde physique Box2d.
SYNTAXE.
kglisiere = FN_b2PulleyJoint( monde , corpsa , corpsb , xa , ya , xb , yb , xg , yg , xh , yh , ratio )
REMARQUES.
monde doit être l'identifiant de la variable ayant reçu la valeur retournée par l'appel de la fonction FN_b2CreateWorld() et qui indique donc le monde physique dans lequel on crée le corps.
corpsa et corpsb doivent être les identifiants des variables des deux corps à lier.
xa et ya doivent être des valeurs numériques indiquant les coordonnées, du point d’attache sur corpsa.
xb et yb doivent être des valeurs numériques indiquant les coordonnées, du point d’attache sur corpsb.
xg et yg doivent être des valeurs numériques indiquant les coordonnées, du premier point fixe.
xh et yh doivent être des valeurs numériques indiquant les coordonnées, du deuxième point fixe.
ratio doit être une valeur numérique indiquant le rapport entre les deux poulies. par exemple si ratio vaut :
- 1, poulie simple, corpsa et corpsb se déplacent de façon identique ;
- 2,corpsb se déplace 2 fois moins que corpsa ;
- 0.5, corpsb se déplace 2 fois plus que corpsa.
Note : les points fixes ( xg , yg ) et ( xh , yh ) ne bougent jamais, ils représentent les axes des poulies.
L'appel de la fonction FN_b2PulleyJoint() va créer un système de poulies reliant deux corps par une corde virtuelle passant sur deux points fixes, avec un rapport de démultiplication. C’est l’équivalent physique de deux masses reliées par une corde passant sur une ou deux poulies fixes avec éventuellement un rapport de déplacement différent 1.
IMPORTANT : Box2D impose la contrainte suivante longueurA + ( ratio × longueurB ) = constante, où :
- longueurA est distance entre ( xa , ya ) et ( xg , yg ) ;
- longueurB est distance entre ( xb , yb ) et ( xh , yh ) ;
- ratio est rapport de poulie.
L'appel de la fonction FN_b2PulleyJoint() retourne un identifiant du lien qui devra être utilisé comme paramètre dans les procédures et fonctions du module box2dlib.bbc. Il est indispensable de mémoriser cette valeur dans une variable pour pouvoir y faire référence ultérieurement.
Rappel : la procédure PROC_b2Init devra toujours être appelée avant tout autre fonction ou procédure de box2dlib.bbc.
La fonction FN_b2PulleyJoint() est importée depuis le module box2dlib.bbc.
RUBRIQUES.
Les dessins et les graphismes pour plus de détails sur la création de dessins et de graphismes.
La gestion des couleurs pour plus de détails sur la gestion des couleurs logiques et physiques.
EXEMPLE.
REM --- Importation des modules ---
REM --- Module de la bibliothèque BBC BASIC ---
INSTALL @lib$ + "box2dlib.bbc"
REM --- INITIALISATION GENERALE ---
REM --- Initialisation et création du monde ---
PROC_b2Init
kmonde = FN_b2CreateWorld( 0 , -9.81 )
REM --- Creation des corps ---
kcabine = FN_b2DynamicBody( kmonde , 2 , 1 , 0 , 10 , -1 , 0 , .1 , 0 )
kpoids = FN_b2DynamicBody( kmonde , 2 , 1 , 0 , 10 , -1 , 0 , .1 , 0 )
REM --- Creation d'un lien prismatique ---
kpoulie = FN_b2PulleyJoint( kmonde , kcabine , kpoids , 0 , 2 , 2 , 2 , 0 , 5 , 2 , 5 , 1 )
REM --- Fermeture de box2dlib ---
PROC_b2Exit
REM --- Fin du programme ---
END
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.