⇨ MENU ⇨ BIBLIOTHEQUE ⇨ box2dlib.bbc
FN_b2PrismaticJoint()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ box2dlib.bbc
FN_b2PrismaticJoint()
DESCRIPTION.
La fonction FN_b2PrismaticJoint() définit un lien entre deux corps pour les faire coulisser linéairement dans un monde physique Box2d.
SYNTAXE.
kglisiere = FN_b2PrismaticJoint( monde , corpsa , corpsb , ancrex , ancrey , axex , axey , minimum , maximum )
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.
ancrex et ancrex doivent être des valeurs numériques indiquant les coordonnées, dans monde, du point de d'ancrage de corpsa et corpsb.
axex et axey doivent être des valeurs numériques indiquant les coordonnées, dans monde, définissant le vecteur de l'axe de translation, c'est-à-dire la direction, selon la paire ( axex , axey ). Par exemple :
- axex = 1 et axey = 0, produira un glissement horizontal ;
- axex = 0 et axey = 1, produira un glissement vertical ;
- axex = 0.7 et axey = 0.7, produira glissement en diagonale.
minimum et maximum doivent être des valeurs numériques indiquant les limites du déplacement le long de l'axe ( axex , axey ) et les sens possible du déplacement par rapport au point de d'ancrage de corpsa et corpsb, selon la paire ( minimum , maximum ). Par exemple :
- minimum = 0 et maximum = 0, pas de limite du déplacement ;
- minimum = -3 et maximum = 6, le déplacement peut aller de -3m à +6m ;
- minimum = 0 et maximum = 5, le déplacement peut aller de 0m à +5m.
L'appel de la procédure FN_b2PrismaticJoint() va donc relier corpsa et corpsb présents dans monde, et les autorisera uniquement à un déplacement linéaire depuis un point d'ancrage ( ancrex et ancrex ) dans un direction ( axex , axey ), et pouvant aller de minimum à maximum mètres. On utilisera un lien prismatique pour simuler par exemple des tiroirs, des ascenseur, des pistons, des portes coulissantes.
Note : Aucun des deux corps ne glisse le long de l’autre par définition. Un lien prismatique contraint le mouvement relatif entre les deux corps le long d’un axe. Cependant, en pratique, le corps le plus léger ou le plus dynamique ou celui non fixe (dynamic vs static) sera celui qui se déplacera visiblement. Ce ne sera donc pas forcement corpsa qui se déplacera le long de corpsb.
L'appel de la fonction FN_b2PrismaticJoint() 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, en particulier lors de l'utilisation de la fonction FN_b2GearJoint().
Rappel : la procédure PROC_b2Init devra toujours être appelée avant tout autre fonction ou procédure de box2dlib.bbc.
Voir la fonction FN_b2GearJoint() qui permet de déplacer les corps mécaniquement.
La fonction FN_b2PrismaticJoint() 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 ---
ksol = FN_b2StaticBox( kmonde , 320 , 460 , 0.14 , 280 , 20 )
ktapis = FN_b2DynamicBody( kmonde , 2 , 1 , 0 , 10 , -1 , 0 , .1 , 0 )
REM --- Creation d'un lien prismatique ---
kglisiere = FN_b2PrismaticJoint( kmonde , ksol , ktapis , 10 , 2 , 1 , 0 , -60 , 60 )
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.