### 9.3.3 Les paramètres optionnels d’attributs

Les attributs des objets graphiques peuvent aussi se définir à partir de paramètres optionnels. Ils sont de la forme `nom_de_l’attribut=valeur1+valeur2+...`.
Il y a deux sortes de paramètres optionnels :

- les paramètres optionnels globaux sont mis au début d’une ligne de commandes ayant comme dernière instruction une instruction graphique et sont applicables à toutes les instructions graphiques de cette ligne de commandes,
- les paramètres optionnels locaux sont passés en paramètre d’une commande graphique.

La liste des attributs et leurs valeurs possibles sont :

- `display=filled` ou `affichage=rempli` pour dessiner des figures pleines (est utilisé seulement comme attribut local),
- `axes=1` ou `axes=true` et `axes=0` ou `axes= false` montre ou cache les axes. Cela est utilisé seulement comme attribut global et suivi d’une commande graphique,
- `couleur=0`...`couleur=255` ou `color=0`...`color=255` pour dessiner avec la couleur indiquée (est utilisé seulement comme attribut local),
- `couleur=` une valeur entière entr 256 et 256+7*16+14 pour dessiner avec une couleur de l’arc en ciel,
- `epaisseur=1`... `epaisseur=7` ou `thickness=1`... pour faire des traits plus ou moins épais. `epaisseur` est un attribut pour compatibilité `Maple` (est utilisé seulement comme attribut local),
- `nstep=400` permet de spécifier le nombre de points d’échantillonage de la fonction à représenter en 3-d (est utilisé seulement comme attribut local),
- `tstep=0.3` permet de donner le saut d’échantillonnage d’un paramètre de tracé paramétrique en général `t`, par exemple
  `plotparam(sin(3*t)+i*cos(3*t),t=0..2*pi/3,tstep=0.01)` (est utilisé seulement comme attribut local),
- `ustep=0.3` permet de donner le saut d’échantillonnage de la première variable d’un tracé paramétrique 2-d, en général `u`, (est utilisé seulement comme attribut local),
- `vstep=0.3` permet de donner le saut d’échantillonnage de la deuxième variable d’un tracé paramétrique 2-d, en général `v`, (est utilisé seulement comme attribut local),
- `xstep=0.01` permet de donner le saut d’échantillonnage de la variable `x` (est utilisé seulement comme attribut local),
- `ystep=0.01` permet de donner le saut d’échantillonnage de la variable `y` (est utilisé seulement comme attribut local),
- `zstep=0.01` permet de donner le saut d’échantillonnage de la variable `z` (est utilisé seulement comme attribut local),
- `frames=10` or `trames=10` permet de spécifier le nombre de graphes calculés dans une animation de graphe par les commandes `animate` ou `animate3d` (est utilisé seulement comme attribut local),
- `labels=["u","v"]` permet de renommer les axes (est utilisé seulement comme attribut global),
- `legende` ou `legend` (est utilisé comme attribut global ou local ou comme commande) :
  - `legende=["mn","kg"]` (utilisé comme attribut global) permet de mettre comme légende le nom des unités sur les axes, à condition qu’en dehors d’un écran de géométrie, cette commande soit suivie sur la même ligne par une commande graphique. Par exemple :
    `legende=["mn","kg"];point(1+i)`, ou
    `legend=["xunit","yunit","zunit"]; point([1,1,1])`
  - `legende(1+i*sin(1),"sin(1)")` ou
    `legende(point(1+i*sin(1)),"sin(1)")` (utilisé comme commande) ou
    `point(1+i*sin(1),legende="sin(1)")` (utilisé comme attribut local) permet de mettre une légende en un point de l’écran, donné par son affixe. On peut spécifier la couleur ou la position de la légende par rapport au point en mettant d’autres paramètres par exemple :
    `legende(1+i*sin(1),"sin(1)",quadrant4,rouge)`
    (utilisé comme commande) ou
    `point(1+i*sin(1),
    legende="sin(1)",affichage=quadrant4+rouge)`
    (utilisé comme attribut local)
  - `legende([20,60],"graphe")` (utilisé comme commande) permet de mettre une légende en un point de l’écran, donnè par ses coordonnées en pixels ([0,0] se trouve en haut et à gauche de l’écran),
  - `polygone(-1,-i,1,2*i,legende="p")` permet de mettre une légende au milieu du côté reliant le dernier au premier sommet du polygone ici -1,2*i (utilisé comme attribut local),
  - `point([i,1,2,2*i],
    legende="1+i",display=quadrant2+rouge)`
    permet de mettre une légende au milieu du segment 2,2+i,
- `style` n’a qu’une valeur reconnue : `point` (c’est pour la compatibilité `Maple`) et `style=point` (utilisé comme attribut local) permet de dessiner une droite selon des pointillés. Ces pointillés correspondent à `dashdot_line` ou à `ligne_tiret_point`. On a :
  `droite(y=x,style=point,affichage=vert+line_width_2)` est identique à :
  `droite(y=x,affichage=vert+ligne_tiret_point+
  line_width_2)`,
- `titre="..."` ou `title="..."` permet de mettre un titre à la fen‘être graphique (est utilisé seulement comme attribut global).
- `gl_texture=` peut être un attribut local ou global.
  `gl_texture="nom_fichier_image"` permet de mettre une image sur un objet graphique 3-d ou sur un rectangle 2-d si il est utilisé comme attribut local. Par exemple `carre(i,1+i,gl_texture="image.jpg")` dessine l’image contenue dans le fichier `"image.jpg"` dans le carré, et
  `gl_texture=` permet de mettre un fond sur un graphique 2-d si il est utilisé comme attribut global. Par exemple `gl_texture="image.jpg"; carre(i,1+i)` dessine un carré avec comme fond d’écran l’image contenu dans le fichier `"image.jpg"`
- `gl_x_axis_name="xname"`, `gl_y_axis_name="yname"`,
  `gl_z_axis_name=""` : utilisé comme attribut global, définit individuellement les noms des axes x,y,z,
- `gl_x_axis_unit="xunit"`, `gl_y_axis_unit="yunit"`,
  `gl_z_axis_unit="zunit"` : utilisé comme attribut global, définit individuellement les unités des axes x,y,z,
- `gl_x_axis_color=n`, `gl_y_axis_color=n`, `gl_z_axis_color=n` : utilisé comme attribut global, définit individuellement les couleurs des axes x,y,z avec la couleur `n`,
- `gl_x=xmin..xmax`, `gl_y=ymin..ymax`, `gl_z=zmin..zmax`: utilisé comme attribut global, definit la configuration du graphique (pas compatible avec l’interactivité),
- `gl_xtick=`, `gl_ytick=`, `gl_ztick=` : utilisé comme attribut global met des marques sur les axes selon la valeur donnée,
- `gl_shownames=true or false` : utilisé comme attribut global, montre ou cache les noms des objets,
- `gl_rotation=[x,y,z]` : utilisé comme attribut global, definit l’axe de rotation pour les animations des scénes 3-d,
- `gl_quaternion=[x,y,z,t]` : utilisé comme attribut global definit le quaternion pour la visualisation des scénes 3-d (pas compatible avec l’interactivité),
- d’autres options d’ OpenGL pour configurer la lumière existent mais ne sont pas décrites ici.

Remarque
Les options d’opengl sont à utiliser avec une grande prudence car elles ne sont pas compatibles avec l’interactivité.