3. Exemple d'enrichissement de la simulation

Nous allons maintenant faire évoluer la simulation du pendule pour nous permettre de faire varier θ 0 en agissant directement sur le point ( 0, θ 0 ) sur le graphique Scilab.

3.1. Création de l'élément point permettant de régler θ 0

Cet élément remplace l'élément scalar définissant le paramètre theta_0. Il est défini par son abscisse et son ordonnée ainsi que la référence à une courbe à laquelle il est contraint d'appartenir :

  <parameters>
    <section>
      <title>Paramètres du pendule</title>
      ...
      <point label="point0"
             widget="hidden">
        <x1 label="zero">
          <value>0</value>
        </x1>
        <x2 label="theta_0">
          <value>0.1</value>
        </x2>
        <constraints>
          <curve ref="segment" />
        </constraints>
      </point>
      ...

Le point est identifiée par le label point0, son abscisse par le label zero (valeur initiale 0), et son ordonnée par le label theta_0 (valeur initiale 0.1) qui est le paramètre que l'on veut pouvoir régler interactivement. Il ne comporte ici aucune interface de saisie explicite, mais sa représentation graphique est manipulable (cf. Section 3.3, « Ajout de la visualisation de point0 »).

Le point est contraint de rester sur la courbe segment que l'on va maintenant définir.

3.2. Ajout du segment représentant la courbe contraignant point0

Cet élément est ajouté dans la section compute et est défini par les coordonnées de ses deux extrémités :

  <compute>
    ...
    <polyline label="segment">
      <vertex x1="0" x2="0"></vertex>
      <vertex x1="0" x2="3.141"></vertex>
    </polyline>
    ...

L'élément polyline est une courbe multi-ligne définie par l'ensemble des points (éléments vertex) des segments la composant.

On définit ici un seul segment (nommé segment) dont les ordonnées des points le composant représentent donc les valeurs possibles pour le paramètre theta_0. Pour plus d'informations sur l'élément segment, se référer dans le document Manuel de référence du logiciel XMLlab-1.4, au § Balise polyline du chapitre référençant les éléments participant à la description d'une simulation.

3.3. Ajout de la visualisation de point0

Cela consiste en l'ajout d'un élément drawpoints au système d'axe existant :

  <display>
    <window ...>
      <title>Comparaison des deux solutions</title>
      <axis2d ...>
        <drawcurve2d ...
                     ref="theta" ... />
        <drawcurve2d ...
                     ref="thetalin" ... />
        <drawpoints ref="point0" />
      </axis2d>
    </window>
  </display>

L'élément drawpoints est défini par la référence à l'élément point qu'il représente.

3.4. Test de la nouvelle version de la simulation

La figure suivante illustre l'utilisation du point point0 ajouté pour modifier θ 0 :

Figure 3.5. Modification interactive du paramètre θ 0

Modification interactive du paramètre θ 0

Le point est représenté par une croix située en haut de l'axe des ordonnées. Pour modifier le paramètre theta_0, cliquer sur la croix, les coordonnées de point0 (dont l'ordonnée est theta_0) s'affiche alors. Déplacer ensuite le curseur au-dessus ou au-dessous de la croix, suivant qu'il s'agit d'augmenter ou de diminuer theta_0 (les courbes sont recalculées en temps réel). Une fois obtenue la valeur désirée, cliquer à nouveau sur la croix pour fixer la valeur de theta_0.