1 <h1 id=
"liste-des-commandes">Liste des commandes
</h1>
3 <p><argument
>: signifie que l
’argument est
<strong>obligatoire
</strong>.
</p>
4 <p>[argument]: signifie que l
’argument est
<strong>facultatif
</strong>.
</p>
5 <h2 id=
"Args">Args
</h3>
7 <li><p><b>Args(
<entier
> )
</b>.
</p></li>
8 <li><p><u>Description
</u> : cette fonction n
’a d
’effet que dans une macro, elle
évalue et renvoie l
’argument num
éro
<<em>entier
</em>> avec lequel la macro a
ét
é appel
ée. Hors de ce contexte, elle renvoie la valeur
<em>Nil
</em>. Voir
également la commande
<a href=
"#StrArgs">StrArgs
</a></p></li>
9 <li><p><u>Exemple(s)
</u> : Voir la fonction
<a href=
"#Nargs">Nargs
</a>.
</p></li>
11 <h2 id=
"Assign">Assign
</h3>
13 <li><p><b>Assign(
<expression
>,
<variable
>,
<valeur
> )
</b>.
</p></li>
14 <li><p><u>Description
</u> : cette fonction
évalue
<<em>valeur
</em>> et l
’affecte
à la variable nomm
ée
<<em>variable
</em>> dans
<<em>expression
</em>><sup><a href=
"#fn1" class=
"footnoteRef" id=
"fnref1">1</a></sup>. La fonction
<em>Assign
</em> renvoie la valeur
<em>Nil
</em>. Cette fonction est utile dans l
’écriture de macros prenant une expression comme param
ètre et qui doivent l
’évaluer.
</p></li>
15 <li><p><u>Exemple(s)
</u> : voici une macro
<span style=
"color:red">Bof
</span> qui prend une fonction f(t) en param
ètre et qui calcule la liste
<span class=
"math">[
<em>f
</em>(
0),
 <em>f
</em>(
1),
 .
 .
 .
 ,
 <em>f
</em>(
5)]
</span>:
</p></li>
17 <p><div style=
"text-align:center">{for $k from
0 to
5 do Assign(%
1,t,k), %
1 od}
</div></p>
18 <p>%
1 repr
ésente le premier param
ètre de la macro (c
’est
à dire f(t)), la boucle: pour k allant de
0 à 5 elle ex
écute la commande [Assign(%
1, t, k), %
1], celle-ci assigne la valeur de k
à la variable
<span class=
"math"><em>t
</em></span> dans l
’expression %
1, puis
évalue %
1. L
’ex
écution de
<span style=
"color:red">Bof(t^
2)
</span> donne:
<span style=
"color:magenta">[
0,
1,
4,
9,
16,
25]
</span>. L
’ex
écution de
<span style=
"color:red">Bof(x^
2)
</span> donne
<em>Nil
</em>.
</p>
19 <h2 id=
"Attributs">Attributs
</h3>
21 <li><p><b>Attributs()
</b>.
</p></li>
22 <li><p><u>Description
</u> : cette fonction ouvre la fen
être permettant de modifier les attributs d
’un
él
ément graphique. Cette fonction renvoie la valeur
1 si l
’utilisateur a choisi
<em>OK
</em>, elle renvoie la valeur
0 s
’il a choisi
<em>Cancel
</em>. Si l
’utilisateur a choisi
<em>OK
</em>, alors les variables globales correspondant aux attributs sont modifi
ées en cons
équence.
</p></li>
24 <h2 id=
"Border">Border
</h3>
26 <li><p><b>Border(
<0/
1> )
</b></p></li>
27 <li><p><u>Description
</u> : cette fonction d
étermine si un cadre doit
être dessin
é ou non autour des marges du graphique dans les exportations. Lorsque la valeur de l
’argument est nulle (valeur par d
éfaut), le cadre n
’est pas dessin
é.
</p>
28 <p>Lorsque l
’argument est vide, cette fonction renvoie l
’état de la bordure
à l
’exportation (
0 ou
1). Sinon, elle renvoie la valeur
<em>Nil
</em>.
</p></li>
30 <h2 id=
"ChangeAttr">ChangeAttr
</h3>
32 <li><p><b>ChangeAttr(
<element1
>, ...,
<elementN
> )
</b></p></li>
33 <li><p><u>Description
</u> : cette fonction permet de modifier les attributs des
él
éments graphiques
<<em>element1
</em>>, ...,
<<em>elementN
</em>>, en leur affectant la valeur des attributs en cours. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
35 <h2 id=
"Clip2D">Clip2D
</h3>
37 <li><p><b>Clip2D(
<ligne polygonale
>,
<contour convexe
> [, close(
0/
1) ] )
</b>.
</p></li>
38 <li><p><u>Description
</u> : cette fonction clippe la
<<em>ligne polygonale
</em>> qui doit
être une variable contenant une liste de complexes, avec le
<<em>contour convexe
</em>>, qui est lui aussi une liste de complexes. La fonction calcule la ligne polygonale qui en r
ésulte modifie la variable
<<em>ligne polygonale
</em>> en cons
équence, le dernier agument
<<em>close
</em>> (
<span class=
"math">0</span> par d
éfaut) permet de pr
éciser si la
<<em>ligne polygonale
</em>> doit
être referm
ée ou non. La fonction renvoie
<em>Nil
</em>.
</p></li>
40 <h2 id=
"CloseFile">CloseFile
</h3>
42 <li><p><b>CloseFile()
</b>.
</p></li>
43 <li><p><u>Description
</u> : cette fonction permet de fermer le fichier ouvert par la commande
<a href=
"#OpenFile">OpenFile
</a>.
</p></li>
45 <h2 id=
"ComposeMatrix">ComposeMatrix
</h3>
47 <li><p><b>ComposeMatrix(
<[z1, z2, z3]
> )
</b></p></li>
48 <li><p><u>Description
</u> : cette fonction permet de composer la matrice courante (celle-ci affecte tous les
él
éments graphiques sauf les axes et les grilles dans la version actuelle) avec la matrice
<<em>[z1, z2, z3]
</em>>. Cette matrice repr
ésente l
’expression analytique d
’une application affine du plan, c
’est une liste de trois complexes:
<span class=
"math"><em>z
</em>1</span> qui est l
’affixe du vecteur de translation,
<span class=
"math"><em>z
</em>2</span> qui est l
’affixe du premier vecteur colonne de la matrice de la partie lin
éaire dans la base (
1,i), et
<span class=
"math"><em>z
</em>3</span> qui est l
’affixe du deuxi
ème vecteur colonne de la matrice de la partie lin
éaire. Par exemple, la matrice de l
’identit
é s
’écrit ainsi: [
0,
1,i] (c
’est la matrice par d
éfaut). (Voir aussi les commandes
<a href=
"#GetMatrix">GetMatrix
</a>,
<a href=
"#SetMatrix">SetMatrix
</a>, et
<a href=
"#IdMatrix">IdMatrix
</a>).
</p></li>
50 <h2 id=
"Copy">Copy
</h3>
52 <li><p><b>Copy(
<liste
>,
<index depart
>,
<nombre
> )
</b>.
</p></li>
53 <li><p><u>Description
</u> : cette fonction renvoie la liste constitu
ée par les
<<em>nombre
</em>> él
éments de la
<<em>liste
</em>> à partir de l
’él
ément num
éro
<<em>depart
</em>>[inclus]. Si
<<em>nombre
</em>> est nul, alors la fonction renvoie tous les
él
éments de la liste
à partir de l
’él
ément num
éro
<<em>d
épart
</em>>.
</p>
54 <p>Si le num
éro
<<em>depart
</em>> est n
égatif, alors la liste et parcourue de droite
à gauche en partant du dernier, le dernier
él
ément a l
’index
<span class=
"math"> -
 1</span>, l
’avant-dernier a l
’index
<span class=
"math"> -
 2</span> <span class=
"math">⋯</span> etc. La fonction renvoie les
<<em>nombre
</em>> él
éments de la liste (ou toute la liste si
<<em>nombre
</em>> est nul) en allant vers la gauche, mais la liste renvoy
ée est dans le m
ême sens que la
<<em>liste
</em>>, et cette derni
ère n
’est pas modifi
ée.
</p></li>
55 <li><p><u>Exemple(s)
</u> :
</p>
57 <li><p><span style=
"color:red">Copy([
1,
2,
3,
4],
2,
2)
</span> renvoie
<span style=
"color:magenta">[
2,
3]
</span>.
</p></li>
58 <li><p><span style=
"color:red">Copy([
1,
2,
3,
4],
2,
5)
</span> renvoie
<span style=
"color:magenta">[
2,
3,
4]
</span>.
</p></li>
59 <li><p><span style=
"color:red">Copy([
1,
2,
3,
4],
2,
0)
</span> renvoie
<span style=
"color:magenta">[
2,
3,
4]
</span>.
</p></li>
60 <li><p><span style=
"color:red">Copy([
1,
2,
3,
4],-
1,
2)
</span> renvoie
<span style=
"color:magenta">[
3,
4]
</span>.
</p></li>
61 <li><p><span style=
"color:red">Copy([
1,
2,
3,
4],-
2,
2)
</span> renvoie
<span style=
"color:magenta">[
2,
3]
</span>.
</p></li>
62 <li><p><span style=
"color:red">Copy([
1,
2,
3,
4],-
2,
0)
</span> renvoie
<span style=
"color:magenta">[
1,
2,
3]
</span>.
</p></li>
65 <p><strong>NB
</strong>: pour des raisons de compatibilit
é avec l
’ancienne version, l
’index
<span class=
"math">0</span> correspond aussi au dernier
él
ément de la liste.
</p>
66 <h2 id=
"DefaultAttr">DefaultAttr
</h3>
68 <li><p><b>DefaultAttr()
</b></p></li>
69 <li><p><u>Description
</u> : cette fonction met toutes les variables correspondant aux attributs (
<span style=
"font-style:italic;color:red">Color
</span>,
<span style=
"font-style:italic;color:red">Width
</span>, ...)
à leur valeur par d
éfaut. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
73 <li><p><b>Del(
<liste
>,
<depart
>,
<nombre
> )
</b>.
</p></li>
74 <li><p><u>Description
</u> : supprime de la
<<em>liste
</em>> <<em>nombre
</em>> él
éments
à partir du num
éro
<<em>d
épart
</em>>[inclus]. Si
<<em>nombre
</em>> est nul, alors la fonction supprime tous les
él
éments de la liste
à partir de l
’él
ément num
éro
<<em>d
épart
</em>>.
</p>
75 <p>Si le num
éro
<<em>depart
</em>> est n
égatif, alors la liste et parcourue de droite
à gauche en partant du dernier. Le dernier
él
ément a l
’index
<span class=
"math"> -
 1</span>, l
’avant-dernier a l
’index
<span class=
"math"> -
 2</span> <span class=
"math">⋯</span> etc. La fonction supprime les
<<em>nombre
</em>> él
éments de la liste (ou toute la liste si
<<em>nombre
</em>> est nul) en allant vers la gauche.
</p>
76 <p>Le param
ètre
<<em>liste
</em>> doit
être
<strong>un nom de variable
</strong>, celle-ci est modifi
ée et la fonction renvoie
<em>Nil
</em>.
</p></li>
77 <li><p><u>Exemple(s)
</u> : la commande
<span style=
"color:red">[x:=[
1,
2,
3,
4], Del(x,
2,
2), x]
</span> renvoie
<span style=
"color:magenta">[
1,
4]
</span>.
</p>
78 <p>La commande
<span style=
"color:red">[x:=[
1,
2,
3,
4], Del(x,-
2,
2), x]
</span> renvoie
<span style=
"color:magenta">[
1,
4]
</span>.
</p></li>
80 <p><strong>NB
</strong>: pour des raisons de compatibilit
é avec l
’ancienne version, l
’index
<span class=
"math">0</span> correspond aussi au dernier
él
ément de la liste.
</p>
81 <h2 id=
"Delay">Delay
</h3>
83 <li><p><b>Delay(
<nb millisecondes
> )
</b></p></li>
84 <li><p><u>Description
</u> : permet de suspendre l
’ex
écution du programme pendant le laps de temps indiqu
é (en milli-secondes).
</p></li>
86 <h2 id=
"DelButton">DelButton
</h3>
88 <li><p><b>DelButton(
<texte1
>, ...,
<texteN
> )
</b></p></li>
89 <li><p><u>Description
</u> : Cette fonction permet de supprimer dans la colonne
à gauche de la zone de dessin, les boutons portant les inscriptions
<<em>texte1
</em>>, ...,
<<em>texteN
</em>>. Si la liste est vide (
<span style=
"font-style:italic"> DelButton()
</span>), alors tous les boutons sont supprim
és. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
91 <h2 id=
"DelGraph">DelGraph
</h3>
93 <li><p><b>DelGraph(
<element1
>, ...,
<elementN
> )
</b></p></li>
94 <li><p><u>Description
</u> : Cette fonction permet de supprimer les
él
éments graphiques appel
és
<<em>element1
</em>>, ...,
<<em>elementN
</em>>. Si la liste est vide (
<span style=
"font-style:italic"> DelGraph()
</span>), alors tous les
él
éments sont supprim
és. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
96 <h2 id=
"DelItem">DelItem
</h3>
98 <li><p><b>DelItem(
<nom1
>, ...,
<nomN
> )
</b></p></li>
99 <li><p><u>Description
</u> : Cette fonction permet de supprimer de la liste d
éroulante
à gauche de la zone de dessin, les options appel
ées
<<em>nom1
</em>>, ...,
<<em>nomN
</em>>. Si la liste est vide (
<span style=
"font-style:italic"> DelItem()
</span>), alors toute la liste est supprim
ée. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
101 <h2 id=
"DelMac">DelMac
</h3>
103 <li><p><b>DelMac(
<mac1
>, ...,
<macN
> )
</b></p></li>
104 <li><p><u>Description
</u> : Cette fonction permet de supprimer les macros (non pr
éd
éfinies) appel
ées
<<em>mac1
</em>>, ...,
<<em>macN
</em>>. Si la liste est vide (
<span style=
"font-style:italic">DelMac()
</span>), la commande est sans effet. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
106 <h2 id=
"DelText">DelText
</h3>
108 <li><p><b>DelText(
<texte1
>, ...,
<texteN
> )
</b></p></li>
109 <li><p><u>Description
</u> : Cette fonction permet de supprimer dans la colonne
à gauche de la zone de dessin, les labels
<<em>texte1
</em>>, ...,
<<em>texteN
</em>>. Si la liste est vide (
<span style=
"font-style:italic"> DelText()
</span>), alors tous les labels sont supprim
és. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
111 <h2 id=
"DelVar">DelVar
</h3>
113 <li><p><b>DelVar(
<var1
>, ...,
<varN
> )
</b></p></li>
114 <li><p><u>Description
</u> : Cette fonction permet de supprimer les variables globales (non pr
éd
éfinies) appel
és
<<em>var1
</em>>, ...,
<<em>varN
</em>>. Si la liste est vide (
<span style=
"font-style:italic">DelVar()
</span>), la commande est sans effet. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
116 <h2 id=
"Der">Der
</h3>
118 <li><p><b>Der(
<expression
>,
<variable
>,
<liste
> )
</b>.
</p></li>
119 <li><p><u>Description
</u> : cette fonction calcule la d
ériv
ée de
<<em>expression
</em>> par rapport
à <<em>variable
</em>> et l
’évalue en donnant
à <<em>variable
</em>> les valeurs successives de la
<<em>liste
</em>>. La fonction
<span style=
"font-style:italic">Der
</span> renvoie la liste des r
ésultats. Mais si on a besoin de
<span style=
"font-style:italic">l
’expression de la d
ériv
ée
</span>, alors on pr
éf
érera la fonction
<a href=
"#Diff">Diff
</a>.
</p></li>
120 <li><p><u>Exemple(s)
</u> :
</p>
122 <li><p>la commande
<span style=
"color:red">Der(
1/x,x,[-
1,
0,
2] )
</span> renvoie
<span style=
"color:magenta">[-
1,-
0.25]
</span>.
</p></li>
123 <li><p>Voici le texte d
’une macro appel
ée
<span style=
"color:red">tangente
</span> qui prend une expression
<span class=
"math"><em>f
</em>(
<em>x
</em>)
</span> en premier param
ètre, une valeur r
éelle
<span class=
"math"><em>x
</em>0</span> en second param
ètre et qui trace la tangente
à la courbe au point d
’abscisse x0:
</p>
124 <p><div style=
"text-align:center">{[Assign(%
1,x,%
2), $A:=%
2+i*%
1, $Df:=Der(%
1,x,%
2), Droite(A, A+
1+i*Df)]}
</div></p>
125 <p>On assigne la valeur
<span class=
"math"><em>x
</em>0</span> à la variable
<span class=
"math"><em>x
</em></span> dans l
’expression
<span class=
"math"><em>f
</em>(
<em>x
</em>)
</span>, on stocke dans une variable
<span class=
"math"><em>A
</em></span> le point de coordonn
ées
<span class=
"math">(
<em>x
</em>0,
 <em>f
</em>(
<em>x
</em>0))
</span> (sous forme d
’affixe), on stocke dans une variable
<span class=
"math"><em>D
</em><em>f
</em></span> la d
ériv
ée en
<span class=
"math"><em>x
</em>0</span> (
<span class=
"math"><em>f
</em>ʹ(
<em>x
</em>0)
</span>), puis on trace la droite passant par
<span class=
"math"><em>A
</em></span> et dirig
ée par le vecteur d
’affixe
<span class=
"math">1 +
 <em>i
</em><em>f
</em>ʹ(
<em>x
</em>0)
</span>.
</p></li>
128 <h2 id=
"Diff">Diff
</h3>
130 <li><p><b>Diff(
<nom
>,
<expression
>,
<variable
> [, param1,..., paramN] )
</b></p></li>
131 <li><p><u>Description
</u> : cette fonction permet de cr
éer une macro appel
ée
<<em>nom
</em>>, s
’il existait d
éj
à une macro portant ce nom, elle sera
écras
ée, sauf si c
’est une macro pr
éd
éfinie auquel cas la commande est sans effet. Le corps de la macro cr
éée correspond
à la d
ériv
ée de
<<em>expression
</em>> par rapport
à <<em>variable
</em>>. Les param
ètres optionnels sont des noms de variables, le nom de la variable
<<em>param1
</em>> est remplac
é dans l
’expression de la d
ériv
ée par le param
ètre %
1, le nom
<<em>param2
</em>> est remplac
é par %
2 ... etc. Cette fonction renvoie
<em>Nil
</em>.
</p></li>
132 <li><p><u>Exemple(s)
</u> : apr
ès l
’ex
écution de la commande (dans la ligne de commande en bas de la fen
être):
<span style=
"color:red">Diff(df, sin(
3*t), t)
</span>, une macro appel
ée
<span style=
"color:magenta">df
</span> est cr
éée et son contenu est:
<span style=
"color:magenta">3*cos(
3*t)
</span>, c
’est une macro sans param
ètre qui contient une variable locale
<span class=
"math"><em>t
</em></span>, elle devra donc
être utilis
ée en d
éveloppement imm
édiat (c
’est
à dire pr
éc
éd
ée du symbole
<span class=
"math"> ∖ </span>)
<sup><a href=
"#fn2" class=
"footnoteRef" id=
"fnref2">2</a></sup>. Par contre apr
ès la commande
<span style=
"color:red">Diff(df,sin(
3*t),t,t)
</span>, le contenu de la macro
<span style=
"color:magenta">df
</span> est: {
3*cos(
3*%
1)} qui est une macro
à un param
ètre.
</p></li>
134 <h2 id=
"Echange">Echange
</h3>
136 <li><p><b>Echange(
<variable1
>,
<variable2
> )
</b>.
</p></li>
137 <li><p><u>Description
</u> : cette fonction
échange les deux variables, ce sont en fait les adresses qui sont
échang
ées. Les contenus ne sont pas dupliqu
és alors qu
’ils le seraient si on utilisait la commande:
</p>
138 <p>{
<span style=
"color:red">[aux:=variable1, variable1:=variable2, variable2:=aux]
</span>}
</p>
139 <p>La fonction
<span style=
"font-style:italic">Echange
</span> renvoie la valeur
<em>Nil
</em>.
</p></li>
141 <h2 id=
"EpsCoord">EpsCoord
</h3>
143 <li><p><b>EpsCoord(
<affixe
> )
</b></p></li>
144 <li><p><u>Description
</u> : renvoie l
’affixe export
ée en eps. Pour les autres, il y a les macros
<a href=
"#TeXCoord">TeXCoord
</a> et
<a href=
"#SvgCoord">SvgCoord
</a>.
</p></li>
146 <h2 id=
"Eval">Eval
</h3>
148 <li><p><b>Eval(
<expression
> )
</b>.
</p></li>
149 <li><p><u>Description
</u> : cette fonction
évalue l
’<<em>expression
</em>> et renvoie le r
ésultat. L
’<<em>expression
</em>> est interpr
ét
ée comme une
<a href=
"#chaine">cha
îne de caract
ères
</a>.
</p></li>
150 <li><p>La fonction
<a href=
"#Input">Input
</a> renvoie la saisie sous forme d
’une cha
îne dans la macro appel
ée
<em>chaine()
</em>. La fonction
<span style=
"font-style:italic">Eval
</span> évalue cette cha
îne (comme n
’importe quelle commande TeXgraph) et renvoie le r
ésultat.
</p></li>
151 <li><p><u>Exemple(s)
</u> : voici une commande demandant une valeur
à l
’utilisateur pour une variable
<em>x
</em>:
</p></li>
153 <pre><code> if Input(
"x=
",
"Entrez une valeur pour x
", x )
154 then x:= Eval( chaine() )
157 <h2 id=
"Exec">Exec
</h3>
159 <li><p><b>Exec(
<programme
> [, argument(s), r
épertoire de travail, attendre] )
</b>.
</p></li>
160 <li><p><u>Description
</u> : cette fonction permet d
’ex
écuter un
<<em>programme
</em>> (ou un script) en pr
écisant
éventuellement des
<<em>arguments
</em>> et un
<<em>r
épertoire de travail
</em>>, ces trois arguments sont interpr
ét
és comme des cha
înes de caract
ères. Le dernier argument doit valoir
0 (par d
éfaut) ou
1, il indique si le programme attend ou non la fin du processus fils. La fonction renvoie la valeur
<em>Nil
</em>. Un message d
’erreur s
’affiche lorsque: les ressources sont insuffisantes, ou bien le programme est invalide, ou bien le chemin est invalide.
</p></li>
161 <li><p>La macro-cha
îne pr
éd
éfinie @TmpPath contient le chemin vers un r
épertoire temporaire. La macro
<em>Apercu
</em> exporte le graphique courant dans ce dossier au format pgf dans le fichier
<em>file.pgf
</em>, puis elle ex
écute
<em>pdflatex
</em> sur le fichier
<em>apercu.tex
</em>, puis attend la fin de l
’ex
écution avant de lancer le lecteur de pdf.
</p></li>
162 <li><p><u>Exemple(s)
</u> : la macro
<span style=
"font-style:italic">Apercu
</span> contenue dans interface.mac est:
</p></li>
164 <pre><code> [Export(pgf,[@TmpPath,
"file.pgf
"] ),
165 Exec(
"pdflatex
", [
"-interaction=nonstopmode apercu.tex
"],@TmpPath,
1),
166 Exec(@PdfReader,
"apercu.pdf
",@TmpPath,
0)
169 <h2 id=
"Export">Export
</h3>
171 <li><p><b>Export(
<mode
>,
<fichier
> )
</b>.
</p></li>
172 <li><p><u>Description
</u> : cette fonction permet d
’exporter le graphique en cours,
<<em>mode
</em>> est une valeur num
érique qui peut
être l
’une des constantes suivantes: tex, pst, pgf, tkz, eps, psf, pdf, epsc, pdfc, svg, bmp, obj, geom, jvx ou teg. L
’exportation se fait dans
<<em>fichier
</em>> qui contient donc le nom du fichier, avec
éventuellement le chemin.
</p>
173 <p>La macro pr
éd
éfinie @TmpPath contient le chemin vers un r
épertoire temporaire. La macro
<em>Apercu
</em> exporte le graphique courant dans ce dossier au format pgf dans le fichier
<em>file.pgf
</em>, puis elle ex
écute
<em>pdflatex
</em> sur le fichier
<em>apercu.tex
</em>, puis attend la fin de l
’ex
écution avant de lancer le lecteur de pdf.
</p></li>
174 <li><p><u>Exemple(s)
</u> : la macro
<span style=
"font-style:italic">Apercu
</span> contenue dans interface.mac est:
</p></li>
176 <pre><code> [Export(pgf,[@TmpPath,
"file.pgf
"] ),
177 Exec(
"pdflatex
", [
"-interaction=nonstopmode apercu.tex
"],@TmpPath,
1),
178 Exec(@PdfReader,
"apercu.pdf
",@TmpPath,
0)
181 <h2 id=
"ExportObject">ExportObject
</h3>
183 <li><p><b>ExportObject(
<argument
> )
</b></p></li>
184 <li><p><u>Description
</u> : cette commande n
’a d
’effet que pendant un export. Elle permet d
’exporter l
’<<em>argument
</em>> dans le fichier de sortie, cet
<<em>argumet
</em>> est soit le nom d
’un
él
ément graphique, soit une commande graphique (comme pour la fonction
<a href=
"#Get">Get
</a>). Elle peut-
être utile pour
écrire des exports personnalis
és, ceci est d
écrit dans
<a href=
"#MyExport">cette section
</a>.
</p></li>
186 <h2 id=
"Fenetre">Fenetre
</h3>
188 <li><p><b>Fenetre(
<A
>,
<B
> [, C] )
</b>.
</p></li>
189 <li><p><u>Description
</u> : cette fonction modifie la fen
être graphique, c
’est l
’équivalent de l
’option
<em>Param
ètres/Fen
être
</em>,
<strong>sauf que les
él
éments graphiques ne sont pas automatiquement recalcul
és
</strong>. Le param
ètre
<<em>A
</em>> et le param
ètre
<<em>B
</em>> sont les affixes de deux coins de la fen
être diam
étralement oppos
és, et le param
ètre facultatif
<<em>C
</em>> repr
ésente les deux
échelles, plus pr
écis
ément, la partie r
éelle de
<<em>C
</em>> est l
’échelle [en cm] sur l
’axe des abscisses et la partie imaginaire de
<<em>C
</em>> est l
’échelle [en cm] sur l
’axe des ordonn
ées, ces deux valeurs doivent
être strictement positives. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
191 <h2 id=
"Free">Free
</h3>
193 <li><p><b>Free(
<expression
>,
<variable
></b>.
</p></li>
194 <li><p><u>Description
</u> : cette fonction renvoie
<span class=
"math">1</span> si l
’<<em>expression
</em>> contient la
<<em>variable
</em>>,
<span class=
"math">0</span> sinon. Lorsque le deuxi
ème argument n
’est pas un nom de variable, la fonction renvoie
<em>Nil
</em>.
</p></li>
196 <h2 id=
"Get">Get
</h3>
198 <li><p><b>Get(
<argument
> [, clip(
0/
1)] )
</b>.
</p></li>
199 <li><p><u>Description
</u> : lorsque le param
ètre
<<em>argument
</em>> est un
<em>identificateur
</em>, la fonction cherche s
’il y a un
él
ément graphique dont le nom est
<<em>argument
</em>>, si c
’est le cas, alors la fonction renvoie la liste des points de cet
él
ément graphique, sinon elle renvoie la valeur
<em>Nil
</em>. Dans ce cas l
’argument optionnel est ignor
é.
</p>
200 <p>Lorsque
<<em>argument
</em>> n
’est pas un identificateur, celui-ci est consid
ér
é comme une
<em>fonction graphique
</em>, la fonction
<span style=
"font-style:italic">Get
</span> renvoie la liste des points de l
’él
ément graphique construit par cette fonction graphique mais sans cr
éer l
’él
ément en question. L
’argument optionnel
<<em>clip
</em>> (qui vaut
<span class=
"math">1</span> par d
éfaut) indique si l
’él
ément doit
être clipp
é par la fen
être courante (valeur
1) ou non (valeur
0).
</p>
201 <p>Lorsque l
’argument est vide:
<span style=
"font-style:italic">Get()
</span>, la fonction renvoie la liste des points de tous les
él
éments graphiques d
éj
à construits, ceux qui sont cach
és sont ignor
és.
</p></li>
202 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Get(Cercle(
0,
1))
</span> renvoie la liste des points du cercle de centre
0 et de rayon
1 mais sans cr
éer ce cercle, la liste des points est clipp
ée par la fen
être graphique.
</p></li>
203 <li><p><u>Exemple(s)
</u> : utilisation des points d
’un objet graphique:
</p></li>
207 <p>Cmd view(
0,
6.25,-
1.5,
2); size(
7.5); [tMin:=
0, tMax:=
6.25]; Graph axe = Axes(
0,
1+i); C1 = [Color:=blue,Width:=
8, Cartesienne(
1/x) ]; C2 = [Color:=red,Width:=
8, Cartesienne(sin(
2*x)*
1.5)]; inter = [DotScale:=
2,DotStyle:=dotcircle, Color:=forestgreen, Point(Get(C1) InterL Get(C2)), Color:=blue, LabelDot(
5.5+
0.1*i,
"<span class=
"math"><em>C
</em><sub>1</sub></span>",
"N
"), Color:=red, LabelDot(
3-i,
"<span class=
"math"><em>C
</em><sub>2</sub></span>",
"E
"), ];
</p>
210 <h2 id=
"GetAttr">GetAttr
</h3>
212 <li><p><b>GetAttr(
<argument
> )
</b></p></li>
213 <li><p><u>Description
</u> : lorsque le param
ètre
<<em>argument
</em>> est un
<em>identificateur
</em>, la fonction cherche s
’il y a un
él
ément graphique dont le nom est
<<em>argument
</em>>, si c
’est le cas, alors les attributs de cet
él
ément graphique deviennent les attributs courants, et la fonction renvoie la valeur
<em>Nil
</em>. Sinon, l
’argument est interpr
ét
é comme une cha
îne de caract
ères puis la fonction effectue la m
ême recherche.
</p></li>
215 <h2 id=
"GetMatrix">GetMatrix
</h3>
217 <li><p><b>GetMatrix()
</b></p></li>
218 <li><p><u>Description
</u> : cette fonction renvoie la matrice courante. (Voir aussi les commandes
<a href=
"#ComposeMatrix">ComposeMatrix
</a>,
<a href=
"#SetMatrix">SetMatrix
</a>, et
<a href=
"#IdMatrix">IdMatrix
</a>)
</p></li>
220 <h2 id=
"GetSpline">GetSpline
</h3>
222 <li><p><b>GetSpline(
<V0
>,
<A0
>,...,
<An
>,
<Vn
> )
</b></p></li>
223 <li><p><u>Description
</u> : renvoie la liste des points de contr
ôle correspondant
à 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). Le r
ésultat doit
être dessin
é avec la commande graphique
<a href=
"#Bezier">Bezier
</a>.
</p></li>
225 <h2 id=
"GrayScale">GrayScale
</h3>
227 <li><p><b>GrayScale(
0/
1)
</b> ou
<b>GrayScale()
</b>.
</p></li>
228 <li><p><u>Description
</u> : cette fonction permet d
’activer ou d
ésactiver la conversion des couleurs en niveaux de gris. Elle
équivaut
à l
’option
<span style=
"font-style:italic">Param
ètres/G
érer les couleurs
</span> du menu de l
’interface graphique.
</p>
229 <p>Lorsque l
’argument est vide, la fonction renvoie l
’état actuel de la conversion en niveaux de gris (
0 ou
1). Sinon, elle renvoie
<em>Nil
</em>.
</p></li>
231 <h2 id=
"HexaColor">HexaColor
</h3>
233 <li><p><b>HexaColor(
<valeur h
éxad
écimale
> )
</b></p></li>
234 <li><p><u>Description
</u> : cette fonction renvoie la couleur correspondant
à la
<<em>valeur h
éxad
écimale
</em>>, cette valeur doit
être pass
ée sous forme d
’une cha
îne de caract
ères. Voir aussi la commande
<a href=
"#Rgb">Rgb
</a>.
</p></li>
235 <li><p><u>Exemple(s)
</u> :
<code>Color:=HexaColor(
"F5F5DC
")
</code>.
</p></li>
237 <h2 id=
"Hide">Hide
</h3>
239 <li><p><b>Hide(
<element1
>, ...,
<elementN
> )
</b></p></li>
240 <li><p><u>Description
</u> : Cette fonction permet de cacher les
él
éments graphiques appel
és
<<em>element1
</em>>, ...,
<<em>elementN
</em>> en mettant leur attribut
<span style=
"font-style:italic">IsVisible
</span> à false. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p>
241 <p>Pour tout cacher on invoque la commande sans arguments:
<span style=
"font-style:italic">Hide()
</span>.
</p>
242 <p>Pour tout cacher sauf un ou plusieurs
él
éments, on invoque la commande:
<span style=
"font-style:italic">Hide(except, element1, ..., elementN)
</span>. Voir aussi la commande
<a href=
"#Show">Show
</a>.
</p></li>
244 <h2 id=
"IdMatrix">IdMatrix
</h3>
246 <li><p><b>IdMatrix()
</b></p></li>
247 <li><p><u>Description
</u> : change la matrice courante en la matrice identit
é. (Voir aussi les commandes
<a href=
"#ComposeMatrix">ComposeMatrix
</a>,
<a href=
"#SetMatrix">SetMatrix
</a>, et
<a href=
"#GetMatrix">GetMatrix
</a>)
</p></li>
249 <h2 id=
"Input">Input
</h3>
251 <li><p><b>Input(
<message
> [, titre, cha
îne] )
</b>.
</p></li>
252 <li><p><u>Description
</u> : cette fonction ouvre une boite de dialogue avec
<<em>titre
</em>> dans la barre de titre (par d
éfaut le titre est vide), et dans laquelle le param
ètre
<<em>message
</em>> est affich
é, le param
ètre
<<em>cha
îne
</em>> est affich
é dans la zone de saisie. Ces param
ètres sont donc interpr
ét
és comme des
<a href=
"#chaine">cha
înes de caract
ères
</a>, l
’utilisateur est invit
é à faire une saisie. S
’il valide alors la fonction
<span style=
"font-style:italic">Input
</span> renvoie la valeur
<span class=
"math">1</span> et la cha
îne saisie est
<strong>m
émoris
ée dans la macro
</strong> <span style=
"font-style:italic">chaine()
</span>. Si l
’utilisateur ne valide pas ou si la cha
îne saisie est vide, alors la fonction
<span style=
"font-style:italic">Input
</span> renvoie la valeur
<span class=
"math">0</span>.
</p></li>
253 <li><p><u>Exemple(s)
</u> : voir la fonction
<a href=
"#Eval">Eval
</a>.
</p></li>
255 <h2 id=
"InputMac">InputMac
</h3>
257 <li><p><b>InputMac(
<nom de fichier
> )
</b> ou
<b>Load(
<nom de fichier
> )
</b>.
</p></li>
258 <li><p><u>Description
</u> : cette fonction permet de charger en m
émoire un fichier de macros (
<em>*.mac
</em>), ou un fichier mod
èle (
<em>*.mod
</em>), ou tout fichier source texgraph (
<em>*.teg
</em>).
</p>
259 <p>Dans le premier cas (fichier
<em>*.mac
</em>), les variables globales et les macros seront consid
ér
ées comme
<strong>pr
éd
éfinies
</strong> (elles n
’apparaissent pas
à l
’écran, elles ne seront pas enregistr
ées avec le graphique, mais elles sont effac
ées de la m
émoire d
ès qu
’on commence un nouveau graphique). Le param
ètre
<<em>nom de fichier
</em>> est une cha
îne de caract
ères repr
ésentant le fichier
à charger avec
éventuellement son chemin. Cette fonction renvoie
<em>Nil
</em>, et si ce fichier
était d
éj
à charg
é, alors elle est sans effet. Si le fichier
à charger est dans le r
épertoire
<em>macros
</em> de
<em>TeXgraph
</em>, ou dans le dossier
<em>TeXgraphMac
</em>, alors il est inutile de pr
éciser le chemin.
</p></li>
260 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">InputMac(
"MesMacros.mac
")
</span>.
</p></li>
262 <h2 id=
"Inc">Inc
</h3>
264 <li><p><b>Inc(
<variable
>,
<expression
> )
</b>.
</p></li>
265 <li><p><u>Description
</u> : cette fonction
évalue
<<em>expression
</em>> et ajoute le r
ésultat
à <<em>variable
</em>>. Cette fonction est plus avantageuse que la commande
<span style=
"color:red">variable := variable + expression
</span>, car dans cette commande la
<<em>variable
</em>> est
évalu
ée [c
’est
à dire dupliqu
ée] pour calculer la somme. La fonction
<span style=
"font-style:italic">Inc
</span> renvoie la valeur
<em>Nil
</em>.
</p></li>
267 <h2 id=
"Insert">Insert
</h3>
269 <li><p><b>Insert(
<liste1
>,
<liste2
> [, position] )
</b>.
</p></li>
270 <li><p><u>Description
</u> : cette fonction ins
ère la
<<em>liste2
</em>> dans la
<<em>liste1
</em>> à la position num
éro
<<em>position
</em>>. Lorsque la position vaut
0 [valeur par d
éfaut]. La
<<em>liste2
</em>> est ajout
ée
à la fin. La
<<em>liste1
</em>> doit
être une variable et celle-ci est modifi
ée. La fonction
<span style=
"font-style:italic">Insert
</span> renvoie la valeur
<em>Nil
</em>.
</p></li>
271 <li><p><u>Exemple(s)
</u> : si une variable
<span class=
"math"><em>L
</em></span> contient la liste
<span style=
"color:red">[
1,
4,
5]
</span>, alors apr
ès la commande
<span style=
"color:red">Insert(L,[
2,
3],
2)
</span>, la variable
<span class=
"math"><em>L
</em></span> contiendra la liste
<span style=
"color:magenta">[
1,
2,
3,
4,
5]
</span>.
</p></li>
273 <h2 id=
"Int">Int
</h3>
275 <li><p><b>Int(
<expression
>,
<variable
>,
<borne inf.
>,
<borne sup.
> )
</b>.
</p></li>
276 <li><p><u>Description
</u> : cette fonction calcule l
’int
égrale de
<<em>expression
</em>> par rapport
à <<em>variable
</em>> sur l
’intervalle
<strong>r
éel
</strong> d
éfini par
<<em>borne inf.
</em>> et
<<em>borne sup
</em>>. Le calcul est fait
à partir de la m
éthode de {Simpson} acc
él
ér
ée deux fois avec la m
éthode de {Romberg},
<<em>expression
</em>> est suppos
ée d
éfinie et suffisamment r
éguli
ère sur l
’intervalle d
’int
égration.
</p></li>
277 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Int(exp(sin(u)),u,
0,
1)
</span> donne
<span style=
"color:magenta">1.63187</span> (Maple donne
1.631869608).
</p></li>
279 <h2 id=
"IsMac">IsMac
</h3>
281 <li><p><b>IsMac(
<nom
> )
</b>.
</p></li>
282 <li><p><u>Description
</u> : cette fonction permet de savoir s
’il y a une macro appell
ée
<<em>nom
</em>>. Elle renvoie
<span class=
"math">1</span> si c
’est le cas,
<span class=
"math">0</span> sinon.
</p></li>
284 <h2 id=
"IsVar">IsVar
</h3>
286 <li><p><b>IsVar(
<nom
> )
</b>.
</p></li>
287 <li><p><u>Description
</u> : cette fonction permet de savoir s
’il y a une variable globale appell
ée
<<em>nom
</em>>. Elle renvoie
<span class=
"math">1</span> si c
’est le cas,
<span class=
"math">0</span> sinon.
</p></li>
289 <h2 id=
"Liste">Liste
</h3>
291 <li><p><b>Liste(
<argument1
>, ...,
<argumentn
> )
</b> ou bien
<strong>[
<argument1
>, ...,
<argumentn
>]
</strong>.
</p></li>
292 <li><p><u>Description
</u> : cette fonction
évalue chaque argument et renvoie la liste des r
ésultats
<strong>diff
érents de
<em>Nil
</em></strong>.
</p></li>
293 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Liste(
1, Arg(
1+
2*i), sqrt(-
1), Solve(cos(x)-x,x,
0,
1))
</span> renvoie le r
ésultat
<span style=
"color:magenta">[
1,
1.107149,
0.739085]
</span>.
</p></li>
295 <h2 id=
"ListFiles">ListFiles
</h3>
297 <li><p><b>ListFiles()
</b>.
</p></li>
298 <li><p><u>Description
</u> : cette fonction est disponible seulement dans la version GUI de TeXgraph, elle s
’utilise dans la barre de commande en bas de la fen
être, elle affiche alors la liste des fichiers de macros (
<em>*.mac
</em>) charg
és en m
émoire.
</p></li>
300 <h2 id=
"LoadImage">LoadImage
</h3>
302 <li><p><b>LoadImage(
<image
> )
</b>.
</p></li>
303 <li><p><u>Description
</u> : cette fonction charge le fichier
<<em>image
</em>>, qui doit
être une image png, jpeg ou bmp. Celle-ci est affich
ée en image de fond et fait partie du graphique, en particulier elle est export
ée dans les formats tex (visible seulement dans la version postscript), pgf, pst et teg. Pour le format pgf c
’est la version png ou jpg qui sera dans le document, mais pour les versions pst et tex il faut une version eps de l
’image. L
’argument est interpr
êt
é comme une cha
îne de caract
ères, et la fonction renvoie la valeur
<em>Nil
</em>.
</p>
304 <p>Lors du chargement, la taille de l
’image est adapt
ée
à la fen
être, mais celle-ci peut
être modifi
ée de mani
ère
à conserver les proportions de l
’image. D
ès lors la position de l
’image et sa taille sont fix
ées. On peut ensuite
élargir la fen
être si on ne veut pas que l
’image occupe tout l
’espace. Pour modifier la position ou la taille de l
’image, il faut recharger celle-ci.
</p></li>
306 <h2 id=
"Loop">Loop
</h3>
308 <li><p><b>Loop(
<expression
>,
<condition
> )
</b>.
</p></li>
309 <li><p><u>Description
</u> : cette fonction est une
<strong>boucle
</strong> qui construit une liste en
évaluant
<<em>expression
</em>> et
<<em>condition
</em>> jusqu
’à ce que le r
ésultat de
<<em>condition
</em>> soit
égal
à 1 (pour
<em>True
</em>) ou
<em>Nil
</em>, la fonction
<span style=
"font-style:italic">Loop
</span> renvoie alors la liste des r
ésultats de
<<em>expression
</em>>. Cette commande est la repr
ésentation interne de la boucle
<a href=
"#repeat">repeat
</a> dont l
’utilisation est pr
éf
érable pour des raisons de lisibilit
é.
</p></li>
310 <li><p><u>Exemple(s)
</u> : les commandes (
équivalentes):
</p>
311 <p><div style=
"text-align:center"><span style=
"color:red">[n:=
1, m:=
1, n, Loop([ aux:=n, n:=m, m:=aux+n, n], m
>100)]
</span></div></p>
313 <p><div style=
"text-align:center"><span style=
"color:red">[n:=
1, m:=
1, n, while m
<=
100 do aux:=n, n:=m, m:=aux+n, n od]
</span></div></p>
315 <p><div style=
"text-align:center"><span style=
"color:red">[n:=
1, m:=
1, n, repeat aux:=n, n:=m, m:=aux+n, n until m
>100 od]
</span></div></p>
316 <p>renvoient la liste:
<span style=
"color:magenta">[
1,
1,
2,
3,
5,
8,
13,
21,
34,
55,
89]
</span> (termes d
’une suite de {Fibonacci} inf
érieurs
à 100).
</p></li>
318 <h2 id=
"Map">Map
</h3>
320 <li><p><b>Map(
<expression
>,
<variable
>,
<liste
> [, mode] )
</b>.
</p></li>
321 <li><p><u>Description
</u> : cette fonction est une
<strong>boucle
</strong> qui construit une liste de la mani
ère suivante:
<<em>variable
</em>> parcourt les
él
éments de
<<em>liste
</em>> et pour chacun d
’eux
<<em>expression
</em>> est
évalu
ée, la fonction
<span style=
"font-style:italic">Map
</span> renvoie la liste des r
ésultats. Cette commande est la repr
ésentation interne de la boucle
<a href=
"#for">for
</a> dont l
’utilisation est pr
éf
érable pour des raisons de lisibilit
é.
</p>
322 <p>Le param
ètre optionnel
<<em>mode
</em>> est un complexe qui vaut
<em>Nil
</em> par d
éfaut, lorsque
<<em>mode
</em>><span class=
"math"> =
 <em>a
</em> +
 <em>i
</em><em>b
</em></span>, alors:
</p>
324 <li><p>si
<span class=
"math"><em>a
</em></span> est un entier et
<span class=
"math"><em>b
</em> =
 0</span>: les
él
éments de la
<<em>liste
</em>> sont trait
és de
<span class=
"math"><em>a
</em></span> en
<span class=
"math"><em>a
</em></span>,
</p></li>
325 <li><p>si
<span class=
"math"><em>a
</em></span> est un entier et
<span class=
"math"><em>b
</em> =
 1</span>: la
<<em>liste
</em>> est trait
ée par composante (deux composantes sont s
épar
ées par la constante
<em>jump
</em>) et les
él
éments de chaque composante sont trait
és par paquets complets de
<span class=
"math"><em>a
</em></span> él
éments, lorsque la constante
<em>jump
</em> est rencontr
ée dans la liste, celle-ci est renvoy
ée dans le r
ésultat. Un paquet non complet n
’est pas trait
é.
</p></li>
326 <li><p>si
<span class=
"math"><em>a
</em></span> est un entier et
<span class=
"math"><em>b
</em> =
  -
 1</span>: la
<<em>liste
</em>> est trait
ée par composante (deux composantes sont s
épar
ées par la constante
<em>jump
</em>) et les
él
éments de chaque composante sont trait
és par paquets complets de
<span class=
"math"><em>a
</em></span> él
éments, lorsque la constante
<em>jump
</em> est rencontr
ée dans la liste, celle-ci n
’est pas renvoy
ée dans le r
ésultat. Un paquet non complet n
’est pas trait
é.
</p></li>
327 <li><p>si
<span class=
"math"><em>a
</em> =
 </span>Re(jump): la
<<em>liste
</em>> est trait
ée par composante (deux composantes sont s
épar
ées par la constante
<em>jump
</em>), lorsque la constante
<em>jump
</em> est rencontr
ée dans la liste, celle-ci est renvoy
ée dans le r
ésultat si
<span class=
"math"><em>b
</em> =
 1</span> et n
’est pas renvoy
ée si
<span class=
"math"><em>b
</em> =
  -
 1</span>.
</p></li>
328 <li><p><u>Exemple(s)
</u> : voir la boucle
<a href=
"#for">for
</a> pour des exemples.
</p></li>
330 <li><p><u>Exemple(s)
</u> : si
<span class=
"math"><em>L
</em></span> est une variable contenant une liste de points, alors la commande:
</p>
332 <li><p><span style=
"color:red">[sum:=
0, Map( Inc(sum,z), z, L), sum]
</span> renvoie la somme des
él
éments de
<span class=
"math"><em>L
</em></span>.
</p></li>
333 <li><p>la commande
<span style=
"color:red">Map(z*exp(i*
<span class=
"math">π</span>/
3), z, L)
</span> renvoie la liste des images des points de
<span class=
"math"><em>L
</em></span> par la rotation de centre O d
’angle
<span class=
"math">π</span>/
3.
</p></li>
336 <h2 id=
"Marges">Marges
</h3>
338 <li><p><b>Marges(
<gauche
>,
<droite
>,
<haut
>,
<bas
> )
</b></p></li>
339 <li><p><u>Description
</u> : cette fonction permet de fixer les marges autour du dessin (en cm). Les nouvelles valeurs sont copi
ées dans les constantes
<span style=
"font-style:italic;color:red">margeG
</span>,
<span style=
"font-style:italic;color:red">margeD
</span>,
<span style=
"font-style:italic;color:red">margeH
</span> et
<span style=
"font-style:italic;color:red">margeB
</span>.
</p></li>
341 <h2 id=
"Merge">Merge
</h3>
343 <li><p><b>Merge(
<liste
> )
</b>.
</p></li>
344 <li><p><u>Description
</u> : cette fonction permet de recoller des morceaux de listes pour avoir des composantes de longeur maximale, elle renvoie la liste qui en r
ésulte.
</p></li>
345 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Merge([
1,
2, jump,
3,
5, jump,
3,
4,
2] )
</span> renvoie
<span style=
"color:magenta">[
1,
2,
3,
4,
5]
</span>. Et
<span style=
"color:red">Merge( [
1,
2, jump,
3,
5, jump,
3,
4] )
</span> renvoie
<span style=
"color:magenta">[
1,
2, jump,
4,
3,
5]
</span>.
</p>
346 <p>Attention: pour que deux extr
êmit
és soient recoll
ées elles doivent
être
égales pour la machine.
</p></li>
348 <h2 id=
"Message">Message
</h3>
350 <li><p><b>Message(
<cha
îne
> )
</b>.
</p></li>
351 <li><p><u>Description
</u> : cette fonction affiche le param
ètre
<<em>cha
îne
</em>>[qui est donc interpr
ét
é comme une
<a href=
"#chaine">cha
îne de caract
ères
</a>] dans une fen
être. Quand l
’utilisateur a cliqu
é sur
<em>OK
</em>, la fen
être se referme et la fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
353 <h2 id=
"Move">Move
</h3>
355 <li><p><b>Move(
<element1
>, ...,
<elementN
> )
</b>.
</p></li>
356 <li><p><u>Description
</u> : cette fonction ne s
’applique qu
’aux
él
éments graphiques cr
éés en mode NotXor, ce qui correspond
à la valeur
1 de la variable
<a href=
"#PenMode">PenMode
</a>. Elle redessine les
él
éments graphiques
<<em>element1
</em>>, ...,
<<em>elementN
</em>>, puis les recalcule, puis les redessine, et elle renvoie la valeur
<em>Nil
</em>.
</p>
357 <p>Lorsqu
’on redessine un
él
ément graphique cr
éé en mode NotXor, il s
’efface en restituant le fond, on peut alors modifier sa position et le redessiner. Cette technique permet de faire glisser des objets sans avoir
à r
éafficher tous les autres (ce qui
évite d
’avoir une image qui saute).
</p></li>
358 <li><p><u>Exemple(s)
</u> : voir la fonction
<a href=
"#Stroke">Stroke
</a>.
</p></li>
360 <h2 id=
"Mtransform">Mtransform
</h3>
362 <li><p><b>Mtransform(
<liste
>,
<matrice
> )
</b>.
</p></li>
363 <li><p><u>Description
</u> : cette fonction applique la
<<em>matrice
</em>> à la
<<em>liste
</em>> et renvoie le r
ésultat. Si la
<<em>liste
</em>> contient la constante
<em>jump
</em>, celle-ci est renvoy
ée dans le r
ésultat sans
être modifi
ée. La
<<em>matrice
</em>> repr
ésente l
’expression analytique d
’une application affine du plan, c
’est une liste de trois complexes
<span class=
"math">[
<em>z
</em>1,
 <em>z
</em>2,
 <em>z
</em>3]
</span>:
<span class=
"math"><em>z
</em>1</span> est l
’affixe du vecteur de translation,
<span class=
"math"><em>z
</em>2</span> est l
’affixe du premier vecteur colonne de la matrice de la partie lin
éaire dans la base (
1,i), et
<span class=
"math"><em>z
</em>3</span> est l
’affixe du deuxi
ème vecteur colonne de la matrice de la partie lin
éaire. Par exemple, la matrice de l
’identit
é s
’écrit ainsi: [
0,
1,i] (c
’est la matrice par d
éfaut).
</p></li>
365 <h2 id=
"MyExport">MyExport
</h3>
367 <li><p><b>MyExport(
<"nom
">,
<param
ètre
1>, ...,
<param
ètre n
> )
</b> ou
<b>draw(
<"nom
">,
<param
ètre
1>, ...,
<param
ètre n
> )
</b></p></li>
368 <li><p><u>Description
</u> : cette commande permet d
’ajouter de nouveaux
él
éments graphiques avec un export personnalis
é. Elle est d
écrite dans
<a href=
"#MyExport">cette section
</a>.
</p></li>
370 <h2 id=
"Nargs">Nargs
</h3>
372 <li><p><b>Nargs()
</b>.
</p></li>
373 <li><p><u>Description
</u> : cette fonction n
’a d
’effet que dans une macro, elle renvoie le nombre d
’arguments avec lesquels la macro a
ét
é appel
ée. Hors de ce contexte, elle renvoie la valeur
<em>Nil
</em>. Voir aussi la fonction
<a href=
"#Args">Args
</a>.
</p></li>
374 <li><p><u>Exemple(s)
</u> : voici le corps d
’une macro
<em>MyLabel(affixe1, texte1, affixe2, texte2, ...)
</em> prenant un nombre ind
étermin
é d
’arguments:
</p></li>
376 <pre><code> for $k from
1 to Nargs()/
2 do
377 Label(Args(
2*k-
1), Args(
2*k))
380 <h2 id=
"NewButton">NewButton
</h3>
382 <li><p><b>NewButton(
<Id
>,
<nom
>,
<affixe
>,
<taille
>,
<commande
> [, aide] )
</b>.
</p></li>
383 <li><p><u>Description
</u> : cette fonction cr
ée dans la zone gris
ée
à gauche dans la fen
être un bouton dont le num
éro d
’identification est
<strong>l
’entier
</strong> <<em>Id
</em>>, le texte figurant sur le bouton est le param
ètre
<<em>nom
</em>> qui est donc interpr
ét
é comme une
<a href=
"#chaine">cha
îne de caract
ères
</a>, la position du coin sup
érieur gauche est donn
ée par le param
ètre
<<em>affixe
</em>> qui doit
être de la forme X+i*Y avec X et Y
<strong>entiers
</strong> car ce sont des coordonn
ées en
<strong>pixels
</strong>, la taille du bouton est donn
ée par le param
ètre
<<em>taille
</em>> qui doit
être de la forme
<em>long+i*haut
</em> o
ù <em>long
</em> d
ésigne la longueur du bouton en pixels et
<em>haut
</em> la hauteur (ce sont donc des entiers), le param
ètre
<<em>commande
</em>> est interpr
ét
é comme une cha
îne de caract
ères, c
’est la commande associ
ée au bouton, chaque clic provoquera l
’ex
écution de cette commande. Le dernier param
ètre
<<em>aide
</em>> est facultatif, il contient le message de la bulle d
’aide s
’affichant lorsque la souris passe au-dessus du bouton.
</p>
384 <p>Si on cr
ée un bouton dont le num
éro d
’identification est d
éj
à pris, alors l
’ancien bouton est d
étruit
<strong>sauf si c
’est un bouton pr
éd
éfini
</strong> (c
’est
à dire cr
éé au d
émarrage).
À chaque changement de fichier, les boutons non pr
éd
éfinis sont d
étruits. La fonction
<strong>NewButton
</strong> renvoie la valeur
<em>Nil
</em>.
</p></li>
386 <h2 id=
"NewGraph">NewGraph
</h3>
388 <li><p><b>NewGraph(
<cha
îne1
>,
<cha
îne2
> [, code] )
</b>.
</p></li>
389 <li><p><u>Description
</u> : cette fonction cr
ée un
él
ément graphique
<span style=
"font-style:italic">Utilisateur
</span> ayant pour nom:
<<em>cha
îne1
</em>> et d
éfini par la commande:
<<em>cha
îne2
</em>>. Les deux arguments sont donc interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>. S
’il existait d
éj
à un
él
ément graphique portant le m
ême nom, alors celui-ci est
écras
é. L
’él
ément graphique est cr
éé mais non dessin
é, c
’est la fonction
<span style=
"font-style:italic">ReDraw()
</span> qui permet de mettre l
’affichage
à jour.
</p>
390 <p>Le troisi
ème param
ètre
<<em>code
</em>> est un entier positif (optionnel), un clic gauche avec la souris sur l
’él
ément graphique cr
éé dans la liste des
él
éments graphiques, provoquera l
’ex
écution de la macro sp
éciale
<span style=
"font-style:italic">ClicGraph(
<code
> )
</span>, cette macro n
’existe pas par d
éfaut et peut-
être cr
éée par l
’utilisateur, elle est utilis
ée en particulier dans le fichier mod
èle
<em>Mouse.mod
</em> (dessin
à la souris).
</p></li>
391 <li><p>Supposons que l
’utilisateur clique sur le point d
’affixe
1+i, alors une fen
être de dialogue s
’ouvre avec le message
<span style=
"font-style:italic">Label=
</span> et une ligne de saisie
à remplir. Supposons que l
’utilisateur entre la cha
îne
<span style=
"font-style:italic">Test
</span> et valide, alors la macro va cr
éer un
él
ément graphique
<span style=
"font-style:italic">utilisateur
</span> portant le nom
<span style=
"font-style:italic">Label1
</span> et d
éfini par la commande
<span style=
"color:red">Label(
1+i,
"Test
")
</span>.
</p></li>
392 <li><p>On peut aussi utiliser la macro pr
éd
éfinie
<span style=
"font-style:italic">NewLabel
</span> et d
éfinir la macro
<span style=
"font-style:italic">ClicG()
</span> en
écrivant simplement: {NewLabel(%
1) }.
</p></li>
393 <li><p><u>Exemple(s)
</u> : voici une macro
<span style=
"font-style:italic">ClicG()
</span> permettant la cr
éation
"à la vol
ée
" de labels, on a cr
éé auparavant une variable globale
<span style=
"font-style:italic">num
</span> initialis
ée
à 1:
</p></li>
395 <pre><code> if Input(
"Label=
")
396 then NewGraph( [
"Label
",num], [
"Label(
", %
1,
",
",
"""",chaine(),
""")
"] ),
400 <h2 id=
"NewItem">NewItem
</h3>
402 <li><p><b>NewItem(
<nom
>,
<commande
> )
</b>.
</p></li>
403 <li><p><u>Description
</u> : cette fonction ajoute dans la liste d
éroulante de la zone gris
ée
à gauche dans la fen
être, un item appel
é <<em>nom
</em>>, le deuxi
ème param
ètre
<<em>commande
</em>> est la commande associ
ée
à l
’item, chaque s
élection de l
’item provoquera l
’ex
écution de cette commande. Les deux arguments sont interpr
ét
és comme des cha
înes de caract
ères. S
’il existe d
éj
à un item portant le m
ême nom, alors l
’ancien est d
étruit
<strong>sauf si c
’est un item pr
éd
éfini
</strong> (c
’est
à dire cr
éé au d
émarrage).
À chaque changement de fichier, les items non pr
éd
éfinis sont d
étruits. La fonction
<span style=
"font-style:italic">NewItem
</span> renvoie la valeur
<em>Nil
</em>.
</p></li>
405 <h2 id=
"NewMac">NewMac
</h3>
407 <li><p><b>NewMac(
<nom
>,
<corps
> [, param1,
<span class=
"math">…</span>, paramN])
</b>.
</p></li>
408 <li><p><u>Description
</u> : cette fonction cr
ée une macro appel
ée
<<em>nom
</em>> et dont le contenu est
<<em>corps
</em>>. Les deux arguments sont donc interpr
ét
és comme des cha
înes de caract
ères. Les param
ètres optionnels sont des noms de variables, le nom de la variable
<<em>param1
</em>> est remplac
é dans l
’expression de la macro par le param
ètre %
1, le nom
<<em>param2
</em>> est remplac
é par %
2 <span class=
"math">…</span> etc. Cette fonction renvoie la valeur
<em>Nil
</em>. S
’il existait d
éj
à une macro portant le m
ême nom, alors celui-ci est
écras
ée
<strong>si elle n
’est pas pr
éd
éfinie
</strong>. Si le nom n
’est pas valide, ou s
’il y a d
éj
à une macro pr
éd
éfinie portant ce nom, ou si l
’expression
<<em>corps
</em>> n
’est pas correcte, alors la fonction est sans effet.
</p></li>
410 <h2 id=
"NewVar">NewVar
</h3>
412 <li><p><b>NewVar(
<nom
>,
<expression
> )
</b>.
</p></li>
413 <li><p><u>Description
</u> : cette fonction cr
ée une variable globale appel
ée
<<em>nom
</em>> et dont la valeur est
<<em>expression
</em>>. Les deux arguments sont donc interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>. S
’il existait d
éj
à une variable portant le m
ême nom, alors celle-ci est
écras
ée. Si le nom n
’est pas valide, ou s
’il y a d
éj
à une constante portant ce nom, alors la fonction est sans effet. Si
<<em>expression
</em>> n
’est pas correcte, alors la valeur affect
ée
à la variable sera
<em>Nil
</em>.
</p></li>
415 <h2 id=
"Nops">Nops
</h3>
417 <li><p><b>Nops(
<liste
> )
</b>.
</p></li>
418 <li><p><u>Description
</u> : cette fonction
évalue
<<em>liste
</em>> et renvoie le nombre de complexes qui la composent.
</p></li>
419 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Nops([
1,
2,
3] )
</span> renvoie la valeur
<span style=
"color:magenta">3</span>.
</p></li>
421 <h2 id=
"NotXor">NotXor
</h3>
423 <li><p><b>NotXor(
<element1
>, ...,
<elementN
> )
</b>.
</p></li>
424 <li><p><u>Description
</u> : cette fonction ne s
’applique qu
’aux
él
éments graphiques cr
éés en mode normal, ce qui correspond
à la valeur
0 de la variable
<a href=
"#PenMode">PenMode
</a>. Elle change le mode des
él
éments graphiques
<<em>element1
</em>>, ...,
<<em>elementN
</em>> en mode NotXor puis les recalcule, et elle renvoie la valeur
<em>Nil
</em>.
</p>
425 <p>Lorsqu
’on redessine un
él
ément graphique qui est en mode NotXor, il s
’efface en restituant le fond, on peut alors modifier sa position et le redessiner. Cette technique permet de faire glisser des objets sans avoir
à r
éafficher tous les autres (ce qui
évite d
’avoir une image qui saute).
</p></li>
426 <li><p><u>Exemple(s)
</u> : voir la fonction
<a href=
"#Move">Move
</a>.
</p></li>
428 <h2 id=
"OpenFile">OpenFile
</h3>
430 <li><p><b>OpenFile(
<nom fichier
> )
</b>.
</p></li>
431 <li><p><u>Description
</u> : cette fonction permet d
’ouvrir un fichier texte en
écriture. ATTENTION: s
’il existe un fichier du m
ême nom, alors celui-ci sera
écras
é.
</p>
432 <p>En combinaison avec les commandes
<a href=
"#WriteFile">WriteFile
</a> et
<a href=
"#CloseFile">CloseFile
</a>, cela permet
à l
’utilisateur de cr
éer ses propres fichiers textes.
</p></li>
434 <h2 id=
"OriginalCoord">OriginalCoord
</h3>
436 <li><p><strong>OriginalCoord(
<0/
1> )
</strong> ou
<b>OriginalCoord()
</b></p></li>
437 <li><p><u>Description
</u> : cette fonction d
étermine si le rep
ère
à l
’exportation en
<em>pstricks
</em> et
<em>tikz/pgf
</em> est identique
à celui de l
’écran (ce qui correspond
à la valeur
1 de l
’argument, valeur par d
éfaut), ou non. Lorsque la valeur de l
’argument est nulle, le rep
ère
à l
’exportation (
<em>pstricks
</em> et
<em>tikz/pgf
</em>) aura son origine en bas
à gauche et l
’unit
é sera le cm sur les deux axes. Cela est utile lorsqu
’on travaille dans des r
ép
ères o
ù certaines valeurs num
ériques ne sont plus accept
ées par .
</p>
438 <p>Lorsque l
’argument vaut
1, les coordonn
ées des points dans le fichier export
é sont les m
êmes qu
’à l
’écran.
</p>
439 <p>Lorsque l
’argument vaut
0, les coordonn
ées dans le fichier export
é (tex, pst, tikz/pgf) du point d
’affixe z
à l
’écran, sont x=Re(TexCoord(z)) et y=Im(TeXCoord(z)) (et EpsCoord
à la place de TeXCoord pour l
’export eps).
</p>
440 <p>Lorsque l
’argument est vide, la fonction renvoie l
’état actuel du rep
ère
à l
’exportation (
0 ou
1). Sinon, elle renvoie la valeur
<em>Nil
</em>.
</p></li>
442 <h2 id=
"PermuteWith">PermuteWith
</h3>
444 <li><p><b>PermuteWith(
<liste d
’index
>,
<liste
à permuter
>, [, taille des paquets ou jump] )
</b></p></li>
445 <li><p><u>Description
</u> : la
<<em>liste
à permuter
</em>> doit
être une variable, celle-ci sera permut
ée selon le
<<em>liste d
’index
</em>> qui est une liste d
’entiers strictement positifs. La
<<em>liste
à permuter
</em>> est trait
ée par composante si elle contient la constante
<em>jump
</em>, et les
él
éments de chaque composante sont trait
és par paquets (de
<span class=
"math">1</span> par d
éfaut) ou par composante enti
ère (une composante se termine par
<em>jump
</em>), la liste est donc modifi
ée.
</p></li>
446 <li><p><u>Exemple(s)
</u> : :
</p>
448 <li><p><span style=
"color:red">[L:=[-
1,
0,
3,
5], PermuteWith([
4,
3,
2,
1], L), L]
</span> renvoie
<span style=
"color:magenta">[
5,
3,
0,-
1]
</span>.
</p></li>
449 <li><p><span style=
"color:red">[L:=[-
1,
0,
3,
5], PermuteWith([
4,
3,
4,
1], L), L]
</span> renvoie
<span style=
"color:magenta">[
5,
3,
5,-
1]
</span>.
</p></li>
450 <li><p><span style=
"color:red">[L:=[-
1,
0,
3,
5,
6,
7,
8], PermuteWith([
4,
3,
2,
1], L,
2), L]
</span> renvoie
<span style=
"color:magenta">[
6,
7,
3,
5,-
1,
0]
</span>.
</p></li>
451 <li><p><span style=
"color:red">[L:=[-
1,jump,
0,
3,jump,
5,
6,
7,jump,
8,jump], PermuteWith( [
4,
3,
3,
1,
2], L, jump), L]
</span> renvoie
<span style=
"color:magenta">[
8,jump,
5,
6,
7,jump,
5,
6,
7,jump,-
1,jump,
0,
3,jump]
</span>.
</p></li>
452 <li><p><span style=
"color:red">[L:=[-
1,jump,
0,
3,jump,
5,
6,
7,jump,
8], PermuteWith([
4,
3,
3,
1,
2], L, jump), L]
</span> renvoie
<span style=
"color:magenta">[
5,
6,
7,jump,
5,
6,
7,jump,-
1,jump,
0,
3,jump]
</span>.
</p></li>
453 <li><p><span style=
"color:red">[L:=[-
1,
1,
5,jump,
0,
3,jump,
5,
6,
7,jump,
8,
9], PermuteWith( [
2,
1], L), L]
</span> renvoie
<span style=
"color:magenta">[
1,-
1,jump,
3,
0,jump,
6,
5,jump,
9,
8]
</span>.
</p></li>
456 <h2 id=
"ReadData">ReadData
</h3>
458 <li><p><b>ReadData(
<fichier
> [, type de lecture, s
éparateur] )
</b>.
</p></li>
459 <li><p><u>Description
</u> : cette fonction ouvre un
<<em>fichier
</em>> texte en lecture, celui-ci est suppos
é contenir une ou plusieurs listes de valeurs num
ériques. Le premier argument est interpr
ét
é comme une
<a href=
"#chaine">cha
îne de caract
ères
</a> qui contient le nom du fichier (plus
éventuellement son chemin). L
’argument (optionnel) suivant
<<em>type de lecture
</em>> est une valeur num
érique qui peut valoir:
</p>
461 <li><p><<em>type de lecture
</em>>=
1: la fonction lit le fichier r
éel par r
éel et renvoie la liste ou les listes lues:
<code>[x1, x2, ...]
</code>,
</p></li>
462 <li><p><<em>type de lecture
</em>>=
2: La fonction lit le fichier complexe par complexe, c
’est
à dire
<strong>par paquets de deux r
éels
</strong> et renvoie la ou les listes lues sous forme d
’affixes:
<code>[x1+i*x2, x3+i*x4, ...]
</code>. C
’est la valeur par d
éfaut,
</p></li>
463 <li><p><<em>type de lecture
</em>>=
3: La fonction lit le fichier par paquet de
3 r
éels (points de l
’espace ou point3D) et renvoie la ou les listes lues sous la forme:
<code>[x1+i*x2, x3, x4+i*x5, x6, ...]
</code>.
</p></li>
465 <p>Le troisi
ème argument
<<em>s
éparateur
</em>>, est interpr
ét
é comme une cha
îne, il est suppos
é contenir le caract
ère servant
à indiquer la fin de liste, entre deux listes la constante
<em>jump
</em> sera ins
ér
ée, cet argument est facultatif et par d
éfaut il n
’y a pas de s
éparateur (ce qui fait donc une seule liste). Lorsque le s
éparateur est la fin de ligne dans le fichier, on utilisera la cha
îne
<span style=
"color:red">"LF
"</span> (
<em>line feed
</em>) en troisi
ème param
ètre. Lorsqu
’il y a un s
éparateur et lorsque la lecture se fait par paquet de
2 ou
3 r
éels, un paquet non
øg complet
 est ignor
é.
</p></li>
466 <li><p><u>Exemple(s)
</u> : supposons qu
’un fichier texte
<em>test.dat
</em> contienne exactement ceci:
</p>
467 <pre><code>1 2 3 4 5/
6
471 <p>alors l
’ex
écution de:
</p>
473 <li><p><span style=
"color:red">ReadData(
"test.dat
")
</span> donne:
<span style=
"color:magenta">[
1+
2*i,
3+
4*i,
5+
6*i,
7+
8*i,
9+
10*i,
11+
12*i,
13+
14*i,
15+
16*i,
17+
18*i]
</span>,
</p></li>
474 <li><p><span style=
"color:red">ReadData(
"test.dat
",
1,
"/
")
</span> donne:
<span style=
"color:magenta">[
1,
2,
3,
4,
5,jump,
6,
7,
8,
9,
10,
11,jump,
12,
13,
14,
15,
16,
17,jump,
18]
</span>,
</p></li>
475 <li><p><span style=
"color:red">ReadData(
"test.dat
",
2,
"/
")
</span> donne:
<span style=
"color:magenta">[
1+
2*i,
3+
4*i,jump,
6+
7*i,
8+
9*i,
10+
11*i,jump,
12+
13*i,
14+
15*i,
16+
17*i,jump]
</span>,
</p></li>
476 <li><p><span style=
"color:red">ReadData(
"test.dat
",
3,
"/
")
</span> donne:
<span style=
"color:magenta">[
1+
2*i,
3,jump,
6+
7*i,
8,
9+
10*i,
11,jump,
12+
13*i,
14,
15+
16*i,
17,jump]
</span>,
</p></li>
477 <li><p><span style=
"color:red">ReadData(
"test.dat
",
3,
"LF
")
</span> donne:
<span style=
"color:magenta">[
1+
2*i,
3,
4+
5*i,
6,jump,
7+
8*i,
9,
10+
11*i,
12,jump,
13+
14*i,
15,
16+
17*i,
18,jump]
</span>.
</p></li>
480 <h2 id=
"ReadFlatPs">ReadFlatPs
</h3>
482 <li><p><b>ReadFlatPs(
<fichier
> )
</b>.
</p></li>
483 <li><p><u>Description
</u> : cette fonction ouvre un
<<em>fichier
</em>> en lecture, celui-ci est cens
é être un fichier
écrit en
<em>flattened postscript
</em>. La fonction renvoie la liste des chemins contenus dans le fichier, le premier complexe de la liste est
<em>largeur+i*hauteur
</em> en cm, puis le premier complexe de chaque chemin est
<em>Color+i*Width
</em>. Chaque chemin se termine par un
<em>jump
</em> dont la partie imaginaire est un enter n
égatif:
<span class=
"math"> -
 1</span> pour eofill,
<span class=
"math"> -
 2</span> pour fill,
<span class=
"math"> -
 3</span> pour stroke et
<span class=
"math"> -
 4</span> pour clip.
</p>
484 <p>Il est possible de transformer un fichier pdf ou un fichier postscript en
<em>flattened postscript
</em> gr
âce
à l
’utilitaire
<em>pstoedit
</em> (
<a href=
"http://www.pstoedit.net/"><code class=
"url">http://www.pstoedit.net/
</code></a>). La macro
<a href=
"#conv2FlatPs">conv2FlatPs
</a> permet cette conversion en supposant que l
’utilitaire est install
é sur votre syst
ème.
</p>
485 <p>La fonction
<span style=
"font-style:italic">ReadFlatPs
</span> est surtout utilis
ée en interne par la macro
<a href=
"#loadFlatPs">loadFlatPs
</a> qui en plus du chargement, adpate les coordonn
ées des points avant de renvoyer
à son tour la liste des chemins que l
’on peut alors dessiner avec la macro
<a href=
"#drawFlatPs">drawFlatPs
</a>.
</p>
486 <p>Ce syst
ème est utilis
é par la macro
<a href=
"#NewTeXlabel">NewTeXLabel
</a> pour r
écup
érer les formules TeX compil
ées.
</p></li>
488 <h2 id=
"ReCalc">ReCalc
</h3>
490 <li><p><strong>ReCalc(
<nom1
>, ...,
<nomN
> )
</strong> ou
<b>ReCalc()
</b>.
</p></li>
491 <li><p><u>Description
</u> : cette fonction force le recalcul des
él
éments graphiques dont les noms sont dans la liste m
ême si ceux-ci ne sont pas en mode
<span style=
"font-style:italic">Recalcul Automatique
</span>. Si la liste est vide (
<span style=
"font-style:italic">ReCalc()
</span>) alors tout le graphique est recalcul
é. Apr
ès le recalcul l
’affichage est mis
à jour et la fonction renvoie
<em>Nil
</em>.
</p></li>
493 <p><strong>Attention
</strong>: l
’utilisation de
<span style=
"font-style:italic">ReCalc()
</span> dans un
él
ément graphique entra
îne une r
écursion infinie et donc un plantage du programme!
</p>
494 <h2 id=
"ReDraw">ReDraw
</h3>
496 <li><p><strong>ReDraw(
<nom1
>, ...,
<nomN
> )
</strong> ou
<b>ReDraw()
</b>.
</p></li>
497 <li><p><u>Description
</u> : cette fonction (re)dessine les
él
éments graphiques dont les noms sont dans la liste. Si la liste est vide (
<span style=
"font-style:italic">ReDraw()
</span>) alors tous les
élments sont redessin
és. Cette fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
499 <h2 id=
"RenCommand">RenCommand
</h3>
501 <li><p><b>RenCommand(
<nom
>,
<nouveau
> )
</b>.
</p></li>
502 <li><p><u>Description
</u> : cette fonction renomme la commande appel
ée
<<em>nom
</em>>. Les deux arguments sont donc interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>. Si le
<<em>nom
</em>> n
’est pas valide, ou s
’il n
’y a pas de commande portant ce
<<em>nom
</em>>, ou s
’il a d
éj
à une commande portant le nom
<<em>nouveau
</em>>, alors la fonction est sans effet.
</p></li>
504 <h2 id=
"RenMac">RenMac
</h3>
506 <li><p><b>RenMac(
<nom
>,
<nouveau
> )
</b>.
</p></li>
507 <li><p><u>Description
</u> : cette fonction renomme la macro appel
ée
<<em>nom
</em>>. Les deux arguments sont donc interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>. Si le
<<em>nom
</em>> n
’est pas valide, ou s
’il n
’y a pas de macro portant ce
<<em>nom
</em>>, ou s
’il a d
éj
à une macro portant le nom
<<em>nouveau
</em>>, alors la fonction est sans effet.
</p></li>
509 <h2 id=
"RestoreAttr">RestoreAttr
</h3>
511 <li><p><b>RestoreAttr()
</b>.
</p></li>
512 <li><p><u>Description
</u> : restaure l
’ensemble des attributs sauvegard
és dans une pile par la commande
<a href=
"#SaveAttr">SaveAttr
</a>.
</p></li>
514 <h2 id=
"Reverse">Reverse
</h3>
516 <li><p><b>Reverse(
<liste
> )
</b>.
</p></li>
517 <li><p><u>Description
</u> : renvoie la
<<em>liste
</em>> invers
ée.
</p></li>
519 <h2 id=
"Rgb">Rgb
</h3>
521 <li><p><b>Rgb(
<rouge
>,
<vert
>,
<bleu
> )
</b>.
</p></li>
522 <li><p><u>Description
</u> : cette fonction renvoie un entier repr
ésentant la couleur dont les trois composantes sont
<<em>rouge
</em>>,
<<em>vert
</em>> et
<<em>bleu
</em>>, ces trois valeurs doivent
être des nombres
<strong>compris entre
0 et
1</strong>. Voir aussi la commande
<a href=
"#HexaColor">HexaColor
</a>.
</p></li>
523 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Color:= Rgb(
0.5,
0.5,
0.5))
</span> s
électionne le gris.
</p></li>
525 <h2 id=
"SaveAttr">SaveAttr
</h3>
527 <li><p><b>SaveAttr()
</b>.
</p></li>
528 <li><p><u>Description
</u> : sauvegarde sur une pile l
’ensemble des attributs courants. Voir aussi
<a href=
"#RestoreAttr">RestoreAttr
</a>.
</p></li>
530 <h2 id=
"Seq">Seq
</h3>
532 <li><p><b>Seq(
<expression
>,
<variable
>,
<d
épart
>,
<fin
> [, pas] )
</b>.
</p></li>
533 <li><p><u>Description
</u> : cette fonction est une
<strong>boucle
</strong> qui construit une liste de la mani
ère suivante:
<<em>variable
</em>> est initialis
ée
à <<em>d
épart
</em>> puis, tant que
<<em>variable
</em>> est dans l
’intervalle (ferm
é) d
éfini par
<<em>d
épart
</em>> et
<<em>fin
</em>>, on
évalue
<<em>expression
</em>> et on incr
émente
<<em>variable
</em>> de la valeur de
<<em>pas
</em>>. Le pas peut
être n
égatif mais il doit
être non nul. Lorsqu
’il n
’est pas sp
écifi
é, sa valeur par d
éfaut est
1. Lorsque
<<em>variable
</em>> sort de l
’intervalle, la boucle s
’arr
ête et la fonction
<span style=
"font-style:italic">Seq
</span> renvoie la liste des r
ésultats. Cette commande est la repr
ésentation interne de la boucle
<a href=
"#for">for
</a> dont l
’utilisation est pr
éf
érable pour des raisons de lisibilit
é.
</p></li>
534 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Seq(exp(i*k*pi/
5,k,
1,
5)
</span> renvoie la liste des racines cinqui
èmes de l
’unit
é. La commande:
</p>
535 <p><div style=
"text-align:center"><span style=
"color:red">Ligne( Seq( exp(
2*i*k*pi/
5, k,
1,
5),
1)
</span></div></p>
536 <p>renverra la valeur
<em>Nil
</em> mais dessinera un pentagone (voir
<a href=
"#Ligne">Ligne
</a>) si elle est utilis
ée dans un
él
ément graphique
<em>utilisateur
</em>.
</p></li>
538 <h2 id=
"Set">Set
</h3>
540 <li><p><b>Set(
<variable
>,
<valeur
> )
</b>.
</p></li>
541 <li><p><u>Description
</u> : cette fonction permet d
’affecter
à <<em>variable
</em>><sup><a href=
"#fn3" class=
"footnoteRef" id=
"fnref3">3</a></sup> la
<<em>valeur
</em>> sp
écifi
ée. La fonction
<span style=
"font-style:italic">Set
</span> renvoie la valeur
<em>Nil
</em>.
</p>
542 <p>Cette commande est la repr
ésentation interne de l
’affectation
<span style=
"font-style:italic">:=
</span>, dont l
’utilisation est pr
éf
érable pour des raisons de lisibilit
é.
</p></li>
544 <h2 id=
"SetAttr">SetAttr
</h3>
546 <li><p><b>SetAttr()
</b>.
</p></li>
547 <li><p><u>Description
</u> : cette fonction n
’a d
’effet que dans un
él
ément graphique Utilisateur. Elle permet d
’affecter aux attributs de l
’él
ément la valeur des attributs actuellement en cours. La fonction
<span style=
"font-style:italic">SetAttr
</span> renvoie la valeur
<em>Nil
</em>.
</p></li>
549 <h2 id=
"SetMatrix">SetMatrix
</h3>
551 <li><p><b>SetMatrix(
<[z1, z2, z3]
> )
</b>.
</p></li>
552 <li><p><u>Description
</u> : cette fonction permet de modifier la matrice courante (celle-ci affecte tous les
él
éments graphiques sauf les axes et les grilles dans la version actuelle). Cette matrice repr
ésente l
’expression analytique d
’une application affine du plan, c
’est une liste de trois complexes:
<span class=
"math"><em>z
</em>1</span> qui est l
’affixe du vecteur de translation,
<span class=
"math"><em>z
</em>2</span> qui est l
’affixe du premier vecteur colonne de la matrice de la partie lin
éaire dans la base (
1,i), et
<span class=
"math"><em>z
</em>3</span> qui est l
’affixe du deuxi
ème vecteur colonne de la matrice de la partie lin
éaire. Par exemple, la matrice de l
’identit
é s
’écrit ainsi: [
0,
1,i] (c
’est la matrice par d
éfaut). (Voir aussi les commandes
<a href=
"#GetMatrix">GetMatrix
</a>,
<a href=
"#ComposeMatrix">ComposeMatrix
</a>, et
<a href=
"#IdMatrix">IdMatrix
</a>)
</p></li>
553 <li><p><u>Exemple(s)
</u> : si
<span class=
"math"><em>f
</em>:
 <em>z
</em> ↦ <em>f
</em>(
<em>z
</em>)
</span> est une application affine, alors sa matrice est
<span class=
"math">[
<em>f
</em>(
0),
 <em>f
</em>(
1)
 -
 <em>f
</em>(
0),
 <em>f
</em>(
<em>i
</em>)
 -
 <em>f
</em>(
0)]
</span>, ce calcul peut-
être fait par la macro
<em>matrix()
</em> de TeXgraph.mac:
<span style=
"color:red">SetMatrix(matrix(i*bar(z)))
</span> affecte la matrice de la sym
étrie orthogonale par rapport
à la premi
ère bissectrice.
</p></li>
557 <p>view(-
5,
5,-
3,
3), size(
7.5), SetMatrix([
0,
1,
1+i]), axes(
0,
1+i), tMin:=-
5, tMax:=
5, Color:=red, Width:=
8, Cartesienne(
2*sin(x)), Color:=black, Arrows:=
2, tangente(
2*sin(x), pi/
2,
1.5), Arrows:=
0, LineStyle:=dotted, Ligne( [
2*i,pi/
2+
2*i, pi/
2],
0), Point(pi/
2+
2*i), LabelDot( pi/
2,
"<span class=
"math">$\frac{\pi}
2$
</span>",
"S
",
1), IdMatrix()
</p>
560 <h2 id=
"Show">Show
</h3>
562 <li><p><b>Show(
<element1
>, ...,
<elementN
> )
</b>.
</p></li>
563 <li><p><u>Description
</u> : Cette fonction permet de montrer les
él
éments graphiques appel
és
<<em>element1
</em>>, ...,
<<em>elementN
</em>> en mettant leur attribut
<span style=
"font-style:italic">IsVisible
</span> à true. Les arguments sont interpr
ét
és comme des cha
înes de caract
ères. Cette fonction renvoie la valeur
<em>Nil
</em>. Pour tout montrer on invoque la commande sans arguments:
<span style=
"font-style:italic">Show()
</span>. Pour tout montrer sauf un ou plusieurs
él
éments, on invoque la commande:
<span style=
"color:red">Show(except, element1, ..., elementN)
</span>. Voir aussi la commande
<a href=
"#Hide">Hide
</a>.
</p></li>
567 <li><p><b>Si(
<condition1
>,
<expression1
>, ...,
<conditionN
>,
<expressionN
> [, sinon] )
</b>.
</p></li>
568 <li><p><u>Description
</u> : cette fonction
évalue
<<em>condition1
</em>>. Une condition est une expression dont le r
ésultat de l
’évaluation doit
être
0 [pour
<em>False
</em>] ou
1 [pour
<em>True
</em>], sinon il y a un
échec et la fonction renvoie la valeur
<em>Nil
</em>. Si la condition donne la valeur
1 alors la fonction
évalue
<<em>expression1
</em>> et renvoie le r
ésultat, si elle vaut
0, elle
évalue
<<em>condition2
</em>>, si celle-ci donne la valeur
1 alors la fonction
évalue
<<em>expression2
</em>>, sinon etc... Lorsqu
’aucune condition n
’est remplie, la fonction
évalue l
’argument
<<em>sinon
</em>>, s
’il est pr
ésent, et renvoie le r
ésultat, sinon la fonction renvoie
<em>Nil
</em>. Cette commande est la repr
ésentation interne de l
’alternative
<a href=
"#if">if
</a> dont la syntaxe est pr
éf
érable pour des raisons de lisibilit
é.
</p></li>
569 <li><p><u>Exemple(s)
</u> : d
éfinition d
’une macro
<span style=
"color:red">f(x)
</span> repr
ésentant une fonction f d
’une variable x d
éfinie en plusieurs morceaux:
</p>
570 <p><div style=
"text-align:center">{Si(%
1<-
1,
1-exp(pi*(%
1+
1)),%
1<0,sin(
<span class=
"math">π</span>*%
1),sh(pi*%
1))},
</div></p>
571 <p>c
’est
à dire
<span class=
"math"><em>f
</em>(
<em>x
</em>)
 =
 1 -
 <em>e
</em><em>x
</em><em>p
</em>(
π(
<em>x
</em> +
 1))
</span> si
<span class=
"math"><em>x
</em> <  -
 1</span>,
<span class=
"math"><em>f
</em>(
<em>x
</em>)
 =
 <em>s
</em><em>i
</em><em>n
</em>(
π<em>x
</em>)
</span> si
<span class=
"math"> -
 1 ≤ <em>x
</em> < 0</span>,
<span class=
"math"><em>f
</em>(
<em>x
</em>)
 =
 </span>sh
<span class=
"math">(
π<em>x
</em>)
</span> sinon.
</p></li>
573 <h2 id=
"Solve">Solve
</h3>
575 <li><p><b>Solve(
<expression
>,
<variable
>,
<borne inf.
>,
<borne sup.
> [, n] )
</b>.
</p></li>
576 <li><p><u>Description
</u> : cette fonction
"r
ésout
" l
’équation
<<em>expression
</em>>=
0 par rapport
à la variable
<strong>r
éelle
</strong> <<em>variable
</em>> dans l
’intervalle d
éfini par
<<em>borne inf.
</em>> et
<<em>borne sup.
</em>>. Cet intervalle est subdivis
é en
<<em>n
</em>> parties [par d
éfaut n=
25] et on utilise la m
éthode de { Newton} sur chaque partie. La fonction renvoie la liste des r
ésultats.
</p></li>
577 <li><p><u>Exemple(s)
</u> :
</p>
579 <li><p><span style=
"color:red">Solve(sin(x), x, -
5,
5)
</span> donne
<span style=
"color:magenta">[-
3.141593,
0,
3.141593]
</span>.
</p></li>
580 <li><p>Équation:
<span class=
"math">$\displaystyle \int_0^x \exp(t^
2)dt=
1$
</span>:
<span style=
"color:red">Solve(Int( exp(u^
2),u,
0,x)-
1, x,
0,
1)
</span> donne
<span style=
"color:magenta">0.795172</span> et l
’ex
écution de
<span style=
"color:red">Int(exp(u^
2), u,
0,
0.795172)
</span> donne
<span style=
"color:magenta">1</span>.
</p></li>
581 <li><p><span style=
"color:red">Solve(
<span class=
"math"><em>x
</em><sup>2</sup> +
 <em>x
</em> +
 1</span>, x, -
1,
1)
</span> renvoie
<em>Nil
</em>.
</p></li>
584 <h2 id=
"Sort">Sort
</h3>
586 <li><p><b>Sort(
<liste de complexes
> [, option] )
</b>.
</p></li>
587 <li><p><u>Description
</u> : cette fonction trie la liste pass
ée en argument dans l
’ordre lexicographique, si l
’argument
<<em>option
</em>> vaut
0 (valeur par d
éfaut), ou dans l
’ordre lexicographique inverse si l
’argument
<<em>option
</em>> vaut
1. Cette liste doit
être une variable, et celle-ci sera modifi
ée. Si la liste contient la constante
<em>jump
</em> alors celle-ci est recopi
ée telle quelle dans le r
ésultat, et les
øg composantes connexes
 de la liste sont tri
ées ind
épendamment les unes des autres. La fonction renvoie la valeur
<em>Nil
</em>.
</p></li>
588 <li><p><u>Exemple(s)
</u> : si la variable
<span style=
"font-style:italic">L
</span> contient la liste
<span style=
"color:magenta">[-
2,-
3+i,
1,
1-
2*i, jump,
3,
5,-
6]
</span> alors apr
ès l
’ex
écution de
<span style=
"color:red">Sort(L)
</span>, la variable contiendra la liste
<span style=
"color:magenta">[-
3+i,-
2,
1-
2*i,
1,jump,-
6,
3,
5]
</span>, et apr
ès l
’ex
écution de
<span style=
"color:red">Sort(L,
1)
</span>, la variable contiendra la liste
<span style=
"color:magenta">[
1,
1-
2*i,-
2,-
3+i,jump,
5,
3,-
6]
</span>. La m
éthode utilis
ée est le Quick Sort..
</p></li>
590 <h2 id=
"Special">Special
</h3>
592 <li><p><b>Special(
<cha
îne
> )
</b>.
</p></li>
593 <li><p><u>Description
</u> : cette fonction n
’aura d
’effet que dans un
él
ément graphique Utilisateur (comme les fonctions graphiques). L
’argument doit
être une cha
îne de caract
ères (d
élimit
ée par
" et
"), si cette cha
îne contient les balises
<code>\[
</code>, et
<code>\]
</code>, alors tout le texte contenu entre ces deux balises est interpr
ét
é par TeXgraph et le r
ésultat est replac
é dans la cha
îne. Puis cette cha
îne sera
écrite telle quelle dans le fichier d
’exportation (c
’est en fait un Label cr
éé avec LabelStyle= special).
</p></li>
594 <li><p><u>Exemple(s)
</u> :
<span style=
"color:red">Special(
"\psdot(
\[
1+
\],
\[
2^
3\] )
")
</span>,
écrira dans le fichier export
é:
<span style=
"color:magenta">\psdot(
2,
8)
</span>.
</p></li>
596 <h2 id=
"Str">Str
</h3>
598 <li><p><b>Str(
<nom de macro
> )
</b>.
</p></li>
599 <li><p><u>Description
</u> : lors d
’une
évaluation alphanum
érique, cette fonction renvoie la d
éfinition de la macro appel
ée
<<em>nom de macro
</em>> (sauf si c
’est une macro pr
éd
éfinie). En dehors de ce contexte, la fonction
<span style=
"font-style:italic">Str
</span> renvoie
<em>Nil
</em>. L
’argument
<<em>nom de macro
</em>> est lui-m
ême interpr
ét
é comme une cha
îne de caract
ères.
</p></li>
600 <li><p><u>Exemple(s)
</u> : supposons que la macro
<span style=
"color:red">f
</span> soit d
éfinie par {%
1+i*sin(%
1)}, alors la commande {Label(
0,[
"f(%
1)=
",Str(
"f
")] )} affichera
à l
’écran
à l
’affixe
0, le texte: {f(%
1)=%
1+i*sin(%
1)}.
</p></li>
602 <h2 id=
"StrArgs">StrArgs
</h3>
604 <li><p><b>StrArgs(
<entier
> )
</b>.
</p></li>
605 <li><p><u>Description
</u> : cette fonction n
’a d
’effet que dans une macro, elle renvoie l
’argument num
éro
<<em>entier
</em>> avec lequel la macro a
ét
é appel
ée, sous forme d
’une cha
îne. Hors de ce contexte, elle renvoie la valeur
<em>Nil
</em>. Voir
également la commande
<a href=
"#Args">Args
</a></p></li>
606 <li><p><u>Exemple(s)
</u> : Voir la fonction
<a href=
"#Nargs">Nargs
</a>.
</p></li>
608 <h2 id=
"StrComp">StrComp
</h3>
610 <li><p><b>StrComp(
<cha
îne1
>,
<cha
îne2
> )
</b>.
</p></li>
611 <li><p><u>Description
</u> : les deux arguments sont interpr
ét
és comme une cha
îne de caract
ères, et les deux cha
înes sont compar
ées, si elles sont
égales alors la fonction renvoie la valeur
1, sinon la valeur
0.
</p></li>
612 <li><p><u>Exemple(s)
</u> : la combinaison de touches: Ctrl+Maj+
<lettre
> lance automatiquement l
’ex
écution de la macro sp
éciale:
<span style=
"font-style:italic"> OnKey(
<lettre
> )
</span>. L
’utilisateur peut d
éfinir cette macro avec par exemple la commande:
</p>
613 <p><div style=
"text-align:center">{if StrComp(%
1,
"A
") then Message(
"Lettre A
") fi}
</div></p></li>
615 <h2 id=
"String">String
</h3>
617 <li><p><b>String(
<expression math
ématique
> )
</b>.
</p></li>
618 <li><p><u>Description
</u> : lors d
’une
évaluation alphanum
érique, cette fonction renvoie
<<em>expression math
ématique
</em>> sous forme d
’une cha
îne. En dehors de ce contexte, la fonction
<span style=
"font-style:italic">String
</span> renvoie
<em>Nil
</em>.
</p></li>
620 <h2 id=
"Stroke">Stroke
</h3>
622 <li><p><b>Stroke(
<element1
>, ...,
<elementN
> )
</b>.
</p></li>
623 <li><p><u>Description
</u> : cette fonction recalcule les
él
éments graphiques
<<em>element1
</em>>, ...,
<<em>elementN
</em>>, puis les red
éssine en mode NORMAL, et renvoie la valeur
<em>Nil
</em>.
</p></li>
624 <li><p><u>Exemple(s)
</u> : on a cr
éé deux variables globales:
<span class=
"math"><em>a
</em></span> et
<em>drawing
</em>. On va cr
éer le cercle de centre a et de rayon
1, appel
é <span style=
"font-style:italic">objet1
</span>, on souhaite pouvoir d
éplacer cet objet
à la souris. Pour cela, on cr
ée la macro
<span style=
"font-style:italic">ClicG
</span> avec la commande:
</p></li>
626 <pre><code> [PenMode:=
1, {mode NotXor}
627 NewGraph(
"objet1
",
"Cercle(a,
1)
"),
628 PenMode:=
0, {mode normal}
629 ReDraw(), {on montre}
632 <p>on cr
ée la macro
<span style=
"color:magenta">MouseMove
</span> avec la commande:
<span style=
"color:red">if drawing then a:=
</span>,
</p>
633 <p>puis la macro
<span style=
"color:magenta">LButtonUp
</span> avec la commande:
<span style=
"color:red">if drawing then Stroke(objet1), drawing:=
0 fi
</span>.
</p>
634 <p>La macro
<span style=
"font-style:italic">ClicG
</span> cr
ée l
’objet1 en mode NotXor, rafra
îchit l
’affichage graphique et passe en mode
"dessin
". La macro
<span style=
"font-style:italic"> MouseMove
</span> permet de placer le centre
à la position de la souris, puis de d
éplacer l
’objet1. Lorsque le bouton gauche est rel
âch
é, on dessine l
’objet1 en mode normal, puis on quitte le mode
"dessin
".
</p>
635 <h2 id=
"TeX2FlatPs">TeX2FlatPs
</h3>
637 <li><p><b>TeX2FlatPs(
<"formule
"> [, dollar(
0/
1)] )
</b>.
</p></li>
638 <li><p><u>Description
</u> : cette renvoie une
<<em>formule
</em>> {} sous forme d
’une liste de chemins, le r
ésultat doit
être dessin
é avec la macro
<a href=
"#drawFlatPs">drawFlatPs
</a>. La
<<em>formule
</em>> est
écrite dans un fichier appel
é <em>formula.tex
</em>. Ce fichier est appel
é par le fichier
<em>formule.tex
</em> qui se trouve dans le dossier de travail de TeXgraph, pour
être compil
é par {}. Si l
’option
<<em>dollar
</em>> vaut
<span class=
"math">1</span> alors la formule sera d
élimit
ée par
<code>\]
</code> et
<code>\]
</code>, sinon elle est
écrite telle quelle. Pour plus de renseignements sur la fa
çon dont sont r
écup
ér
és ces chemins, voir la commande
<a href=
"#ReadFlatPs">ReadFlatPs
</a>.
</p></li>
640 <h2 id=
"Timer">Timer
</h3>
642 <li><p><b>Timer(
<milli-secondes
> )
</b>.
</p></li>
643 <li><p><u>Description
</u> : r
ègle l
’intervalle de temps pour le timer, celui ex
écute r
éguli
èrement une certaine macro (que l
’on peut d
éfinir avec la commande TimerMac). Pour stopper le timer il suffit de r
égler l
’intervalle de temps
à 0.
</p></li>
645 <h2 id=
"TimerMac">TimerMac
</h3>
647 <li><p><b>TimerMac(
<corps de la macro
à ex
écuter
> )
</b>.
</p></li>
648 <li><p><u>Description
</u> : cette commande permet de cr
éer une macro qui sera attach
ée au timer. L
’argument est interpr
ét
é comme une cha
îne de caract
ères et doit correspondre au corps de la macro (celle-ci sera app
él
ée TimerMac). Pour des raisons de performances, il est pr
éf
érable d
’éviter trop d
’appels
à d
’autres macros dans celle-ci. Cette fonction renvoie la valeur
1 si la macro est correctement d
éfinie,
0 en cas d
’erreur. Attention, l
’ex
écution de TimerMac ne d
éclenche pas le timer! Il faut utiliser la commande Timer pour cela.
</p></li>
649 <li><p><u>Exemple(s)
</u> : soit
<span class=
"math"><em>A
</em></span> une variable globale (un point), soit
<em>dotA
</em> un
él
ément graphique qui dessine le point, voil
à une commande qui d
éplace
<span class=
"math"><em>A
</em></span>:
</p>
650 <p><div style=
"text-align:center"> <span style=
"color:red">[TimerMac(
"[Inc(A,
0.1), if Re(A)
>5 then Timer(
0) else ReCalc(dotA) fi]
"), A:=-
5, Timer(
10)]
</span></div></p></li>
652 <h2 id=
"VisibleGraph">VisibleGraph
</h3>
654 <li><p><strong>VisibleGraph(
<0/
1> )
</strong> ou
<b>VisibleGraph()
</b>.
</p></li>
655 <li><p><u>Description
</u> : cette fonction permet d
’activer ou d
ésactiver la zone de dessin dans l
’interface graphique. Lorsque celle-ci est d
ésactiv
ée, son contenu ne change plus car il n
’y a plus de mise
à jour de la zone. D
ésactiver l
’affichage graphique peut permettre dans certains cas un gain de temps pour enregistrer une animation par exemple.
</p>
656 <p>Lorsque l
’argument est vide, la fonction renvoie simplement l
’état actuel de l
’affichage graphique (
0 ou
1). Sinon, elle renvoie
<em>Nil
</em>.
</p></li>
658 <h2 id=
"WriteFile">WriteFile
</h3>
660 <li><p><b>WriteFile(
<argument
> )
</b>.
</p></li>
661 <li><p><u>Description
</u> : cette fonction permet d
’écrire soit dans le fichier texte ouvert par la commande
<a href=
"#OpenFile">OpenFile
</a>, soit dans le fichier d
’exportation si l
’ex
écution de cette commande a lieu pendant une exportation par l
’interm
édiare des macros
<a href=
"#Bsave">Bsave
</a> et/ou
<a href=
"#Esave">Esave
</a>.
</p></li>
662 <li><p><u>Exemple(s)
</u> : voici ce que pourrait
être la macro
<span style=
"font-style:italic">Bsave
</span> pour modifier la taille des fl
êches en pstricks:
</p></li>
664 <pre><code> if ExportMode=pst then WriteFile(
"\psset{arrowscale=
3}
") fi
666 <div class=
"footnotes">
669 <li id=
"fn1"><p>C
’est la premi
ère occurrence de
<<em>variable
</em>> dans
<<em>expression
</em>> qui est assign
ée, car toutes les occurrences pointent sur la m
ême
<case m
émoire
>, sauf
éventuellement pour les macros apr
ès l
’affectation des param
ètres.
<a href=
"#fnref1" class=
"footnoteBackLink" title=
"Jump back to footnote 1">↩</a></p></li>
670 <li id=
"fn2"><p>Si par exemple on veut tracer la courbe repr
ésentative de cette fonction, dans l
’option
<em>Courbe/Param
étr
ée
</em>, il faudra saisir la commande
<em>t+i*
<span class=
"math"> ∖ </span>df
</em> et non pas
<em>t+i*df(t)
</em>.
<a href=
"#fnref2" class=
"footnoteBackLink" title=
"Jump back to footnote 2">↩</a></p></li>
671 <li id=
"fn3"><p>Il n
’est pas n
écessaire de d
éclarer les variables, elles sont implicitement locales et initialis
ées
à <em>Nil
</em> sauf si c
’est le nom d
’une variable globale ou d
’une constante pr
éd
éfinie (comme i,
<span class=
"math">π</span>, e, ...).
<a href=
"#fnref3" class=
"footnoteBackLink" title=
"Jump back to footnote 3">↩</a></p></li>