1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
\section{Fonctionnement}
\TIKZ\ apporte différentes possibilités pour obtenir les représentations graphiques des fonctions. J'ai privilégié l'utilisation de \tkzname{gnuplot}, car je trouve \tkzname{pgfmath} trop lent et les résultats trop imprécis.
Avec \TIKZ\ et \tkzname{gnuplot}, on obtient la représentation d'une fonction à l'aide de
\begin{tkzltxexample}[]
\draw[options] plot function {gnuplot expression};
\end{tkzltxexample}
Dans cette nouvelle version de \tkzname{tkz-fct}, la macro \tkzcname{tkzFct} reprend le code précédent avec les mêmes options que celles de \TIKZ. Parmi les options, les plus importantes sont \tkzname{domain} et \tkzname{samples}.
La macro \tkzcname{tkzFct} remplace \tkzcname{draw plot function} mais exécute deux tâches supplémentaires, en plus du tracé. Tout d'abord, l'expression de la fonction est sauvegardée avec la syntaxe de \tkzname{gnuplot} et également sauvegardée avec la syntaxe de \tkzname{fp} pour une utilisation ultérieure. Cela permet, sans avoir à redonner l'expression, de placer par exemple, des points sur la courbe (les images sont calculées à l'aide de \tkzname{fp}), ou bien encore, de tracer des tangentes.
Ensuite, et c'est le plus important, \tkzcname{tkzFct} tient compte des unités utilisées pour l'axe des abscisses et celui des ordonnées. Ces unités sont définies en utilisant la macro \tkzcname{tkzInit} du package \tkzname{tkz-base} avec les options \tkzname{xstep} et \tkzname{ystep}.
La macro \tkzcname{tkzFct} intercepte les valeurs données à l'option \tkzname{domain} et évidemment l'expression mathématique de la fonction;
si \tkzname{xstep} et \tkzname{ystep} diffèrent de 1 alors il est tenu compte de ces valeurs pour le domaine, ainsi que pour les calculs d'images. Lorsque \tkzname{xstep} diffère de 1 alors l'expression donnée, doit utiliser uniquement \tkzcname{x} comme variable, c'est ainsi qu'il est possible d'ajuster les valeurs. Cela permet d'éviter des débordements dans les calculs.
Par exemple, soit à tracer le graphe de la fonction $f$ définie par :
\[
0\leq x\leq 100 \ \text{et}\ f(x)=x^3
\]
Les valeurs de $f(x)$ sont comprises entre 0 et $\numprint{1000000}$. En choisissant \tkzname{xstep=10} et \tkzname{ystep=100000}, les axes auront environ $10$ cm de longueur (sans mise à l'échelle).
Les valeurs du domaine seront comprises entre $0$ et $10$, mais l'expression donnée à \tkzname{gnuplot}, comportera des \tkzcname{x} équivalents à $x \times 10$, enfin, la valeur finale sera divisée par \tkzname{ystep=100000}. Les valeurs de $f(x)$ resteront ainsi comprises entre $0$ et $10$.
\begin{tkzexample}[latex=10cm,small]
\begin{tikzpicture}[scale=.5]
\tkzInit[xmax=100,xstep=10,
ymax=1000000,
ystep=100000]
\tkzDrawX[right]
\tkzDrawY[above]
\tkzLabelX[below=6pt]
\tkzLabelY[left=6pt]
\tkzGrid
\tkzFct[color=red,
domain=0:100]{\x**3}
\end{tikzpicture}
\end{tkzexample}
\endinput
|