1 <h1 id=
"fonctions-et-macros-graphiques">Fonctions et macros graphiques
</h1>
2 <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>
3 <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>
4 <h2 id=
"fonctions-graphiques-prédéfinies">Fonctions graphiques pr
éd
éfinies
</h3>
6 <p><argument
>: signifie que l
’argument est
<strong>obligatoire
</strong>.
</p>
7 <p>[, argument]: signifie que l
’argument est
<strong>facultatif
</strong>.
</p>
8 <h3 id=
"Axes">Axes
</h3>
10 <li><p><b>Axes(
<origine
>,
<graduationX + i*graduationY
> [, position label origine] )
</b>.
</p></li>
11 <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>
12 <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>
14 <li><p><span class=
"math">0</span>: le label n
’appara
ît pas,
</p></li>
15 <li><p><span class=
"math">1</span>: le label est affich
é comme celui des autres graduations,
</p></li>
16 <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>
18 <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>
22 <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>
25 <h3 id=
"poly-bezier">(Poly-)Bezier
</h3>
27 <li><p><b>Bezier(
<liste de points
> )
</b>.
</p></li>
28 <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>
30 <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>
31 <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>
32 <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>
34 <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>
38 <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>
41 <h3 id=
"Cartesienne">Cartesienne
</h3>
43 <li><p><b>Cartesienne(
<f(x)
> [, n,
1] )
</b>.
</p></li>
44 <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>
48 <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>
51 <h3 id=
"Courbe">Courbe
</h3>
53 <li><p><b>Courbe(
<f(t)
> [, n,
1] )
</b>.
</p></li>
54 <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>
55 <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>
57 <h3 id=
"Droite">Droite
</h3>
59 <li><p><b>Droite(
<A
>,
<B
> [, C] )
</b>.
</p></li>
60 <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>
64 <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>
67 <h3 id=
"Ellipse">Ellipse
</h3>
69 <li><p><b>Ellipse(
<A
>,
<Rx
>,
<Ry
> [, inclinaison] )
</b>.
</p></li>
70 <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>
74 <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>
77 <h3 id=
"EllipticArc">EllipticArc
</h3>
79 <li><p><b>EllipticArc(
<B
>,
<A
>,
<C
>,
<Rx
>,
<Ry
> [, sens] )
</b>.
</p></li>
80 <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>
84 <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>
87 <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>
88 <h3 id=
"EquaDif">EquaDif
</h3>
90 <li><p><b>EquaDif(
<f(t,x,y)
>,
<t0
>,
<x0 + i*y0
> [, mode] )
</b>.
</p></li>
91 <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>
93 <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>
94 <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>
95 <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>
97 <p>C
’est la m
éthode de {Runge-Kutta} d
’ordre
4 qui est utilis
ée.
</p></li>
98 <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}
99 X'\\Y'\end{pmatrix}=\begin{pmatrix}
0&1\\t
&1\end{pmatrix}\begin{pmatrix}X\\Y\end{pmatrix}+
100 \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>
104 <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>
107 <h3 id=
"Grille">Grille
</h3>
109 <li><p><b>Grille(
<origine
>,
<graduationX + i*graduationY
> )
</b>.
</p></li>
110 <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>
111 <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>
113 <h3 id=
"Implicit">Implicit
</h3>
115 <li><p><b>Implicit(
<f(x,y)
> [, n, m] )
</b>.
</p></li>
116 <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>
120 <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>
123 <h3 id=
"Label">Label
</h3>
125 <li><p><b>Label(
<affixe1
>,
<texte1
>,...,
<affixeN
>,
<texteN
> )
</b>.
</p></li>
126 <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>
130 <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>
133 <h3 id=
"Ligne">Ligne
</h3>
135 <li><p><b>Ligne(
<liste
>,
<ferm
ée
> [, rayon] )
</b>.
</p></li>
136 <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>
140 <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>
143 <h3 id=
"Path">Path
</h3>
145 <li><p><b>Path(
<liste
> [, ferm
é (
0/
1)]
</b></p></li>
146 <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>
148 <li><p><strong>line
</strong>: relie les points par une ligne polygonale,
</p></li>
149 <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>
150 <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>
151 <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>
152 <li><p><strong>curve
</strong>: relie les points par une spline cubique naturelle.
</p></li>
153 <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>
154 <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>
155 <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>
156 <li><p><strong>move
</strong>: indique un d
éplacement sans trac
é.
</p></li>
157 <li><p><strong>closepath
</strong>: ferme la composante en cours.
</p></li>
159 <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>
160 <li><p><u>Exemple(s)
</u> :
</p></li>
164 <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>
167 <h3 id=
"Point">Point
</h3>
169 <li><p><b>Point(
<A1
>, ...,
<An
> )
</b>.
</p></li>
170 <li><p><u>Description
</u> : repr
ésente le nuage de points
<<em>A1
</em>> ...
<<em>An
</em>>.
</p></li>
174 <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>
177 <h3 id=
"Polaire">Polaire
</h3>
179 <li><p><b>Polaire(
<r(t)
> [, n,
0/
1] )
</b>.
</p></li>
180 <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>
184 <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>
187 <h3 id=
"Spline">Spline
</h3>
189 <li><p><b>Spline(
<V0
>,
<A0
>,...,
<An
>,
<Vn
> )
</b>.
</p></li>
190 <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>
194 <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>
197 <h2 id=
"commandes-de-dessin-bitmap">Commandes de dessin bitmap
</h3>
198 <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>
199 <h3 id=
"DelBitmap">DelBitmap
</h3>
201 <li><p><b>DelBitmap()
</b>.
</p></li>
202 <li><p><u>Description
</u> : d
étruit le bitmap en cours.
</p></li>
204 <h3 id=
"MaxPixels">MaxPixels
</h3>
206 <li><p><b>MaxPixels()
</b>.
</p></li>
207 <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>
209 <h3 id=
"NewBitmap">NewBitmap
</h3>
211 <li><p><b>NewBitmap( [fond] )
</b>.
</p></li>
212 <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>
214 <h3 id=
"Pixel">Pixel
</h3>
216 <li><p><b>Pixel(
<liste
> )
</b>.
</p></li>
217 <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>
219 <h3 id=
"Pixel2Scr">Pixel2Scr
</h3>
221 <li><p><b>Pixel2Scr(
<affixe
> )
</b>.
</p></li>
222 <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>
224 <h3 id=
"Scr2Pixel">Scr2Pixel
</h3>
226 <li><p><b>Scr2Pixel(
<affixe
> )
</b>.
</p></li>
227 <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>
228 <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>
232 <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>
235 <h2 id=
"macros-graphiques-de-texgraph.mac">Macros graphiques de TeXgraph.mac
</h3>
236 <h3 id=
"angleD">angleD
</h3>
238 <li><p><b>angleD(
<B
>,
<A
>,
<C
>,
<r
> )
</b>.
</p></li>
239 <li><p><u>Description
</u> : dessine l
’angle
<span class=
"math">$\widehat{BAC}$
</span> avec un parall
èlogramme de cot
é r.
</p></li>
241 <h3 id=
"Arc">Arc
</h3>
243 <li><p><b>Arc(
<B
>,
<A
>,
<C
>,
<R
> [, sens] )
</b>.
</p></li>
244 <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>
248 <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>
251 <h3 id=
"arcBezier">arcBezier
</h3>
253 <li><p><b>arcBezier(
<B
>,
<A
>,
<C
>,
<r
> [,sens] )
</b>.
</p></li>
254 <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>
256 <h3 id=
"axes-1">axes
</h3>
258 <li><p><b>axes(
<[origine, etendueX, etendueY]
>,
<gradX+i*gradY
> [, subdivX+i*subdivY, posOriginX+i*posOriginY, num,
"texte
", den, firstnum] )
</b>.
</p></li>
259 <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>
260 <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>
261 <li><p>Le param
ètre optionnel
<<em>posOriginX+i*posOriginY
</em>> permet de positionner le label de l
’origine:
</p>
263 <li><p><<em>posOriginX
</em>>=
0: pas de label
à l
’origine (idem pour
<<em>posOriginY
</em>>=
0),
</p></li>
264 <li><p><<em>posOriginX
</em>>=
1: label normal
à l
’origine (idem pour
<<em>posOriginY
</em>>=
1),,
</p></li>
265 <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>
266 <li><p><<em>posOriginX
</em>>=-
2 label d
écal
é à gauche de l
’origine et en bas pour
<<em>posOriginY
</em>>=-
2.
</p></li>
268 <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>
269 <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>
271 <h3 id=
"axeX">axeX
</h3>
273 <li><p><b>axeX(
<[origine, posOrigine, etendue]
>,
<Xpas
> [, Subdiv, labelPos , num,
""texte
"", den, firstnum] )
</b>.
</p></li>
274 <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>
275 <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>
276 <li><p>Les param
ètres optionnels
<<em>posOrigine
</em>> et
<<em>labelpos
</em>> permettent de positionner les labels:
</p>
278 <li><p><<em>posOrigine
</em>>=
0: pas de label
à l
’origine,
</p></li>
279 <li><p><<em>posOrigine
</em>>=
1: label normal
à l
’origine,
</p></li>
280 <li><p><<em>posOrigine
</em>>=
2: label d
écal
é à droite
à l
’origine (valeur par d
éfaut),
</p></li>
281 <li><p><<em>posOrigine
</em>>=-
2 label d
écal
é à gauche
à l
’origine,
</p></li>
282 <li><p><<em>labelPos
</em>>=
0 : pas de label du tout,
</p></li>
283 <li><p><<em>Re(labelpos)
</em>>=top: labels au-dessus,
</p></li>
284 <li><p>Re(
<<em>labelPos
</em>>)=bottom : labels en-dessous (valeur par d
éfaut),
</p></li>
285 <li><p>Im(
<<em>Im(labelPos
</em>>)=
1: labels orthogonaux
à l
’axe.
</p></li>
288 <h3 id=
"axeY">axeY
</h3>
290 <li><p><b>axeY(
<[origine, posOrigine, etendue]
>,
<Ypas
> [, Subdiv, labelPos , num,
""texte
"", den, firstnum] )
</b>.
</p></li>
291 <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>
292 <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>
293 <li><p>Les param
ètres optionnels
<<em>posOrigine
</em>> et
<<em>labelpos
</em>> permettent de positionner les labels:
</p>
295 <li><p><<em>posOrigine
</em>>=
0: pas de label
à l
’origine,
</p></li>
296 <li><p><<em>posOrigine
</em>>=
1: label normal
à l
’origine,
</p></li>
297 <li><p><<em>posOrigine
</em>>=
2: label d
écal
é vers le haut
à l
’origine (valeur par d
éfaut),
</p></li>
298 <li><p><<em>posOrigine
</em>>=-
2 label d
écal
é vers le bas
à l
’origine,
</p></li>
299 <li><p><<em>labelPos
</em>>=
0 : pas de label du tout,
</p></li>
300 <li><p><<em>Re(labelpos)
</em>>=left: labels
à gauche de l
’axe (valeur par d
éfaut),
</p></li>
301 <li><p>Re(
<<em>labelPos
</em>>=right : labels
à droite de l
’axe,
</p></li>
302 <li><p>Im(
<<em>labelPos
</em>>)=
1: labels orthogonaux
à l
’axe.
</p></li>
307 <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>
310 <h3 id=
"background">background
</h3>
312 <li><p><b>background(
<fillstyle
>,
<fillcolor
> )
</b>.
</p></li>
313 <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>
315 <h3 id=
"bbox">bbox
</h3>
317 <li><p><b>bbox()
</b>.
</p></li>
318 <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>
320 <h3 id=
"centerView">centerView
</h3>
322 <li><p><b>centerView(
<affixe
> )
</b>.
</p></li>
323 <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>
325 <h3 id=
"Cercle">Cercle
</h3>
327 <li><p><b>Cercle(
<A
>,
<r
> [, B] )
</b>.
</p></li>
328 <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>
329 <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>
333 <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>
336 <h3 id=
"Clip">Clip
</h3>
338 <li><p><b>Clip(
<liste
> )
</b>.
</p></li>
339 <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>
341 <h3 id=
"Dbissec">Dbissec
</h3>
343 <li><p><b>Dbissec(
<B
>,
<A
>,
<C
>,
<1 ou
2> )
</b>.
</p></li>
344 <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>
346 <h3 id=
"Dcarre">Dcarre
</h3>
348 <li><p><b>Dcarre(
<A
>,
<B
>,
<+/-
1> [, rayon] )
</b>.
</p></li>
349 <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>
351 <h3 id=
"Ddroite">Ddroite
</h3>
353 <li><p><b>Ddroite(
<A
>,
<B
> )
</b>.
</p></li>
354 <li><p><u>Description
</u> : dessine la demi-droite
<span class=
"math">[
<em>A
</em>,
 <em>B
</em>)
</span>.
</p></li>
356 <h3 id=
"Dmed">Dmed
</h3>
358 <li><p><b>Dmed(
<A
>,
<B
> [, angle droit(
0/
1)] )
</b>.
</p></li>
359 <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>
361 <h3 id=
"domaine1">domaine1
</h3>
363 <li><p><b>domaine1(
<f(x)
> [, a, b] )
</b>.
</p></li>
364 <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>
366 <h3 id=
"domaine2">domaine2
</h3>
368 <li><p><b>domaine2(
<f(x)
>,
<g(x)
> [, a, b] )
</b>.
</p></li>
369 <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>
371 <h3 id=
"domaine3">domaine3
</h3>
373 <li><p><b>domaine3(
<f(x)
>,
<g(x)
> )
</b>.
</p></li>
374 <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>
378 <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>
381 <h3 id=
"Dparallel">Dparallel
</h3>
383 <li><p><b>Dparallel(
<[A, B]
> ,
<C
> )
</b>.
</p></li>
384 <li><p><u>Description
</u> : dessine la parall
èle
à la droite
<<em>[A,B]
</em>> passant par
<<em>C
</em>>.
</p></li>
386 <h3 id=
"Dparallelo">Dparallelo
</h3>
388 <li><p><b>Dparallelo(
<A
>,
<B
> ,
<C
> [, rayon] )
</b>.
</p></li>
389 <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>
391 <h3 id=
"Dperp">Dperp
</h3>
393 <li><p><b>Dperp(
<[A, B]
> ,
<C
> [, angle droit(
0/
1)] )
</b>.
</p></li>
394 <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>
396 <h3 id=
"Dpolyreg">Dpolyreg
</h3>
398 <li><p><b>Dpolyreg(
<centre
> ,
<sommet
>,
<nombre de c
ôt
és
> [, rayon] )
</b>.
</p></li>
399 <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>
401 <p><div style=
"text-align:center">ou
</div></p>
403 <li><p><b>Dpolyreg(
<sommet1
>,
<sommet2
>,
<nombre de cot
és +sens*i
> [, rayon] )
</b>.
</p></li>
404 <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>
406 <h3 id=
"DpqGoneReg">DpqGoneReg
</h3>
408 <li><p><b>DpqGoneReg(
<centre
> ,
<sommet
>,
<[p,q]
> )
</b>.
</p></li>
409 <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>
413 <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>
416 <h3 id=
"drawSet">drawSet
</h3>
418 <li><p><b>drawSet(
<ensemble
> )
</b>.
</p></li>
419 <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>
421 <h3 id=
"Drectangle">Drectangle
</h3>
423 <li><p><b>Drectangle(
<A
>,
<B
> ,
<C
> [, rayon] )
</b>.
</p></li>
424 <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>
426 <h3 id=
"ellipticarc-1">ellipticArc
</h3>
428 <li><p><b>ellipticArc(
<B
>,
<A
>,
<C
>,
<RX
>,
<RY
>,
<sens(+/-
1)
> [, inclinaison] )
</b>.
</p></li>
429 <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>
431 <h3 id=
"flecher">flecher
</h3>
433 <li><p><b>flecher(
<liste
>,
<pos1, ..., posN
> )
</b>.
</p></li>
434 <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>
435 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">flecher(Get(Cercle(
0,
3)), [
0,
0.5] )
</span></p></li>
437 <h3 id=
"GradDroite">GradDroite
</h3>
439 <li><p><b>GradDroite(
<[A, origine + i*posOrigine, etendue]
>,
<[u, unit]
>,
<hautDiv
>,
<subdiv
> [, poslab, orientation, num,
""texte
"", den, firstnum] )
</b></p></li>
440 <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>
441 <p>Param
ètres optionnels:
</p>
443 <li><p><<em>origin
</em>>: indique la graduation de l
’origine
<<em>A
</em>> (
0 par d
éfaut),
</p></li>
444 <li><p><<em>posOrigin
</em>>: indique la position du label
à l
’origine
<<em>A
</em>>, plusieurs cas:
</p>
446 <li><p><<em>posOrigin
</em>>=
0: pas de label
à l
’origine,
</p></li>
447 <li><p><<em>posOrigin
</em>>=
1: label normal
à l
’origine (comme les autres)
</p></li>
448 <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>
449 <li><p><<em>posOrigin
</em>>=-
2: label
à l
’origine d
écal
é dans le sens oppos
é du vecteur
<<em>u
</em>>.
</p></li>
451 <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>
452 <li><p><<em>unit
</em>>: indique le pas des graduations sur l
’axe (
1 par d
éfaut), cette valeur doit
être positive.
</p></li>
453 <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>
454 <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>
455 <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>
457 <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>
459 <h3 id=
"LabelArc">LabelArc
</h3>
461 <li><p><b>LabelArc(
<B
>,
<A
>,
<C
>,
<R
>,
<sens
>,
<"texte
">, [, options] )
</b>.
</p></li>
462 <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>
464 <li><p><span style=
"color:blue">labelpos :=
< inside/outside
></span>: positionnement du label (outside par defaut)),
</p></li>
465 <li><p><span style=
"color:blue">labelsep :=
< distance en cm
></span>: distance du label
à l
’arc (
0.25cm par d
éfaut).
</p></li>
466 <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>
468 <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>
470 <h3 id=
"LabelAxe">LabelAxe
</h3>
472 <li><p><b>LabelAxe(
<x ou y
>,
<affixe
>,
<label
> [, [labelPos,d
écalage en cm], mark(
0/
1)] )
</b>.
</p></li>
473 <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>
475 <li><p>Re(
<<em>labelpos
</em>>)=
1 signifie en dessous pour Ox et
à droite pour Oy (par d
éfaut pour Ox),
</p></li>
476 <li><p>Re(
<<em>labelpos
</em>>)=
2 signifie au dessus pour Ox et
à gauche pour Oy (par d
éfaut pour Oy),
</p></li>
477 <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>
478 <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>
479 <li><p>Im(
<<em>labelpos
</em>>)=
0 signifie pas de d
écalage (valeur par d
éfaut),
</p></li>
480 <li><p><<em>mark
</em>>: indique si le point doit
être marqu
é (dans le dotsyle courant).
</p></li>
483 <h3 id=
"LabelDot">LabelDot
</h3>
485 <li><p><b>LabelDot(
<affixe
>,
<"texte
">,
<orientation
> [, DrawDot, distance] )
</b>.
</p></li>
486 <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>
488 <h3 id=
"LabelSeg">LabelSeg
</h3>
490 <li><p><b>LabelSeg(
<A
>,
<B
>,
<"texte
">, [, options] )
</b>.
</p></li>
491 <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>
493 <li><p><span style=
"color:blue">labelpos :=
< center/top/bottom
></span>: positionnement du label (center par d
éfaut),
</p></li>
494 <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>
495 <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>
497 <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>
499 <h3 id=
"markangle">markangle
</h3>
501 <li><p><b>markangle(
<B
>,
<A
>,
<C
>,
<r
>,
<n
>,
<espacement
>,
<longueur
> )
</b>.
</p></li>
502 <li><p><u>Description
</u> : m
ême chose que
<a href=
"#markseg">markseg
</a> mais pour marquer un arc de cercle.
</p></li>
504 <h3 id=
"markseg">markseg
</h3>
506 <li><p><b>markseg(
<A
>,
<B
>,
<n
>,
<espacement
>,
<longueur
> [, angle] )
</b>.
</p></li>
507 <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>
509 <h3 id=
"periodic">periodic
</h3>
511 <li><p><b>periodic(
<f(x)
>,
<a
>,
<b
> [, divisions, discontinuit
és] )
</b>.
</p></li>
512 <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>
516 <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>
519 <h3 id=
"Rarc">Rarc
</h3>
521 <li><p><b>Rarc(
<B
>,
<A
>,
<C
>,
<R
>,
<sens
> )
</b>.
</p></li>
522 <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>
524 <h3 id=
"Rcercle">Rcercle
</h3>
526 <li><p><b>Rcercle(
<A
>,
<R
> )
</b> ou
<strong>Rcercle(
<A
>,
<B
>,
<C
> )
</strong>.
</p></li>
527 <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>
529 <h3 id=
"Rellipse">Rellipse
</h3>
531 <li><p><b>Rellipse(
<O
>,
<RX
>,
<RY
> [, inclinaison] )
</b>.
</p></li>
532 <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>
534 <h3 id=
"RellipticArc">RellipticArc
</h3>
536 <li><p><b>RellipticArc(
<B
>,
<A
>,
<C
>,
<RX
>,
<RY
>,
<sens(+/-
1)
> [, inclinaison] )
</b>.
</p></li>
537 <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>
539 <h3 id=
"RestoreWin">RestoreWin
</h3>
541 <li><p><b>RestoreWin()
</b>.
</p></li>
542 <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>
544 <h3 id=
"SaveWin">SaveWin
</h3>
546 <li><p><b>SaveWin()
</b>.
</p></li>
547 <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>
548 <li><p><u>Exemple(s)
</u> : plusieurs graphiques sur un seul: voir
<a href=
"#axeXY">cet exemple
</a>.
</p></li>
550 <h3 id=
"Seg">Seg
</h3>
552 <li><p><b>Seg(
<A
>,
<B
> )
</b>.
</p></li>
553 <li><p><u>Description
</u> : dessine le segment
<span class=
"math">[
<em>A
</em>,
 <em>B
</em>]
</span>.
</p></li>
555 <h3 id=
"set">set
</h3>
557 <li><p><b>set(
<nom
>,
<affixe centre
> [, options] )
</b>.
</p></li>
558 <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>
560 <li><p><span style=
"color:blue">scale :=
< entier positif
></span>: repr
ésente l
’échelle (
1 par d
éfaut),
</p></li>
561 <li><p><span style=
"color:blue">rotation :=
< angle en degr
és
></span>: permettant d
’incliner le dessin (
0 degr
é par d
éfaut),
</p></li>
562 <li><p><span style=
"color:blue">labels :=
< 0/
1 ></span>: pour afficher ou non le nom de l
’ensemble.
</p></li>
563 <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>
565 <p>Il est possible dans la liste des options, de modifier des attributs comme
<span style=
"color:red">LabelStyle
</span> par exemple.
</p></li>
566 <li><p>La macro renvoie en r
ésultat la liste des points de la courbe dessinant l
’ensemble.
</p></li>
568 <h3 id=
"setB">setB
</h3>
570 <li><p><b>setB(
<nom
>,
<affixe centre
> [, options] )
</b>.
</p></li>
571 <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>
573 <li><p><span style=
"color:blue">scale :=
< entier positif
></span>: repr
ésente l
’échelle (
1 par d
éfaut),
</p></li>
574 <li><p><span style=
"color:blue">rotation :=
< angle en degr
és
></span>: permettant d
’incliner le dessin (
0 degr
é par d
éfaut),
</p></li>
575 <li><p><span style=
"color:blue">labels :=
< 0/
1 ></span>: pour afficher ou non le nom de l
’ensemble.
</p></li>
576 <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>
578 <p>Il est possible dans la liste des options, de modifier des attributs comme
<span style=
"color:red">LabelStyle
</span> par exemple.
</p></li>
579 <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>
581 <h3 id=
"size">size
</h3>
583 <li><p><b>size(
<largeur + i*hauteur
> [, ratio(Xscale/Yscale)] )
</b></p></li>
584 <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>
585 <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>
586 <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>
587 <p>Le rep
ère est orthonorm
é lorsque le param
ètre
<<em>ratio
</em>> vaut
1.
</p>
588 <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>
589 <p>La largeur d
’un graphique est donn
ée par la formule:
</p>
590 <p><div style=
"text-align:center"><span style=
"font-style:italic">(Xmax-Xmin)*Xscale+margeG+margeD
</span></div></p>
591 <p>et la hauteur est donn
ée par:
</p>
592 <p><div style=
"text-align:center"><span style=
"font-style:italic">(Ymax-Ymin)*Yscale+margeH+margeB
</span></div></p></li>
594 <h3 id=
"suite">suite
</h3>
596 <li><p><b>suite(
<f(x)
>,
<u0
>,
<n
> )
</b>.
</p></li>
597 <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>
601 <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>
604 <h3 id=
"tangente">tangente
</h3>
606 <li><p><b>tangente(
<f(x)
>,
<x0
> [, longueur] )
</b>.
</p></li>
607 <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>
609 <h3 id=
"tangenteP">tangenteP
</h3>
611 <li><p><b>tangenteP(
<f(t)
>,
<t0
> [,longueur] )
</b>.
</p></li>
612 <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>
614 <h3 id=
"view">view
</h3>
616 <li><p><b>view(
<xmin
>,
<xmax
>,
<ymin
>,
<ymax
> )
</b> ou
<strong>view(
<[xmin+i*ymin, xmax+i*ymax]
> )
</strong></p></li>
617 <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>
618 <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>
620 <h3 id=
"wedge">wedge
</h3>
622 <li><p><b>wedge(
<B
>,
<A
>,
<C
>,
<r
> )
</b></p></li>
623 <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>
625 <h3 id=
"zoom">zoom
</h3>
627 <li><p><b>zoom(
<+/-
1> )
</b></p></li>
628 <li><p><u>Description
</u> : permet de faire un zoom arri
ère/avant.
</p></li>
630 <div class=
"footnotes">
633 <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>