\section {Définir une fonction} Il est possible de définir des fonctions utilisables dans l'environnement postscript. L'ensemble de départ peut être $R$, $R^2$ ou $R^3$, et l'ensemble d'arrivée peut être $R$, $R^2$ ou $R^3$. La définition se fait avec la macro \verb!\defFunction!. Cette macro nécessite six arguments, dont un seul est optionnel. \verb!\defFunction[]{}(){}{}{}! \begin{table}[h] \begin{tabular}{p{2cm}p{11cm}} \verb!! & On y insère les option typiques de PSTricks, comme \verb!linewidth! etc., et en plus, quelques unes définies par \verb!pst-solides3d!. Une très charmante option est \verb!algebraic!, avec quelle on peut éviter la notation RPN (Reverse Polish Notation). Toutes options sont des paires (clé,valeur) et sont séparées avec des virgules.\\ \verb!! & C'est un nom unique de votre choix -- mais attention: évitez des noms avec des accents, PostScript ne les aime pas du tout.\\ \verb!! & On y insère au maximum trois variables arbitraires, séparées avec des virgules. \\ \verb!! \verb!! \verb!! & On y met des fonctions dépendant des variables définies pour les directions euclidienness $x,\,y,\,z$. Si une de ces trois directions n'est pas voulue, insérez un 0 entre les parenthèses -- ce qui vous donne la possibilité de définir aussi des projetés plans de courbes de fonctions. \end{tabular} \end{table} Quand vous avez défini une fonction, cette fonction est toujours reprise avec son \verb!! choisi. Voil\`{a} quelques exemples: \begin{itemize} \item \verb!\defFunction{moncercle}(t){t cos 3 mul}{0}{t sin 3 mul}! donne un cercle de rayon 3 dans le plan $xOz$ (notation RPN). \item \verb!\defFunction[algebraic]{helice}(t){cos(t)}{sin(t)}{t}! donne une hélice en notation algèbrique. \item \verb!\defFunction[algebraic]{F}(t){t}{}{}! donne une fonction de \textbf{R} dans \textbf{R} \item \verb!\defFunction[algebraic]{F}(t){t}{}{}! donne une fonction de \textbf{R} dans \textbf{R$^{\textbf 2}$} \item \verb!\defFunction[algebraic]{F}(t){t}{t}{t}! donne une fonction de \textbf{R} dans \textbf{R$^{\textbf 3}$} \end{itemize} \llap {\dbend } Il nous reste encore du travail à faire sur cette macro, et elle ne permet pour le moment pas de choisir des noms de variables quelconques, car ils risquent d'entrer en conflit avec des noms déjà existant. Merci d'utiliser des noms analogues à ceux utilisés dans la documentation. Une bonne stratégie consiste à utiliser systématiquement un ou plusieurs caractères numériques à la fin de vos noms de variables.