Script Equation Grapher est également capable de traiter des équations paramétriques, c'est à dire ou le couple de coordonées (x,y) ou (r,@) n'est pas lié par une relation directe de type y=f(x) ou r=f(@) mais par des relations distinctes à un paramètre t...
Script Equation Grapher est donc capable de traiter des équations de type:
x=f(t); |
ou |
r=f(t); |
Les courbes de Lissajoux ont pour équation :
x=sin(a1*t+p1);
y=cos(a2*t+p2);
Avant d'écrire ce script, c'est peut-être le moment d'en apprendre un peu plus sur le moteur de script. Bien sur vous pouvez écrire sans en savoir plus un script traitant les équations ci-dessus:
a1=1;
a2=2;
p1=0;
p2=1;
x=sin(a1*t+p1);
y=cos(a2*t+p2);
Cependant, ce script est exécuté intégralement pour chacune des valeurs de t précisées dans la fenêtre des bornes. Hors les quatre premières lignes correspondent juste à une initialisation de certaines variables du script...
En fait le moteur de script travaille par section. Jusqu'ici, en l'absence
de section, le moteur exécutait les lignes de script sans chercher plus
loin.
Mais il est possible d'écrire un script sous la forme:
[Section]
{
instructions ...
}
Le moteur de script reconnaît par défaut cinqsections : [Init], [Begin], [Body], [End] et [Timer]...
La section [Init] est appelée après chaque compilation,
ou avant chaque lancement d'animation ( voir le Huitième
Exemple).
La section [Begin] est appelée avant le tracé de la courbe.
La section [Body] est appelée pour chaque point de tracé,
quelque soit le type de courbe.
La section [End] est appelée après chaque tracé
de courbe.
La section [Timer] est appelée de manière asynchrone (
voir le Huitième Exemple).
En utilisant les sections, l'écriture du script précédent devra plutôt s'écrire:
[Init] { a1=1; a2=2; p1=0; p2=1; } [Body] { x=sin(a1*t+p1); y=cos(a2*t+p2); } |
Le même travail peut être fait avec des équations polaires...
r=t*(1+sin(t)/3);
@=PI*sin(t);
donnerait:en cartésien et en polaire...