Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ 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

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse