Outils du site


script:compas

Le compas

Cette page présente toutes les possibilités d'actions du compas dans un script Instrumenpoche. Ce sont les nœuds XML de la forme :

<action objet="compas" mouvement="..." ... />

Déplacement, apparition

Afficher/masquer

Comme tous les instruments, le compas peut être masqué avec :

<action objet="compas" mouvement="masquer" />

Il est montré avec :

<action objet="compas" mouvement="montrer" />

Il est possible de faire apparaître le compas à un autre endroit de la scène que celui qui est prévu par défaut en précisant les coordonnées de cet endroit, par exemple :

<action objet="compas" mouvement="montrer" abscisse="200" ordonnee="350" />

Les coordonnées du compas sont celles de l'extrémité de sa pointe.

Translation

Le compas peut être déplacé jusqu'à un point en utilisant :

<action objet="compas" mouvement="translation" abscisse="200" ordonnee="350" />

Un attribut vitesse peut être précisé, il donne le nombre de pixels de déplacement du compas par dixième de seconde. La valeur par défaut est 8.

<action objet="compas" mouvement="translation" abscisse="200" ordonnee="350" vitesse="10" />

Si un point d'Instrumenpoche a été créé auparavant, on peut déplacer le compas jusqu'à ce point en utilisant l'attibut “cible” :

<action ordonnee="392.05" abscisse="113.45" couleur="noir" id="1" mouvement="creer" objet="point" />
<action mouvement="montrer" objet="compas" />
<action cible="1" mouvement="translation" objet="compas" />

Retourner

Par défaut, le compas s'ouvre vers la droite. On peut le “retourner” (lui faire subir une symétrie axiale) pour qu'il s'ouvre vers la gauche par :

<action mouvement="retourner" objet="compas" />

Si on “retourne” deux fois le compas, il retrouve sa configuration initiale.

Rotation

Le compas peut pivoter autour le l'extrémité de sa pointe. Dans ce cas, l'attribut mouvement doit prendre la valeur “rotation” et doit être accompagné de l'attribut angle, et éventuellement de sens.

angle précise l'angle, mesuré en degrés, que formera le compas à la fin de la rotation avec la verticale, contrairement aux autres instruments pour lesquels l'angle est mesuré par rapport à l'horizontale. Cet angle est celui qui est formé par une demi-droite verticale tournée vers le haut et la bissectrice de l'angle formée par les deux branches du compas. Il faut se souvenir que, dans Instrumenpoche, le sens positif est celui des aiguilles d'une montre. Ainsi, sur la figure ci-dessous, le compas a été pivoté de 60°.

sens précise à la fois le sens de rotation et sa vitesse : si sens est positif, le compas tourne dans le sens des aiguilles d'une montre, et dans l'autre sens si sens est négatif. La valeur absolue de sens donne la vitesse de rotation, en degrés par dixième de seconde. Par défaut, sens est égal à 5.

Le code ci-dessous montre le compas et le fait pivoter pour qu'il se trouve à l'horizontale, sa “tête” tournée vers la droite.

<?xml version="1.0" encoding="UTF-8"?>
<INSTRUMENPOCHE version="2">
<action mouvement="montrer" objet="compas" />
<action sens="5" angle="90" mouvement="rotation" objet="compas" />
</INSTRUMENPOCHE>

Si un point a déjà été créé, on peut faire en sorte d'aligner la pointe et la mine du compas avec ce point, en utilisant l'attribut cible :

Exemple

<?xml version="1.0" encoding="UTF-8"?>
<INSTRUMENPOCHE version="2">
<action mouvement="montrer" objet="compas" />
<action ordonnee="333.7" abscisse="333.7" couleur="noir" id="1" mouvement="creer" objet="point" />
<action cible="1" mouvement="rotation" objet="compas" />
</INSTRUMENPOCHE>

Écartement

L'écartement du compas est modifié en utilisant mouvement=“ecarter” et en ajoutant un attribut ecart dont la valeur sera la distance voulue entre la pointe et la mine du compas, exprimée en pixels.

Par exemple, pour obtenir un écart de 6 cm (en considérant qu'un cm mesure trente pixels) :

<action ecart="180" mouvement="ecarter" objet="compas" />

Si ecart n'est pas un nombre compris entre 0 et 410, Instrumenpoche ignore ce mouvement.

Avec un point déjà créé, on peut utiliser l'attribut cible pour faire en sorte que l'écart entre la point et la mine soit égal à la distance entre la pointe du compas et le point. Cela ne règle que la distance, si on veut que la mine se déplace, il faut également régler la rotation.

Exemple

<?xml version="1.0" encoding="UTF-8"?>
<INSTRUMENPOCHE version="2">
<action mouvement="montrer" objet="compas" />
<action ordonnee="333.7" abscisse="333.7" couleur="noir" 
        id="1" mouvement="creer" objet="point" />
<action cible="1" mouvement="rotation" objet="compas" />
<action cible="1" mouvement="ecarter" objet="compas" />
</INSTRUMENPOCHE>

Tracé

Le compas admet deux positions : l'une où il est “levé” (en position de tracer) l'autre où “couché” (position normale, pour le déplacement). Elles sont données ci-dessous avec le script qui permet de les obtenir.

Compas couché Compas levé, en train de tracer
<action mouvement="coucher" objet="compas" />
<action mouvement="lever" objet="compas" />

Un nœud permettant de tracer au compas doit préciser :

  • l'attribut mouvement égal à “tracer” ;
  • un attribut debut et un attribut fin qui donnent respectivement les angles que forment le début et la fin du tracé de l'arc de cercle tracé par rapport à l'horizontale ; on peut ici donner différentes mesures, par exemple, ajouter 360 à fin fera en sorte que le compas fasse un tour supplémentaire ;
  • un attribut sens semblable à celui donné pour une rotation ; cependant ici, sens ne donne que la vitesse angulaire de rotation en valeur absolue, pas le sens de rotation : le tracé se fait toujours de debut jusqu'à fin ;
  • éventuellement, comme toutes les actions de tracé, les paramètres du trait : couleur et epaisseur.

Exemples

<?xml version="1.0" encoding="UTF-8"?>
<INSTRUMENPOCHE version="2">
<action mouvement="montrer" objet="compas" />
<action ecart="200" mouvement="ecarter" objet="compas" />
<action mouvement="lever" objet="compas" />
<action sens="5" angle="-33.28" mouvement="rotation" objet="compas" />
<action couleur="noir" epaisseur="1" sens="-5" 
    debut="0" fin="-90" id="1" mouvement="tracer" objet="compas" />
<action mouvement="coucher" objet="compas" />
</INSTRUMENPOCHE>

va donner :

Si on inverse debut et fin, l'arc de cercle tracé est le même, mais le compas se trouve, à la fin de l'animation, avec un angle de rotation égal à fin :

<?xml version="1.0" encoding="UTF-8"?>
<INSTRUMENPOCHE version="2">
<action mouvement="montrer" objet="compas" />
<action ecart="200" mouvement="ecarter" objet="compas" />
<action mouvement="lever" objet="compas" />
<action sens="5" angle="-33.28" mouvement="rotation" objet="compas" />
<action couleur="noir" epaisseur="1" sens="-5" 
       fin="0" debut="-90" id="1" mouvement="tracer" objet="compas" />
<action mouvement="coucher" objet="compas" />
</INSTRUMENPOCHE>

d'où la figure finale suivante :

Voir aussi

  • compas pour voir comment manipuler le compas avec la souris.
  • La classe CompasIep présente les données à connaître pour programmer le compas depuis une autre application.
script/compas.txt · Dernière modification : 29/04/2011 15:40 de lzamo