\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