summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-eucl/euclide.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-eucl/euclide.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pst-eucl/euclide.tex1326
1 files changed, 1326 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-eucl/euclide.tex b/Master/texmf-dist/doc/generic/pst-eucl/euclide.tex
new file mode 100644
index 00000000000..2fc2f5b38ec
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-eucl/euclide.tex
@@ -0,0 +1,1326 @@
+%% This doc can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+\documentclass[12pt, draft, dvips]{report}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[french]{euclide}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Extension \texttt{pst-eucl}\\
+ Géométrie euclidienne avec \PStricks}
+\author{\Version\\Dominique \textsc{Rodriguez}\thanks{domino.rodriguez@laposte.net}}
+\date{\Date}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+%%%%%%%%%%%%%%%%%%%%
+\maketitle
+%%%%%%%%%%%%%%%%%%%%
+\begin{abstract}
+ L'extension \texttt{pst-eucl} permet de dessiner des figures
+ géométriques en spécifiant des contraintes mathématiques. Il est
+ ainsi possible de définir des points au moyen de transformations ou
+ d'intersection. L'emploi des coordonnées est donc limité aux points
+ de départ qui paramètrent en quelque sorte le dessin.
+
+ \vfill
+
+ \begin{center}\bfseries
+ Remerciements
+ \end{center}
+
+ Je tiens à remercier tout particulièrement les personnes suivantes
+ pour leur aide dans l'élaboration de ce paquetage :
+
+ \begin{itemize}
+ \item Denis \textsc{Girou} pour ses critiques pertinentes et ses
+ encouragement lors de la découverte de l'embryon initial et pour
+ sa relecture du présent manuel ;
+ \item Michael \textsc{Vulis} pour sa rapidité à tester la doc
+ avec V\TeX\ et il a ainsi permis de corriger un bug du code
+ PostScript ;
+ \item Manuel \textsc{Luque} et Olivier \textsc{Reboux} pour leurs
+ remarques et leurs exemples.
+ \item Alain \textsc{Delplanque} pour ses propositions de modifications
+ sur le placement automatique des noms des points dans diverses fonctions et la
+ possibilité de donner une suite de points dans \com{pstGeonode}.
+ \end{itemize}
+\end{abstract}
+%%%%%%%%%%%%%%%%%%%%
+\renewcommand{\abstractname}{Avertissement}
+\begin{abstract}
+ Ceci est la première version officiellement déposée sur le site d'archives
+ \texttt{CTAN}.
+
+ \vfill
+
+ \begin{center}\bfseries
+ LICENCE
+ \end{center}
+
+ Ce programme et sa documentation peuvent être distribués et/ou modifiés selon les
+ termes de la «~\LaTeX{} Project Public License~» disponible sur le site d'archives
+ \texttt{CTAN} au répertoire \texttt{macros/latex/base/lppl.txt}. Toutefois, vous
+ pouvez m'envoyer un Email avec un petit commentaire. Ensuite vous devriez réfléchir
+ à une donation\footnote{surtout si vous utilisez un système d'exploitation payant
+ (\texttt{des fenêtres} ou \texttt{MacOS}) ! D'autre part, n'oubliez pas que \LaTeX{} est utilisable
+ gratuitement et que de nombreux utilisateurs achètent plusieurs centaines d'euros
+ des logiciels de bien moins bonne qualité.} :
+
+\begin{enumerate}
+\item directement à l'équipe \LaTeX3 ;
+\item et/ou à moi pour le support de l'extension\footnote{je me satisfais amplement
+ de 1~\MonEuro, £1 ou \$1, mais j'accepte plus.}.
+\end{enumerate}
+
+ Une donation en temps selon compétence est possible : correction de la documentation,
+ test des fonctionnalités, proposition d'améliorations...
+\end{abstract}
+\twocoltoc{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Manuel de l'utilisateur}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Spécifications particulières}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Options de \PStricks}
+
+L'extension active le mode \com{SpecialCoor}. Ce mode permet d'étendre
+la manière dont les coordonnées sont spécifiées en plus des classiques
+coordonnées cartésiennes. D'autre part le mode de tracé est mis à
+\texttt{dimen=middle}, c'est-à-dire que le positionnement des tracés
+est fait par rapport à leur milieu. Pour ces deux modes, je vous
+renvoie au manuel de l'utilisateur.
+
+Enfin, il est supposé que le repère de travail est (ortho)normé.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Conventions}
+
+Pour la rédaction de ce manuel, j'ai utilisé les conventions
+classiques de dénomination des points en France :
+
+\begin{itemize}
+\item $O$ est un centre (cercle, repère, symétrie, homothétie, rotation) ;
+\item $I$ est l'unité de l'axe des abscisses, ou un milieu ;
+\item $J$ est l'unité de l'axe des ordonnées ;
+\item $A$, $B$, $C$, $D$ sont des points ;
+\item $M$ est un point \emph{paramètre} ;
+\item $M'$ l'image de $M$ par une transformation ;
+\end{itemize}
+
+Enfin, bien que s'agissant de n\oe uds au sens de \PStricks,
+je les ai résolument confondus avec des points dans le texte.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Objets de base}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Les points}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Repère par défaut}
+
+\defcom[Création d'une liste de points dans le repère d'origine. \protect\ParamList{\param{PointName},
+ \param{PointNameSep}, \param{PosAngle}, \param{PointSymbol}, \param{PtNameMath}}]
+ {pstGeonode}{\OptArg{par}$(x_1,y_1)$\Arg{$A_1$}$(x_2,y_2)$\Arg{$A_2$}\ldots$(x_n,y_n)$\Arg{$A_n$}}
+
+Cette commande définit un ou plusieurs points géométriques associés avec un n\oe ud.
+Chaque point possède un nom de n\oe ud \Argsans{$A_i$}, qui définit par défaut
+l'étiquette placée sur le dessin. D'autre part, celle-ci est traitée par défaut en
+mode mathématique, le paramètre booléen \param{PtNameMath} \DefaultVal{true} permet
+de modifier ce traitement et de traiter l'étiquette en mode normal. Elle est
+positionnée à une distance de \cbstart\param{PointNameSep} \DefaultVal{1em}\cbend{}
+du n\oe ud, avec un angle de \param{PosAngle} \DefaultVal{0}. Il est également
+possible de proposer une étiquette différente du nom de n\oe ud avec le paramètre
+\param{PointName} \DefaultVal{default}, et une étiquette vide se spécifie en
+positionnant ce paramètre à \texttt{none} ; dans ce cas le point n'aura pas de nom
+sur le dessin.
+
+Le symbole du point est donné par le paramètre \param{PointSymbol} \DefaultVal{*}.
+Le symbole est celui utilisé pour la commande \com{psdot}. Il peut être également
+positionné à \texttt{none}, auquel cas le point \cbdelete n'est pas affichés sur la
+figure. Voici en rappel les valeurs utilisable pour le symbole :
+
+\begin{multicols}{3}
+ \begin{itemize}\psset{dotscale=2}
+ \item \param{*} : \psdots(.5ex,.5ex)
+ \item \param{o} : \psdots[dotstyle=o](.5ex,.5ex)
+ \item \param{+} : \psdots[dotstyle=+](.5ex,.5ex)
+ \item \param{x} : \psdots[dotstyle=x](.5ex,.5ex)
+ \item \param{asterisk} : \psdots[dotstyle=asterisk](.5ex,.5ex)
+ \item \param{oplus} : \psdots[dotstyle=oplus](.5ex,.5ex)
+ \item \param{otimes} : \psdots[dotstyle=otimes](.5ex,.5ex)
+ \item \param{triangle} : \psdots[dotstyle=triangle](.5ex,.5ex)
+ \item \param{triangle*} : \psdots[dotstyle=triangle*](.5ex,.5ex)
+ \item \param{square} : \psdots[dotstyle=square](.5ex,.5ex)
+ \item \param{square*} : \psdots[dotstyle=square*](.5ex,.5ex)
+ \item \param{diamond} : \psdots[dotstyle=diamond](.5ex,.5ex)
+ \item \param{diamond*} : \psdots[dotstyle=diamond*](.5ex,.5ex)
+ \item \param{pentagon} : \psdots[dotstyle=pentagon](.5ex,.5ex)
+ \item \param{pentagon*} : \psdots[dotstyle=pentagon*](.5ex,.5ex)
+ \item \param{|} : \psdots[dotstyle=|](.5ex,.5ex)
+ \end{itemize}
+\end{multicols}
+
+\cbstart D'autre part, ces symboles sont paramétrables avec des paramètres de
+\PStricks dont entre autre :
+
+\begin{itemize}
+\item son échelle avec le paramètre \param{dotscale}, la valeur de celui-ci est soit
+ deux nombres différenciant ainsi le facteur d'échelle horizontale et verticale, ou
+ soit un seul qui est la valeur identique pour les deux ;
+\item son angle de rotation avec le paramètre \param{dotangle}.
+\end{itemize}
+
+N'hésitez pas à consulter la documentation de \PStricks pour de plus amples détails.\cbend
+
+Les paramètres se spécifient explicitement dans la partie \Argsans{par}. Les
+paramètres \param{PosAngle}, \param{PointSymbol}, \param{PointName} et
+\param{PointNameSep} peuvent recevoir :
+
+\begin{itemize}
+\item soit une valeur unique, commune à tous les points ;
+\item soit une liste de valeurs délimitée par des accolades \texttt{\{ ... \}} et
+ séparées par des virgules \textit{sans blancs}, permettant alors de différencier la
+ valeur pour chaque point.
+\end{itemize}
+
+Dans le cas ou une liste est spécifiée, elle peut comporter moins de valeurs que de
+points, dans ce cas la dernière valeur de la liste sera utilisée pour les points
+suivants.
+
+\cbstart Enfin, le paramètre \param{CurveType} \DefaultVal{none} permet de relier les
+points au moyen d'une ligne :
+
+\begin{itemize}
+\item brisée ouverte \verb$polyline$ ;
+\item brisée fermée \verb$polygon$ ;
+\item courbe ouverte \verb$curve$.
+\end{itemize}\cbend
+
+% EXEMPLE GEONODE
+\tabex{geonode}
+
+Il est évident que les n\oe uds ainsi définis sont utilisables par
+toutes les commandes utilisant les n\oe uds de \PStricks. Ainsi, il est
+possible de les référencer \rnode{ici}{d'ici} :
+{\small\verb$\nccurve{->}{ici}{B_1}$}.
+\nccurve[arrowscale=2, linestyle=dotted]{->}{ici}{B_1}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Repère personnalisé}
+
+\defcom[Création d'une liste de points dans le repère $(O;I;J)$.
+ \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle},
+ \param{PointSymbol}, \param{PtNameMath}}]
+ {pstOIJGeonode}
+ {\OptArg{par}$(x_1,y_1)$\Arg{$A_1$}\Arg{$O$}\Arg{$I$}\Arg{$J$}$(x_2,y_2)$\Arg{$A_2$}\ldots$(x_n,y_n)$\Arg{$A_n$}}
+
+Cette commande permet de placer des points dans un repère quelconque non forcément
+normé ni orthogonal, défini par le triplet $(O;I;J)$. On retrouve des traitements
+identiques à la commande précédente pour l'utilisation des paramètres.
+
+%% EXEMPLE
+\tabex{oij}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Marquage des segments}
+
+Il est possible de tracer des segments en utilisant la commande
+\texttt{\bs ncline}. Pour en plus marquer les segments afin d'associer
+ceux ayant la même longueur, il existe la commande :
+
+\defcom[Permet de marquer le segment \Segment{AB} en son milieu avec la marque définie par
+ \protect\param{SegmentSymbol}. \protect\ParamList{\param{SegmentSymbol}}]
+ {pstSegmentMark}{\OptArg{par}\Arg{$A$}\Arg{$B$}}
+
+Le symbole placé sur le segment est donné par le paramètre
+\param{SegmentSymbol}. Il prend comme valeur une commande utilisable en
+mode mathématique. Par défaut, sa valeur est \texttt{pstslashh},
+et produit deux barres sur le segment. Le segment est également tracé.
+
+Il existe plusieurs commandes prédéfinies dans ce paquetage pour marquer les
+segments :
+
+\begin{multicols}{3}
+ \psset{PointSymbol=none, PointName=none, unit=.8}
+ \newcommand{\Seg}[1]{%
+ \com{#1} : \begin{pspicture}[.3](2,1)
+ \pstGeonode(0.3,.5){A}(1.7,.5){B}\pstSegmentMark[SegmentSymbol=#1]{A}{B}
+ \end{pspicture}}%
+ \begin{itemize}
+ \item \Seg{pstslash} ;
+ \item \Seg{pstslashh} ;
+ \item \Seg{pstslashhh} ;
+ \item \Seg{MarkHash} ;
+ \item \Seg{MarkHashh} ;
+ \item \Seg{MarkHashhh} ;
+ \item \Seg{MarkCros} ;
+ \item \Seg{MarkCross} ;
+ \end{itemize}
+\end{multicols}
+
+Les trois commandes de la famille \texttt{MarkHash} produise une barre dont
+l'inclinaison est contrôlée par le paramètre \param{MarkAngle}
+\DefaultVal{45}. D'autre part, leur taille et leur couleur dépendent de l'épaisseur
+et de la couleur du trait au moment du tracé, comme le montre l'exemple suivant.
+
+%% EXEMPLE
+\tabex{segmentmark}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Triangles}
+
+Figures étudiées par excellence, elles possèdent leur macro pour les tracer
+rapidement :
+
+\defcom[Définit et trace un triangle. \protect\ParamList{\param{PointName},
+ \param{PointNameSep}, \param{PointSymbol}, \param{PointNameA},
+ \param{PosAngleA}, \param{PointSymbolA}, \param{PointNameB},
+ \param{PosAngleB}, \param{PointSymbolB}, \param{PointNameC},
+ \param{PosAngleC}, \param{PointSymbolC}}]
+ {pstTriangle}{\OptArg{par}$(x_A,y_A)$\Arg{$A$}$(x_B,y_B)$\Arg{$B$}$(x_C,y_C)$\Arg{$C$}}
+
+Afin de pouvoir placer avec précision les noms des points, il existe trois paramètres
+\param{PosAngleA}, \param{PosAngleB} et \param{PosAngleC}, qui s'associent
+respectivement aux n\oe uds \Argsans{$A$}, \Argsans{$B$} et \Argsans{$C$}. Ils ont le
+même rôle que le paramètre \param{PosAngle} vu précédemment.
+%Si un ou plusieurs de ces paramètres ne sont pas spécifiés la valeur de \param{PosAngle} est prise.
+Toutefois, si pour un point donné, aucun angle n'est spécifié, son nom va se
+positionner sur la bissectrice du sommet.
+
+Il existe également des paramètres pour contrôler le symbole utilisé
+pour représenter les points : \param{PointSymbolA},
+\param{PointSymbolB} et \param{PointSymbolC}, et des paramètres pour
+le nom de chacun des points : \param{PointNameA}, \param{PointNameB}
+et \param{PointNameC}. Ces deux ensembles de paramètres sont liés à
+\param{PointSymbol} et \param{PointName}. La gestion de la valeur par
+défaut suit les mêmes règles que celles vues précédemment.
+
+\tabex{triangle}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Angles}
+
+Chaque angle est déterminé par trois points. Le sommet de l'angle est
+le second. L'ordre a de l'importance en sachant que le sens direct ou
+trigonométrique est le sens inverse des aiguilles d'une
+montre. Tout d'abord, il est possible de marquer un angle droit \cbdelete :
+
+\defcom[Marque l'angle droit \protect\Angle{ABC} spécifié dans le sens
+ trigonométrique. \protect\ParamList{\param{RightAngleType}, \param{RightAngleSize},
+ \param{RightAngleSize}}]{pstRightAngle}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}}
+
+\cbstart Le symbole utilisé est contrôlé par le paramètre \param{RightAngleType}
+\DefaultVal{default}. Ses valeurs possibles sont :
+
+\begin{itemize}
+\item \verb$default$ : symbole standard ;
+\item \verb$german$ : symbole allemand (proposé par U. \textsc{Dirr}) ;
+\item \verb$suisseromand$ : symbole suisse romand (proposé par P. \textsc{Schnewlin}).
+\end{itemize}\cbend
+
+L'autre paramètre auquel est sensible cette commande, hormis bien
+entendu ceux de contrôle du trait, est \param{RightAngleSize} qui
+permet de contrôler la longueur du carré utilisé \DefaultVal{0.28~unit}.
+Le symbole est placé sur l'angle de sommet \Argsans{$B$}.
+
+Pour les autres angles, il y a la commande :
+
+\defcom[Marque l'angle \protect\Angle{ABC} spécifié dans le sens trigonométrique
+ \protect\ParamList{\param{MarkAngleRadius}, \param{LabelAngleOffset},
+ \param{Mark}}]
+ {pstMarkAngle}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{label}}
+
+L'étiquette définie par le paramètre \param{label} peut être tout texte \TeX. Elle
+est placée à \param{LabelSep} \DefaultVal{1~unit} du point dans la direction
+angulaire de la bissectrice intérieure modifiée par \param{LabelAngleOffset}
+\DefaultVal{0} et positionnée par rapport à \param{LabelRefPt} \DefaultVal{c}.
+D'autre part l'arc de cercle utilisé pour le marquage a pour rayon
+\param{MarkAngleRadius} \DefaultVal{.4~unit} et il est possible d'y adjoindre une
+flèche en début ou fin d'arc en utilisant le paramètre \param{arrows}.
+Enfin, on peut marquer l'angle avec un marqueur produit par une commande \TeX{}
+donnée en argument du paramètre \param{Mark}.
+
+\tabex%
+ [@{}m{.25\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.727\linewidth}@{}]%
+ {angle}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Droites, demi-droites et segments}
+
+Rien de plus utile qu'une droite !
+
+\defcom[Trace la droite $(AB)$.]
+ {pstLineAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}}
+
+Afin de contrôler sa longueur\footnote{Ce qui est le comble pour une
+ droite !}, les deux paramètres \param{nodesepA} et
+\param{nodesepB} indiquent l'abscisse des extrémités de la droite. Une
+abscisse négative spécifie un dépassement au-delà des points, tandis
+qu'une abscisse positive indique le contraire. Si les deux valeurs
+sont identiques, on peut utiliser alors le paramètre
+\param{nodesep}. La valeur par défaut de ces paramètres est nulle.
+
+\tabex{droite}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercles}
+
+Un cercle peut être défini soit par son centre et un point de sa
+circonférence, soit par deux points diamétralement opposés. Il existe
+donc deux fonctions :
+
+\renewcommand{\ComUnDescr}{Construit le cercle de centre $O$ passant par $A$. \protect\ParamList{\param{Radius},
+ \param{Diameter}}.}
+\renewcommand{\ComDeuxDescr}{Construit le cercle de diamètre $AB$. \protect\ParamList{\param{Radius},
+ \param{Diameter}}.}
+\defcomdeux{pstCircleOA}{\OptArg{par}\Arg{$O$}\Arg{$A$}}%
+ {pstCircleAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}}
+
+Pour la première fonction, il est également possible d'omettre le
+second point, et de spécifier un rayon ou un diamètre avec les
+paramètres \param{Radius} et \param{Diameter} au moyen des deux fonctions
+suivantes :
+
+\renewcommand{\ComUnDescr}{Permet de spécifier la distance $AB$ pour les
+ paramètres \protect\param{Radius} et \protect\param{Diameter}. \protect\ParamList{\param{DistCoef}}.}
+\renewcommand{\ComDeuxDescr}{Permet d'utiliser une valeur numérique pour les
+ paramètres \protect\param{Radius} et \protect\param{Diameter}. \protect\ParamList{\param{DistCoef}}.}
+\defcomdeux{pstDistAB}{\Arg{$A$}\Arg{$B$}}%
+ {pstDistVal}{\Arg{x}}
+
+La première fonction permet de spécifier une distance entre deux points et la seconde
+directement une valeur numérique qui peut être un calcul en code \PostScript. Cette
+dernière distance est spécifiée en multiple de l'unité \com{unit} et elle n'est pas
+une distance. Ces distances peuvent être modifiées par un coefficient multiplicatif
+spécifié préalablement par le paramètre \param{DistCoef}. Ce paramètre peut être un
+calcul en code \PostScript.
+
+\vspace{1.1\baselineskip}
+\begin{minipage}[m]{.4\linewidth}
+ Avec cette extension, il devient possible de tracer :
+
+ \begin{itemize}
+ \item {\color{red} le cercle de centre $A$ passant par $B$ ;}
+ \item {\color{green} le cercle de centre $A$ de rayon les deux tiers de $AC$ ;}
+ \item {\color{blue} le cercle de centre $A$ de rayon $BC$ ;}
+ \item {\color{Sepia} le cercle de centre $B$ de rayon $AC$ ;}
+ \item {\color{Aquamarine} le cercle de centre $B$ de diamètre $AC$ ;}
+ \item {\color{RoyalBlue} le cercle de diamètre $BC$ ;}
+ \end{itemize}
+\end{minipage}
+\hfill%
+\input{Exemples/cercle}
+
+\smallverbatiminput{Exemples/cercle_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Arcs de cercles}
+
+\renewcommand{\ComUnDescr}{Trace l'arc de cercle de centre $O$, de rayon $OA$,
+ délimité par l'angle $\protect\Angle{AOB}$ dans le sens trigonométrique.}
+\renewcommand{\ComDeuxDescr}{Trace l'arc de cercle de centre $O$, de rayon $OA$,
+ délimité par l'angle $\protect\Angle{AOB}$ dans le sens trigonométrique inverse.}
+\defcomdeux{pstArcOAB}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}}%
+ {pstArcnOAB}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}}
+
+Ces deux fonctions tracent des arcs de cercle, le centre étant donné par $O$, le
+rayon par $OA$, l'angle de départ par $A$ et celui d'arrivée par $B$. Enfin la
+première trace l'arc dans le sens direct et la seconde dans le sens indirect. Il
+n'est pas nécessaire que les deux points soient à égales distances de $O$.
+
+\tabex{arc}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Abscisse curviligne}
+
+Un point peut être positionné sur un cercle au moyen d'une abscisse curviligne.
+
+\defcom[Place un point sur un cercle au moyen de son abscisse curviligne.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{CurvAbsNeg}}]
+ {pstCurvAbsNode}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}\Arg{Abs}}
+
+Le point \Argsans{$B$} est placé sur le cercle de centre \Argsans{$O$} passant par
+\Argsans{$A$}, avec l'abscisse curviligne \Argsans{Abs}. L'origine est en
+\Argsans{$A$}, et le sens est par défaut le sens trigonométrique (inverse des
+aiguilles d'une montre). Le paramètre \param{CurvAbsNeg} \DefaultVal{false} permet de
+modifier le sens de parcours du cercle.
+
+ Si le paramètre \param{PosAngle} n'est pas spécifié, l'étiquette associée au
+point va se placer automatiquement de manière à être aligné avec le centre du cercle
+et le point.
+
+\tabex{abscur}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Courbe générique}
+
+Il est tout à fait possible de générer des points au moyen d'une boucle et de leur
+donner à chacun un nom générique composé d'un radical et d'un nombre. La commande
+suivante permet de relier ces points au moyen d'une courbe interpolée.
+
+\defcom[Trace une courbe interpolée au moyen d'une famille de points ayant une
+ convention de dénomination utilisant un radical et un numéro.
+ \protect\ParamList{\param{GenCurvFirst}, \param{GenCurvInc},
+ \param{GenCurvLast}}]
+ {pstGenericCurve}{\OptArg{par}\Arg{Radical}\Arg{$n_1$}\Arg{$n_2$}}
+
+La courbe est tracée sur les points dont le nom comporte le radical
+\Argsans{Radical}, et comme suffixe un nombre allant de \Argsans{$n_1$} à
+\Argsans{$n_2$}. Pour gérer les effets de bords, les paramètres \param{GenCurvFirst}
+et \param{GenCurvLast} permettent de désigner explicitement le premier et le dernier
+point. Le paramètre \param{GenCurvInc} permet de spécifier l'incrément de boucle pour
+passer d'un point à un autre \DefaultVal{1}.
+
+\tabex{gencur}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Transformations}
+
+Les transformations du plan permettent de coder facilement des propriétés
+géométriques. Il est donc possible de construire les images de points par toutes les
+transformations classiques du plan. \cbstart Toutes ces commandes partagent le même
+schéma syntaxique et deux paramètres.
+
+La syntaxe commune place en fin de description deux listes de points, dont la seconde
+est optionnelle et de cardinal plus faible ou égal. Ces deux listes contiennent les
+points antécédents et les points images. Dans le cas ou les images sont absentes dans
+leur totalité ou pour une partie (liste moins longue), le nom de l'image sera
+automatiquement calqué sur l'antécédent auquel sera adjoint un \verb$'$.
+
+Le premier paramètre commun est \param{CodeFig}. Il permet de faire apparaître les propriétés
+caractéristiques liées à la transformation et à la construction de l'image. Par
+défaut, ce paramètre a pour valeur \param{false}, il doit être mis à \param{true}
+pour activer ce tracé optionnel. Ce tracé se fait en utilisant le style
+\param{CodeFigStyle} \DefaultVal{dashed} et suivant la couleur \param{CodeFigColor}
+\DefaultVal{cyan}.
+
+Le second paramètre est \param{CurveType} qui permet de faire apparaître une courbe
+passant par les images, et donc de pouvoir rapidement tracer le transformé d'une
+figure.\cbend
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Symétrie centrale}
+
+\defcom[Construit le symétrique $M'_i$ de chacun des $M_i$ par rapport à $O$.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath},
+ \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}]{pstSymO}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}}
+
+Construit le point symétrique par rapport au point $O$. Les
+paramètres classiques de la création de point sont utilisables comme
+dans toutes les fonctions suivantes.
+
+Elle peut servir à la construction d'un parallélogramme de centre
+connu.
+
+\tabex{symcentrale}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Symétrie orthogonale}
+
+\defcom[Construit le symétrique $M'_i$ de chacun des $M_i$ par rapport à la droite $(AB)$.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath},
+ \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}]{pstOrtSym}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}}
+
+Construit le point symétrique $M'_i$ de chacun des $M_i$ par rapport à la droite $(AB)$.
+
+\tabex{symorthogonale}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Rotation}
+
+\defcom[Construit l'image $M'_i$ de chacun des $M_i$ par rotation d'angle \protect\param{RotAngle}
+ autour de $O$ dans le sens trigonométrique.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{RotAngle}}]{pstRotation}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}}
+
+Construit l'image d'un point par rotation. L'angle de rotation est
+donné par le paramètre \param{RotAng|e} \DefaultVal{60}. Celui-ci
+peut-être un angle orienté défini par trois points. Il faut alors
+utiliser la fonction :
+
+\defcom[Permet d'utiliser la mesure te \protect\Angle{AOB} (orienté) pour
+ le paramètre \protect\param{RotAngle}. \protect\ParamList{\param{AngleCoef}}]
+ {pstAngleAOB}{\Arg{$A$}\Arg{$O$}\Arg{$B$}}
+
+Pensez à l'utiliser pour construire un carré ou un triangle équilatéral.\cbstart Le
+paramètre booléen \param{CodeFig} permet de placer un arc avec une flèche (en bout)
+entre le point et son image, et si le paramètre \param{TransformLabel} \DefaultVal{none}
+contient un texte il est placé sur l'angle correspondant en mode mathématique.
+
+\tabex{rotation}\cbend
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Translation}
+
+\defcom[Construit l'image $M'_i$ de chacun des $M_i$ par la translation de vecteur \protect\Vecteur{AB}.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{DistCoef}}]
+ {pstTranslation}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}}
+
+Construit le translaté de vecteur \Vecteur{AB} du point
+\Argsans{$M$}. À utiliser pour construire la parallèle passant
+par un point.
+
+\tabex{translation}
+
+Il est également possible d'utiliser le paramètre \param{DistCoef} pour modifier le
+vecteur de translation avec un coefficient multiplicatif. \cbstart Le paramètre
+booléen \param{CodeFig} permet de placer le vecteur de translation entre le point et
+son image avec au milieu un texte qui par défaut est les deux points ou le contenu du
+paramètre \param{TransformLabel} \DefaultVal{none}.\cbend
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Homothétie}
+
+\defcom[Construit l'image $M'_i$ de chacun des $M_i$ par l'homothétie de centre $O$ et de rapport
+ \protect\param{HomCoef}.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{HomCoef}}]
+ {pstHomO}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}}
+
+Construit l'image d'un point par homothétie. Le coefficient se spécifie avec le
+paramètre \param{HomCoef}. Incontournable pour les situations de \textsc{Thalès}.
+
+\tabex{homothetie}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Projection orthogonale}
+
+\defcom[Construit l'image $M'_i$ de chacun des $M_i$ par projection orthogonale sur $(AB)$.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath},
+ \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}]{pstProjection}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M_1, M_2, \cdots, M_n$}\OptArg{$M'_1, M'_2, \cdots, M'_p$}}
+
+Projette orthogonalement les point $M_i$ sur la droite $(AB)$. Très important pour
+tracer les hauteurs d'un triangle. Le nom est aligné avec le
+point et son projeté comme le montre l'exemple.
+
+\tabex{projection}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Objets particuliers}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Milieu}
+
+\defcom[Construit le milieu $I$ du segment \Segment{AB}.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}, \param{SegmentSymbol},
+ \param{CodeFig}, \param{CodeFigColor}, \param{CodeFigStyle}}]{pstMiddleAB}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$I$}}
+
+Construit le milieu $I$ du segment $[AB]$. Par défaut, le nom du point est
+positionné automatiquement sous (ou sur) le segment.
+
+\tabex{milieu}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \subsection{Centre de gravité d'un triangle}
+\defcom[Construit le centre de gravité $G$ du triangle $ABC$.
+ \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle},
+ \param{PointSymbol}, \param{PtNameMath}}]{pstCGravABC}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$G$}}
+
+Construit le centre de gravité d'un triangle.
+
+\tabex{grav}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercle circonscrit d'un triangle et son centre}
+
+\defcom[Construit le centre $O$ äu cercle ciconscrit du triangle $ABC$.
+ \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle},
+ \param{PointSymbol}, \param{PtNameMath}, \param{DrawCirABC}, \param{CodeFig},
+ \param{CodeFigColor}, \param{CodeFigStyle}, \param{SegmentSymbolA},
+ \param{SegmentSymbolB}, \param{SegmentSymbolC}}]
+ {pstCircleABC}{\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$O$}}
+
+Cette commande permet de tracer le cercle passant par trois points et de positionner
+le centre. Le tracé du cercle est contrôlé par le paramètre booléen
+\param{DrawCirABC} \DefaultVal{true}.\cbstart D'autre part, les traits de
+constructions peuvent être apparent (médiatrices) avec le paramètre \param{CodeFig}.
+Les milieux sont aussi marqué sur chacun des segments avec trois marques différentes
+donnés par les paramètres \param{SegmentSymbolA}, \param{SegmentSymbolB} et
+\param{SegmentSymbolC}.\cbend La création du point est sensible à tous les paramètres
+classiques déjà vus.
+
+\tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]%
+ {ccirc}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Médiatrice d'un segment}
+
+\defcom[Construit la médiatrice du segment \Segment{AB}, son milieu $I$ et un point $M$
+ de la médiatrice qui est l'image par quart de tour de $B$.
+ \protect\ParamList{\param{PointName}, \param{PointNameSep}, \param{PosAngle},
+ \param{PointSymbol}, \param{PtNameMath}, \param{CodeFig},
+ \param{CodeFigColor}, \param{CodeFigStyle}, \param{SegmentSymbol}}]
+ {pstMediatorAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$I$}\Arg{$M$}}
+
+La médiatrice d'un segment est la droite perpendiculaire au milieu de
+ce segment. Le segment est $[AB]$, le milieu est $I$, et $M$ est un
+point de la médiatrice, construit par une rotation de $90$\degres\ du
+point point $B$ par rapport à $I$. L'ordre des deux points est
+important, il permet de contrôler la position de la médiatrice. La
+commande crée les points $M$ et $I$. La construction est sensible aux
+paramètres suivant :
+
+\begin{itemize}
+\item \param{CodeFig}, \param{CodeFigColor} et \param{SegmentSymbol}
+ pour marquer l'angle droit et le milieu ;
+\item \param{PointSymbol} et \param{PointName} pour contrôler
+ l'apparence des deux nouveaux points, chacun pouvant être spécifiés
+ séparément au moyen des paramètres \param{...A} et \param{...B} ;
+\item les paramètres de tracés des droites.
+\end{itemize}
+
+\tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]%
+ {mediator}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Bissectrices d'un angle}
+
+\defcom[Construit la bissectrice intérieure de l'angle \protect\Angle{BAC} ainsi qu'un
+ point $M$ de la bissectrice image de $B$ par rotation autour de $A$.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}}]
+ {pstBissectBAC}{\OptArg{par}\Arg{$B$}\Arg{$A$}\Arg{$C$}\Arg{$M$}}
+
+\defcom[Construit la bissectrice extérieure d'un angle ainsi qu' un
+ point $M$ de la bissectrice image de $B$ par rotation autour de point $A$.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}}]
+ {pstOutBissectBAC}{\OptArg{par}\Arg{$B$}\Arg{$A$}\Arg{$C$}\Arg{$M$}}
+
+Il existe deux bissectrices pour un angle géométrique donné :
+l'intérieure et l'extérieure ; donc il y a deux commandes. L'angle est
+spécifié dans le sens trigonométrique. Les résultats de ces deux
+commandes sont la bissectrice et un point de celle-ci qui est
+positionné par une rotation du point $B$.
+
+\tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]%
+ {bissec}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Intersections}
+
+Un autre moyen de définir un point est de spécifier une intersection.
+Six types d'intersections sont gérées :
+
+\begin{itemize}
+\item droite-droite ;
+\item droite-cercle ;
+\item cercle-cercle ;
+\item fonction-fonction ;
+\item fonction-droite ;
+\item fonction-cercle.
+\end{itemize}
+
+Une intersection peut ne pas exister : cas des droites parallèles par
+exemple. Dans ce cas, le ou les points concernés se retrouvent placés
+à l'origine. En fait, il est supposé que l'utilisation de ces
+commandes implique l'existence de l'intersection.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Droite-droite}
+\defcom[Place le point d'intersection entre les droites $(AB)$ et $(CD)$.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath}}]
+ {pstInterLL}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$D$}\Arg{$M$}}
+
+Construit le point d'intersection de la droite $(AB)$ avec la droite
+$(CD)$. Option essentielle de la construction de figures du triangle,
+elle permet de positionner les points remarquables. Les paragraphes
+suivants proposent différents exemples :
+
+\begin{description}
+\item[basique]
+
+ \tabex{interDD}
+
+\item[orthocentre]
+
+ \tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]
+ {orthocentre}
+
+\end{description}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercle--droite}
+
+\defcom[Place le(s) point(s) d'intersection entre la droite $(AB)$ et le cercle de
+ centre $O$ passant par $C$.
+ \protect\ParamList{\param{PointSymbol}, \param{PosAngle},
+ \param{PointName}, \param{PointNameSep}, \param{PtNameMath},
+ \param{PointSymbolA}, \param{PosAngleA}, \param{PointNameA},
+ \param{PointSymbolB}, \param{PosAngleB}, \param{PointNameB},
+ \param{Radius}, \param{Diameter}}]
+ {pstInterLC}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$O$}\Arg{$C$}%
+ \Arg{$M_1$}\Arg{$M_2$}}
+
+Construit le ou les points d'intersection de la droite $(AB)$ avec
+le cercle de centre $O$ passant par $OC$. L'intersection entre un
+cercle et une droite donne en cas d'existence un ou deux points. En
+fait le cas tangent représente un point double au sens des racines
+d'un polynôme.
+
+Le cercle est spécifié avec son centre et soit un point de sa
+circonférence, soit son rayon ou diamètre spécifié au moyen des
+paramètres \param{Radius} et \param{Diameter} et modulé par le
+paramètre coefficient multiplicatif \param{DistCoef}.
+
+La place des deux points est telle que les vecteurs \Vecteur{AB} et
+\Vecteur{M_1M_2} soient colinéaires. Ainsi si on échange les points
+qui définissent la droite, les deux points d'intersection seront aussi
+échangés. Si l'intersection n'existe pas, les deux points sont placés
+au centre du cercle.
+
+\tabex
+ [@{}m{.4\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.5777\linewidth}@{}]
+ {interDC}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercle--cercle}
+
+\defcom[Place le(s) point(s) d'intersection entre le cercle de centre $O_1$ passant
+ par $B$ et le cercle de centre $O_2$ passant par $C$ .]
+ {pstInterCC}%
+ {\OptArg{par}\Arg{$O_1$}\Arg{$B$}\Arg{$O_2$}\Arg{$C$}%
+ \Arg{$M_1$}\Arg{$M_2$}}
+
+Fonction au comportement identique à la précédente. Les paramètres
+booléens \param{CodeFigA} et \param{CodeFigB} permettent de faire
+apparaître les arcs au niveau des intersections. Par cohérence
+\param{CodeFig} permet de faire apparaître les deux arcs. Afin de
+contrôler dans quel sens vont-être ces arcs, les paramètres booléens
+\param{CodeFigAarc} et \param{CodeFigBarc} permettent de choisir dans
+le sens direct ou indirect.
+
+\tabex{interCC}
+
+Voici un deuxième exemple plus complet, intégrant les spécifications de cercle avec
+des rayons et des diamètres. Il existe dans ce cas des paramètres \param{RadiusA},
+\param{RadiusB}, \param{DiameterA} et \param{DiameterB}. Toutefois, même dans le cas
+où le diamètre est spécifié, il faut donner un centre. On ne peut pas spécifier un
+cercle avec deux points diamétralement opposés.
+
+\begin{center}
+ \rule[-.5cm]{0pt}{8cm}
+ \begin{pspicture}(-3,-4)(7,3)\psgrid
+ \input{Exemples/interCC_bis_in}
+ \end{pspicture}
+\end{center}
+
+\smallverbatiminput{Exemples/interCC_bis_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Fonction--fonction}
+
+\defcom[Place \textit{un} point d'intersection entre les deux courbes représentatives des
+fonctions $f$ et $g$. À priori l'abscisse du point
+sera proche de $x_0$ (valeur initiale de l'algorithme de \textsc{Newton}).]%
+ {pstInterFF}{\OptArg{par}\Arg{$f$}\Arg{$g$}\Arg{$x_0$}\Arg{$M$}}
+
+Cette fonction permet de positionner un point à une intersection entre les deux
+fonctions $f$ et $g$. La valeur $x_0$ est une valeur approchée de l'abscisse de cette
+intersection. Il est donc tout à fait possible de l'utiliser plusieurs fois si plusieurs
+intersections existent. Chacune des fonctions est décrite en \PostScript de manière
+identique à la fonction \com{psplot} de \PStricks. Il est évidemment possible de
+spécifier une fonction constante, et par exemple de chercher des racines.
+
+La recherche de l'intersection se fait en utilisant l'algorithme de \textsc{Newton},
+et évidemment il peut arriver que cela n'aboutisse pas. Dans ce cas, le point est
+placé à l'origine. D'autre part, la recherche peut tomber dans un \textit{piège}
+(minimum local proche de zéro), ou encore se mettre à osciller et donc ne jamais
+finir, il faudra alors modifier $x_0$.
+
+\tabex{interFF}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Fonction--droite}
+
+\defcom[Place \textit{un} point d'intersection entre la droite $(AB)$ et la courbe
+représentative de la fonction $f$. À priori l'abscisse du point
+sera proche de $x_0$ (valeur initiale de l'algorithme de \textsc{Newton}).]%
+{pstInterFL}{\OptArg{par}\Arg{$f$}\Arg{$A$}\Arg{$B$}\Arg{$x_0$}\Arg{$M$}}
+
+Positionne un point à une intersection de la fonction $f$ et de la droite $(AB)$.
+
+\tabex{interFL}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Fonction--cercle}
+
+\defcom[Place \textit{un} point d'intersection entre le cercle de centre $O$ passant
+par $A$ et la courbe représentative de la fonction $f$. À priori l'abscisse du point
+sera proche de $x_0$ (valeur initiale de l'algorithme de \textsc{Newton}).]%
+ {pstInterFC}{\OptArg{par}\Arg{$f$}\Arg{$O$}\Arg{$A$}\Arg{$x_0$}\Arg{$M$}}
+
+Positionne un point à une intersection de la fonction $f$ et du cercle
+de centre $O$ passant par $A$. L'intersection est trouvée en utilisant l'algorithme
+itératif de \textsc{Newton} avec comme valeur initale $x_0$. Le poit aura donc une
+abscisse \textit{proche} de $x_0$.
+
+\tabex{interFC}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Galerie d'exemples}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \section{Géométrie élémentaire}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Tracé de la bissectrice}
+
+\tabex{gal_biss}
+
+\cbdelete%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% \subsection{Angle droit allemand}
+%%
+%% En Allemagne, on utilise une autre convention pour les angles
+%% droits (remarque de U. \textsc{Dirr}).
+%% \nopagebreak[4]
+%%
+%% \tabex{german_ra}
+%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \cbstart\subsection{Transformation de polygones et courbes}
+
+Voici comment utiliser le paramètre \param{CurveType} avec des tranformations.
+\nopagebreak[4]
+
+\begin{center}
+\input{Exemples/curvetype}
+\end{center}\nopagebreak[4]
+
+\smallverbatiminput{Exemples/curvetype_in}\cbend
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Droites remarquables du triangle}\nopagebreak[4]
+
+\begin{center}
+\psset{unit=2cm}
+\input{Exemples/remarq}
+\end{center}\nopagebreak[4]
+
+\smallverbatiminput{Exemples/remarq_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercle d'\textsc{Euler}}
+
+\begin{center}
+\psset{unit=2cm}
+\input{Exemples/euler}
+\end{center}\nopagebreak[4]
+
+\smallverbatiminput{Exemples/euler_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Orthocentre et hyperbole}
+
+L'orthocentre d'un triangle dont les points sont situés sur les
+branches de l'hyperbole ${\mathscr H} : y=a/x$ appartient à cette hyperbole.
+
+\begin{center}
+\psset{unit=.5cm}
+\input{Exemples/orthoethyper}
+\end{center}
+
+\smallverbatiminput{Exemples/orthoethyper_in}
+
+\pagebreak[4]
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Polygone régulier à 17 côtés}
+
+Remarquable construction due à K. F. \textsc{Gauss} qui a démontré par
+ailleurs qu'il était possible de construire les polygones à
+$2^{2^p}+1$ côtés avec en prime la méthode général de construction. Le
+polygone régulier suivant de cette famille possède donc 257 côtés !
+\nopagebreak[4]
+
+\begin{center}
+\psset{unit=1.5cm, CodeFig=true, RightAngleSize=.14, CodeFigColor=red,
+ CodeFigB=true, linestyle=dashed, dash=2mm 2mm}
+\input{Exemples/gauss}
+\end{center}
+
+
+\pagebreak[4]
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Tangentes de cercles}
+
+Construction des tangentes à un cercle passant par un point donné.
+\nopagebreak[4]
+
+\begin{center}
+\input{Exemples/tg1c}
+\end{center}
+
+Construction des tangentes à deux cercles.
+\nopagebreak[4]
+
+\begin{center}
+\input{Exemples/tg2c}
+\end{center}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Point de \textsc{Fermat} d'un triangle}
+
+Figure de Manuel \textsc{Luque}.\nopagebreak[4]
+
+\begin{center}
+\input{Exemples/ptfermat}
+\end{center}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercles ex-insrits et inscrit d'un triangle}
+
+Les centres de ces cercles sont les intersections des bissectrices
+intérieures et extérieures.
+
+%% cercles inscrit et exinscrits d'un triangle
+\begin{center}
+\psset{unit=1cm, dash=5mm 4mm}%, PointSymbolA=none, PointSymbolB=none}
+\input{Exemples/cinscex}
+\end{center}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \section{Quelques lieux de points}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Parabole}
+
+\begin{minipage}[m]{.33\linewidth}
+La parabole est l'ensemble des points situés à égale distance d'un
+point : le foyer, et d'une droite : la directrice.
+\end{minipage}
+\newcommand{\NbPt}{11}
+\input{Exemples/parabole}\nopagebreak[4]
+
+\smallverbatiminput{Exemples/parabole_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Hyperbole}
+
+\noindent
+\begin{minipage}[b]{.55\linewidth}
+L'hyperbole est composée des points dont la différence des distances
+avec les foyers est constant. Pour se rafraîchir la mémoire, on peut
+aller voir le «~Cours de mathématiques spéciales~», vol.~2,
+\textsc{Ramis, Deschamps, Odoux}, pp{.} 226--227.
+\begin{verbatim}
+%% QQ RAPPELS : a=\Sommet, c=\PosFoyer,
+%% b^2=c^2-a^2, e=c/a
+%% pour une hyperbole -> e>1, donc c>a,
+%% ici on choisi a=\sqrt{2}, c=2, e=\sqrt{2}
+%% M est sur H <=> |MF-MF'|=2a
+\end{verbatim}
+\end{minipage}
+\hfill
+\input{Exemples/hyperbole}\nopagebreak[4]
+
+\smallverbatiminput{Exemples/hyperbole_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cycloïde}
+
+La roue roule de $M$ à $A$. Les points du cercle parcourent
+des cycloïdes. L'intérêt de cet exemple est de faire coïncider les
+points de rebroussement avec des points calculés.
+\nopagebreak[4]
+
+\begin{center}
+\input{Exemples/cyclo}
+\end{center}\nopagebreak[4]
+
+\smallverbatiminput{Exemples/cyclo_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Hypocycloïdes (astroïde et deltoïde)}
+
+Une roue roule à l'intérieure d'un cercle et selon le rapport
+des rayons, on obtient une astroïde, une deltoïde et dans le cas
+générale des hypocycloïdes.\nopagebreak[4]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% ASTROÏDE
+\input{Exemples/hypocyclo}
+%%%%%%%%%%%%%%%%%%%%
+\begin{center}
+\input{Exemples/astro}\input{Exemples/delto}
+\end{center}
+
+\smallverbatiminput{Exemples/hypocyclo}
+\smallverbatiminput{Exemples/astro_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \section{Enveloppes de droites et de cercles}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Coniques}
+
+On considère un cercle et un point $A$ extérieur à ce cercle.
+L'ensemble des médiatrices des segments formés par $A$ et les points
+du cercle forme les deux coniques selon la place de $A$ : s'il est à
+l'intérieur du cercle l'ellipse, à l'extérieur l'hyperbole. $A$ et le
+centre du cercle en sont les foyers (figure d'O. \textsc{Reboux}).
+
+\begin{center}\input{Exemples/envellipse}\end{center}
+
+\smallverbatiminput{Exemples/envellipse_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cardioïde}
+
+La cardioïde est l'enveloppe des cercles centrés sur un cercle et
+passant par un point fixé de ce cercle.
+
+\tabex%
+ [@{}m{.5\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]%
+ {envcardi}
+
+\pagebreak[4]
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \section{Homothéties et fractales}\nopagebreak[4]
+
+\tabex{fracthom}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \section{Géométrie hyperbolique : triangle et ses hauteurs}
+
+Le comble pour de la géométrie euclidienne !
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Tracé de géodésique en géométrie hyperbolique
+%% Attention ne fonctionne que si les points ne sont pas alignés avec O
+%% Ceci est un cas particulier, je ne crois pas que les hauteurs
+%% soient concourantes pour tous les triangles hyperboliques.
+\input{Exemples/geohyper}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\appendix
+\chapter{Glossaire des commandes}%%\markboth{GLOSSAIRE DES COMMANDES}{\thepage}%
+%%\addcontentsline{toc}{chapter}{\protect\numberline{}Glossaire des commandes}%
+
+Voici la liste des commandes définies par \texttt{pst-eucl}. Chacune est proposée
+avec une courte description ainsi que la liste des paramètres \texttt{pst-eucl} qui
+permettent de la contrôler. Il est tout à fait possible que d'autres
+paramètres \PStricks puissent être utilisé, en particulier ceux contrôlant le trait
+(épaisseur, couleur, style).
+
+\input{euclide_macros.ind}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Les paramètres de \texttt{pst-eucl}}
+
+\begin{longtable}{|l|l|p{10cm}|}
+ \hline
+ \multicolumn{1}{|c|}{\textbf{Paramètre}}&
+ \multicolumn{1}{c|}{\textbf{Défaut}}&
+ \multicolumn{1}{c|}{\textbf{Signification}} \\\hline\hline
+ \endfirsthead
+ \hline
+ \multicolumn{1}{|c|}{\textbf{Paramètre}}&
+ \multicolumn{1}{c|}{\textbf{Défaut}}&
+ \multicolumn{1}{c|}{\textbf{Signification}} \\\hline\hline
+ \endhead
+ \hline
+ \multicolumn{3}{|c|}{$\ldots$ à suivre $\ldots$}\\
+ \hline
+ \endfoot
+ \hline
+ \endlastfoot
+ \param{PointSymbol}&\verb$default$&Symbole utilisé pour marquer un point.\\\hline
+ \param{PointSymbolA}&\verb$default$&idem pour le premier point d'une commande en créant plusieurs.\\\hline
+ \param{PointSymbolB}&\verb$default$&pour le second...\\\hline
+ \param{PointSymbolC}&\verb$default$&pour le troisième...\\\hline
+ \param{PointName}&\verb$default$&Étiquette placé auprès du point.\\\hline
+ \param{PointNameA}&\verb$default$&idem pour le premier point d'une commande en créant plusieurs.\\\hline
+ \param{PointNameB}&\verb$default$&pour le second...\\\hline
+ \param{PointNameC}&\verb$default$&pour le troisième...\\\hline
+ \param{PtNameMath}&\verb$true$&paramètre booléen spécifiant si le style
+ mathématique doit être utilisé pour l'étiquette d'un point.\\\hline
+ \param{SegmentSymbol}&\verb$default$&Symbole utilisé pour marquer un segment\\\hline
+ \param{SegmentSymbolA}&\verb$default$&idem pour le premier segment d'une commande
+ en marquant plusieurs.\\\hline
+ \param{SegmentSymbolB}&\verb$default$&pour le second...\\\hline
+ \param{SegmentSymbolC}&\verb$default$&pour le troisième...\\\hline
+ \param{Mark}&\verb$default$&Symbole utilisé pour marquer un angle...\\\hline
+ \param{MarkAngle}&\verb$default$&Angle à utiliser pour le symbole précédent...\\\hline
+ \param{PointNameSep}&\verb$1em$&Distance séparant le symbole du point de son étiquette.\\\hline
+ \param{PosAngle}&\verb$undef$&Position de l'étiquette autour du point.\\\hline
+ \param{PosAngleA}&\verb$undef$&idem pour le premier point d'une commande en créant plusieurs.\\\hline
+ \param{PosAngleB}&\verb$undef$&pour le second...\\\hline
+ \param{PosAngleC}&\verb$undef$&pour le troisième...\\\hline
+ \param{RightAngleSize}&\verb$.4$&Taille du symbole de l'angle droit\\\hline
+ \param{RightAngleType}&\verb$default$&Type de la marque de l'angle droit, valeur
+ possible : \verb$german$ et \verb$suisseromand$\\\hline
+ \param{MarkAngleRadius}&\verb$.4$&Rayon de l'arc de cercle marquant un angle.\\\hline
+ \param{LabelAngleOffset}&\verb$0$&Offset angulaire permettant de décaler
+ l'étiquette d'un angle.\\\hline
+ \param{LabelSep}&\verb$1$&Distance entre le sommet de l'angle et l'étiquette.\\\hline
+ \param{LabelRefPt}&\verb$c$&Point de référence \TeX\ utilisé pour placer
+ l'étiquette d'un angle.\\\hline
+ \param{HomCoef}&\verb$.5$&Coefficient de l'homothétie.\\\hline
+ \param{RotAngle}&\verb$60$&Angle utilisé pour la rotation.\\\hline
+ \param{DrawCirABC}&\verb$true$&Paramètre booléen indiquant si le cercle circonscrit
+ doit être tracé.\\\hline
+ \param{CodeFig}&\verb$false$&Paramètre booléen indiquant si la construction doit
+ être codée.\\\hline
+ \param{CodeFigA}&\verb$false$&idem pour la première construction d'une commande en
+ générant plusieurs.\\\hline
+ \param{CodeFigB}&\verb$false$&La seconde.\\\hline
+ \param{CodeFigColor}&\verb$cyan$&Couleur du trait pour coder la construction.\\\hline
+ \param{CodeFigStyle}&\verb$dashed$&Style du trait pour coder la construction.\\\hline
+ \param{CodeFigAarc}&\verb$true$&paramètre booléen spécifiant le sens de l'arcau
+ niveau de la première intersection entre deux cercles.\\\hline
+ \param{CodeFigBarc}&\verb$true$&idem pour la seconde.\\\hline
+ \param{Radius}&\verb$none$&Spécification du rayon du cercle.\\\hline
+ \param{RadiusA}&\verb$undef$&Spécification du rayon du premier cercle.\\\hline
+ \param{RadiusB}&\verb$undef$&Spécification du rayon du second cercle.\\\hline
+ \param{Diameter}&\verb$none$&Spécification du diamètre du cercle.\\\hline
+ \param{DiameterA}&\verb$undef$&Spécification du rayon du premier cercle.\\\hline
+ \param{DiameterB}&\verb$undef$&Spécification du rayon du second cercle.\\\hline
+ \param{DistCoef}&\verb$none$&Coefficient multiplicatif permettant de modifier une distance/vecteur.\\\hline
+ \param{AngleCoef}&\verb$none$&Coefficient multiplicatif permettant de modifier la
+ mesure d'un angle.\\\hline
+ \param{CurvAbsNeg}&\verb$false$&Paramètre booléen indiquant que les abscisses
+ curvilignes sont dans le sens anti-trigonométrique\\\hline
+ \param{GenCurvFirst}&\verb$none$&Nom du premier point d'une courbe générique (effet
+ de bord).\\\hline
+ \param{GenCurvLast}&\verb$none$&Nom du dernier point d'une courbe générique (effet
+ de bord).\\\hline
+ \param{GenCurvInc}&\verb$none$&valeur à utiliser comme incrément dans une courbe générique.\\\hline
+ \cbstart%
+ \param{CurveType}&\verb$none$&Mode de tracé de courbe pour relier une liste de points.\\\hline
+ \param{TransformLabel}&\verb$none$&étiquette utilisée pour marquer la rotation ou la
+ translation.\\\hline
+\end{longtable}
+
+\cbend
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\cbstart\chapter{Compatibilité ascendantes de \texttt{pst-eucl}}
+
+Nouveauté pour cette version, des commandes ont changé de syntaxe sans changer de
+nom, la compatibilité ascendante n'est donc pas maintenue. Toutefois, pour éviter àà
+certains utilisateurs pressés de mettre à jour leur fichier dans l'urgence, il est
+possible de retrouver l'ancienne syntaxe en activant l'option \texttt{old} à l'inclusion de
+l'extension \verb$\usepackage[old]{pst-eucl}$. Pour cette version cela concerne
+toutes les commandes des transformations. Il faut donc se reporter à l'ancien manuel
+pour avoir la syntaxe.
+
+\cbend
+\end{document}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \section{Une figure fractale : le flocon de \textsc{von Koch}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TENTATIVE DE FLOCON DE VON KOCH
+\newcounter{nbvk}%
+%%%%%%%%%%%%%
+%% PILE LIFO%
+\newcounter{lifon}\setcounter{lifon}{1}%%
+\newcommand{\Push}[1]{%%
+ \expandafter\edef\csname lifocmd\roman{lifon}\endcsname{#1}%%
+ \addtocounter{lifon}{1}%%
+ }%
+\newcommand{\Pop}{\csname lifocmd\roman{lifon}\endcsname}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcounter{nombre}\setcounter{nombre}{0}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\vonkoch}[3]{%%
+ \setcounter{nbvk}{#1}%%
+ \edef\Pointi{#2}\edef\Pointii{#3}%%
+ \ifnum\value{nbvk}=1%
+ \ncline{\Pointi}{\Pointii}%
+ \else % ELSE%
+ \addtocounter{nombre}{1}%
+ %% position des nouveauX points%
+ \pstHomO[HomCoef=1 3 div]{\Pointi}{\Pointii}{P\arabic{nombre}1}%
+ \pstHomO[HomCoef=2 3 div]{\Pointi}{\Pointii}{P\arabic{nombre}2}%
+ \pstRotation[RotAngle=60]{P\arabic{nombre}1}{P\arabic{nombre}2}{P\arabic{nombre}3}%
+ \addtocounter{nbvk}{-1}%%
+ \Push{\Pointi}\Push{\Pointii}\Push{\arabic{nombre}}\Push{\arabic{nbvk}}%
+ \vonkoch{\value{nbvk}}{\Pointi}{P\arabic{nombre}1}%
+ \addtocounter{lifon}{-1}\edef\nbvklocal{\Pop}%
+ \addtocounter{lifon}{-1}\edef\nombrelocal{\Pop}%
+ \addtocounter{lifon}{-1}\edef\Pointii{\Pop}%
+ \addtocounter{lifon}{-1}\edef\Pointi{\Pop}%
+ \addtocounter{lifon}{4}%
+ \vonkoch{\nbvklocal}{P\nombrelocal1}{P\nombrelocal3}%
+ \addtocounter{lifon}{-1}\edef\nbvklocal{\Pop}%
+ \addtocounter{lifon}{-1}\edef\nombrelocal{\Pop}%
+ \addtocounter{lifon}{-1}\edef\Pointii{\Pop}%
+ \addtocounter{lifon}{-1}\edef\Pointi{\Pop}%
+ \addtocounter{lifon}{4}%
+ \vonkoch{\nbvklocal}{P\nombrelocal3}{P\nombrelocal2}%
+ \addtocounter{lifon}{-1}\edef\nbvklocal{\Pop}%
+ \addtocounter{lifon}{-1}\edef\nombrelocal{\Pop}%
+ \addtocounter{lifon}{-1}\edef\Pointii{\Pop}%
+ \addtocounter{lifon}{-1}\edef\Pointi{\Pop}%
+ \addtocounter{lifon}{4}%
+ \vonkoch{\nbvklocal}{P\nombrelocal2}{\Pointii}%
+ \addtocounter{lifon}{-4}%
+ \fi%
+}%
+\psset{unit=2.5cm}%
+\begin{pspicture}(-2,-2)(2,2)%
+ \psset{PointSymbol=none}
+ \pstGeonode(-2,-2){A}\pstGeonode(2,2){B}%
+ \pstRotation[RotAngle=60]{B}{A}{C}%
+ \vonkoch{5}{A}{B}\setcounter{nombre}{0}%%%
+ \vonkoch{4}{B}{C}\setcounter{nombre}{0}%%%
+ \vonkoch{4}{C}{A}%%
+\end{pspicture}%
+%
+\end{document}%
+
+\begin{pspicture*}(-4,-5)(4,5)%\psgrid
+ %% \pstGeonode[PosAngle=-135](0,0){O}
+ %% \pstGeonode[PosAngle=-90](1,0.5){I}
+ %% \pstGeonode[PosAngle=-180](0.5,2){J}
+ \pstGeonode[PosAngle={-135,-90,-180}]{O}(1,0.5){I}(0.5,2){J}
+ \pstLineAB[nodesep=100]{O}{I}
+ \pstLineAB[nodesep=100]{O}{J}
+ \multips(-5,-2.5)(1,0.5){11}{\psline(0,-.15)(0,.15)}%
+ \multips(-5,-2.5)(1,0.5){11}{\psline[linestyle=dotted](-10,-40)(10,40)}%
+ \multips(-2,-8)(0.5,2){9}{\psline(-.15,0)(.15,0)}%
+ \multips(-2,-8)(0.5,2){9}{\psline[linestyle=dotted](-10,-5)(10,5)}%
+ %% huit points
+ \psset{PointSymbol=x}
+ \pstOIJGeonode(1,2){A}{O}{I}{J}
+ \pstOIJGeonode(-2,1){B}{O}{I}{J}
+ \pstOIJGeonode(-1,-1.5){C}{O}{I}{J}
+ \pstOIJGeonode(2,-1){D}{O}{I}{J}
+\end{pspicture*}
+%