## 5 Représentations graphiques

Pour obtenir une représentation graphique dans Xcas, il faut saisir une commande dont la sortie est un objet graphique. Pour vous aider à effectuer les représentations graphiques les plus courantes, le menu `Graphic` vous propose des boites de dialogue qui se chargent de créer une ligne de commande et de le valider pour afficher le graphique souhaité.

Si vous souhaitez représenter plusieurs objets graphiques dans une même représentation, vous devez séparer les commandes les créant par un `;`. Vous pouvez aussi créer une figure (menu `Geo`, `Nouvelle figure`) et utiliser le menu `Geo` pour créer des objets géométriques.

Chaque commande graphique crée un objet graphique 2-d ou 3-d, qui est traduit en réponse par une image dans la fenêtre `Xcas`. A droite de cette image, des boutons de zoom `in` et `out` permettent d’agrandir ou de rapetisser la représentation, des flèches permettent de la déplacer.

Les paramètres par défaut (en particulier les intervalles de représentation en abscisse et ordonnée) peuvent être changés dans la fenêtre de configuration graphique accessible depuis le menu `Cfg->Configuration graphique`.

Notez enfin que les objets graphiques 2-d sont aussi affichés dans une fenêtre appelée `DispG` (Display Graphics) que vous pouvez faire apparaître par le menu `Cfg->Montrer->DispG` ou avec la commande `DispG`. La différence est que les graphiques successifs sont tracés individuellement dans chaque fenêtre de réponse, alors qu’ils sont superposés dans la fenêtre `DispG`. Vous pouvez effacer la fenêtre `DispG` par la commande `ClrGraph`.

### 5.1 Tracés de courbes

Pour créer rapidement des tracés de courbes simples, il est conseillé d’utiliser le menu `Graphic`.

L’instruction de tracé d’une courbe représentative de fonction est `plot` avec en paramètres une expression ou une liste d’expressions dont on veut la représentation graphique, puis la variable (éventuellement on indique l’intervalle de valeurs de la variable). Pour distinguer plusieurs courbes, on peut utiliser un troisième argument par exemple `couleur=` suivi de la liste des couleurs à utiliser. Les couleurs peuvent être codées par leur nom français, leur nom anglais ou leur numéro. La fonction `couleur` change la couleur de base pour toutes les fonctions graphiques qui suivent. La fonction `tangent` permet d’obtenir la tangente à une courbe en un point.

    E:=(2*x+1)/(x^2+1);plot(E)
    plot(E,x=-2..2,color=red)
    couleur(vert);plot(E,couleur=rouge);tangent(plot(E),0)
    DispG()
    plot([sin(x),x,x-x^3/6],x=-2..2,couleur=[rouge,bleu,vert])
    erase
    li:=[(x+k*0.5)^2$(k=-5..5)]:;
    plot(li,x=-8..8,couleur=[k$(k=0..10)])

La fonction `plotparam` permet d’effectuer le tracé de (x(t),y(t)). Il faut définir les deux coordonnées comme une seule expression complexe dont x(t) est la partie réelle et y(t) la partie imaginaire. La fonction `plotpolar` trace les courbes en coordonnées polaires. La commande `plotimplicit(f(x,y),x,y)` trace l’ensemble des solutions de f(x,y)=0.

    plotparam(sin(t)^3+i*cos(t)^3,t,0,2*pi)
    plotparam(t^2+i*t^3,t,-1,1)
    plotpolar(1/(1-2sin(t/2)),t,0,4*pi)
    plotpolar(tan(t)+tan(t/2),t,0,2*pi)
    plotimplicit(x^2+4*y^2-4,x,y)

Tracés de courbes
`plot` | graphe d’une expression d’une variable
`plotfunc` | graphe d’une expression d’1 ou 2 variable(s)
`couleur` | choisir la couleur d’un tracé
`tangent` | tangente à une courbe
`plotparam` | courbe paramétrique
`plotpolar` | courbe en polaires
`plotimplicit` | courbe implicite

### 5.2 Objets graphiques 2D

`Xcas` étant aussi un logiciel de géométrie plane, de nombreuses figures peuvent être tracées (dans un écran que l’on obtient avec `Alt+g`) par des commandes du menu `Geo`, par exemple des polygones, des coniques… Les arguments de ces commandes sont souvent des points (commande `point`) qui peuvent en général être saisis directement par leur affixe complexe. Par exemple `cercle(2+3*i,2)` trace le cercle centré au point (2,3), de rayon 2. La commande `legende` permet de placer un texte à un endroit, lui aussi spécifié par un nombre complexe. Les fonctions `polygonplot` et `scatterplot` prennent en entrée une liste d’abscisses et une liste d’ordonnées.

    lx:=[k$(k=1..10)]
    ly:=apply(sin,lx)
    polygonplot(lx,ly)
    erase
    scatterplot(lx,ly)
    polygone_ouvert(lx+i*ly)

Objets graphiques 2D
`legend` | met du texte à partir d’un point donné
`point` | point donné par son affixe ou 2 coordonnées
`segment` | segment donnée par 2 points
`droite` | droite donnée par son équation ou 2 points
`cercle` | cercle donnée par centre et rayon
`inter` | intersection de courbes
`equation` | équation cartésienne
`parameq` | équation paramétrique
`polygonplot` | ligne polygonale
`scatterplot` | nuage de points
`polygone` | polygone fermé
`polygone_ouvert` | polygone ouvert

### 5.3 Objets graphiques 3D

- Pour tracer une surface définie par l’équation z=f(x,y), on utilise la commande `plotfunc`, avec en arguments l’équation de la surface et la liste des deux variables. On peut aussi indiquer la plage de variable, et la discrétisation.

      plotfunc(x^2-y^2,[x,y])
      plotfunc(x+y^2,[x=-5..5,y=-2..2],xstep=0.5,ystep=0.1,
      affichage=vert+rempli)

  On obtient une surface en dimension 3. Pour modifier le point de vue, utilisez la souris en-dehors du cube de visualisation ou cliquez dans la figure 3-d, puis utilisez les touches x,X,y,Y,z,Z (rotations par rapport aux axes), + et - pour les zooms, les flèches de direction et page up/down pour changer la fenêtre de visualisation (la fenêtre de calcul par défaut est définie par la configuration graphique si on ne l’a pas indiquée en paramètre dans `plotfunc`)
- On peut aussi tracer une surface paramétrée avec `plotparam` dont le premier argument est une liste de taille 3 contenant les coordonnées du point et les 2 arguments suivants les paramètres :

      plotparam([u,v,u+v],u=-1..1,v=-2..2)

- Pour tracer des courbes paramétrées dans l’espace, on utilise aussi la commande `plotparam` mais avec un seul paramètre :

      plotparam([u,u^2,u^3],u=-1..1)

- On peut aussi tracer des objets géométriques 3D dans une figure 3-d que l’on obtient avec `Alt+h`, puis en utilisant des commandes du menu `Geo`, par exemple : point, droite ,plan, polygone, sphere…

      plan(z=x+y);
      droite(x=y,z=y);
      A:=point(1,2,3); B:=point(2,-1,1); C:=point(1,0,0);
      plan(A,B,C,couleur=cyan);
      droite(A,B,affichage=line_width_3)

Objets graphiques 3D
`plotfunc` | surface par équation
`plotparam` | surface ou courbe paramétrique
`point` | point donné par 3 coordonnées
`droite` | droite donnée par 2 équations ou 2 points
`plan` | plan donné par 1 équation ou 3 points
`sphere` | sphère donnée par centre et rayon
`cone` | cone donné par centre, axe, angle d’ouverture
`inter` | intersection
`polygone` | polygone
`polygone_ouvert` | polygone ouvert