5. Affichage des résultats

Cette section - qui suit la balise </compute> - est optionnelle et permet de définir les différentes fenêtres graphiques, un ensemble de système d'axes pour chacune d'elle (les fenêtres pouvant alors se diviser horizontalement ou verticalement pour les contenir), ainsi que les courbes qui doivent être respectivement affichées dans chaque système d'axe. Voici la structure de la définition des fenêtres graphiques :

  une fois au plus :
  <display background="white|black|blue">
             -> nom de la couleur de fond des courbes affichées dans
                toutes les fenêtres, un cadre gris entourant les courbes

    une ou plusieurs fois :
    <window dependencies="liste_label_param"
              -> le séparateur de la liste est l'espace ;
                 on indique ainsi que le contenu de cette fenêtre ne dépend
                 que des paramètres listés, ce qui permet de ne pas
                 effectuer de recalculs inutiles
            splitx="1|2|3"
              -> indique que la fenêtre est divisée horizontalement
                 en autant de systèmes d'axes
            splity="1|2|3"
              -> indique que la fenêtre est divisée verticalement
                 en autant de systèmes d'axes
            colormap="gray|hot|copper|cool|bone|jet|red|green|blue"
              -> palette de couleur à utiliser pour la fenêtre
    >

      aucune ou plusieurs fois :
      <title lang="french|english|german|spanish">
        éventuel titre de la fenêtre
      </title>

      une ou plusieurs fois :
      <axis2d |
       axis3d>... balises détaillées dans les paragraphes qui suivent

    </window>

  </display>

5.1. Systèmes d'axes

5.1.1. Balise axis2d

Il s'agit d'un système d'axes 2D contenu dans une fenêtre ou portion de fenêtre, et pour lequel on définit :

  • son type : cartésien ou polaire,

  • le positionnement des axes,

  • éventuellement les extrema des abscisses et des ordonnées qui sont sinon calculés automatiquement,

  • dans le cas où une surface (via une balise drawsurface) est incluse dans le système d'axes 2D, les variations de z sont figurées par des variations de couleurs (les attributs cmin et cmax indiquant alors la plage de variation de z) et une légende correspondante peut être associée,

  • l'identité ou pas des échelles des abscisses et des ordonnées,

  • les courbes qu'il affiche.

      <axis2d type="cartesian|polar"
              position="left|right|center|origin"
                -> - "left" ou "right" : met l'axe des y à gauche ou à droite
                   - "center" : met des axes se croisant toujours au centre
                                de la fenêtre graphique
                   - "origin" : met des axes se croisant si possible en (0,0)
              xmin="x_min" xmax="x_max"
              ymin="y_min" ymax="y_max"
              iso="yes|no"
                -> indique si, quel que soit la taille du système d'axe
                   (via le retaillage de la fenêtre qui le contient),
                   les échelles des abscisses et des ordonnées sont identiques
              cmin="z_min" cmax="z_max"
              colorbar="on|off|top|left|right|bot"
                -> position de l'éventuelle légende "couleur(z)"  
                   ("on" est équivalent à "left")
      >

        une ou plusieurs fois :
        <drawcurve2d |
         drawsurface |
         drawpoints>... cf. § Section 5.2, « Courbes et surfaces »

      </axis2d>

Pour des exemples d'utilisation de la balise axis2d, se référer aux simulations suivantes :

5.1.2. Balise axis3d

Il s'agit d'un système d'axes 3D contenu dans une fenêtre ou portion de fenêtre, et pour lequel on définit :

  • éventuellement les extrema des abscisses, des ordonnées et du z qui sont sinon calculés automatiquement,

  • les valeurs de l'élévation et de l'azimut qu indiquent le point de vue de l'observateur du système d'axes 3D,

  • l'identité ou pas des échelles des abscisses, des ordonnées et du z,

  • les variations de z ou de l'illumination (si mode="light" dans une balise drawsurface incluse) sont figurées par des variations de couleurs (les attributs cmin et cmax indiquant alors la plage de variation de z - le min et le max du z étant utilisés en leur absence - ou de l'illumination) et une légende correspondante peut être associée,

  • les surfaces qu'il affiche.

      <axis3d xmin="x_min" xmax="x_max"
              ymin="y_min" ymax="y_max"
              zmin="z_min" zmax="z_max"
              elevation="élévation de la vue 3D (45 par défaut)" -> en degré
              azimuth="azimut de la vue 3D (-45 par défaut)"    -> en degré
              iso="yes|no"
                -> indique si, quel que soit la taille du système d'axe
                   (via le retaillage de la fenêtre qui le contient),
                   les échelles des x, y et z sont identiques
              cmin="min_z_ou_illumination" cmax="max_z_ou_illumination"
              colorbar="off|top|left|right|bot"
                -> position de l'éventuelle légende
                   "couleur(z ou illumination)"   
      >

        une ou plusieurs fois :
        <drawsurface |
         drawcurve3d>... cf. § Section 5.2, « Courbes et surfaces »

      </axis3d>

Pour un exemple d'utilisation de la balise axis3d, se référer à la simulation via éléments finis de l'équation de Poisson, § Section 2.4, « Affichage des résultats ».

5.2. Courbes et surfaces

5.2.1. Balise drawcurve2d

Il s'agit d'une courbe 2D affichée dans un système d'axes 2D, et pour lequel on définit :

  • la référence au label de la courbe à tracer,

  • les propriétés graphiques du tracé : couleur, type et épaisseur de trait, marqueur éventuel des points de la courbe.

        <drawcurve2d ref="label de la courbe à tracer"
                       -> ce peut être le label d'une des balises suivantes :
                          - <state> d'une <ode>
                          - <unknown> d'une <implicitfunction>
                          - <nonparametriccurve2d>
                          - <parametriccurve2d>
                          - <polyline>
                     color="auto|blue|green|red|cyan|magenta|black|yellow"
                       -> "auto" : les couleurs suivent un cycle d'une courbe
                          à l'autre parmi les courbes du même <axis2d>
                          (il y a deux cycles possibles selon que le background
                           de <window> est plutôt "clair" ou "foncé")
                     linetype="solid|dashed|dashdot|none"
                       -> - "solid" : trait continu
                          - "dashed" : trait pointillé
                          - "dashdot" : alternance de points et de traits
                          - "none" : n'a de sens que si marker est défini :
                                     il y a en effet même dans ce cas une ligne
                                     qui relie les points, sauf si linetype="none"
                     thickness="1|2|3|4|5"  -> épaisseur de trait
                     marker="point|circle|trefoil|plus|star|diamond|
                             filled-diamond|triangle-up|triangle-down"
                       -> point, cercle, trèfle, signe plus, étoile, diamant,
                          diamant plein, triangle pointe en haut,
                          triangle pointe en bas
        />

Pour des exemples d'utilisation de la balise drawcurve2d, se référer aux simulations suivantes :

5.2.2. Balise drawcurve3d

Il s'agit d'une courbe 3D affichée dans un système d'axes 3D, et pour lequel on définit :

  • la référence au label de la courbe à tracer,

  • les propriétés graphiques du tracé : couleur, type et épaisseur de trait, marqueur éventuel des points de la courbe.

        <drawcurve3d ref="label de la courbe à tracer"
                       -> ce peut être le label d'une des balises suivantes :
                          - <state> d'une <ode>
                          - <pdestate> d'une <stationary-pde>
                          - <parametriccurve3d>
                          - <polyline>
                     color="auto|blue|green|red|cyan|magenta|black|yellow"
                       -> "auto" : les couleurs suivent un cycle d'une courbe
                          à l'autre parmi les courbes du même <axis2d>
                          (il y a deux cycles possibles selon que le background
                           de <window> est plutôt "clair" ou "foncé")
                     linetype="solid|dashed|dashdot|none"
                       -> - "solid" : trait continu
                          - "dashed" : trait pointillé
                          - "dashdot" : alternance de points et de traits
                          - "none" : n'a de sens que si marker est défini :
                                     il y a en effet même dans ce cas une ligne
                                     qui relie les points, sauf si linetype="none"
                     thickness="1|2|3|4|5"  -> épaisseur de trait
                     marker="point|circle|trefoil|plus|star|diamond|
                             filled-diamond|triangle-up|triangle-down"
                       -> point, cercle, trèfle, signe plus, étoile, diamant,
                          diamant plein, triangle pointe en haut,
                          triangle pointe en bas
        />

Pour un exemple d'utilisation de la balise drawcurve3d, se référer notamment au fichier Math/helice.xml fourni dans le sous-répertoire examples du répertoire d'installation de XMLlab.

5.2.3. Balise drawsurface

Il s'agit d'une surface affichée dans un système d'axes 2D ou 3D, et pour laquelle on définit :

  • la référence au label de la surface à tracer,

  • les propriétés graphiques du tracé : le mode de représentation de la surface et le type d'ombrage obtenu.

        <drawsurface ref="label de la surface à tracer"
                       -> ce peut être le label d'une des balises suivantes :
                          - <pdestate> d'une <stationary-pde>
                          - <parametriccurve3d>
                          - <nonparametricsurface>
                          - <parametricsurface>
                          - <polyline>
                     mode="level|light|wireframe"
                       -> - level : surface remplie, couleur tendant vers
                                    le noir quand le z diminue,
                          - light : surface remplie, ombre calculée
                                    en fonction d'une source lumineuse,
                          - wireframe : représentation en fil de fer.
                     shading="flat|interp|faceted"
                       -> rendu de l'ombre, seulement pris en compte
                          si mode <> "wireframe" :
                          - flat : unie sur chaque facette,
                          - interp : continue, par interpolation
                                     sur chaque facette,
                          - faceted : flat + fil de fer blanc autour de
                                      chaque facette en superposition
                     hidden="off"  -> pas utilisé actuellement
        />

Pour un exemple d'utilisation de la balise drawsurface, se référer à la simulation via éléments finis de l'équation de Poisson, § Section 2.4, « Affichage des résultats ».

5.2.4. Balise drawpoints

Il s'agit d'une liste de points 2D ou 3D affichés dans un système d'axes 2D ou 3D, chaque point étant figuré par une croix accompagnée de ses coordonnées :

        <drawpoints ref="liste_labels_points"
                      -> liste, séparée par des espaces,
                         des labels des <point> à tracer
        />

En outre, la position de chaque point 2D listé est manipulable dès lors que les contraintes définies sur lui restent respectées : cliquer sur la croix, les coordonnées du point s'affiche alors dans une couleur différente. Déplacer ensuite le curseur pour modifier sa position. Tous les calculs résultant de la modification de ce paramètre sont alors réalisés en temps réel et les courbes en dépendance sont réaffichées. Une fois obtenue la valeur désirée, cliquer à nouveau sur la croix pour fixer sa position.

Pour un exemple d'utilisation de la balise drawpoints, se référer à la simulation du pendule dans le document Prise en main XMLlab.