--- /dev/null
+<h1 id="fonctions-et-macros-graphiques">Fonctions et macros graphiques</h1>
+<p>Ces fonctions et macros créent un élément graphique au moment de leur évaluation et renvoient un résultat égal à <em>Nil</em>, elles ne sont utilisables <strong>que lors de la création d’un élément graphique "Utilisateur"</strong><sup><a href="#fn1" class="footnoteRef" id="fnref1">1</a></sup>.</p>
+<p>Elles peuvent être utilisées dans des macros, mais elles ne seront évaluées que si ces macros sont exécutées lors de la création d’un élément graphique "Utilisateur".</p>
+<h2 id="fonctions-graphiques-prédéfinies">Fonctions graphiques prédéfinies</h3>
+<p>Notations:</p>
+<p><argument>: signifie que l’argument est <strong>obligatoire</strong>.</p>
+<p>[, argument]: signifie que l’argument est <strong>facultatif</strong>.</p>
+<h3 id="Axes">Axes</h3>
+<ul>
+<li><p><b>Axes( <origine>, <graduationX + i*graduationY> [, position label origine] )</b>.</p></li>
+<li><p><u>Description</u> : dessine les axes, <<em>origine</em>> est l’affixe du point d’intersection des axes, <<em>graduationX</em>> est le pas pour les graduations sur l’axe Ox, et <<em>graduationY</em>> celui de l’axe Oy, une graduation égale à zéro signifie l’absence de graduation. La longueur des graduations est dans la variable globale <span style="color:red">xyticks</span> que l’on peut modifier, la distance des labels à l’extrêmité des graduations est dans la variable <span style="color:red">xylabelsep</span> qui peut également être modifiée.</p>
+<p>Le troisième paramètre est facultatif, il permet de préciser la position des labels de l’origine (à l’intersection des axes), c’est un complexe: <span class="math"><em>a</em> + <em>i</em><em>b</em></span>, la partie réelle concerne l’abscisse de l’origine et l’autre concerne l’ordonnée. Ces deux nombres peuvent prendre trois valeurs:</p>
+<ul>
+<li><p><span class="math">0</span>: le label n’apparaît pas,</p></li>
+<li><p><span class="math">1</span>: le label est affiché comme celui des autres graduations,</p></li>
+<li><p><span class="math">2</span>: le label est décalé pour ne pas chevaucher l’autre axe (valeur par défaut).</p></li>
+</ul></li>
+<li><p>On peut modifier dans les <em>Attributs</em>: le style de ligne, l’épaisseur, la couleur et la taille des labels.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,4,-5,5),Marges(0.5,0,0,0.5), size(7.5), Width:=2, Color:=lightgray, Grille(-5-5*i,(1+i)/2), Width:=4, Color:=gray, Grille(-5-5*i,(1+i)), Color:=black, Arrows:=1, Axes(-5-5*i,1+i,1+i),Arrows:=0, LabelAxe(x,-pi-5*i,"<span class="math"> - π</span>",2-i,1), LabelAxe(x,pi-5*i,"<span class="math">π</span>",2+i,1), SaveAttr(), FillStyle:=full, FillColor:=lightblue, FillOpacity:=0.5, domaine2(3*sin(x)^3, -5,-pi,pi), RestoreAttr(), Color:=red, Arrows:=0, Width:=8, Cartesienne( 3*sin(x)^3 )</p>
+</blockquote>
+</blockquote>
+<h3 id="poly-bezier">(Poly-)Bezier</h3>
+<ul>
+<li><p><b>Bezier( <liste de points> )</b>.</p></li>
+<li><p><u>Description</u> : dessine une succession de courbes de {Bezier} (avec éventuellement des segments de droite). Il y a plusieurs possibilités pour la liste de points:</p>
+<ol>
+<li><p>une liste de trois points <span class="math">[<em>A</em>, <em>C</em>, <em>B</em>]</span>, il s’agit alors d’une courbe de Bezier d’origine <<em>A</em>> et d’extrémité <<em>B</em>> avec un point de contrôle <<em>C</em>>, c’est la courbe paramétrée par:</p>
+<p><br /><span class="math">(1 - <em>t</em>)<sup>2</sup><em>A</em> + 2<em>t</em>(1 - <em>t</em>)<em>C</em> + <em>t</em><sup>2</sup><em>B</em></span><br /></p></li>
+<li><p>une liste de 4 points ou plus: [A1, C1, C2, A2, C3, C4, A3...]: il s’agit alors d’une succession de courbes de Bezier à 2 points de contrôles, la première va de A1 à A2, elle est contrôlée par C1, C2 (paramétrée par <span class="math">(1 - <em>t</em>)<sup>3</sup><em>t</em><em>A</em>1 + 3(1 - <em>t</em>)<sup>2</sup><em>t</em><em>C</em>1] + 3(1 - <em>t</em>)<em>t</em><sup>2</sup><em>C</em>2 + <em>t</em><sup>3</sup><em>A</em>2</span>), la deuxième va de A2 à A3 et est contrôlée par C3,C4 ...etc. Une exception toutefois, on peut remplacer les deux points de contrôle par la constante <em>jump</em>, dans ce cas on saute directement de A1 à A2 en traçant un segment de droite.</p></li>
+</ol></li>
+<li><p>Le nombre de points calculés (par courbe) est modifiable dans les <em>Attributs</em> (variable <span style="color:red">NbPoints</span>).</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-4,4,-4,5),Marges(0,0,0,0), size(7.5), Width:=8, A:=-3+4*i, B:=3+i, C:=3-3*i, D:=-3-3*i, C1:=4.5*i,C2:=-2*i, C3:=2-i, C4:=-2, FillStyle:=full, FillColor:=lightblue,Color:=red, Bezier(A,C1,C2,B,jump,C,C3,C4,D,jump,A), FillStyle:=none, DotStyle:=cross, DotScale:=2,Color:=black, LabelDot(A,"<span class="math"><em>A</em></span>","N",1), LabelDot(B,"<span class="math"><em>B</em></span>","E",1), LabelDot(C,"<span class="math"><em>C</em></span>","SE",1), LabelDot(D,"<span class="math"><em>D</em></span>","SO",1), LabelDot(C1,"<span class="math"><em>C</em><sub>1</sub></span>","E",1), LabelDot(C2,"<span class="math"><em>C</em><sub>2</sub></span>","SO",1), LabelDot(C3,"<span class="math"><em>C</em><sub>3</sub></span>","N",1), LabelDot(C4,"<span class="math"><em>C</em><sub>4</sub></span>","N",1), LineStyle:=userdash, DashPattern:=[5,2,0.5,2], Width:=6, LineCap:=round, Ligne([A,C1,C2,B,jump,C,C3,C4,D],0)</p>
+</blockquote>
+</blockquote>
+<h3 id="Cartesienne">Cartesienne</h3>
+<ul>
+<li><p><b>Cartesienne( <f(x)> [, n, 1] )</b>.</p></li>
+<li><p><u>Description</u> : trace la courbe cartésienne d’équation <span class="math"><em>y</em> = <em>f</em>(<em>x</em>)</span>. Le paramètre optionnel <<em>n</em>> est un entier (égal à 5 par défaut) qui permet de faire varier le pas de la manière suivante: lorsque la distance entre deux points consécutifs est supérieur à un certain seuil alors on calcule un point intermédiaire [par dichotomie], ceci peut être répété n fois. Si au bout de n itérations la distance entre deux points consécutifs est toujours supérieure au seuil, et si la valeur optionnelle <span class="math">1</span> est présente, alors une discontinuité (<em>jump</em>) est insérée dans la liste des points.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-2,2,-0.1,2),Marges(0.5,0.5,0.5,0.5), size(7.5), tMin:=-2, tMax:=2, Color:=darkgray, Width:=8, LineStyle:=dotted, Grille(0,0.5*(1+i)), Color:=black, LineStyle:=solid,Axes(0,1+i,1), NbPoints:=100, Width:=8, Color:=darkseagreen, Cartesienne(x*Ent(1/x),5,1)</p>
+</blockquote>
+</blockquote>
+<h3 id="Courbe">Courbe</h3>
+<ul>
+<li><p><b>Courbe( <f(t)> [, n, 1] )</b>.</p></li>
+<li><p><u>Description</u> : trace la courbe paramétrée par <<em>f(t)</em>> où <span class="math"><em>f</em></span> est à valeurs complexes.</p>
+<p>Le paramètre optionnel <<em>n</em>> est un entier (égal à 5 par défaut) qui permet de faire varier le pas de la manière suivante: lorsque la distance entre deux points consécutifs est supérieur à un certain seuil alors on calcule un point intermédiaire (par dichotomie), ceci peut être répété <span class="math"><em>n</em></span> fois. Si au bout de <span class="math"><em>n</em></span> itérations la distance entre deux points consécutifs est toujours supérieure au seuil, et si la valeur optionnelle <span class="math">1</span> est présente, alors une discontinuité (<em>jump</em>) est insérée dans la liste des points.</p></li>
+</ul>
+<h3 id="Droite">Droite</h3>
+<ul>
+<li><p><b>Droite( <A>, <B> [, C] )</b>.</p></li>
+<li><p><u>Description</u> : trace la droite <span class="math">(<em>A</em><em>B</em>)</span> lorsque le troisième argument <<em>C</em>> est omis, sinon c’est la droite d’équation cartésienne <<em>A</em>>x+<<em>B</em>>y=<<em>C</em>>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-5,5),Marges(0,0,0,0), size(7.5), F:=sqrt(7), F’:=-F, {foyers} Width:=1, Color:=darkgray, for t from -pi to pi step 0.1 do M:=4*cos(t)+3*i*sin(t), Vn:=(M-F)/abs(M-F)+(M-F’)/abs(M-F’), Droite(M,M+Vn),{normale à l’ellipse} od, Width:=8, Color:=red, Ellipse(0,4,3), LabelDot(F,"<span class="math"><em>F</em></span>","S",1), LabelDot(F’,"<span class="math"><em>F</em>ʹ</span>","S",1)</p>
+</blockquote>
+</blockquote>
+<h3 id="Ellipse">Ellipse</h3>
+<ul>
+<li><p><b>Ellipse( <A>, <Rx>, <Ry> [, inclinaison] )</b>.</p></li>
+<li><p><u>Description</u> : trace une ellipse de centre <<em>A</em>> de rayons <<em>Rx</em>> et <<em>Ry</em>> sur les axes respectifs <span class="math"><em>O</em><em>x</em></span> et <span class="math"><em>O</em><em>y</em></span>. Le dernier paramètre <<em>inclinaison</em>> est un angle en degrés (nul par défaut) qui indique l’inclinaison de l’ellipse par rapport à l’horizontale.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5.25,5.25,-5.25,5.25), Marges(0,0,0,0), size(7.5), background(full,blue), Width:=4, Color:=white, inclin:=[0,35,-35], for z in inclin do Ellipse(0,5,2,z) od, Width:=2*mm, Ellipse(0,1.5,4.5), Label(-0.1, "{6cm} {3.5cm} {R T F}")</p>
+</blockquote>
+</blockquote>
+<h3 id="EllipticArc">EllipticArc</h3>
+<ul>
+<li><p><b>EllipticArc( <B>, <A>, <C>, <Rx>, <Ry> [, sens] )</b>.</p></li>
+<li><p><u>Description</u> : trace un arc d’ellipse dont les axes sont <span class="math"><em>O</em><em>x</em></span> et <span class="math"><em>O</em><em>y</em></span> et le centre <<em>A</em>>, le rayon sur <span class="math"><em>O</em><em>x</em></span> est <<em>Rx</em>>, et celui sur <span class="math"><em>O</em><em>y</em></span> est <<em>Ry</em>>. L’arc est tracé partant de la droite <span class="math">(<em>A</em><em>B</em>)</span> jusqu’à la droite <span class="math">(<em>A</em><em>C</em>)</span>, l’argument facultatif <<em>sens</em>> indique: le sens trigonométrique si sa valeur est <span class="math">1</span> (valeur par défaut), le sens contraire si sa valeur est <span class="math"> - 1</span>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-2.25,3.75,-2,5),Marges(0,0,0,0),size(7.5), A:=0, B:=3+i, C:=2+4*i, DotScale:=2, Width:=8, Ligne([B,A,C],0), Color:=red, LabelDot(A,"<span class="math"><em>A</em></span>","S",1), LabelDot(B,"<span class="math"><em>B</em></span>","N",1), LabelDot(C,"<span class="math"><em>C</em></span>","SE",1), Arrows:=1, Color:=blue, EllipticArc(B,A,C,2,1,-1), EllipticArc(B,A,C,2,3,1)</p>
+</blockquote>
+</blockquote>
+<p>Remarque: pour un arc de cercle, il suffit de prendre <<em>Rx</em>> et <<em>Ry</em>> égaux. Mais le plus simple est d’utiliser la macro <a href="#Arc">Arc</a> qui remplace la commande <strong>Arc</strong> de l’ancienne version.</p>
+<h3 id="EquaDif">EquaDif</h3>
+<ul>
+<li><p><b>EquaDif( <f(t,x,y)>, <t0>, <x0 + i*y0> [, mode] )</b>.</p></li>
+<li><p><u>Description</u> : trace une solution approchée de l’équation différentielle: <span class="math"><em>x</em>ʹ(<em>t</em>) + <em>i</em><em>y</em>ʹ(<em>t</em>) = <em>f</em>(<em>t</em>, <em>x</em>, <em>y</em>)</span> avec la condition initiale <span class="math"><em>x</em>(<em>t</em>0) = <em>x</em>0</span> et <span class="math"><em>y</em>(<em>t</em>0) = <em>y</em>0</span>. Le dernier paramètre est facultatif et peut valoir 0, 1 ou 2:</p>
+<ul>
+<li><p><<em>mode</em>>=0: la courbe représente les points de coordonnées <span class="math">(<em>x</em>(<em>t</em>), <em>y</em>(<em>t</em>))</span>, c’est la valeur par défaut.</p></li>
+<li><p><<em>mode</em>>=1: la courbe représente les points de coordonnées <span class="math">(<em>t</em>, <em>x</em>(<em>t</em>))</span>.</p></li>
+<li><p><<em>mode</em>>=2: la courbe représente les points de coordonnées <span class="math">(<em>t</em>, <em>y</em>(<em>t</em>))</span>.</p></li>
+</ul>
+<p>C’est la méthode de {Runge-Kutta} d’ordre 4 qui est utilisée.</p></li>
+<li><p><u>Exemple(s)</u> : l’équation <span class="math"><em>x</em>ʹʹ - <em>x</em>ʹ - <em>t</em><em>x</em> = sin(<em>t</em>)</span> avec la condition initiale <span class="math"><em>x</em>(0) =  - 1</span> et <span class="math"><em>x</em>ʹ(0) = 1 / 2</span>, se met sous la forme: <br /><span class="math">$\begin{pmatrix}
+X'\\Y'\end{pmatrix}=\begin{pmatrix} 0&1\\t&1\end{pmatrix}\begin{pmatrix}X\\Y\end{pmatrix}+
+\begin{pmatrix}0\\\sin(t)\end{pmatrix}$</span><br /> en posant <span class="math"><em>X</em> = <em>x</em></span> et <span class="math"><em>Y</em> = <em>x</em>ʹ</span>:</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-10.5,2.5,-1.5,4.5),Marges(0,0,0,0), size(7.5,0), Arrows:=1, Width:=4, Axes(0,1+i), Arrows:=0, LabelAxe(y,4.25*i,"<span class="math"><em>x</em></span>"), LabelAxe(x,2,"<span class="math"><em>t</em></span>",2), Width:=8, Color:=red, tMin:=-10, tMax:=2, EquaDif(y+i*(t*x+y+sin(t)),0,-1+i/2, 1), Color:=black, LabelStyle:=stacked, Label(-6+2*i, "<span class="math"><em>x</em>ʹʹ - <em>t</em><em>x</em>ʹ - <em>x</em> = sin(<em>t</em>)</span><br /> avec <span class="math"><em>x</em>(0) =  - 1</span> et <span class="math">$x'(0)=\frac12$</span>")</p>
+</blockquote>
+</blockquote>
+<h3 id="Grille">Grille</h3>
+<ul>
+<li><p><b>Grille( <origine>, <graduationX + i*graduationY> )</b>.</p></li>
+<li><p><u>Description</u> : dessine une grille, <<em>origine</em>> est l’affixe du point considéré comme origine, <<em>graduationX</em>> est le pas des graduations sur l’axe Ox, et <<em>graduationY</em>> celui de l’axe Oy, une graduation égale à zéro signifie l’absence de graduation.</p></li>
+<li><p>On peut modifier dans les <em>Attributs</em> le style de ligne, l’épaisseur et la couleur. La grille de ne fait pas appraître de graduations, on peut dessiner des axes par dessus.</p></li>
+</ul>
+<h3 id="Implicit">Implicit</h3>
+<ul>
+<li><p><b>Implicit( <f(x,y)> [, n, m] )</b>.</p></li>
+<li><p><u>Description</u> : trace la courbe implicite d’équation <span class="math"><em>f</em>(<em>x</em>, <em>y</em>) = 0</span>. L’intervalle des abscisses est subdivisé en <<em>n</em>> parties et l’intervalle des ordonnées en <<em>m</em>> parties, par défaut <span class="math"><em>n</em> = <em>m</em> = 25</span>. Sur chaque pavé ainsi obtenu on teste s’il y a un changement de signe, auquel cas on applique une dichotomie sur les bords du pavé.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-5,5),Marges(0,0,0,0), size(7.5), Arrows:=1, Width:=4, Axes(0,1+i), Arrows:=0, Width:=8, Color:=red, Implicit( sin(x*y) )</p>
+</blockquote>
+</blockquote>
+<h3 id="Label">Label</h3>
+<ul>
+<li><p><b>Label( <affixe1>, <texte1>,..., <affixeN>, <texteN> )</b>.</p></li>
+<li><p><u>Description</u> : place la chaîne de caractères <<em>texte1</em>> à la position <<em>affixe1</em>> ... etc. Les paramètres <<em>texte1</em>>,..., <<em>texteN</em>> sont donc interprétés comme des <a href="#chaine">chaînes de caractères</a>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-5,5),Marges(0,0,0,0), size(7.5,0), C:=Cube(Origin, M(3,3,0)), S:=Sommets(C), Point3D(S), DrawPoly(C,0), k:=0, for Z in S by 2 do Inc(k,1), Label(Proj3D(Z)+ if k>4 then 0.5*i else -0.5*i fi, ["<span class="math">$S_",k,"$</span>"]) od</p>
+</blockquote>
+</blockquote>
+<h3 id="Ligne">Ligne</h3>
+<ul>
+<li><p><b>Ligne( <liste>, <fermée> [, rayon] )</b>.</p></li>
+<li><p><u>Description</u> : trace la ligne polygonale définie par la liste, si le paramètre <<em>fermée</em>> vaut 1, la ligne polygonale sera fermée, si sa valeur est 0 la ligne est ouverte. Si l’argument <<em>rayon</em>> est précisé (0 par défaut), alors les "angles" de la ligne polygonale sont arrondis avec un arc de cercle dont le rayon correspond à l’argument <<em>rayon</em>>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>Marges(0,0,0,0), size(7.5), A:=-5-5*i, B:=5*i, C:=5-5*i,niv:=6, Tr:=[A,B,C,jump], {initial} for k from 1 to niv do Tr:=[hom(Tr,A,0.5),hom(Tr,B,0.5), hom(Tr,C,0.5)] od, FillStyle:=full,FillColor:=blue, Ligne(Tr,1)</p>
+</blockquote>
+</blockquote>
+<h3 id="Path">Path</h3>
+<ul>
+<li><p><b>Path( <liste> [, fermé (0/1)]</b></p></li>
+<li><p><u>Description</u> : trace le chemin représenté par <<em>liste</em>> et ferme la dernière composante de celui-ci si l’argument optionnel vaut <span class="math">1</span> (sa valeur par défaut est <span class="math">0</span>). La liste est une succession de points (affixes) et d’instructions indiquant à quoi correspondent ces points, ces instructions sont:</p>
+<ul>
+<li><p><strong>line</strong>: relie les points par une ligne polygonale,</p></li>
+<li><p><strong>linearc</strong>: relie les points par une ligne polygonale mais les angles sont arrondis par un arc de cercle, la valeur précédent la commande linearc est interprétée comme le rayon de ces arcs.</p></li>
+<li><p><strong>arc</strong>: dessine un arc de cercle, ce qui nécessite quatre arguments: 3 points et le rayon, plus éventuellement un cinquième argument: le sens (+/- 1), le sens par défaut est 1 (sens trigonométrique).</p></li>
+<li><p><strong>ellipticArc</strong>: dessine un arc d’ellipse, ce qui nécessite cinq arguments: 3 points, le rayonX, le rayonY, plus éventuellement un sixième argument: le sens (+/- 1), le sens par défaut est 1 (sens trigonométrique), plus éventuellement un septième argument: l’inclinaison en degrés du grand axe par rapport à l’horizontale.</p></li>
+<li><p><strong>curve</strong>: relie les points par une spline cubique naturelle.</p></li>
+<li><p><strong>bezier</strong>: relie le premier et le quatrième point par une courbe de bézier (les deuxième et troisième points sont les points de contrôle).</p></li>
+<li><p><strong>circle</strong>: desine un cercle, ce qui necessite deux arguments: un point et le centre, ou bien trois arguments qui sont trois points du cercle.</p></li>
+<li><p><strong>ellipse</strong>: dessine une ellipse, les arguments sont: un point, le centre, rayon rX, rayon rY, inclinaison du grand axe en degrés par rapport à l’horizontale (facultatif).</p></li>
+<li><p><strong>move</strong>: indique un déplacement sans tracé.</p></li>
+<li><p><strong>closepath</strong>: ferme la composante en cours.</p></li>
+</ul>
+<p>Par convention, le premier point du tronçon numéro n+1 est le dernier point du tronçon numéro n.</p></li>
+<li><p><u>Exemple(s)</u> : </p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-4,6),Marges(0,0,0,0),size(7.5), Axes(2*i,1+i),Eofill:=1, FillStyle:=full,FillOpacity:=0.9, FillColor:= blue, Width:=8, Path([-4,i,circle, -3+2*i,move,-3,-2,line, 0,2,2,-1,arc, 3,3+3*i,0.5,linearc, 1,-1+5*i,-3+2*i,bezier, closepath, ])</p>
+</blockquote>
+</blockquote>
+<h3 id="Point">Point</h3>
+<ul>
+<li><p><b>Point( <A1>, ..., <An> )</b>.</p></li>
+<li><p><u>Description</u> : représente le nuage de points <<em>A1</em>> ... <<em>An</em>>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(2.75,4,0,1), Marges(0.75,0.5,0.5,0.5),size(7.5), Axes(Xmin+i*Ymin,0.25+0.2*i,1+i), pas:=0.001, Color:=red, DotScale:=0.1, Point( for r from Xmin to Xmax step pas do u:=0.5, for k from 1 to 25 do u:=r*u*(1-u) od, for k from 1 to 25 do u:=r*u*(1-u), r+i*u od od)</p>
+</blockquote>
+</blockquote>
+<h3 id="Polaire">Polaire</h3>
+<ul>
+<li><p><b>Polaire( <r(t)> [, n, 0/1] )</b>.</p></li>
+<li><p><u>Description</u> : trace la courbe polaire d’équation <span class="math">ρ = <em>r</em>(<em>t</em>)</span>, <<em>expression</em>>. Le paramètre optionnel <<em>n</em>> est un entier (égal à 5 par défaut) qui permet de faire varier le pas de la manière suivante: lorsque la distance entre deux points consécutifs est supérieur à un certain seuil alors on calcule un point intermédiaire (par dichotomie), ceci peut être répété <span class="math"><em>n</em></span> fois. Si au bout de <span class="math"><em>n</em></span> itérations la distance entre deux points consécutifs est toujours supérieure au seuil, et si la valeur optionnelle <span class="math">1</span> est présente, alors une discontinuité (<em>jump</em>) est insérée dans la liste des points.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-3,2,-2,3),Marges(0.25,0.25,0.25,0.25), size(7.5),Width:=4, Axes(0,1+i),NbPoints:=250,tMin:=-25,tMax:=25, courbe:=Get(Polaire((t+1)/(t-1))), ptDoubles:= courbe InterL courbe, Width:=8, Color:= blue, Ligne(courbe,0), DotStyle:=dotcircle, DotScale:=2, Point(ptDoubles), Label(1+2*i,"<span class="math">$r(t)=\dfrac{t+1}{t-1}$</span>")</p>
+</blockquote>
+</blockquote>
+<h3 id="Spline">Spline</h3>
+<ul>
+<li><p><b>Spline( <V0>, <A0>,..., <An>, <Vn> )</b>.</p></li>
+<li><p><u>Description</u> : trace la spline cubique passant par les points <<em>A0</em>> jusqu’à <<em>An</em>>. <<em>V0</em>> et <<em>Vn</em>> désignent les vecteurs vitesses aux extrémités [contraintes], si l’un d’eux est nul alors l’extrémité correspondante est considérée comme libre (sans contrainte).</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-5,5),Marges(0.25,0.25,0.25,0.25), size(7.5),Width:=4,Axes(0,1+i), A:= -4-3*i, B:=-2+2*i, C:=1-3*i, D:=4+3*i, LabelDot(A,"<span class="math"><em>A</em></span>","S",1),LabelDot(B,"<span class="math"><em>B</em></span>","N",1), LabelDot(C,"<span class="math"><em>C</em></span>","S",1),LabelDot(D,"<span class="math"><em>D</em></span>","O",1), Width:=8,Color:=red, Spline(0,A,B,C,D,0), Ligne([-4.5+4.5*i,-4+4.5*i],0), LabelStyle:=left, Label(-3.5+4.5*i,"libre"), Color:=blue,Spline(5,A,B,C,D,5*i), Ligne([-4.5+3.5*i,-4+3.5*i],0), Label(-3.5+3.5*i,"contrainte"), Width:=4, Arrows:=1, Ligne([A,A+2,jump,D,D+2*i],0)</p>
+</blockquote>
+</blockquote>
+<h2 id="commandes-de-dessin-bitmap">Commandes de dessin bitmap</h3>
+<p>La version propose quelques commandes de base pour faire du dessin bitmap. Ce dessin bitmap peut être enregistré (au format <em>bmp</em>) mais il n’est pas pris en compte par les autres exports du logiciel. Ces commandes ne sont fonctionnelles qu’avec la version GUI de TeXgraph. Chaque pixel est repéré son affixe <span class="math"><em>x</em> + <em>i</em><em>y</em></span> où <span class="math"><em>x</em></span> et <span class="math"><em>y</em></span> sont deux entiers, l’origine est en haut à gauche de la zone de dessin <strong>marges exclues</strong>, l’axe <span class="math"><em>O</em><em>x</em></span> est dirigé vers la droite et l’axe <span class="math"><em>O</em><em>y</em></span> vers le bas.</p>
+<h3 id="DelBitmap">DelBitmap</h3>
+<ul>
+<li><p><b>DelBitmap()</b>.</p></li>
+<li><p><u>Description</u> : détruit le bitmap en cours.</p></li>
+</ul>
+<h3 id="MaxPixels">MaxPixels</h3>
+<ul>
+<li><p><b>MaxPixels()</b>.</p></li>
+<li><p><u>Description</u> : renvoie la taille de la zone graphique en pixels sous la forme: <span style="font-style:italic">maxX+i*maxY</span>, ainsi pour les coordonnées des pixels (coordonnées entières), l’intervalle des abscisses est <span style="font-style:italic">[0 .. maxX]</span> et celui des ordonnées <span style="font-style:italic">[0 .. maxY]</span>. Chaque pixel est repéré par des coordonnées entières, donc chaque pixel a une affixe <span class="math"><em>a</em> + <em>i</em><em>b</em></span> avec <span class="math"><em>a</em></span> dans <span style="font-style:italic">[0 .. maxX]</span> et <span class="math"><em>b</em></span> dans <span style="font-style:italic">[0 .. maxY]</span>. L’origine étant le coin supérieur gauche de la zone graphique <strong>marges exclues</strong>.</p></li>
+</ul>
+<h3 id="NewBitmap">NewBitmap</h3>
+<ul>
+<li><p><b>NewBitmap( [fond] )</b>.</p></li>
+<li><p><u>Description</u> : permet de créer un nouveau bitmap (vide). Par défaut la couleur du fond est le blanc.</p></li>
+</ul>
+<h3 id="Pixel">Pixel</h3>
+<ul>
+<li><p><b>Pixel( <liste> )</b>.</p></li>
+<li><p><u>Description</u> : permet de d’allumer une <<em>liste</em>> de pixels. Cette liste est de la forme: <span style="font-style:italic">[affixe, couleur, affixe, couleur, ...]</span>. Les affixes des pixels sont de la forme <span class="math"><em>a</em> + <em>i</em><em>b</em></span> avec <span class="math"><em>a</em></span> et <span class="math"><em>b</em></span> des entiers positifs ou nuls, l’origine étant le coin supérieur gauche de la zone graphique <strong>marges exclues</strong>.</p></li>
+</ul>
+<h3 id="Pixel2Scr">Pixel2Scr</h3>
+<ul>
+<li><p><b>Pixel2Scr( <affixe> )</b>.</p></li>
+<li><p><u>Description</u> : permet de convertir l’<<em>affixe</em>> d’un pixel (coordonnées entières) en affixe dans le repère de l’utilisateur à l’écran.</p></li>
+</ul>
+<h3 id="Scr2Pixel">Scr2Pixel</h3>
+<ul>
+<li><p><b>Scr2Pixel( <affixe> )</b>.</p></li>
+<li><p><u>Description</u> : permet de convertir l’<<em>affixe</em>> d’un point dans le repère de l’utilisateur à l’écran en coordonnées entières (affixe du pixel correspondant au point).</p></li>
+<li><p><u>Exemple(s)</u> : un ensemble de Julia, la commande est à placer dans un élément graphique utilisateur. L’image <em>png</em> a été obtenue à partir du bouton <em>snapshot</em> de l’interface graphique en prenant l’export <em>bmp</em> puis une conversion en <em>png</em>:</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-1.5,1.5,-1,1),Marges(0,0,0,0),size(7.5), NewBitmap(), T:=100, m:=MaxPixels(), c:=-0.181-0.667*i, for x from 0 to Re(m) do Pixel( for y from 0 to Im(m) do N:=0, z:=Pixel2Scr(x+i*y), repeat z:=z^2+c, Inc(N,1) until (N=T) Or (abs(z)>2) od, x+i*y, MixColor(darkred,1-N/T,yellow,N/T) od ) od</p>
+</blockquote>
+</blockquote>
+<h2 id="macros-graphiques-de-texgraph.mac">Macros graphiques de TeXgraph.mac</h3>
+<h3 id="angleD">angleD</h3>
+<ul>
+<li><p><b>angleD( <B>, <A>, <C>, <r> )</b>.</p></li>
+<li><p><u>Description</u> : dessine l’angle <span class="math">$\widehat{BAC}$</span> avec un parallèlogramme de coté r.</p></li>
+</ul>
+<h3 id="Arc">Arc</h3>
+<ul>
+<li><p><b>Arc( <B>, <A>, <C>, <R> [, sens] )</b>.</p></li>
+<li><p><u>Description</u> : trace un arc de cercle de centre <<em>A</em>> et de rayon <<em>R</em>>. L’arc est tracé partant de la droite <span class="math">(<em>A</em><em>B</em>)</span> jusqu’à la droite <span class="math">(<em>A</em><em>C</em>)</span>, l’argument facultatif <<em>sens</em>> indique: le sens trigonométrique si sa valeur est <span class="math">1</span> (valeur par défaut), le sens contraire si valeur est <span class="math"> - 1</span>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-2.25,3.75,-2,5),Marges(0,0,0,0),size(7.5), A:=0, B:=3+i, C:=2+4*i, DotScale:=2, Width:=8, Ligne([B,A,C],0), Color:=red, LabelDot(A,"<span class="math"><em>A</em></span>","S",1), LabelDot(B,"<span class="math"><em>B</em></span>","N",1), LabelDot(C,"<span class="math"><em>C</em></span>","SE",1), Arrows:=1, Color:=blue, Arc(B,A,C,1,-1), Arc(B,A,C,2,1)</p>
+</blockquote>
+</blockquote>
+<h3 id="arcBezier">arcBezier</h3>
+<ul>
+<li><p><b>arcBezier( <B>, <A>, <C>, <r> [,sens] )</b>.</p></li>
+<li><p><u>Description</u> : a le même effet que la macro graphique <span style="font-style:italic">Arc</span> mais l’arc est dessiné avec des courbes de Bezier.</p></li>
+</ul>
+<h3 id="axes-1">axes</h3>
+<ul>
+<li><p><b>axes( <[origine, etendueX, etendueY]>, <gradX+i*gradY> [, subdivX+i*subdivY, posOriginX+i*posOriginY, num, "texte", den, firstnum] )</b>.</p></li>
+<li><p><u>Description</u> : pour tracer et graduer les axes passant par <<em>origine</em>> (affixe), elle s’utilise comme la commande <a href="#Axes">Axes</a> et utilise donc les variables <em>xylabelpos</em> et <em>xyticks</em>. Par défaut les axes occupent toute la fenêtre si les paramètres optionnels <<em>etendueX</em>> et <<em>etendueY</em>> sont omis. Le paramètre <<em>etendueX</em>> représente sous forme complexe l’intervalle des abcisses: <code>xmin+i*xmax</code>, de même pour les ordonnées avec le paramètre <<em>etendueY</em>>, les axes sont alors limités à ces intervalles. Remarque: pour préciser une valeur de <<em>etendueY</em>> sans préciser de valeur pour <<em>etendueX</em>>, il suffit de mettre <em>jump</em> à la place de <<em>etendueX</em>> (et non pas <em>Nil</em>!).</p></li>
+<li><p>Le paramètre optionnel <<em>subdivX+i*subdivY</em>> indique le nombre de subdivisions par unité sur chaque axe (0 par défaut).</p></li>
+<li><p>Le paramètre optionnel <<em>posOriginX+i*posOriginY</em>> permet de positionner le label de l’origine:</p>
+<ul>
+<li><p><<em>posOriginX</em>>=0: pas de label à l’origine (idem pour <<em>posOriginY</em>>=0),</p></li>
+<li><p><<em>posOriginX</em>>=1: label normal à l’origine (idem pour <<em>posOriginY</em>>=1),,</p></li>
+<li><p><<em>posOriginX</em>>=2: label décalé à droite de l’origine et en haut pour <<em>posOriginY</em>>=2 (valeurs par défaut),</p></li>
+<li><p><<em>posOriginX</em>>=-2 label décalé à gauche de l’origine et en bas pour <<em>posOriginY</em>>=-2.</p></li>
+</ul></li>
+<li><p>Sur les 2 axes, chaque label est multiplié par la fraction <<em>num/den</em>> (1 par défaut), ajouté à <<em>firstnum/den</em>> (l’origine par défaut) et accompagné du <<em>"texte"</em>> au numérateur. Pour que le séparateur décimal soit la virgule à la place du point, il suffit de mettre la variable <span style="font-style:italic;color:red">usecomma</span> à la valeur <span class="math">1</span>. Cette macro est également sensible aux variables <span style="font-style:italic;color:red">dollar</span> (pour ajouter ou non des $ autour des labels des graduations), et <span style="font-style:italic;color:red">nbdeci</span> qui fixe le nombre de décimales affichées.</p></li>
+<li><p><u>Exemple(s)</u> : pour avoir des axes gradués en <span class="math">π / 2</span> en <span class="math">π / 2</span>: <span style="color:red">axes(0, pi*(1+i)/2, 1+i, 2+2*i, 1, "\pi", 2, 0)</span>. Contrairement à la commande Axes, cette macro est sensible aux modifications de la matrice courante.</p></li>
+</ul>
+<h3 id="axeX">axeX</h3>
+<ul>
+<li><p><b>axeX( <[origine, posOrigine, etendue]>, <Xpas> [, Subdiv, labelPos , num, ""texte"", den, firstnum] )</b>.</p></li>
+<li><p><u>Description</u> : pour tracer et graduer un axe des abscisses passant par <<em>origine</em>> et avec un pas de <<em>Xpas</em>>. Le paramètre <<em>etendue</em>> représente sous forme complexe l’intervalle des abscisses <span style="font-style:italic">xmin+i*xmax</span>, si celui-ci est omis, alors le tracé occupe la fenêtre. Remarque: pour préciser une valeur de <<em>etendue</em>> sans préciser de valeur pour <<em>posOrigine</em>>, il suffit de mettre <em>jump</em> à la place de <<em>posOrigine</em>> (et non pas <em>Nil</em>!).</p></li>
+<li><p><<em>Subdiv</em>> est le nombre de subdivisions par unité, chaque abscisse est multipliée par la fraction <<em>num/den</em>> (1 par défaut), ajoutée à <<em>firstnum/den</em>> (l’origine par défaut) et accompagnée du <<em>"texte"</em>> au numérateur. Pour que le séparateur décimal soit la virgule à la place du point, il suffit de mettre la variable <span style="font-style:italic;color:red">usecomma</span> à la valeur <span class="math">1</span>. Cette macro est également sensible aux variables <span style="font-style:italic;color:red">dollar</span> (pour ajouter ou non des $ autour des labels des graduations), et <span style="font-style:italic;color:red">nbdeci</span> qui fixe le nombre de décimales affichées.</p></li>
+<li><p>Les paramètres optionnels <<em>posOrigine</em>> et <<em>labelpos</em>> permettent de positionner les labels:</p>
+<ul>
+<li><p><<em>posOrigine</em>>=0: pas de label à l’origine,</p></li>
+<li><p><<em>posOrigine</em>>=1: label normal à l’origine,</p></li>
+<li><p><<em>posOrigine</em>>=2: label décalé à droite à l’origine (valeur par défaut),</p></li>
+<li><p><<em>posOrigine</em>>=-2 label décalé à gauche à l’origine,</p></li>
+<li><p><<em>labelPos</em>>=0 : pas de label du tout,</p></li>
+<li><p><<em>Re(labelpos)</em>>=top: labels au-dessus,</p></li>
+<li><p>Re(<<em>labelPos</em>>)=bottom : labels en-dessous (valeur par défaut),</p></li>
+<li><p>Im(<<em>Im(labelPos</em>>)=1: labels orthogonaux à l’axe.</p></li>
+</ul></li>
+</ul>
+<h3 id="axeY">axeY</h3>
+<ul>
+<li><p><b>axeY(<[origine, posOrigine, etendue]>, <Ypas> [, Subdiv, labelPos , num, ""texte"", den, firstnum] )</b>.</p></li>
+<li><p><u>Description</u> : pour tracer et graduer un axe des abscisses passant par <<em>origine</em>> et avec un pas de <<em>Ypas</em>>. Le paramètre <<em>etendue</em>> représente sous forme complexe l’intervalle des ordonnées <span style="font-style:italic">ymin+i*ymax</span>, si celui-ci est omis, alors le tracé occupe la fenêtre. Remarque: pour préciser une valeur de <<em>etendue</em>> sans préciser de valeur pour <<em>posOrigine</em>>, il suffit de mettre <em>jump</em> à la place de <<em>posOrigine</em>> (et non pas <em>Nil</em>!).</p></li>
+<li><p><<em>Subdiv</em>> est le nombre de subdivisions par unité, chaque ordonnée est multipliée par la fraction <<em>num/den</em>> (1 par défaut), ajoutée à <<em>firstnum/den</em>> (l’origine par défaut) et accompagnée du <<em>"texte"</em>> au numérateur. Pour que le séparateur décimal soit la virgule à la place du point, il suffit de mettre la variable <span style="font-style:italic;color:red">usecomma</span> à la valeur <span class="math">1</span>. Cette macro est également sensible aux variables <span style="font-style:italic;color:red">dollar</span> (pour ajouter ou non des $ autour des labels des graduations), et <span style="font-style:italic;color:red">nbdeci</span> qui fixe le nombre de décimales affichées.</p></li>
+<li><p>Les paramètres optionnels <<em>posOrigine</em>> et <<em>labelpos</em>> permettent de positionner les labels:</p>
+<ul>
+<li><p><<em>posOrigine</em>>=0: pas de label à l’origine,</p></li>
+<li><p><<em>posOrigine</em>>=1: label normal à l’origine,</p></li>
+<li><p><<em>posOrigine</em>>=2: label décalé vers le haut à l’origine (valeur par défaut),</p></li>
+<li><p><<em>posOrigine</em>>=-2 label décalé vers le bas à l’origine,</p></li>
+<li><p><<em>labelPos</em>>=0 : pas de label du tout,</p></li>
+<li><p><<em>Re(labelpos)</em>>=left: labels à gauche de l’axe (valeur par défaut),</p></li>
+<li><p>Re(<<em>labelPos</em>>=right : labels à droite de l’axe,</p></li>
+<li><p>Im(<<em>labelPos</em>>)=1: labels orthogonaux à l’axe.</p></li>
+</ul></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-5,5),size(7.5), LabelSize:=footnotesize, //graphique du haut SaveWin(), view(-5,5,0.25,5),Width:=6, Arrows:=1, SetMatrix([2.5*i,2/pi,2*i]), axeX(0,pi/2,Nil,Nil,1,"",2), axeY(0,1), Arrows:=0, Color:=red, Width:=8, tMin:=-2*pi, tMax:=2*pi, Cartesienne(sin(x)), Label(pi*1.65+i,"<span class="math"><em>f</em>(<em>x</em>) = sin(<em>x</em>)</span>"),RestoreWin(), //graphique du bas SaveWin(), Color:=black, view(-5,5,-5,-0.25), SetMatrix([-5.5*i,2,i]), Width:=6, Arrows:=1, usecomma:=1, axeX([i,0],0.5), axeY([i,0],1,Nil,Nil,1,"a"), Arrows:=0, Color:=blue, Width:=8, Cartesienne(x^2+1), Label(1+4.75*i,"<span class="math"><em>g</em>(<em>x</em>) = <em>x</em><sup>2</sup> + <em>a</em></span>"), RestoreWin()</p>
+</blockquote>
+</blockquote>
+<h3 id="background">background</h3>
+<ul>
+<li><p><b>background( <fillstyle>, <fillcolor> )</b>.</p></li>
+<li><p><u>Description</u> : permet de remplir le fond de la fenêtre graphique avec le style et la couleur demandée. Cette macro met à jour la variable <span style="font-style:italic;color:red">backcolor</span>.</p></li>
+</ul>
+<h3 id="bbox">bbox</h3>
+<ul>
+<li><p><b>bbox()</b>.</p></li>
+<li><p><u>Description</u> : permet d’ajuster la fenêtre à la "bounding box" autour du dessin courant. Cette macro est destinée à être utilisée dans la ligne de commande en bas de la fenêtre principale, et non pas dans un élément graphique.</p></li>
+</ul>
+<h3 id="centerView">centerView</h3>
+<ul>
+<li><p><b>centerView( <affixe> )</b>.</p></li>
+<li><p><u>Description</u> : permet de centrer la fenêtre graphique sur le point représenté par <<em>affixe</em>>, sans changer les dimensions courantes du graphique. Cette macro est plutôt destinée à être utilisée dans la ligne de commande en bas de la fenêtre principale.</p></li>
+</ul>
+<h3 id="Cercle">Cercle</h3>
+<ul>
+<li><p><b>Cercle( <A>, <r> [, B] )</b>.</p></li>
+<li><p><u>Description</u> : trace un cercle de centre <<em>A</em>> et de rayon <<em>r</em>> lorsque le troisième paramètre est omis, sinon c’est le cercle défini par les trois points <<em>A</em>>, <<em>r</em>> et <<em>B</em>>.</p>
+<p>Pour les macros <span style="font-style:italic">Arc</span> et <span style="font-style:italic">Cercle</span>, on peut s’attendre à des surprises dans le résultat final si le repère n’est pas orthonormé! Le repère est orthonormé lorsque les variables <span style="font-style:italic;color:red">Xscale</span> et <span style="font-style:italic;color:red">Yscale</span> sont égales, voir option <a href="#param">Paramètres/Fenêtre</a>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-1,3),Marges(0,0,0,0), size(7.5), Seg(-5,5), for t in [-4,-1.85,0,1.85,3] do M:=t-sin(t)+i*(1-cos(t)), I:=t+i, DotStyle:=cross, Point(I), DotStyle:=bigdot, Point(M), Cercle(I,1), Seg(M,I), Arrows:=1, Arc(M,I,t,0.5,t), Arrows:=0, LineStyle:=dashed, Seg(I,t), LineStyle:=solid od, Width:=8,Color:=red, Courbe( t-sin(t)+i*(1-cos(t)))</p>
+</blockquote>
+</blockquote>
+<h3 id="Clip">Clip</h3>
+<ul>
+<li><p><b>Clip( <liste> )</b>.</p></li>
+<li><p><u>Description</u> : permet de clipper les éléments graphiques déjà dessinés avec la <<em>liste</em>> qui doit être une courbe fermée et simple. La macro peint l’extérieur de la courbe représentée par la <<em>liste</em>>.</p></li>
+</ul>
+<h3 id="Dbissec">Dbissec</h3>
+<ul>
+<li><p><b>Dbissec( <B>, <A>, <C>, <1 ou 2> )</b>.</p></li>
+<li><p><u>Description</u> : dessine la bissectrice de l’angle <span class="math">$\widehat{BAC}$</span>, intérieure si le dernier paramètre vaut <span class="math">1</span> et extérieure pour la valeur <span class="math">2</span>.</p></li>
+</ul>
+<h3 id="Dcarre">Dcarre</h3>
+<ul>
+<li><p><b>Dcarre( <A>, <B>, <+/-1> [, rayon] )</b>.</p></li>
+<li><p><u>Description</u> : dessine de carré de sommets consécutifs <<em>A</em>> et <<em>B</em>> dans le sens direct si le troisième paramètre vaut <span class="math">1</span> (indirect pour <span class="math"> - 1</span>). Si le paramètre <<em>rayon</em>> est présent, alors les øg coins de la figure seront arrondis par un arc de cercle ayant le rayon mentionné.</p></li>
+</ul>
+<h3 id="Ddroite">Ddroite</h3>
+<ul>
+<li><p><b>Ddroite( <A>, <B> )</b>.</p></li>
+<li><p><u>Description</u> : dessine la demi-droite <span class="math">[<em>A</em>, <em>B</em>)</span>.</p></li>
+</ul>
+<h3 id="Dmed">Dmed</h3>
+<ul>
+<li><p><b>Dmed( <A>, <B> [, angle droit(0/1)] )</b>.</p></li>
+<li><p><u>Description</u> : dessine la médiatrice du segment <span class="math">[<em>A</em>, <em>B</em>]</span>. Si le troisième paramètre vaut <span class="math">1</span> (<span class="math">0</span> par défaut) alors un angle droit est dessiné.</p></li>
+</ul>
+<h3 id="domaine1">domaine1</h3>
+<ul>
+<li><p><b>domaine1( <f(x)> [, a, b] )</b>.</p></li>
+<li><p><u>Description</u> : dessine la partie du plan comprise entre la courbe Cf, l’axe <span class="math"><em>O</em><em>x</em></span> et les droites <span class="math"><em>x</em> = <em>a</em></span>, <span class="math"><em>x</em> = <em>b</em></span> si a et b sont précisés, sinon <span class="math"><em>x</em> = </span><span style="font-style:italic">tMin</span> et <span class="math"><em>x</em> = </span><span style="font-style:italic">tMax</span>.</p></li>
+</ul>
+<h3 id="domaine2">domaine2</h3>
+<ul>
+<li><p><b>domaine2( <f(x)>, <g(x)> [, a, b] )</b>.</p></li>
+<li><p><u>Description</u> : dessine la partie du plan comprise entre les courbes Cf, Cg et les droites <span class="math"><em>x</em> = <em>a</em></span>, <span class="math"><em>x</em> = <em>b</em></span> si a et b sont précisés, sinon <span class="math"><em>x</em> = </span><span style="font-style:italic">tMin</span> et <span class="math"><em>x</em> = </span><span style="font-style:italic">tMax</span>.</p></li>
+</ul>
+<h3 id="domaine3">domaine3</h3>
+<ul>
+<li><p><b>domaine3( <f(x)>, <g(x)> )</b>.</p></li>
+<li><p><u>Description</u> : délimite la partie du plan comprise entre les courbes Cf et Cg avec <span class="math"><em>x</em></span> dans l’intervalle <span style="font-style:italic">[tMin,tMax]</span>, en recherchant les points d’intersection.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-4,5),size(7.5),tMin:=-5, Axes(-5,1+i,2+2*i), tMax:=-1, Cartesienne(sin(x)), tMax:=5, Cartesienne(2*cos(x)),tMin:=-3,tMax:=3, Cartesienne(x^2), A:=-4.5+(Ymin+1.75)*i, FillStyle:=full, FillOpacity:=0.5,FillColor:=green, LabelStyle:=left, LabelSize:=footnotesize, Dcarre(A+0.25*(-1+i), A+0.25*(1+i), -1), Label(A+0.4,"domaine2 sur <span class="math">[ - 4 ;   - 1. 5]</span> "), Inc(A,-0.75*i), FillColor:=blue, Dcarre(A+0.25*(-1+i), A+0.25*(1+i),-1), Label(A+0.4,"domaine3 entre <span class="math">2cos(<em>x</em>)</span> et <span class="math"><em>x</em><sup>2</sup></span> "), Inc(A,-0.75*i), FillColor:=red, Dcarre(A+0.25*(-1+i), A+0.25*(1+i),-1), Label(A+0.4,"domaine1 sur <span class="math">[1. 1 ;  4]</span>"), FillColor:=red, domaine1(2*cos(x), 1.1, 4), FillColor:=green, domaine2(2*cos(x), sin(x),-4,-1.5), FillColor:=blue, domaine3(2*cos(x),x^2), Arrows:=2, tangente(2*cos(x),0.5,1.5)</p>
+</blockquote>
+</blockquote>
+<h3 id="Dparallel">Dparallel</h3>
+<ul>
+<li><p><b>Dparallel( <[A, B]> , <C> )</b>.</p></li>
+<li><p><u>Description</u> : dessine la parallèle à la droite <<em>[A,B]</em>> passant par <<em>C</em>>.</p></li>
+</ul>
+<h3 id="Dparallelo">Dparallelo</h3>
+<ul>
+<li><p><b>Dparallelo( <A>, <B> , <C> [, rayon] )</b>.</p></li>
+<li><p><u>Description</u> : dessine le parallèlogramme de sommets consécutifs <<em>A</em>>, <<em>B</em>> et <<em>C</em>>. Si le paramètre <<em>rayon</em>> est présent, alors les øg coins de la figure seront arrondis par un arc de cercle ayant le rayon mentionné.</p></li>
+</ul>
+<h3 id="Dperp">Dperp</h3>
+<ul>
+<li><p><b>Dperp( <[A, B]> , <C> [, angle droit(0/1)] )</b>.</p></li>
+<li><p><u>Description</u> : dessine la perpendiculaire à la droite <<em>[A,B]</em>> passant par <<em>C</em>>. Si le troisième paramètre vaut <span class="math">1</span> (<span class="math">0</span> par défaut) alors un angle droit est dessiné.</p></li>
+</ul>
+<h3 id="Dpolyreg">Dpolyreg</h3>
+<ul>
+<li><p><b>Dpolyreg( <centre> , <sommet>, <nombre de côtés> [, rayon] )</b>.</p></li>
+<li><p><u>Description</u> : dessine le polygône régulier défini par le <<em>centre</em>>, un <<em>sommet</em>> et le <<em>nb de côtés</em>>. Si le paramètre <<em>rayon</em>> est présent, alors les øg coins de la figure seront arrondis par un arc de cercle ayant le rayon mentionné.</p></li>
+</ul>
+<p><div style="text-align:center">ou</div></p>
+<ul>
+<li><p><b>Dpolyreg( <sommet1>, <sommet2>, <nombre de cotés +sens*i> [, rayon] )</b>.</p></li>
+<li><p><u>Description</u> : dessine le polygône régulier défini par deux sommets consécutifs <<em>sommet1</em>> et <<em>sommet2</em>>, le <<em>nb de côtés</em>>, et le <<em>sens</em>> (<span class="math">1</span> pour direct et <span class="math"> - 1</span> pour indirect). Si le paramètre <<em>rayon</em>> est présent, alors les øg coins de la figure seront arrondis par un arc de cercle ayant le rayon mentionné.</p></li>
+</ul>
+<h3 id="DpqGoneReg">DpqGoneReg</h3>
+<ul>
+<li><p><b>DpqGoneReg( <centre> , <sommet>, <[p,q]> )</b>.</p></li>
+<li><p><u>Description</u> : dessine le <<em>p/q</em>>-gône régulier défini par le <<em>centre</em>> et un <<em>sommet</em>>.</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-6,6),Marges(0,0,0,0),size(7.5), FillStyle:=full, FillColor:=lightpink, Color:=blue, Width:=8, DpqGoneReg(-2.5+2.5*i,-2.5+0.25*i, [7,3]), Label(-2.5+5*i,"[7,3]"), DpqGoneReg(2.5+2.5*i,2.5+0.25*i, [7,2]), Label(2.5+5*i,"[7,2]"), DpqGoneReg(-2.5-2.5*i,-2.5-0.25*i, [7,1]), Label(-2.5-5*i,"[7,1]"), DpqGoneReg(2.5-2.5*i,2.5-0.25*i, [6,2]), Label(2.5-5*i,"[6,2]")</p>
+</blockquote>
+</blockquote>
+<h3 id="drawSet">drawSet</h3>
+<ul>
+<li><p><b>drawSet( <ensemble> )</b>.</p></li>
+<li><p><u>Description</u> : dessine un ensemble produit par les macros <a href="#capB">capB</a>, <a href="#cupB">cupB</a> ou <a href="#setminusB">setminusB</a>.</p></li>
+</ul>
+<h3 id="Drectangle">Drectangle</h3>
+<ul>
+<li><p><b>Drectangle( <A>, <B> , <C> [, rayon] )</b>.</p></li>
+<li><p><u>Description</u> : dessine le rectangle de sommets consécutifs <<em>A</em>>, <<em>B</em>>, le côté opposé passant par <<em>C</em>>. Si le paramètre <<em>rayon</em>> est présent, alors les øg coins de la figure seront arrondis par un arc de cercle ayant le rayon mentionné.</p></li>
+</ul>
+<h3 id="ellipticarc-1">ellipticArc</h3>
+<ul>
+<li><p><b>ellipticArc( <B>, <A>, <C>, <RX>, <RY>, <sens(+/-1)> [, inclinaison] )</b>.</p></li>
+<li><p><u>Description</u> : dessine un arc d’ellipse de centre <<em>A</em>>, allant de <<em>B</em>> à <<em>C</em>> de rayons <<em>RX</em>> et <<em>RY</em>>, l’axe portant le rayon <<em>RX</em>> ayant une certaine <<em>inclinaison</em>> par rapport à l’horizontale, celle-ci est en degrés et vaut 0 par défaut, le paramètre <<em>sens</em>> indique le sens de rotation, 1 pour le sens trigonométrique.</p></li>
+</ul>
+<h3 id="flecher">flecher</h3>
+<ul>
+<li><p><b>flecher( <liste>, <pos1, ..., posN> )</b>.</p></li>
+<li><p><u>Description</u> : dessine des flèches le long de la ligne polygonale <<em>liste</em>>, la position de chaque flèche (pos1, ...) est un nombre entre <span class="math">0</span> et <span class="math">1</span> (<span class="math">0</span> pour début de la ligne et <span class="math">1</span> pour fin de ligne), les flèches sont dessinées dans le sens de parcourt de la ligne, pour inverser une flèche on ajoute +i à la position.</p></li>
+<li><p><u>Exemple(s)</u> : <span style="color:red">flecher(Get(Cercle(0,3)), [0,0.5] )</span></p></li>
+</ul>
+<h3 id="GradDroite">GradDroite</h3>
+<ul>
+<li><p><b>GradDroite( <[A, origine + i*posOrigine, etendue]>, <[u, unit]>, <hautDiv>, <subdiv> [, poslab, orientation, num, ""texte"", den, firstnum] )</b></p></li>
+<li><p><u>Description</u> : gradue la droite passant par <<em>A</em>> et dirigée par le vecteur <<em>u</em>> (celui-ci n’est pas forcément unitaire), <<em>hautdiv</em>> est la hauteur des graduations en cm, <<em>subdiv</em>> est le nombre de subdivisions par unité.</p>
+<p>Paramètres optionnels:</p>
+<ul>
+<li><p><<em>origin</em>>: indique la graduation de l’origine <<em>A</em>> (0 par défaut),</p></li>
+<li><p><<em>posOrigin</em>>: indique la position du label à l’origine <<em>A</em>>, plusieurs cas:</p>
+<ul>
+<li><p><<em>posOrigin</em>>=0: pas de label à l’origine,</p></li>
+<li><p><<em>posOrigin</em>>=1: label normal à l’origine (comme les autres)</p></li>
+<li><p><<em>posOrigin</em>>=2: label à l’origine décalé dans le sens du vecteur <<em>u</em>> (valeur par défaut),</p></li>
+<li><p><<em>posOrigin</em>>=-2: label à l’origine décalé dans le sens opposé du vecteur <<em>u</em>>.</p></li>
+</ul></li>
+<li><p><<em>etendue</em>>: représente l’intervalle des graduations sous forme complexe: <span style="font-style:italic">min+i*max</span>, le tracé de l’axe sera limité à cet intervalle. Si ce paramètre est omis, le tracé occupera la fenêtre.</p></li>
+<li><p><<em>unit</em>>: indique le pas des graduations sur l’axe (1 par défaut), cette valeur doit être positive.</p></li>
+<li><p><<em>poslab</em>> indique la position des labels par rapport à l’axe, ce paramètre prend les valeurs <span style="color:red">top</span> ou <span style="color:red">bottom</span>,</p></li>
+<li><p><<em>orientation</em>>: orientation des labels, la valeur <span class="math"><em>i</em></span> signifie que les labels sont orthogonaux à l’axe, sinon l’orientation représente le <span style="font-style:italic;color:red">LabelStyle</span> (left, right, top, ...),</p></li>
+<li><p>chaque graduation est multipliée par la fraction <<em>num/den</em>> (1 par défaut), ajoutée à <<em>firstnum/den</em>> (l’origine par défaut) et accompagnée du <<em>"texte"</em>> au numérateur. Pour avoir une virgule comme spérateur décimal au lieu du point, il faut mettre la variable <span style="font-style:italic;color:red">usecomma</span> à la valeur <span class="math">1</span>. Cette macro est également sensible aux variables <span style="font-style:italic;color:red">dollar</span> (pour ajouter ou non des $ autour des labels des graduations), et <span style="font-style:italic;color:red">nbdeci</span> qui fixe le nombre de décimales affichées. Le nombre maximal de graduations est fixé par la variable <span style="font-style:italic;color:red">maxGrad</span> qui vaut <span class="math">100</span> par défaut.</p></li>
+</ul></li>
+<li><p><u>Exemple(s)</u> : <span style="color:red">GradDroite([0,1+2*i],[1,0.5], xyticks, 1, bottom, i)</span>: signifie que la graduation de l’origine sera 1 avec un label décalé à droite, les graduations iront de 0.5 en 0.5, les labels seront sous l’axe et orthogonaux à l’axe.</p></li>
+</ul>
+<h3 id="LabelArc">LabelArc</h3>
+<ul>
+<li><p><b>LabelArc( <B>, <A>, <C>, <R>, <sens>, <"texte">, [, options] )</b>.</p></li>
+<li><p><u>Description</u> : cette macro dessine un arc de cercle de centre <<em>A</em>>, de rayon <<em>R</em>> partant de la droite <span class="math">(<em>A</em><em>B</em>)</span> jusqu’à la droite <span class="math">(<em>A</em><em>C</em>)</span>, l’argument facultatif <<em>sens</em>> indique: le sens trigonométrique si sa valeur est 1 (valeur par défaut), le sens contraire si valeur est -1. La macro ajoute également le <<em>"texte"</em>>. Le paramètre <<em>options</em>> est une liste (facultative) de la forme <span style="font-style:italic">[ option1:= valeur1, ..., optionN:=valeurN ]</span>, les options sont:</p>
+<ul>
+<li><p><span style="color:blue">labelpos := < inside/outside ></span>: positionnement du label (outside par defaut)),</p></li>
+<li><p><span style="color:blue">labelsep := < distance en cm ></span>: distance du label à l’arc (0.25cm par défaut).</p></li>
+<li><p><span style="color:blue">rotation := < nombre ></span>: angle en degrés que fait le label par rapport à l’horizontale (<span class="math">0</span> par défaut).</p></li>
+</ul>
+<p>Il est possible dans la liste des options, de modifier des attributs comme <span style="font-style:italic;color:red">Color</span> par exemple.</p></li>
+</ul>
+<h3 id="LabelAxe">LabelAxe</h3>
+<ul>
+<li><p><b>LabelAxe( <x ou y>, <affixe>, <label> [, [labelPos,décalage en cm], mark(0/1)] )</b>.</p></li>
+<li><p><u>Description</u> : permet d’ajouter un label sur un des axes <<em>x ou y</em>>, <<em>affixe</em>> désigne l’affixe du point où se fait l’ajout, <<em>label</em>> contient le texte à ajouter. Paramètres optionnels, <<em>[labelPos, décalage en cm]</em>> et <<em>mark</em>>:</p>
+<ul>
+<li><p>Re(<<em>labelpos</em>>)=1 signifie en dessous pour Ox et à droite pour Oy (par défaut pour Ox),</p></li>
+<li><p>Re(<<em>labelpos</em>>)=2 signifie au dessus pour Ox et à gauche pour Oy (par défaut pour Oy),</p></li>
+<li><p>Im(<<em>labelpos</em>>)=-1 signifie un décalage sur la gauche pour Ox, vers le bas pour Oy, si le décalage n’est pas précisé, il vaut 0.25 cm par défaut,</p></li>
+<li><p>Im(<<em>labelpos</em>>)=1 signifie un décalage sur la droite pour Ox, vers le haut pour Oy, si le décalage n’est pas précisé, il vaut 0.25 cm par défaut,</p></li>
+<li><p>Im(<<em>labelpos</em>>)=0 signifie pas de décalage (valeur par défaut),</p></li>
+<li><p><<em>mark</em>>: indique si le point doit être marqué (dans le dotsyle courant).</p></li>
+</ul></li>
+</ul>
+<h3 id="LabelDot">LabelDot</h3>
+<ul>
+<li><p><b>LabelDot( <affixe>, <"texte">, <orientation> [, DrawDot, distance] )</b>.</p></li>
+<li><p><u>Description</u> : cette macro affiche un texte à coté du point <<em>affixe</em>>. L’orientation peut être "N" pour nord, "NE" pour nord-est ...etc, ou bien une liste de la forme [longueur, direction] où direction est un complexe, dans ce deuxième cas, le paramètre optionnel <<em>distance</em>> est ignoré. Le point est également affiché lorsque <<em>DrawDot</em>> vaut <span class="math">1</span> (0 par défaut) et on peut redéfinir la <<em>distance</em>> en cm entre le point et le texte (0.25cm par défaut).</p></li>
+</ul>
+<h3 id="LabelSeg">LabelSeg</h3>
+<ul>
+<li><p><b>LabelSeg( <A>, <B>, <"texte">, [, options] )</b>.</p></li>
+<li><p><u>Description</u> : cette macro dessine le segment défini par <<em>A</em>> et <<em>B</em>>, et ajoute le <<em>"texte"</em>>. Le paramètre <<em>options</em>> est une liste (facultative) de la forme <span style="font-style:italic">[ option1:= valeur1, ..., optionN:=valeurN ]</span>, les options sont:</p>
+<ul>
+<li><p><span style="color:blue">labelpos := < center/top/bottom ></span>: positionnement du label (center par défaut),</p></li>
+<li><p><span style="color:blue">labelsep := < distance en cm ></span>: distance du label au segment lorsque labelpos vaut top ou bottom (0.25cm par défaut).</p></li>
+<li><p><span style="color:blue">rotation := < nombre ></span>: angle en degrés que fait le label par rapport à l’horizontale (par défaut le label est parallèle au segment).</p></li>
+</ul>
+<p>Il est possible dans la liste des options, de modifier des attributs comme <span style="font-style:italic;color:red">Color</span> par exemple.</p></li>
+</ul>
+<h3 id="markangle">markangle</h3>
+<ul>
+<li><p><b>markangle( <B>, <A>, <C>, <r>, <n>, <espacement>, <longueur> )</b>.</p></li>
+<li><p><u>Description</u> : même chose que <a href="#markseg">markseg</a> mais pour marquer un arc de cercle.</p></li>
+</ul>
+<h3 id="markseg">markseg</h3>
+<ul>
+<li><p><b>markseg( <A>, <B>, <n>, <espacement>, <longueur> [, angle] )</b>.</p></li>
+<li><p><u>Description</u> : marque le segment <span class="math">[<em>A</em>, <em>B</em>]</span> avec <<em>n</em>> petits segments, l’<<em>espacement</em>> est en unité graphique, et la <<em>longueur</em>> en cm. Le paramètre optionnel <<em>angle</em>> permet de définir en degré l’angle que feront les marques par rapport à la droite <span class="math">(<em>A</em><em>B</em>)</span> (45 degrés par défaut).</p></li>
+</ul>
+<h3 id="periodic">periodic</h3>
+<ul>
+<li><p><b>periodic( <f(x)>, <a>, <b> [, divisions, discontinuités] )</b>.</p></li>
+<li><p><u>Description</u> : trace la courbe de la fonction périodique définie par <span class="math"><em>y</em> = <em>f</em>(<em>x</em>)</span> sur la période <span class="math">[<em>a</em>; <em>b</em>]</span>, puis translate le motif pour couvrir l’intervalle [tMin; tMax]. Les deux paramètres optionnels sont identiques à ceux des courbes paramétrées (nombre de divisions et discontinuités).</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-5,5,-5,5), size(7.5), Axes(0,1+i), Width:=8, Color:=red, periodic(if t>0 then 4 else 2 fi,-1,1,5,1), Color:=blue, periodic(2*abs(t)-1,-1,1), Color:=magenta, periodic(sin(t)-3,-pi/2,pi/2)</p>
+</blockquote>
+</blockquote>
+<h3 id="Rarc">Rarc</h3>
+<ul>
+<li><p><b>Rarc( <B>, <A>, <C>, <R>, <sens> )</b>.</p></li>
+<li><p><u>Description</u> : comme la macro <a href="#Arc">Arc</a> sauf que l’arc de cercle est rond même si le repère n’est pas orthonormé, le rayon <<em>R</em>> est en centimètres.</p></li>
+</ul>
+<h3 id="Rcercle">Rcercle</h3>
+<ul>
+<li><p><b>Rcercle( <A>, <R> )</b> ou <strong>Rcercle( <A>, <B>, <C> )</strong>.</p></li>
+<li><p><u>Description</u> : dessine un cercle rond même si le repère n’est pas orthonormé. Dans la première forme, le rayon <<em>R</em>> est en centimètres.</p></li>
+</ul>
+<h3 id="Rellipse">Rellipse</h3>
+<ul>
+<li><p><b>Rellipse( <O>, <RX>, <RY> [, inclinaison] )</b>.</p></li>
+<li><p><u>Description</u> : comme la commande <a href="#Ellipse">Ellipse</a> sauf que celle-ci est insensible au repère écran, les rayons sont en centimètres.</p></li>
+</ul>
+<h3 id="RellipticArc">RellipticArc</h3>
+<ul>
+<li><p><b>RellipticArc( <B>, <A>, <C>, <RX>, <RY>, <sens(+/-1)> [, inclinaison] )</b>.</p></li>
+<li><p><u>Description</u> : comme la macro <a href="#ellipticArc">ellipticArc</a> sauf que celle-ci est insensible au repère écran, les rayons sont en centimètres.</p></li>
+</ul>
+<h3 id="RestoreWin">RestoreWin</h3>
+<ul>
+<li><p><b>RestoreWin()</b>.</p></li>
+<li><p><u>Description</u> : restaure la fenêtre graphique ainsi que la matrice 2D enregistrées lors du dernier appel à la macro <a href="#SaveWin">SaveWin</a>.</p></li>
+</ul>
+<h3 id="SaveWin">SaveWin</h3>
+<ul>
+<li><p><b>SaveWin()</b>.</p></li>
+<li><p><u>Description</u> : enregistre la fenêtre graphique ainsi que la matrice 2D courantes, sur une pile. Cette macro va de paire avec la macro <a href="#RestoreWin">RestoreWin</a>.</p></li>
+<li><p><u>Exemple(s)</u> : plusieurs graphiques sur un seul: voir <a href="#axeXY">cet exemple</a>.</p></li>
+</ul>
+<h3 id="Seg">Seg</h3>
+<ul>
+<li><p><b>Seg( <A>, <B> )</b>.</p></li>
+<li><p><u>Description</u> : dessine le segment <span class="math">[<em>A</em>, <em>B</em>]</span>.</p></li>
+</ul>
+<h3 id="set">set</h3>
+<ul>
+<li><p><b>set( <nom>, <affixe centre> [, options] )</b>.</p></li>
+<li><p><u>Description</u> : dessine un ensemble en forme de patatoïde, <<em>affixe centre</em>> désigne le centre de cet ensemble, et le paramètre <<em>nom</em>> est une chaîne contenant le nom de cet ensemble. Le paramètre <<em>options</em>> est une liste (facultative) de la forme <span style="font-style:italic">[ option1:= valeur1, ..., optionN:=valeurN ]</span>, les options sont:</p>
+<ul>
+<li><p><span style="color:blue">scale := < entier positif ></span>: représente l’échelle (1 par défaut),</p></li>
+<li><p><span style="color:blue">rotation := < angle en degrés ></span>: permettant d’incliner le dessin (0 degré par défaut),</p></li>
+<li><p><span style="color:blue">labels := < 0/1 ></span>: pour afficher ou non le nom de l’ensemble.</p></li>
+<li><p><span style="color:blue">labelsep := < distance en cm ></span>: distance du label au bord de l’ensemble (0.45cm par défaut)</p></li>
+</ul>
+<p>Il est possible dans la liste des options, de modifier des attributs comme <span style="color:red">LabelStyle</span> par exemple.</p></li>
+<li><p>La macro renvoie en résultat la liste des points de la courbe dessinant l’ensemble.</p></li>
+</ul>
+<h3 id="setB">setB</h3>
+<ul>
+<li><p><b>setB( <nom>, <affixe centre> [, options] )</b>.</p></li>
+<li><p><u>Description</u> : dessine un ensemble en forme de patatoïde à l’aide de courbes de Bézier, <<em>affixe centre</em>> désigne le centre de cet ensemble, et le paramètre <<em>nom</em>> est une chaîne contenant le nom de cet ensemble. Le paramètre <<em>options</em>> est une liste (facultative) de la forme <span style="font-style:italic">[ option1:= valeur1, ..., optionN:=valeurN ]</span>, les options sont:</p>
+<ul>
+<li><p><span style="color:blue">scale := < entier positif ></span>: représente l’échelle (1 par défaut),</p></li>
+<li><p><span style="color:blue">rotation := < angle en degrés ></span>: permettant d’incliner le dessin (0 degré par défaut),</p></li>
+<li><p><span style="color:blue">labels := < 0/1 ></span>: pour afficher ou non le nom de l’ensemble.</p></li>
+<li><p><span style="color:blue">labelsep := < distance en cm ></span>: distance du label au bord de l’ensemble (0.45cm par défaut)</p></li>
+</ul>
+<p>Il est possible dans la liste des options, de modifier des attributs comme <span style="color:red">LabelStyle</span> par exemple.</p></li>
+<li><p>La macro renvoie en résultat la liste des points de contrôle de la courbe représentant l’ensemble. Cette liste peut-être utilisée ensuite pour déterminer une intersection (voir <a href="#capB">capB</a>), une réunion (voir <a href="#capB">capB</a>) ou une différence (voir <a href="#setminusB">setminusB</a>).</p></li>
+</ul>
+<h3 id="size">size</h3>
+<ul>
+<li><p><b>size( <largeur + i*hauteur> [, ratio(Xscale/Yscale)] )</b></p></li>
+<li><p><u>Description</u> : permet de fixer les tailles du graphique: <<em>largeur</em>> et <<em>hauteur</em>> (marges incluses) en cm. Si le paramètre <<em>hauteur</em>> est nul, alors on considère que hauteur=largeur.</p>
+<p>Si le paramètre <<em>ratio</em>> est omis, les échelles sur les deux axes sont calculées pour que la figure entre au plus juste dans le cadre fixé, tout en conservant le ratio courant.</p>
+<p>Si <<em>ratio</em>> est égal à <span class="math">0</span> alors les échelles sont calculées de manière à obtenir exactement la taille souhaitée (le ratio courant n’est donc vraisemblablement pas conservé).</p>
+<p>Le repère est orthonormé lorsque le paramètre <<em>ratio</em>> vaut 1.</p>
+<p><strong>NB</strong>: un appel aux fonctions <span style="font-style:italic">Fenetre</span> <span style="font-style:italic">Marges</span> ou à la macro <span style="font-style:italic">view</span>, modifiera la taille du graphique. Il est donc préférable de déterminer les marges et la fenêtre graphique <strong>avant</strong> de fixer la taille.</p>
+<p>La largeur d’un graphique est donnée par la formule:</p>
+<p><div style="text-align:center"><span style="font-style:italic">(Xmax-Xmin)*Xscale+margeG+margeD</span></div></p>
+<p>et la hauteur est donnée par:</p>
+<p><div style="text-align:center"><span style="font-style:italic">(Ymax-Ymin)*Yscale+margeH+margeB</span></div></p></li>
+</ul>
+<h3 id="suite">suite</h3>
+<ul>
+<li><p><b>suite( <f(x)>, <u0>, <n> )</b>.</p></li>
+<li><p><u>Description</u> : représentation graphique de la suite définie par <span class="math"><em>u</em><sub><em>n</em> + 1</sub> = <em>f</em>(<em>u</em><sub><em>n</em></sub>)</span>, de premier terme <<em>u0</em>> et jusqu’au rang <<em>n</em>>. Cette macro ne représente que les "escaliers".</p></li>
+</ul>
+<blockquote>
+<blockquote>
+<p>view(-0.1,1.1,-0.1,1.1),size(7.5), Arrows:=1,Axes(0,1/2+i/4),Arrows:=0, u0:=0.3,nb:=20, Width:=6, Color:=darkseagreen, Droite(1,-1,0), Color:=red, tMin:=0, tMax:=1, Width:=8, Cartesienne(4*x*(1-x)), Width:=6, Color:=blue, Label(0.5+1.05*i,"<span class="math"><em>u</em><sub><em>n</em> + 1</sub> = 4<em>u</em><sub><em>n</em></sub>(1 - <em>u</em><sub><em>n</em></sub>)</span>"), LabelDot(u0, "<span class="math"><em>u</em><sub>0</sub></span>","S",1), suite(4*x*(1-x), u0,nb)</p>
+</blockquote>
+</blockquote>
+<h3 id="tangente">tangente</h3>
+<ul>
+<li><p><b>tangente( <f(x)>, <x0> [, longueur] )</b>.</p></li>
+<li><p><u>Description</u> : trace la tangente à la courbe cartésienne <span class="math"><em>y</em> = <em>f</em>(<em>x</em>)</span> au point d’abscisse <<em>x0</em>>, on trace un segment de la <<em>longueur</em>> indiquée (en cm) ou la droite entière si la longueur est omise.</p></li>
+</ul>
+<h3 id="tangenteP">tangenteP</h3>
+<ul>
+<li><p><b>tangenteP( <f(t)>, <t0> [,longueur] )</b>.</p></li>
+<li><p><u>Description</u> : trace la tangente à la courbe paramétrée par <<em>f(t)</em>> au point de paramètre <<em>t0</em>>, on trace un segment de la <<em>longueur</em>> indiquée (en cm) ou la droite entière si la longueur est omise.</p></li>
+</ul>
+<h3 id="view">view</h3>
+<ul>
+<li><p><b>view( <xmin>, <xmax>, <ymin>, <ymax> )</b> ou <strong>view( <[xmin+i*ymin, xmax+i*ymax]> )</strong></p></li>
+<li><p><u>Description</u> : change la fenêtre graphique courante et conserve l’échelle. Attention: ceci change la taille du graphique, celle-ci peut-être modifiée avec la macro <a href="#size">size</a>.</p></li>
+<li><p><u>Exemple(s)</u> : dans un élément graphique utilisateur, la commande <span style="color:red">[ view(-4, 4,-3, 3), size(12) ]</span> va fixer la fenêtre graphique à <span class="math">[ - 4, 4] × [ - 3, 3]</span>, et la taille du graphique à 12cm en conservant le ratio courant. Il est important de respecter l’ordre (view avant size).</p></li>
+</ul>
+<h3 id="wedge">wedge</h3>
+<ul>
+<li><p><b>wedge( <B>, <A>, <C>, <r> )</b></p></li>
+<li><p><u>Description</u> : dessine le secteur angulaire défini par l’angle <span class="math">$\widehat{BAC}$</span> avec un rayon <<em>r</em>>.</p></li>
+</ul>
+<h3 id="zoom">zoom</h3>
+<ul>
+<li><p><b>zoom( <+/-1> )</b></p></li>
+<li><p><u>Description</u> : permet de faire un zoom arrière/avant.</p></li>
+</ul>
+<div class="footnotes">
+<hr />
+<ol>
+<li id="fn1"><p>Option <span style="font-style:italic">Elément graphique/Créer/Utilisateur</span> du menu. <a href="#fnref1" class="footnoteBackLink" title="Jump back to footnote 1">↩</a></p></li>
+</ol>
+</div>
--- /dev/null
+\chapter{Fonctions et macros graphiques}\label{cmdFoncGraph}
+
+
+Ces fonctions et macros créent un élément graphique au moment de leur évaluation et renvoient un résultat égal à \Nil,
+elles ne sont utilisables \Mytextbf{que lors de la création d'un élément graphique "Utilisateur"}\footnote{Option
+\textsl{Elément graphique/Créer/Utilisateur} du menu.}.
+
+Elles peuvent être utilisées dans des macros, mais elles ne seront évaluées que si ces macros sont exécutées lors de la
+création d'un élément graphique "Utilisateur".
+
+
+\section{Fonctions graphiques prédéfinies}
+
+Notations:
+
+<argument>: signifie que l'argument est \Mytextbf{obligatoire}.
+
+[, argument]: signifie que l'argument est \Mytextbf{facultatif}.
+
+
+\subsection{Axes}\label{cmdAxes}
+
+\begin{itemize}
+\item \util \textbf[Axes()]{Axes( <origine>, <graduationX + i*graduationY> [, position label origine] )}.
+
+\item \desc dessine les axes, \argu{origine} est l'affixe du point d'intersection des axes, \argu{graduationX} est le
+pas pour les graduations sur l'axe Ox, et \argu{graduationY} celui de l'axe Oy, une graduation égale à zéro signifie
+l'absence de graduation. La longueur des graduations est dans la variable globale \co{xyticks} que l'on peut modifier,
+la distance des labels à l'extrêmité des graduations est dans la variable \co{xylabelsep} qui peut également être
+modifiée.
+
+Le troisième paramètre est facultatif, il permet de préciser la position des labels de l'origine (à l'intersection des
+axes), c'est un complexe: $a+ib$, la partie réelle concerne l'abscisse de l'origine et l'autre concerne l'ordonnée. Ces
+deux nombres peuvent prendre trois valeurs:
+
+\begin{itemize}
+ \item $0$: le label n'apparaît pas,
+ \item $1$: le label est affiché comme celui des autres graduations,
+ \item $2$: le label est décalé pour ne pas chevaucher l'autre axe (valeur par défaut).
+\end{itemize}
+
+\item On peut modifier dans les \textit{Attributs}: le style de ligne, l'épaisseur, la couleur et la taille des labels.
+\end{itemize}
+
+\begin{demo}{Commande Axes}{Axes}
+\begin{texgraph}[name=Axes,export=pgf]
+view(-5,4,-5,5),Marges(0.5,0,0,0.5),
+size(7.5), Width:=2,
+Color:=lightgray, Grille(-5-5*i,(1+i)/2),
+Width:=4,
+Color:=gray, Grille(-5-5*i,(1+i)),
+Color:=black, Arrows:=1,
+Axes(-5-5*i,1+i,1+i),Arrows:=0,
+LabelAxe(x,-pi-5*i,"$-\pi$",2-i,1),
+LabelAxe(x,pi-5*i,"$\pi$",2+i,1),
+SaveAttr(),
+FillStyle:=full, FillColor:=lightblue,
+FillOpacity:=0.5,
+domaine2(3*sin(x)^3, -5,-pi,pi),
+RestoreAttr(),
+Color:=red, Arrows:=0, Width:=8,
+Cartesienne( 3*sin(x)^3 )
+\end{texgraph}
+\end{demo}
+
+
+\subsection{(Poly-)Bezier}\label{cmdBezier}
+
+\begin{itemize}
+\item \util \textbf[Bezier()]{Bezier( <liste de points> )}.
+
+\item \desc dessine une succession de courbes de \textsc{Bezier} (avec éventuellement des segments de droite).
+Il y a plusieurs possibilités pour la liste de points:
+ \begin{enumerate}
+ \item une liste de trois points $[A,C,B]$, il s'agit alors d'une courbe de Bezier d'origine \argu{A} et
+d'extrémité \argu{B} avec un point de contrôle \argu{C}, c'est la courbe paramétrée par:
+
+\[(1-t)^2A+2t(1-t)C+t^2B\]
+
+ \item une liste de 4 points ou plus: [A1, C1, C2, A2, C3, C4, A3...]: il s'agit alors d'une succession de
+courbes de Bezier à 2 points de contrôles, la première va de A1 à A2, elle est contrôlée par C1, C2 (paramétrée par
+$(1-t)^3tA1+3(1-t)^2tC1]+3(1-t)t^2C2+t^3A2$), la deuxième va de A2 à A3 et est contrôlée par C3,C4 ...etc. Une exception
+toutefois, on peut remplacer les deux points de contrôle par la constante \jump, dans ce cas on saute directement de A1
+à A2 en traçant un segment de droite.
+ \end{enumerate}
+\item Le nombre de points calculés (par courbe) est modifiable dans les \textit{Attributs} (variable \co{NbPoints}).
+\end{itemize}
+
+\begin{demo}{Commande Bezier}{Bezier}
+\begin{texgraph}[name=Bezier,export=pgf]
+view(-4,4,-4,5),Marges(0,0,0,0),
+size(7.5), Width:=8,
+A:=-3+4*i, B:=3+i, C:=3-3*i, D:=-3-3*i,
+C1:=4.5*i,C2:=-2*i, C3:=2-i, C4:=-2,
+FillStyle:=full, FillColor:=lightblue,Color:=red,
+Bezier(A,C1,C2,B,jump,C,C3,C4,D,jump,A),
+FillStyle:=none, DotStyle:=cross,
+DotScale:=2,Color:=black,
+LabelDot(A,"$A$","N",1),
+LabelDot(B,"$B$","E",1),
+LabelDot(C,"$C$","SE",1),
+LabelDot(D,"$D$","SO",1),
+LabelDot(C1,"$C_1$","E",1),
+LabelDot(C2,"$C_2$","SO",1),
+LabelDot(C3,"$C_3$","N",1),
+LabelDot(C4,"$C_4$","N",1),
+LineStyle:=userdash,
+DashPattern:=[5,2,0.5,2], Width:=6,
+LineCap:=round,
+Ligne([A,C1,C2,B,jump,C,C3,C4,D],0)
+\end{texgraph}
+\end{demo}
+
+\subsection{Cartesienne}\label{cmdCartesienne}
+
+\begin{itemize}
+\item \util \textbf[Cartesienne()]{Cartesienne( <f(x)> [, n, 1] )}.
+
+\item \desc trace la courbe cartésienne d'équation $y=f(x)$. Le paramètre optionnel \argu{n} est un entier (égal à 5 par
+défaut) qui permet de faire varier le pas de la manière suivante: lorsque la distance entre deux points consécutifs est
+supérieur à un certain seuil alors on calcule un point intermédiaire [par dichotomie], ceci peut être répété n fois. Si
+au bout de n itérations la distance entre deux points consécutifs est toujours supérieure au seuil, et si la valeur
+optionnelle $1$ est présente, alors une discontinuité (\jump) est insérée dans la liste des points.
+\end{itemize}
+
+
+\begin{demo}{Courbe avec discontinuités}{Cartesienne}
+\begin{texgraph}[name=Cartesienne,export=pgf]
+view(-2,2,-0.1,2),Marges(0.5,0.5,0.5,0.5),
+size(7.5), tMin:=-2, tMax:=2,
+Color:=darkgray, Width:=8,
+LineStyle:=dotted, Grille(0,0.5*(1+i)),
+Color:=black, LineStyle:=solid,Axes(0,1+i,1),
+NbPoints:=100, Width:=8, Color:=darkseagreen,
+Cartesienne(x*Ent(1/x),5,1)
+\end{texgraph}
+\end{demo}
+
+\subsection{Courbe}\label{cmdCourbe}
+
+\begin{itemize}
+\item \util \textbf[Courbe()]{Courbe( <f(t)> [, n, 1] )}.
+
+\item \desc trace la courbe paramétrée par \argu{f(t)} où $f$ est à valeurs complexes.
+
+Le paramètre optionnel \argu{n} est un entier (égal à 5 par défaut) qui permet de faire varier le pas de la manière
+suivante:
+lorsque la distance entre deux points consécutifs est supérieur à un certain seuil alors on calcule un point
+intermédiaire (par dichotomie), ceci peut être répété $n$ fois. Si au bout de $n$ itérations la distance entre deux
+points consécutifs est toujours supérieure au seuil, et si la valeur optionnelle $1$ est présente, alors une
+discontinuité (\jump) est insérée dans la liste des points.
+\end{itemize}
+
+\subsection{Droite}\label{cmdDroite}
+
+\begin{itemize}
+\item \util \textbf[Droite()]{Droite( <A>, <B> [, C] )}.
+
+\item \desc trace la droite $(AB)$ lorsque le troisième argument \argu{C} est omis, sinon c'est la droite d'équation
+cartésienne \argu{A}x+\argu{B}y=\argu{C}.
+\end{itemize}
+
+
+\begin{demo}{Développée d'une ellipse}{Droite}
+\begin{texgraph}[name=Droite,export=pgf]
+view(-5,5,-5,5),Marges(0,0,0,0),
+size(7.5),
+F:=sqrt(7), F':=-F, {foyers}
+Width:=1, Color:=darkgray,
+for t from -pi to pi step 0.1 do
+ M:=4*cos(t)+3*i*sin(t),
+ Vn:=(M-F)/abs(M-F)+(M-F')/abs(M-F'),
+ Droite(M,M+Vn),{normale à l'ellipse}
+od,
+Width:=8, Color:=red,
+Ellipse(0,4,3),
+LabelDot(F,"$F$","S",1),
+LabelDot(F',"$F'$","S",1)
+\end{texgraph}
+\end{demo}
+
+\subsection{Ellipse}\label{cmdEllipse}
+
+\begin{itemize}
+\item \util \textbf[Ellipse()]{Ellipse( <A>, <Rx>, <Ry> [, inclinaison] )}.
+
+\item \desc trace une ellipse de centre \argu{A} de rayons \argu{Rx} et \argu{Ry} sur les axes respectifs $Ox$ et $Oy$.
+Le dernier paramètre \argu{inclinaison} est un angle en degrés (nul par défaut) qui indique l'inclinaison de l'ellipse
+par rapport à l'horizontale.
+\end{itemize}
+
+\begin{demo}{Ellipses}{Ellipse}
+\begin{texgraph}[name=ellipse,export=pgf]
+view(-5.25,5.25,-5.25,5.25),
+Marges(0,0,0,0), size(7.5),
+background(full,blue),
+Width:=4, Color:=white,
+inclin:=[0,35,-35],
+for z in inclin do
+ Ellipse(0,5,2,z)
+od,
+Width:=2*mm, Ellipse(0,1.5,4.5),
+Label(-0.1,
+ "\resizebox{6cm}{3.5cm}{R\ T\ F}")
+\end{texgraph}
+\end{demo}
+
+\subsection{EllipticArc}\label{cmdEllipticArc}
+
+\begin{itemize}
+\item \util \textbf[EllipticArc()]{EllipticArc( <B>, <A>, <C>, <Rx>, <Ry> [, sens] )}.
+
+\item \desc trace un arc d'ellipse dont les axes sont $Ox$ et $Oy$ et le centre \argu{A},
+le rayon sur $Ox$ est \argu{Rx}, et celui sur $Oy$ est \argu{Ry}. L'arc est tracé partant de la droite $(AB)$ jusqu'à la
+droite $(AC)$, l'argument facultatif \argu{sens} indique: le sens trigonométrique si sa valeur est $1$ (valeur par
+défaut), le sens contraire si sa valeur est $-1$.
+\end{itemize}
+
+\begin{demo}{Commande EllipticArc}{EllipticArc}
+\begin{texgraph}[name=Arc,export=pgf]
+view(-2.25,3.75,-2,5),Marges(0,0,0,0),size(7.5),
+A:=0, B:=3+i, C:=2+4*i,
+DotScale:=2, Width:=8,
+Ligne([B,A,C],0), Color:=red,
+LabelDot(A,"$A$","S",1),
+LabelDot(B,"$B$","N",1),
+LabelDot(C,"$C$","SE",1),
+Arrows:=1, Color:=blue,
+EllipticArc(B,A,C,2,1,-1),
+EllipticArc(B,A,C,2,3,1)
+\end{texgraph}
+\end{demo}
+
+Remarque: pour un arc de cercle, il suffit de prendre \argu{Rx} et \argu{Ry} égaux. Mais le plus simple est d'utiliser
+la macro \Helpref{Arc}{macArc} qui remplace la commande \Mytextbf{Arc} de l'ancienne version.
+
+
+\subsection{EquaDif}\label{cmdEquadif}
+
+\begin{itemize}
+\item \util \textbf[EquaDif()]{EquaDif( <f(t,x,y)>, <t0>, <x0 + i*y0> [, mode] )}.
+
+\item \desc trace une solution approchée de l'équation différentielle: $x'(t)+iy'(t)=f(t,x,y)$ avec la condition
+initiale $x(t0)=x0$ et $y(t0)=y0$. Le dernier paramètre est facultatif et peut valoir 0, 1 ou 2:
+ \begin{itemize}
+ \item \argu{mode}=0: la courbe représente les points de coordonnées $(x(t),y(t))$, c'est la valeur par défaut.
+ \item \argu{mode}=1: la courbe représente les points de coordonnées $(t,x(t))$.
+ \item \argu{mode}=2: la courbe représente les points de coordonnées $(t,y(t))$.
+ \end{itemize}
+C'est la méthode de \textsc{Runge-Kutta} d'ordre 4 qui est utilisée.
+\item \exem l'équation $x''-x'-tx=\sin(t)$ avec la condition initiale $x(0)=-1$ et $x'(0)=1/2$, se met sous la
+forme:
+\[\begin{pmatrix}
+X'\\Y'\end{pmatrix}=\begin{pmatrix} 0&1\\t&1\end{pmatrix}\begin{pmatrix}X\\Y\end{pmatrix}+
+\begin{pmatrix}0\\\sin(t)\end{pmatrix}\] en posant $X=x$ et $Y=x'$:
+\end{itemize}
+
+
+\begin{demo}{\'Equation différentielle}{EquaDif}
+\begin{texgraph}[name=EquaDif,export=pgf]
+view(-10.5,2.5,-1.5,4.5),Marges(0,0,0,0),
+size(7.5,0), Arrows:=1, Width:=4,
+Axes(0,1+i), Arrows:=0,
+LabelAxe(y,4.25*i,"$x$"),
+LabelAxe(x,2,"$t$",2),
+Width:=8, Color:=red, tMin:=-10, tMax:=2,
+EquaDif(y+i*(t*x+y+sin(t)),0,-1+i/2, 1),
+Color:=black, LabelStyle:=stacked,
+Label(-6+2*i,
+ "$x''-tx'-x=\sin(t)$\\
+avec $x(0)=-1$ et $x'(0)=\frac12$")
+\end{texgraph}
+\end{demo}
+
+
+\subsection{Grille}\label{cmdGrille}
+
+\begin{itemize}
+\item \util \textbf[Grille()]{Grille( <origine>, <graduationX + i*graduationY> )}.
+
+\item \desc dessine une grille, \argu{origine} est l'affixe du point considéré comme origine, \argu{graduationX} est le
+pas des graduations sur l'axe Ox, et \argu{graduationY} celui de l'axe Oy, une graduation égale à zéro signifie
+l'absence de graduation.
+\item On peut modifier dans les \textit{Attributs} le style de ligne, l'épaisseur et la couleur. La grille de ne fait
+pas appraître de graduations, on peut dessiner des axes par dessus.
+\end{itemize}
+
+\subsection{Implicit}\label{cmdImplicit}
+
+\begin{itemize}
+\item \util \textbf[Implicit()]{Implicit( <f(x,y)> [, n, m] )}.
+\item \desc trace la courbe implicite d'équation $f(x,y)=0$. L'intervalle des abscisses est subdivisé en \argu{n}
+parties et l'intervalle des ordonnées en \argu{m} parties, par défaut $n=m=25$. Sur chaque pavé ainsi obtenu on teste
+s'il y a un changement de signe, auquel cas on applique une dichotomie sur les bords du pavé.
+\end{itemize}
+
+
+\begin{demo}{\'Equation $\sin(xy)=0$}{Implicit}
+\begin{texgraph}[name=Implicit,export=pgf]
+view(-5,5,-5,5),Marges(0,0,0,0),
+size(7.5), Arrows:=1, Width:=4,
+Axes(0,1+i), Arrows:=0,
+Width:=8, Color:=red,
+Implicit( sin(x*y) )
+\end{texgraph}
+\end{demo}
+
+\subsection{Label}\label{cmdLabel}
+
+\begin{itemize}
+\item \util \textbf[Label()]{Label( <affixe1>, <texte1>,..., <affixeN>, <texteN> )}.
+
+\item \desc place la chaîne de caractères \argu{texte1} à la position \argu{affixe1} ... etc. Les paramètres
+\argu{texte1},..., \argu{texteN} sont donc interprétés comme des \Helpref{chaînes de caractères}{chaine}.
+\end{itemize}
+
+
+\begin{demo}{Nommer des points}{Label}
+\begin{texgraph}[name=Label,export=pgf,
+ preload="PolyedresII.mac"]
+view(-5,5,-5,5),Marges(0,0,0,0),
+size(7.5,0),
+C:=Cube(Origin, M(3,3,0)),
+S:=Sommets(C), Point3D(S),
+DrawPoly(C,0), k:=0,
+for Z in S by 2 do
+ Inc(k,1),
+ Label(Proj3D(Z)+
+ if k>4 then 0.5*i else -0.5*i fi,
+ ["$S_",k,"$"])
+od
+\end{texgraph}
+\end{demo}
+
+\subsection{Ligne}\label{cmdLigne}
+
+\begin{itemize}
+\item \util \textbf[Ligne()]{Ligne( <liste>, <fermée> [, rayon] )}.
+
+\item \desc trace la ligne polygonale définie par la liste, si le paramètre \argu{fermée} vaut 1, la ligne polygonale
+sera fermée, si sa valeur est 0 la ligne est ouverte. Si l'argument \argu{rayon} est précisé (0 par défaut), alors les
+"angles" de la ligne polygonale sont arrondis avec un arc de cercle dont le rayon correspond à l'argument \argu{rayon}.
+\end{itemize}
+
+\begin{demo}{Triangle de \textsc{Sierpinski}}{Ligne}
+\begin{texgraph}[name=Ligne,export=pgf]
+Marges(0,0,0,0), size(7.5),
+A:=-5-5*i, B:=5*i, C:=5-5*i,niv:=6,
+Tr:=[A,B,C,jump], {initial}
+for k from 1 to niv do
+ Tr:=[hom(Tr,A,0.5),hom(Tr,B,0.5),
+ hom(Tr,C,0.5)]
+od,
+FillStyle:=full,FillColor:=blue,
+Ligne(Tr,1)
+\end{texgraph}
+\end{demo}
+
+\subsection{Path}\label{cmdPath}
+
+\begin{itemize}
+\item \util \textbf[Path()]{Path( <liste> [, fermé (0/1)]}
+
+\item \desc trace le chemin représenté par \argu{liste} et ferme la dernière composante de celui-ci si l'argument
+optionnel vaut $1$ (sa valeur par défaut est $0$). La liste est une succession de points (affixes) et d'instructions
+indiquant à quoi correspondent ces points, ces instructions sont:
+
+\begin{itemize}
+ \item \textbf{line}: relie les points par une ligne polygonale,
+
+ \item \textbf{linearc}: relie les points par une ligne polygonale mais les angles sont arrondis par un arc de cercle,
+la valeur précédent la commande linearc est interprétée comme le rayon de ces arcs.
+
+ \item \textbf{arc}: dessine un arc de cercle, ce qui nécessite quatre arguments: 3 points et le rayon, plus
+éventuellement un cinquième argument: le sens (+/- 1), le sens par défaut est 1 (sens trigonométrique).
+
+ \item \textbf{ellipticArc}: dessine un arc d'ellipse, ce qui nécessite cinq arguments: 3 points, le rayonX, le rayonY,
+plus éventuellement un sixième argument: le sens (+/- 1), le sens par défaut est 1 (sens trigonométrique), plus
+éventuellement un septième argument: l'inclinaison en degrés du grand axe par rapport à l'horizontale.
+
+ \item \textbf{curve}: relie les points par une spline cubique naturelle.
+
+ \item \textbf{bezier}: relie le premier et le quatrième point par une courbe de bézier (les deuxième et troisième
+points sont les points de contrôle).
+
+ \item \textbf{circle}: desine un cercle, ce qui necessite deux arguments: un point et le centre, ou bien trois
+arguments qui sont trois points du cercle.
+
+ \item \textbf{ellipse}: dessine une ellipse, les arguments sont: un point, le centre, rayon rX, rayon rY, inclinaison
+du grand axe en degrés par rapport à l'horizontale (facultatif).
+
+ \item \textbf{move}: indique un déplacement sans tracé.
+
+ \item \textbf{closepath}: ferme la composante en cours.
+\end{itemize}
+
+Par convention, le premier point du tronçon numéro n+1 est le dernier point du tronçon numéro n.
+
+\item \exem
+\end{itemize}
+
+\begin{demo}{Commande Path et Eofill}{Path}
+\begin{texgraph}[name=Path,export=pgf]
+view(-5,5,-4,6),Marges(0,0,0,0),size(7.5),
+Axes(2*i,1+i),Eofill:=1,
+FillStyle:=full,FillOpacity:=0.9,
+FillColor:= blue, Width:=8,
+Path([-4,i,circle,
+ -3+2*i,move,-3,-2,line,
+ 0,2,2,-1,arc,
+ 3,3+3*i,0.5,linearc,
+ 1,-1+5*i,-3+2*i,bezier,
+ closepath,
+ ])
+\end{texgraph}
+\end{demo}
+
+
+\subsection{Point}\label{cmdPoint}
+
+\begin{itemize}
+\item \util \textbf[Point()]{Point( <A1>, ..., <An> )}.
+
+\item \desc représente le nuage de points \argu{A1} ... \argu{An}.
+\end{itemize}
+
+\pngtrue
+\begin{demo}{Diagramme de bifurcation de la suite $u_{n+1}=ru_n(1-u_n)$}{Point}
+\begin{texgraph}[name=Point,export=eps]
+view(2.75,4,0,1),
+Marges(0.75,0.5,0.5,0.5),size(7.5),
+Axes(Xmin+i*Ymin,0.25+0.2*i,1+i),
+pas:=0.001, Color:=red,
+DotScale:=0.1,
+Point(
+ for r from Xmin to Xmax step pas do
+ u:=0.5,
+ for k from 1 to 25 do u:=r*u*(1-u) od,
+ for k from 1 to 25 do u:=r*u*(1-u), r+i*u od
+ od)
+\end{texgraph}
+\end{demo}
+\pngfalse
+
+\subsection{Polaire}\label{cmdPolaire}
+
+\begin{itemize}
+\item \util \textbf[Polaire()]{Polaire( <r(t)> [, n, 0/1] )}.
+
+\item \desc trace la courbe polaire d'équation $\rho=r(t)$, \argu{expression}. Le paramètre optionnel \argu{n} est
+un entier (égal à 5 par défaut) qui permet de faire varier le pas de la manière suivante: lorsque la distance entre deux
+points consécutifs est supérieur à un certain seuil alors on calcule un point intermédiaire (par dichotomie), ceci peut
+être répété $n$ fois. Si au bout de $n$ itérations la distance entre deux points consécutifs est toujours supérieure au
+seuil, et si la valeur optionnelle $1$ est présente, alors une discontinuité (\jump) est insérée dans la liste des
+points.
+\end{itemize}
+
+
+\begin{demo}{Courbe polaire et points doubles}{Polaire}
+\begin{texgraph}[name=Polaire,export=pgf]
+view(-3,2,-2,3),Marges(0.25,0.25,0.25,0.25),
+size(7.5),Width:=4,
+Axes(0,1+i),NbPoints:=250,tMin:=-25,tMax:=25,
+courbe:=Get(Polaire((t+1)/(t-1))),
+ptDoubles:= courbe InterL courbe,
+Width:=8, Color:= blue, Ligne(courbe,0),
+DotStyle:=dotcircle, DotScale:=2,
+Point(ptDoubles),
+Label(1+2*i,"$r(t)=\dfrac{t+1}{t-1}$")
+\end{texgraph}
+\end{demo}
+
+
+\subsection{Spline}\label{cmdSpline}
+
+\begin{itemize}
+\item \util \textbf[Spline()]{Spline( <V0>, <A0>,..., <An>, <Vn> )}.
+\item \desc trace la spline cubique passant par les points \argu{A0} jusqu'à \argu{An}. \argu{V0} et \argu{Vn} désignent
+les vecteurs vitesses aux extrémités [contraintes], si l'un d'eux est nul alors l'extrémité correspondante est
+considérée comme libre (sans contrainte).
+\end{itemize}
+
+
+\begin{demo}{Commande Spline}{Spline}
+\begin{texgraph}[name=Spline,export=pgf]
+view(-5,5,-5,5),Marges(0.25,0.25,0.25,0.25),
+size(7.5),Width:=4,Axes(0,1+i),
+A:= -4-3*i, B:=-2+2*i, C:=1-3*i, D:=4+3*i,
+LabelDot(A,"$A$","S",1),LabelDot(B,"$B$","N",1),
+LabelDot(C,"$C$","S",1),LabelDot(D,"$D$","O",1),
+Width:=8,Color:=red, Spline(0,A,B,C,D,0),
+Ligne([-4.5+4.5*i,-4+4.5*i],0), LabelStyle:=left,
+Label(-3.5+4.5*i,"libre"),
+Color:=blue,Spline(5,A,B,C,D,5*i),
+Ligne([-4.5+3.5*i,-4+3.5*i],0),
+Label(-3.5+3.5*i,"contrainte"),
+Width:=4,
+Arrows:=1, Ligne([A,A+2,jump,D,D+2*i],0)
+\end{texgraph}
+\end{demo}
+
+
+\section{Commandes de dessin bitmap}
+
+La version \version propose quelques commandes de base pour faire du dessin bitmap. Ce dessin bitmap peut être
+enregistré (au format \textit{bmp}) mais il n'est pas pris en compte par les autres exports du logiciel. Ces commandes
+ne sont fonctionnelles qu'avec la version GUI de TeXgraph. Chaque pixel est repéré son affixe $x+iy$ où $x$ et $y$ sont
+deux entiers, l'origine est en haut à gauche de la zone de dessin \Mytextbf{marges exclues}, l'axe $Ox$ est dirigé vers
+la droite et l'axe $Oy$ vers le bas.
+
+\subsection{DelBitmap}\label{cmdDelBitmap}
+
+\begin{itemize}
+\item \util \textbf[DelBitmap()]{DelBitmap()}.
+\item \desc détruit le bitmap en cours.
+\end{itemize}
+
+\subsection{MaxPixels}\label{cmdMaxPixels}
+
+\begin{itemize}
+\item \util \textbf[MaxPixels()]{MaxPixels()}.
+\item \desc renvoie la taille de la zone graphique en pixels sous la forme: \textsl{maxX+i*maxY}, ainsi pour les
+coordonnées des pixels (coordonnées entières), l'intervalle des abscisses est \textsl{[0 .. maxX]} et celui des
+ordonnées \textsl{[0 .. maxY]}. Chaque pixel est repéré par des coordonnées entières, donc chaque pixel a une affixe
+$a+ib$ avec $a$ dans \textsl{[0 .. maxX]} et $b$ dans \textsl{[0 .. maxY]}. L'origine étant le coin supérieur gauche de
+la zone graphique \Mytextbf{marges exclues}.
+\end{itemize}
+
+\subsection{NewBitmap}\label{cmdNewBitmap}
+
+\begin{itemize}
+\item \util \textbf[NewBitmap()]{NewBitmap( [fond] )}.
+\item \desc permet de créer un nouveau bitmap (vide). Par défaut la couleur du fond est le blanc.
+\end{itemize}
+
+\subsection{Pixel}\label{cmdPixel}
+
+\begin{itemize}
+\item \util \textbf[Pixel()]{Pixel( <liste> )}.
+\item \desc permet de d'allumer une \argu{liste} de pixels. Cette liste est de la forme: \textsl{[affixe, couleur,
+affixe, couleur, ...]}. Les affixes des pixels sont de la forme $a+ib$ avec $a$ et $b$ des entiers positifs ou nuls,
+l'origine étant le coin supérieur gauche de la zone graphique \Mytextbf{marges exclues}.
+\end{itemize}
+
+\subsection{Pixel2Scr}\label{cmdPixel2Scr}
+
+\begin{itemize}
+\item \util \textbf[Pixel2Scr()]{Pixel2Scr( <affixe> )}.
+\item \desc permet de convertir l'\argu{affixe} d'un pixel (coordonnées entières) en affixe dans le repère de
+l'utilisateur à l'écran.
+\end{itemize}
+
+\subsection{Scr2Pixel}\label{cmdScr2Pixel}
+
+\begin{itemize}
+\item \util \textbf[Scr2Pixel()]{Scr2Pixel( <affixe> )}.
+\item \desc permet de convertir l'\argu{affixe} d'un point dans le repère de l'utilisateur à l'écran en coordonnées
+entières (affixe du pixel correspondant au point).
+\item \exem un ensemble de Julia, la commande est à placer dans un élément graphique utilisateur. L'image \textit{png} a
+été obtenue à partir du bouton \textit{snapshot} de l'interface graphique en prenant l'export \textit{bmp} puis une
+conversion en \textit{png}:
+\end{itemize}
+
+\pngtrue
+\begin{demo}{Un ensemble de Julia}{julia}
+\begin{texgraph}[name=julia,export=none]
+view(-1.5,1.5,-1,1),Marges(0,0,0,0),size(7.5),
+ NewBitmap(),
+ T:=100, m:=MaxPixels(), c:=-0.181-0.667*i,
+ for x from 0 to Re(m) do
+ Pixel(
+ for y from 0 to Im(m) do
+ N:=0, z:=Pixel2Scr(x+i*y),
+ repeat
+ z:=z^2+c, Inc(N,1)
+ until (N=T) Or (abs(z)>2) od,
+ x+i*y, MixColor(darkred,1-N/T,yellow,N/T)
+ od )
+ od
+\end{texgraph}
+\end{demo}
+\pngfalse
+
+
+\section{Macros graphiques de TeXgraph.mac}
+
+\subsection{angleD}
+
+\begin{itemize}
+\item \util \textbf[angleD()]{angleD( <B>, <A>, <C>, <r> )}.
+\item \desc dessine l'angle $\widehat{BAC}$ avec un parallèlogramme de coté r.
+\end{itemize}
+
+\subsection{Arc}\label{macArc}
+
+\begin{itemize}
+\item \util \textbf[Arc()]{Arc( <B>, <A>, <C>, <R> [, sens] )}.
+
+\item \desc trace un arc de cercle de centre \argu{A} et de rayon \argu{R}. L'arc est tracé partant de la droite $(AB)$
+jusqu'à la droite $(AC)$, l'argument facultatif \argu{sens} indique: le sens trigonométrique si sa valeur est $1$
+(valeur par défaut), le sens contraire si valeur est $-1$.
+\end{itemize}
+
+\begin{demo}{Commande Arc}{Arc}
+\begin{texgraph}[name=Arc,export=pgf]
+view(-2.25,3.75,-2,5),Marges(0,0,0,0),size(7.5),
+A:=0, B:=3+i, C:=2+4*i,
+DotScale:=2, Width:=8,
+Ligne([B,A,C],0), Color:=red,
+LabelDot(A,"$A$","S",1),
+LabelDot(B,"$B$","N",1),
+LabelDot(C,"$C$","SE",1),
+Arrows:=1, Color:=blue,
+Arc(B,A,C,1,-1),
+Arc(B,A,C,2,1)
+\end{texgraph}
+\end{demo}
+
+\subsection{arcBezier}
+
+\begin{itemize}
+\item \util \textbf[arcBezier()]{arcBezier( <B>, <A>, <C>, <r> [,sens] )}.
+\item \desc a le même effet que la macro graphique \textsl{Arc} mais l'arc est dessiné avec des courbes de Bezier.
+\end{itemize}
+
+
+\subsection{axes}
+
+\begin{itemize}
+\item \util \textbf[axes()]{axes( <[origine, etendueX, etendueY]>, <gradX+i*gradY> [, subdivX+i*subdivY,
+posOriginX+i*posOriginY, num, "texte", den, firstnum] )}.
+\item \desc pour tracer et graduer les axes passant par \argu{origine} (affixe), elle s'utilise comme la commande
+\Helpref{Axes}{cmdAxes} et utilise donc les variables \textit{xylabelpos} et \textit{xyticks}. Par défaut les axes
+occupent toute la fenêtre si les paramètres optionnels \argu{etendueX} et \argu{etendueY} sont omis. Le paramètre
+\argu{etendueX} représente sous forme complexe l'intervalle des abcisses: \verb|xmin+i*xmax|, de même pour les ordonnées
+avec le paramètre \argu{etendueY}, les axes sont alors limités à ces intervalles. Remarque: pour préciser une valeur de
+\argu{etendueY} sans préciser de valeur pour \argu{etendueX}, il suffit de mettre \jump à la place de \argu{etendueX}
+(et non pas \Nil!).
+
+\item Le paramètre optionnel \argu{subdivX+i*subdivY} indique le nombre de subdivisions par unité sur chaque axe (0 par
+défaut).
+
+\item Le paramètre optionnel \argu{posOriginX+i*posOriginY} permet de positionner le label de l'origine:
+
+ \begin{itemize}
+ \item \argu{posOriginX}=0: pas de label à l'origine (idem pour \argu{posOriginY}=0),
+ \item \argu{posOriginX}=1: label normal à l'origine (idem pour \argu{posOriginY}=1),,
+ \item \argu{posOriginX}=2: label décalé à droite de l'origine et en haut pour \argu{posOriginY}=2 (valeurs par
+défaut),
+ \item \argu{posOriginX}=-2 label décalé à gauche de l'origine et en bas pour \argu{posOriginY}=-2.
+ \end{itemize}
+
+\item Sur les 2 axes, chaque label est multiplié par la fraction \argu{num/den} (1 par défaut), ajouté à
+\argu{firstnum/den} (l'origine par défaut) et accompagné du \argu{"texte"} au numérateur. Pour que le séparateur décimal
+soit la virgule à la place du point, il suffit de mettre la variable \var{usecomma} à la valeur $1$. Cette macro est
+également sensible aux variables \var{dollar} (pour ajouter ou non des \$ autour des labels des graduations), et
+\var{nbdeci} qui fixe le nombre de décimales affichées.
+
+\item \exem pour avoir des axes gradués en $\pi/2$ en $\pi/2$: \co{axes(0, pi*(1+i)/2, 1+i, 2+2*i, 1, "\bks pi", 2, 0)}.
+Contrairement à la commande Axes, cette macro est sensible aux modifications de la matrice courante.
+\end{itemize}
+
+\subsection{axeX}
+
+\begin{itemize}
+\item \util \textbf[axeX()]{axeX( <[origine, posOrigine, etendue]>, <Xpas> [, Subdiv, labelPos , num, ""texte"", den,
+firstnum] )}.
+
+\item \desc pour tracer et graduer un axe des abscisses passant par \argu{origine} et avec un pas de \argu{Xpas}. Le
+paramètre \argu{etendue} représente sous forme complexe l'intervalle des abscisses \textsl{xmin+i*xmax}, si celui-ci est
+omis, alors le tracé occupe la fenêtre. Remarque: pour préciser une valeur de \argu{etendue} sans préciser de valeur
+pour \argu{posOrigine}, il suffit de mettre \jump à la place de \argu{posOrigine} (et non pas \Nil!).
+
+\item \argu{Subdiv} est le nombre de subdivisions par unité, chaque abscisse est multipliée par la fraction
+\argu{num/den} (1 par défaut), ajoutée à \argu{firstnum/den} (l'origine par défaut) et accompagnée du \argu{"texte"} au
+numérateur. Pour que le séparateur décimal soit la virgule à la place du point, il suffit de mettre la variable
+\var{usecomma} à la valeur $1$. Cette macro est
+également sensible aux variables \var{dollar} (pour ajouter ou non des \$ autour des labels des graduations), et
+\var{nbdeci} qui fixe le nombre de décimales affichées.
+
+\item Les paramètres optionnels \argu{posOrigine} et \argu{labelpos} permettent de positionner les labels:
+
+ \begin{itemize}
+ \item \argu{posOrigine}=0: pas de label à l'origine,
+ \item \argu{posOrigine}=1: label normal à l'origine,
+ \item \argu{posOrigine}=2: label décalé à droite à l'origine (valeur par défaut),
+ \item \argu{posOrigine}=-2 label décalé à gauche à l'origine,
+ \item \argu{labelPos}=0 : pas de label du tout,
+ \item \argu{Re(labelpos)}=top: labels au-dessus,
+ \item Re(\argu{labelPos})=bottom : labels en-dessous (valeur par défaut),
+ \item Im(\argu{Im(labelPos})=1: labels orthogonaux à l'axe.
+ \end{itemize}
+\end{itemize}
+
+\subsection{axeY}
+
+\begin{itemize}
+\item \util \textbf[axeY()]{axeY(<[origine, posOrigine, etendue]>, <Ypas> [, Subdiv, labelPos , num, ""texte"", den,
+firstnum] )}.
+
+\item \desc pour tracer et graduer un axe des abscisses passant par \argu{origine} et avec un pas de \argu{Ypas}. Le
+paramètre \argu{etendue} représente sous forme complexe l'intervalle des ordonnées \textsl{ymin+i*ymax}, si celui-ci est
+omis, alors le tracé occupe la fenêtre. Remarque: pour préciser une valeur de \argu{etendue} sans préciser de valeur
+pour \argu{posOrigine}, il suffit de mettre \jump à la place de \argu{posOrigine} (et non pas \Nil!).
+
+\item \argu{Subdiv} est le nombre de subdivisions par unité, chaque ordonnée est multipliée par la fraction
+\argu{num/den} (1 par défaut), ajoutée à \argu{firstnum/den} (l'origine par défaut) et accompagnée du \argu{"texte"} au
+numérateur. Pour que le séparateur décimal soit la virgule à la place du point, il suffit de mettre la variable
+\var{usecomma} à la valeur $1$. Cette macro est
+également sensible aux variables \var{dollar} (pour ajouter ou non des \$ autour des labels des graduations), et
+\var{nbdeci} qui fixe le nombre de décimales affichées.
+
+\item Les paramètres optionnels \argu{posOrigine} et \argu{labelpos} permettent de positionner les labels:
+
+ \begin{itemize}
+ \item \argu{posOrigine}=0: pas de label à l'origine,
+ \item \argu{posOrigine}=1: label normal à l'origine,
+ \item \argu{posOrigine}=2: label décalé vers le haut à l'origine (valeur par défaut),
+ \item \argu{posOrigine}=-2 label décalé vers le bas à l'origine,
+ \item \argu{labelPos}=0 : pas de label du tout,
+ \item \argu{Re(labelpos)}=left: labels à gauche de l'axe (valeur par défaut),
+ \item Re(\argu{labelPos}=right : labels à droite de l'axe,
+ \item Im(\argu{labelPos})=1: labels orthogonaux à l'axe.
+ \end{itemize}
+\end{itemize}
+
+
+\begin{demo}{Utilisation de axeX, axeY}{axeXY}
+\begin{texgraph}[name=axeXY,export=pgf]
+view(-5,5,-5,5),size(7.5),
+LabelSize:=footnotesize,
+//graphique du haut
+SaveWin(),
+view(-5,5,0.25,5),Width:=6, Arrows:=1,
+SetMatrix([2.5*i,2/pi,2*i]),
+axeX(0,pi/2,Nil,Nil,1,"\pi",2), axeY(0,1),
+Arrows:=0, Color:=red, Width:=8,
+tMin:=-2*pi, tMax:=2*pi, Cartesienne(sin(x)),
+Label(pi*1.65+i,"$f(x)=\sin(x)$"),RestoreWin(),
+//graphique du bas
+SaveWin(), Color:=black,
+view(-5,5,-5,-0.25), SetMatrix([-5.5*i,2,i]),
+Width:=6, Arrows:=1, usecomma:=1,
+axeX([i,0],0.5), axeY([i,0],1,Nil,Nil,1,"a"),
+Arrows:=0, Color:=blue, Width:=8,
+Cartesienne(x^2+1),
+Label(1+4.75*i,"$g(x)=x^2+a$"),
+RestoreWin()
+\end{texgraph}
+\end{demo}
+
+
+\subsection{background}\label{macbackground}
+
+\begin{itemize}
+\item \util \textbf[background()]{background( <fillstyle>, <fillcolor> )}.
+\item \desc permet de remplir le fond de la fenêtre graphique avec le style et la couleur demandée. Cette macro met à
+jour la variable \var{backcolor}.
+\end{itemize}
+
+\subsection{bbox}
+
+\begin{itemize}
+\item \util \textbf[bbox()]{bbox()}.
+\item \desc permet d'ajuster la fenêtre à la "bounding box" autour du dessin courant. Cette macro est destinée à être
+utilisée dans la ligne de commande en bas de la fenêtre principale, et non pas dans un élément graphique.
+\end{itemize}
+
+
+\subsection{centerView}
+
+\begin{itemize}
+\item \util \textbf[centerView()]{centerView( <affixe> )}.
+\item \desc permet de centrer la fenêtre graphique sur le point représenté par \argu{affixe}, sans changer les
+dimensions courantes du graphique. Cette macro est plutôt destinée à être utilisée dans la ligne de commande en bas de
+la fenêtre principale.
+\end{itemize}
+
+\subsection{Cercle}\label{cmdCercle}
+
+\begin{itemize}
+\item \util \textbf[Cercle()]{Cercle( <A>, <r> [, B] )}.
+
+\item \desc trace un cercle de centre \argu{A} et de rayon \argu{r} lorsque le troisième paramètre est omis, sinon c'est
+le cercle défini par les trois points \argu{A}, \argu{r} et \argu{B}.
+
+Pour les macros \textsl{Arc} et \textsl{Cercle}, on peut s'attendre à des surprises dans le résultat final si le
+repère n'est pas orthonormé! Le repère est orthonormé lorsque les variables \var{Xscale} et \var{Yscale} sont égales,
+voir option \Helpref{Paramètres/Fenêtre}{param}.
+\end{itemize}
+
+\begin{demo}{La cycloïde}{cycloide}
+\begin{texgraph}[name=cycloide,export=pgf]
+view(-5,5,-1,3),Marges(0,0,0,0),
+size(7.5), Seg(-5,5),
+for t in [-4,-1.85,0,1.85,3] do
+ M:=t-sin(t)+i*(1-cos(t)),
+ I:=t+i, DotStyle:=cross,
+ Point(I), DotStyle:=bigdot,
+ Point(M), Cercle(I,1), Seg(M,I),
+ Arrows:=1, Arc(M,I,t,0.5,t),
+ Arrows:=0, LineStyle:=dashed,
+ Seg(I,t), LineStyle:=solid
+od,
+Width:=8,Color:=red,
+Courbe( t-sin(t)+i*(1-cos(t)))
+\end{texgraph}
+\end{demo}
+
+\subsection{Clip}
+
+\begin{itemize}
+\item \util \textbf[Clip()]{Clip( <liste> )}.
+\item \desc permet de clipper les éléments graphiques déjà dessinés avec la \argu{liste} qui doit être une courbe fermée
+et simple. La macro peint l'extérieur de la courbe représentée par la \argu{liste}.
+\end{itemize}
+
+\subsection{Dbissec}
+
+\begin{itemize}
+\item \util \textbf[Dbissec()]{Dbissec( <B>, <A>, <C>, <1 ou 2> )}.
+\item \desc dessine la bissectrice de l'angle $\widehat{BAC}$, intérieure si le dernier paramètre vaut $1$ et extérieure
+pour la valeur $2$.
+\end{itemize}
+
+\subsection{Dcarre}
+
+\begin{itemize}
+\item \util \textbf[Dcarre()]{Dcarre( <A>, <B>, <+/-1> [, rayon] )}.
+\item \desc dessine de carré de sommets consécutifs \argu{A} et \argu{B} dans le sens direct si le troisième paramètre
+vaut $1$ (indirect pour $-1$). Si le paramètre \argu{rayon} est présent, alors les \og coins\fg\ de la figure seront
+arrondis par un arc de cercle ayant le rayon mentionné.
+\end{itemize}
+
+
+\subsection{Ddroite}
+
+\begin{itemize}
+\item \util \textbf[Ddroite()]{Ddroite( <A>, <B> )}.
+\item \desc dessine la demi-droite $[A,B)$.
+\end{itemize}
+
+\subsection{Dmed}
+
+\begin{itemize}
+\item \util \textbf[Dmed()]{Dmed( <A>, <B> [, angle droit(0/1)] )}.
+\item \desc dessine la médiatrice du segment $[A,B]$. Si le troisième paramètre vaut $1$ ($0$ par défaut) alors un angle
+droit est dessiné.
+\end{itemize}
+
+
+\subsection{domaine1}
+
+\begin{itemize}
+\item \util \textbf[domaine1()]{domaine1( <f(x)> [, a, b] )}.
+\item \desc dessine la partie du plan comprise entre la courbe Cf, l'axe $Ox$ et les droites $x=a$, $x=b$ si a et b sont
+précisés, sinon $x=$\textsl{tMin} et $x=$\textsl{tMax}.
+\end{itemize}
+
+
+\subsection{domaine2}
+
+\begin{itemize}
+\item \util \textbf[domaine2()]{domaine2( <f(x)>, <g(x)> [, a, b] )}.
+\item \desc dessine la partie du plan comprise entre les courbes Cf, Cg et les droites $x=a$, $x=b$ si a et b sont
+précisés, sinon $x=$\textsl{tMin} et $x=$\textsl{tMax}.
+\end{itemize}
+
+
+\subsection{domaine3}
+
+\begin{itemize}
+\item \util \textbf[domaine3()]{domaine3( <f(x)>, <g(x)> )}.
+\item \desc délimite la partie du plan comprise entre les courbes Cf et Cg avec $x$ dans l'intervalle
+\textsl{[tMin,tMax]}, en recherchant les points d'intersection.
+\end{itemize}
+
+\begin{demo}{Exemple avec domaine1, 2 et 3}{domaines}
+\begin{texgraph}[name=domaines,export=pgf]
+view(-5,5,-4,5),size(7.5),tMin:=-5,
+Axes(-5,1+i,2+2*i), tMax:=-1,
+Cartesienne(sin(x)), tMax:=5,
+Cartesienne(2*cos(x)),tMin:=-3,tMax:=3,
+Cartesienne(x^2), A:=-4.5+(Ymin+1.75)*i,
+FillStyle:=full, FillOpacity:=0.5,FillColor:=green,
+LabelStyle:=left, LabelSize:=footnotesize,
+Dcarre(A+0.25*(-1+i), A+0.25*(1+i), -1),
+Label(A+0.4,"domaine2 sur $[-4\,;\, -1.5]$ "),
+Inc(A,-0.75*i), FillColor:=blue,
+Dcarre(A+0.25*(-1+i), A+0.25*(1+i),-1),
+Label(A+0.4,"domaine3 entre $2\cos(x)$ et $x^2$ "),
+Inc(A,-0.75*i), FillColor:=red,
+Dcarre(A+0.25*(-1+i), A+0.25*(1+i),-1),
+Label(A+0.4,"domaine1 sur $[1.1\,;\, 4]$"),
+FillColor:=red, domaine1(2*cos(x), 1.1, 4),
+ FillColor:=green, domaine2(2*cos(x), sin(x),-4,-1.5),
+FillColor:=blue, domaine3(2*cos(x),x^2),
+Arrows:=2, tangente(2*cos(x),0.5,1.5)
+\end{texgraph}
+\end{demo}
+
+\subsection{Dparallel}
+
+\begin{itemize}
+\item \util \textbf[Dparallel()]{Dparallel( <[A, B]> , <C> )}.
+\item \desc dessine la parallèle à la droite \argu{[A,B]} passant par \argu{C}.
+\end{itemize}
+
+\subsection{Dparallelo}
+
+\begin{itemize}
+\item \util \textbf[Dparallelo()]{Dparallelo( <A>, <B> , <C> [, rayon] )}.
+\item \desc dessine le parallèlogramme de sommets consécutifs \argu{A}, \argu{B} et \argu{C}. Si le paramètre
+\argu{rayon} est présent, alors les \og coins\fg\ de la figure seront arrondis par un arc de cercle ayant le rayon
+mentionné.
+\end{itemize}
+
+
+\subsection{Dperp}
+
+\begin{itemize}
+\item \util \textbf[Dperp()]{Dperp( <[A, B]> , <C> [, angle droit(0/1)] )}.
+\item \desc dessine la perpendiculaire à la droite \argu{[A,B]} passant par \argu{C}. Si le troisième paramètre vaut $1$
+($0$ par défaut) alors un angle droit est dessiné.
+\end{itemize}
+
+\subsection{Dpolyreg}
+
+\begin{itemize}
+\item \util \textbf[Dpolyreg()]{Dpolyreg( <centre> , <sommet>, <nombre de côtés> [, rayon] )}.
+\item \desc dessine le polygône régulier défini par le \argu{centre}, un \argu{sommet} et le \argu{nb de côtés}. Si le
+paramètre \argu{rayon} est présent, alors les \og coins\fg\ de la figure seront arrondis par un arc de cercle ayant le
+rayon mentionné.
+\end{itemize}
+
+\centerline{ou}
+
+\begin{itemize}
+\item \util \textbf[Dpolyreg()]{Dpolyreg( <sommet1>, <sommet2>, <nombre de cotés +sens*i> [, rayon] )}.
+\item \desc dessine le polygône régulier défini par deux sommets consécutifs \argu{sommet1} et \argu{sommet2}, le
+\argu{nb de côtés}, et le \argu{sens} ($1$ pour direct et $-1$ pour indirect). Si le paramètre \argu{rayon} est présent,
+alors les \og coins\fg\ de la figure seront arrondis par un arc de cercle ayant le rayon mentionné.
+\end{itemize}
+
+\subsection{DpqGoneReg}\label{macDpqGoneReg}
+
+\begin{itemize}
+\item \util \textbf[DpqGoneReg()]{DpqGoneReg( <centre> , <sommet>, <[p,q]> )}.
+\item \desc dessine le \argu{p/q}-gône régulier défini par le \argu{centre} et un \argu{sommet}.
+\end{itemize}
+
+\begin{demo}{\textit{DpqGoneReg}: exemple}{pqGoneReg}
+\begin{texgraph}[name=pqGoneReg,export=pgf]
+view(-5,5,-6,6),Marges(0,0,0,0),size(7.5),
+FillStyle:=full, FillColor:=lightpink,
+Color:=blue, Width:=8,
+DpqGoneReg(-2.5+2.5*i,-2.5+0.25*i, [7,3]),
+Label(-2.5+5*i,"[7,3]"),
+DpqGoneReg(2.5+2.5*i,2.5+0.25*i, [7,2]),
+Label(2.5+5*i,"[7,2]"),
+DpqGoneReg(-2.5-2.5*i,-2.5-0.25*i, [7,1]),
+Label(-2.5-5*i,"[7,1]"),
+DpqGoneReg(2.5-2.5*i,2.5-0.25*i, [6,2]),
+Label(2.5-5*i,"[6,2]")
+\end{texgraph}
+\end{demo}
+
+
+\subsection{drawSet}\label{macdrawSet}
+
+\begin{itemize}
+\item \util \textbf[drawSet()]{drawSet( <ensemble> )}.
+\item \desc dessine un ensemble produit par les macros \Helpref{capB}{maccapB}, \Helpref{cupB}{maccupB} ou
+\Helpref{setminusB}{macsetminusB}.
+\end{itemize}
+
+\subsection{Drectangle}
+
+\begin{itemize}
+\item \util \textbf[Drectangle()]{Drectangle( <A>, <B> , <C> [, rayon] )}.
+\item \desc dessine le rectangle de sommets consécutifs \argu{A}, \argu{B}, le côté opposé passant par \argu{C}. Si le
+paramètre \argu{rayon} est présent, alors les \og coins\fg\ de la figure seront arrondis par un arc de cercle ayant le
+rayon mentionné.
+\end{itemize}
+
+
+\subsection{ellipticArc}\label{macellipticArc}
+\begin{itemize}
+\item \util \textbf[ellipticArc()]{ellipticArc( <B>, <A>, <C>, <RX>, <RY>, <sens(+/-1)> [, inclinaison] )}.
+\item \desc dessine un arc d'ellipse de centre \argu{A}, allant de \argu{B} à \argu{C} de rayons \argu{RX} et \argu{RY},
+l'axe portant le rayon \argu{RX} ayant une certaine \argu{inclinaison} par rapport à l'horizontale, celle-ci est en
+degrés et vaut 0 par défaut, le paramètre \argu{sens} indique le sens de rotation, 1 pour le sens trigonométrique.
+\end{itemize}
+
+
+\subsection{flecher}
+
+\begin{itemize}
+\item \util \textbf[flecher()]{flecher( <liste>, <pos1, ..., posN> )}.
+\item \desc dessine des flèches le long de la ligne polygonale \argu{liste}, la position de chaque flèche (pos1, ...)
+est un nombre entre $0$ et $1$ ($0$ pour début de la ligne et $1$ pour fin de ligne), les flèches sont dessinées dans le
+sens de parcourt de la ligne, pour inverser une flèche on ajoute +i à la position.
+\item \exem \co{flecher(Get(Cercle(0,3)), [0,0.5] )}
+\end{itemize}
+
+\subsection{GradDroite}\label{macGradDroite}
+
+\begin{itemize}
+\item \util \textbf[GradDroite()]{GradDroite( <[A, origine + i*posOrigine, etendue]>, <[u, unit]>, <hautDiv>, <subdiv>
+[, poslab, orientation, num, ""texte"", den, firstnum] )}
+\item \desc gradue la droite passant par \argu{A} et dirigée par le vecteur \argu{u} (celui-ci n'est pas forcément
+unitaire), \argu{hautdiv} est la hauteur des graduations en cm, \argu{subdiv} est le nombre de subdivisions par unité.
+
+Paramètres optionnels:
+ \begin{itemize}
+ \item \argu{origin}: indique la graduation de l'origine \argu{A} (0 par défaut),
+ \item \argu{posOrigin}: indique la position du label à l'origine \argu{A}, plusieurs cas:
+ \begin{itemize}
+ \item \argu{posOrigin}=0: pas de label à l'origine,
+ \item \argu{posOrigin}=1: label normal à l'origine (comme les autres)
+ \item \argu{posOrigin}=2: label à l'origine décalé dans le sens du vecteur \argu{u} (valeur par défaut),
+ \item \argu{posOrigin}=-2: label à l'origine décalé dans le sens opposé du vecteur \argu{u}.
+ \end{itemize}
+
+ \item \argu{etendue}: représente l'intervalle des graduations sous forme complexe: \textsl{min+i*max}, le tracé
+de l'axe sera limité à cet intervalle. Si ce paramètre est omis, le tracé occupera la fenêtre.
+ \item \argu{unit}: indique le pas des graduations sur l'axe (1 par défaut), cette valeur doit être positive.
+ \item \argu{poslab} indique la position des labels par rapport à l'axe, ce paramètre prend les valeurs \co{top}
+ou \co{bottom},
+ \item \argu{orientation}: orientation des labels, la valeur $i$ signifie que les labels sont orthogonaux à
+l'axe, sinon l'orientation représente le \var{LabelStyle} (left, right, top, ...),
+ \item chaque graduation est multipliée par la fraction \argu{num/den} (1 par défaut), ajoutée à
+\argu{firstnum/den} (l'origine par défaut) et accompagnée du \argu{"texte"} au numérateur. Pour avoir une virgule comme
+spérateur décimal au lieu du point, il faut mettre la variable \var{usecomma} à la valeur $1$. Cette macro est
+également sensible aux variables \var{dollar} (pour ajouter ou non des \$ autour des labels des graduations), et
+\var{nbdeci} qui fixe le nombre de décimales affichées. Le nombre maximal de
+graduations est fixé par la variable \var{maxGrad} qui vaut $100$ par défaut.
+ \end{itemize}
+
+\item \exem \co{GradDroite([0,1+2*i],[1,0.5], xyticks, 1, bottom, i)}: signifie que la graduation de l'origine sera 1
+avec un label décalé à droite, les graduations iront de 0.5 en 0.5, les labels seront sous l'axe et orthogonaux à l'axe.
+
+\end{itemize}
+
+\subsection{LabelArc}
+
+\begin{itemize}
+\item \util \textbf[LabelArc()]{LabelArc( <B>, <A>, <C>, <R>, <sens>, <"texte">, [, options] )}.
+\item \desc cette macro dessine un arc de cercle de centre \argu{A}, de rayon \argu{R} partant de la droite $(AB)$
+jusqu'à la droite $(AC)$, l'argument facultatif \argu{sens} indique: le sens trigonométrique si sa valeur est 1 (valeur
+par défaut), le sens contraire si valeur est -1. La macro ajoute également le \argu{"texte"}. Le paramètre
+\argu{options} est une liste (facultative) de la forme \textsl{[ option1:= valeur1, ..., optionN:=valeurN ]}, les
+options sont:
+
+ \begin{itemize}
+ \item \opt{labelpos}{inside/outside}: positionnement du label (outside par defaut)),
+ \item \opt{labelsep}{distance en cm}: distance du label à l'arc (0.25cm par défaut).
+ \item \opt{rotation}{nombre}: angle en degrés que fait le label par rapport à l'horizontale ($0$ par défaut).
+ \end{itemize}
+Il est possible dans la liste des options, de modifier des attributs comme \var{Color} par exemple.
+\end{itemize}
+
+
+
+\subsection{LabelAxe}
+
+\begin{itemize}
+\item \util \textbf[LabelAxe()]{LabelAxe( <x ou y>, <affixe>, <label> [, [labelPos,décalage en cm], mark(0/1)] )}.
+\item \desc permet d'ajouter un label sur un des axes \argu{x ou y}, \argu{affixe} désigne l'affixe du point où se fait
+l'ajout, \argu{label} contient le texte à ajouter. Paramètres optionnels, \argu{[labelPos, décalage en cm]} et
+\argu{mark}:
+ \begin{itemize}
+ \item Re(\argu{labelpos})=1 signifie en dessous pour Ox et à droite pour Oy (par défaut pour Ox),
+ \item Re(\argu{labelpos})=2 signifie au dessus pour Ox et à gauche pour Oy (par défaut pour Oy),
+ \item Im(\argu{labelpos})=-1 signifie un décalage sur la gauche pour Ox, vers le bas pour Oy, si le décalage
+n'est pas précisé, il vaut 0.25 cm par défaut,
+ \item Im(\argu{labelpos})=1 signifie un décalage sur la droite pour Ox, vers le haut pour Oy, si le décalage
+n'est pas précisé, il vaut 0.25 cm par défaut,
+ \item Im(\argu{labelpos})=0 signifie pas de décalage (valeur par défaut),
+ \item \argu{mark}: indique si le point doit être marqué (dans le dotsyle courant).
+ \end{itemize}
+\end{itemize}
+
+\subsection{LabelDot}\label{macLabelDot}
+
+\begin{itemize}
+\item \util \textbf[LabelDot()]{LabelDot( <affixe>, <"texte">, <orientation> [, DrawDot, distance] )}.
+\item \desc cette macro affiche un texte à coté du point \argu{affixe}. L'orientation peut être "N" pour nord, "NE" pour
+nord-est ...etc, ou bien une liste de la forme [longueur, direction] où direction est un complexe, dans ce deuxième cas,
+le paramètre optionnel \argu{distance} est ignoré. Le point est également affiché lorsque \argu{DrawDot} vaut $1$ (0 par
+défaut) et on peut redéfinir la \argu{distance} en cm entre le point et le texte (0.25cm par défaut).
+\end{itemize}
+
+\subsection{LabelSeg}
+
+\begin{itemize}
+\item \util \textbf[LabelSeg()]{LabelSeg( <A>, <B>, <"texte">, [, options] )}.
+\item \desc cette macro dessine le segment défini par \argu{A} et \argu{B}, et ajoute le \argu{"texte"}. Le paramètre
+\argu{options} est une liste (facultative) de la forme \textsl{[ option1:= valeur1, ..., optionN:=valeurN ]}, les
+options sont:
+ \begin{itemize}
+ \item \opt{labelpos}{center/top/bottom}: positionnement du label (center par défaut),
+ \item \opt{labelsep}{distance en cm}: distance du label au segment lorsque labelpos vaut top ou bottom (0.25cm
+par défaut).
+ \item \opt{rotation}{nombre}: angle en degrés que fait le label par rapport à l'horizontale (par défaut le label
+est parallèle au segment).
+ \end{itemize}
+Il est possible dans la liste des options, de modifier des attributs comme \var{Color} par exemple.
+\end{itemize}
+
+
+\subsection{markangle}
+
+\begin{itemize}
+\item \util \textbf[markangle()]{markangle( <B>, <A>, <C>, <r>, <n>, <espacement>, <longueur> )}.
+\item \desc même chose que \Helpref{markseg}{cmdmarkseg} mais pour marquer un arc de cercle.
+\end{itemize}
+
+
+\subsection{markseg}\label{cmdmarkseg}
+
+\begin{itemize}
+\item \util \textbf[markseg()]{markseg( <A>, <B>, <n>, <espacement>, <longueur> [, angle] )}.
+\item \desc marque le segment $[A,B]$ avec \argu{n} petits segments, l'\argu{espacement} est en unité graphique, et la
+\argu{longueur} en cm. Le paramètre optionnel \argu{angle} permet de définir en degré l'angle que feront les marques par
+rapport à la droite $(AB)$ (45 degrés par défaut).
+\end{itemize}
+
+
+\subsection{periodic}
+
+\begin{itemize}
+\item \util \textbf[periodic()]{periodic( <f(x)>, <a>, <b> [, divisions, discontinuités] )}.
+\item \desc trace la courbe de la fonction périodique définie par $y=f(x)$ sur la période $[a;b]$, puis translate le
+motif pour couvrir l'intervalle [tMin; tMax]. Les deux paramètres optionnels sont identiques à ceux des courbes
+paramétrées (nombre de divisions et discontinuités).
+\end{itemize}
+
+\begin{demo}{Fonctions périodiques}{periodic}
+\begin{texgraph}[name=periodic,export=pgf]
+view(-5,5,-5,5), size(7.5),
+Axes(0,1+i), Width:=8,
+Color:=red,
+periodic(if t>0 then 4 else 2 fi,-1,1,5,1),
+Color:=blue,
+periodic(2*abs(t)-1,-1,1),
+Color:=magenta,
+periodic(sin(t)-3,-pi/2,pi/2)
+\end{texgraph}
+\end{demo}
+
+\subsection{Rarc}
+
+\begin{itemize}
+\item \util \textbf[Rarc()]{Rarc( <B>, <A>, <C>, <R>, <sens> )}.
+\item \desc comme la macro \Helpref{Arc}{macArc} sauf que l'arc de cercle est rond même si le repère n'est pas
+orthonormé, le rayon \argu{R} est en centimètres.
+\end{itemize}
+
+\subsection{Rcercle}
+
+\begin{itemize}
+\item \util \textbf[Rcercle()]{Rcercle( <A>, <R> )} ou \Mytextbf{Rcercle( <A>, <B>, <C> )}.
+\item \desc dessine un cercle rond même si le repère n'est pas orthonormé. Dans la première forme, le rayon \argu{R} est
+en centimètres.
+\end{itemize}
+
+\subsection{Rellipse}
+
+\begin{itemize}
+\item \util \textbf[Rellipse()]{Rellipse( <O>, <RX>, <RY> [, inclinaison] )}.
+\item \desc comme la commande \Helpref{Ellipse}{cmdEllipse} sauf que celle-ci est insensible au repère écran, les rayons
+sont en centimètres.
+\end{itemize}
+
+\subsection{RellipticArc}
+
+\begin{itemize}
+\item \util \textbf[RellipticArc()]{RellipticArc( <B>, <A>, <C>, <RX>, <RY>, <sens(+/-1)> [, inclinaison] )}.
+\item \desc comme la macro \Helpref{ellipticArc}{macellipticArc} sauf que celle-ci est insensible au repère écran, les
+rayons sont en centimètres.
+\end{itemize}
+
+\subsection{RestoreWin}\label{macRestoreWin}
+
+\begin{itemize}
+\item \util \textbf[RestoreWin()]{RestoreWin()}.
+\item \desc restaure la fenêtre graphique ainsi que la matrice 2D enregistrées lors du dernier appel à la macro
+\Helpref{SaveWin}{macSaveWin}.
+\end{itemize}
+
+\subsection{SaveWin}\label{macSaveWin}
+
+\begin{itemize}
+\item \util \textbf[SaveWin()]{SaveWin()}.
+\item \desc enregistre la fenêtre graphique ainsi que la matrice 2D courantes, sur une pile. Cette macro va de paire
+avec la macro \Helpref{RestoreWin}{macRestoreWin}.
+\item \exem plusieurs graphiques sur un seul: voir \Helpref{cet exemple}{axeXY}.
+\end{itemize}
+
+\subsection{Seg}
+
+\begin{itemize}
+\item \util \textbf[Seg()]{Seg( <A>, <B> )}.
+\item \desc dessine le segment $[A,B]$.
+\end{itemize}
+
+\subsection{set}\label{macset}
+
+\begin{itemize}
+\item \util \textbf[set()]{set( <nom>, <affixe centre> [, options] )}.
+\item \desc dessine un ensemble en forme de patatoïde, \argu{affixe centre} désigne le centre de cet ensemble, et le
+paramètre \argu{nom} est une chaîne contenant le nom de cet ensemble. Le paramètre \argu{options} est une liste
+(facultative) de la forme \textsl{[ option1:= valeur1, ..., optionN:=valeurN ]}, les options sont:
+
+ \begin{itemize}
+ \item \opt{scale}{entier positif}: représente l'échelle (1 par défaut),
+ \item \opt{rotation}{angle en degrés}: permettant d'incliner le dessin (0 degré par défaut),
+ \item \opt{labels}{0/1}: pour afficher ou non le nom de l'ensemble.
+ \item \opt{labelsep}{distance en cm}: distance du label au bord de l'ensemble (0.45cm par défaut)
+ \end{itemize}
+Il est possible dans la liste des options, de modifier des attributs comme \co{LabelStyle} par exemple.
+\item La macro renvoie en résultat la liste des points de la courbe dessinant l'ensemble.
+\end{itemize}
+
+\subsection{setB}\label{macsetB}
+
+\begin{itemize}
+\item \util \textbf[setB()]{setB( <nom>, <affixe centre> [, options] )}.
+\item \desc dessine un ensemble en forme de patatoïde à l'aide de courbes de Bézier, \argu{affixe centre} désigne le
+centre de cet ensemble, et le paramètre \argu{nom} est une chaîne contenant le nom de cet ensemble. Le paramètre
+\argu{options} est une liste (facultative) de la forme \textsl{[ option1:= valeur1, ..., optionN:=valeurN ]}, les
+options sont:
+
+ \begin{itemize}
+ \item \opt{scale}{entier positif}: représente l'échelle (1 par défaut),
+ \item \opt{rotation}{angle en degrés}: permettant d'incliner le dessin (0 degré par défaut),
+ \item \opt{labels}{0/1}: pour afficher ou non le nom de l'ensemble.
+ \item \opt{labelsep}{distance en cm}: distance du label au bord de l'ensemble (0.45cm par défaut)
+ \end{itemize}
+Il est possible dans la liste des options, de modifier des attributs comme \co{LabelStyle} par exemple.
+\item La macro renvoie en résultat la liste des points de contrôle de la courbe représentant l'ensemble. Cette liste
+peut-être utilisée ensuite pour déterminer une intersection (voir \Helpref{capB}{maccapB}), une réunion (voir
+\Helpref{capB}{maccapB}) ou une différence (voir \Helpref{setminusB}{macsetminusB}).
+\end{itemize}
+
+
+\subsection{size}\label{macsize}
+
+\begin{itemize}
+\item \util \textbf[size()]{size( <largeur + i*hauteur> [, ratio(Xscale/Yscale)] )}
+\item \desc permet de fixer les tailles du graphique: \argu{largeur} et \argu{hauteur} (marges incluses) en cm. Si le
+paramètre \argu{hauteur} est nul, alors on considère que hauteur=largeur.
+
+Si le paramètre \argu{ratio} est omis, les échelles sur les deux axes sont calculées pour que la figure entre au plus
+juste dans le cadre fixé, tout en conservant le ratio courant.
+
+Si \argu{ratio} est égal à $0$ alors les échelles sont calculées de manière à obtenir exactement la taille souhaitée (le
+ratio courant n'est donc vraisemblablement pas conservé).
+
+Le repère est orthonormé lorsque le paramètre \argu{ratio} vaut 1.
+
+\Mytextbf{NB}: un appel aux fonctions \textsl{Fenetre} \textsl{Marges} ou à la macro \textsl{view}, modifiera la taille
+du graphique. Il est donc préférable de déterminer les marges et la fenêtre graphique \Mytextbf{avant} de fixer la
+taille.
+
+La largeur d'un graphique est donnée par la formule:
+
+\centerline{\textsl{(Xmax-Xmin)*Xscale+margeG+margeD}}
+
+et la hauteur est donnée par:
+
+\centerline{\textsl{(Ymax-Ymin)*Yscale+margeH+margeB}}
+\end{itemize}
+
+\subsection{suite}
+
+\begin{itemize}
+\item \util \textbf[suite()]{suite( <f(x)>, <u0>, <n> )}.
+\item \desc représentation graphique de la suite définie par $u_{n+1}=f(u_n)$, de premier terme \argu{u0} et jusqu'au
+rang \argu{n}. Cette macro ne représente que les "escaliers".
+\end{itemize}
+
+
+\begin{demo}{Utilisation de la macro suite}{suite}
+\begin{texgraph}[name=suite,export=pgf]
+view(-0.1,1.1,-0.1,1.1),size(7.5),
+Arrows:=1,Axes(0,1/2+i/4),Arrows:=0,
+u0:=0.3,nb:=20, Width:=6,
+Color:=darkseagreen,
+Droite(1,-1,0), Color:=red,
+tMin:=0, tMax:=1,
+Width:=8, Cartesienne(4*x*(1-x)),
+Width:=6, Color:=blue,
+Label(0.5+1.05*i,"$u_{n+1}=4u_n(1-u_n)$"),
+LabelDot(u0, "$u_0$","S",1),
+suite(4*x*(1-x), u0,nb)
+\end{texgraph}
+\end{demo}
+
+
+
+\subsection{tangente}
+
+\begin{itemize}
+\item \util \textbf[tangente()]{tangente( <f(x)>, <x0> [, longueur] )}.
+\item \desc trace la tangente à la courbe cartésienne $y=f(x)$ au point d'abscisse
+\argu{x0}, on trace un segment de la \argu{longueur} indiquée (en cm) ou la droite entière si la longueur est omise.
+\end{itemize}
+
+
+\subsection{tangenteP}
+
+\begin{itemize}
+\item \util \textbf[tangenteP()]{tangenteP( <f(t)>, <t0> [,longueur] )}.
+\item \desc trace la tangente à la courbe paramétrée par \argu{f(t)} au point de paramètre \argu{t0}, on trace un
+segment de la \argu{longueur} indiquée (en cm) ou la droite entière si la longueur est omise.
+\end{itemize}
+
+\subsection{view}
+
+\begin{itemize}
+\item \util \textbf[view()]{view( <xmin>, <xmax>, <ymin>, <ymax> )} ou \Mytextbf{view( <[xmin+i*ymin, xmax+i*ymax]> )}
+\item \desc change la fenêtre graphique courante et conserve l'échelle. Attention: ceci change la taille du graphique,
+celle-ci peut-être modifiée avec la macro \Helpref{size}{macsize}.
+\item \exem dans un élément graphique utilisateur, la commande \co{[ view(-4, 4,-3, 3), size(12) ]} va fixer la fenêtre
+graphique à $[-4,4]\times[-3,3]$, et la taille du graphique à 12cm en conservant le ratio courant. Il est important de
+respecter l'ordre (view avant size).
+\end{itemize}
+
+
+\subsection{wedge}
+
+\begin{itemize}
+\item \util \textbf[wedge()]{wedge( <B>, <A>, <C>, <r> )}
+\item \desc dessine le secteur angulaire défini par l'angle $\widehat{BAC}$ avec un rayon \argu{r}.
+\end{itemize}
+
+\subsection{zoom}
+
+\begin{itemize}
+\item \util \textbf[zoom()]{zoom( <+/-1> )}
+\item \desc permet de faire un zoom arrière/avant.
+\end{itemize}