summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/euclide/euclide.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/euclide/euclide.tex')
-rw-r--r--Master/texmf-dist/doc/latex/euclide/euclide.tex1322
1 files changed, 1322 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/euclide/euclide.tex b/Master/texmf-dist/doc/latex/euclide/euclide.tex
new file mode 100644
index 00000000000..3f579558465
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/euclide/euclide.tex
@@ -0,0 +1,1322 @@
+%% 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]{report}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage[a4paper]{geometry}
+\usepackage[frenchb]{babel}
+\usepackage[usenames]{pstcol}
+\usepackage{pst-eucl}
+\usepackage{pst-plot}
+\usepackage{ifthen}
+\usepackage{calc}
+\usepackage{array}
+\usepackage{moreverb}
+\usepackage{multicol}
+\usepackage{mathrsfs}
+\usepackage[dvips]{changebar}
+\usepackage{xspace}
+\usepackage{fancyhdr}
+\expandafter\ifx\csname PDF\endcsname\relax\else
+\usepackage{pslatex}%for generating a pdf-file with ps2pdf
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% QQ DEFINITIONS
+\newcommand{\Vecteur}[1]{\ensuremath{\overrightarrow{#1\hspace{.3em}}}}%
+\newcommand{\Angle}[1]{\ensuremath{\widehat{#1}}}%
+\makeatletter
+\newcommand{\Arg}[1]{{\normalfont$\{$\@Arg{#1}$\}$}}%
+\newcommand{\Argsans}[1]{\@Arg{#1}}%
+\newcommand{\OptArg}[1]{{\normalfont[{\@Arg{#1}}]}}%
+\newcommand{\@Arg}[1]%
+ {$\protect\langle${\itshape\mdseries\rmfamily#1}$\protect\rangle$}%
+\makeatother
+%% le backslash \
+\newcommand{\bs}{\symbol{'134}}%
+\newcommand{\defcom}[2]%
+ {\begin{trivlist}\item\fbox{\texttt{\upshape\bs#1}#2}\end{trivlist}}%
+\newcommand{\defcomdeux}[4]%
+ {%
+ \begin{center}%
+ \begin{minipage}[t]{.45\linewidth}%
+ \begin{trivlist}\item\fbox{\texttt{\upshape\bs#1}#2}\end{trivlist}%
+ \end{minipage}%
+ \hfill%
+ \begin{minipage}[t]{.45\linewidth}%
+ \begin{trivlist}\item\fbox{\texttt{\upshape\bs#3}#4}\end{trivlist}%
+ \end{minipage}
+ \end{center}}%end defcomdeux
+\newenvironment{tabexemple}[1]%
+ [@{}m{.3\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.677\linewidth}@{}]%
+ {\vspace{1em}\noindent\small\begin{center}%
+ \noindent\begin{tabular}{#1}}%
+ {\mbox{}\vspace{-1.5em}\end{tabular}\end{center}}%
+\newcommand{\tabex}[2]%
+ [@{}m{.3\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.677\linewidth}@{}]%
+{%
+ \begin{tabexemple}[#1]%
+ \input{Exemples/#2}&\verbatiminput{Exemples/#2_in}%
+ \end{tabexemple}%
+}%
+\newcommand{\param}[1]{\texttt{#1}}
+\newcommand{\com}[1]{\texttt{\bs #1}}
+\newcommand{\DefaultVal}[1]{(\texttt{#1} par défaut)}
+\newcommand{\PStricks}{\texttt{PSTricks}\xspace}
+\newcommand{\Postcript}{\textsf{PostScript}\xspace}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{Extension \texttt{pst-eucl}\\
+ Géométrie euclidienne avec \PStricks}
+\author{Version $0.\beta.5$\\Dominique \textsc{Rodriguez}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\geometry{bottom=1cm, left=1cm, headheight=15.5pt}%, verbose}
+\psset{subgriddiv=0,griddots=5}
+\setlength{\changebarsep}{10pt}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% entête et pied de page
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0.4pt}
+\renewcommand{\footrulewidth}{0.4pt}
+%\lhead{version $\beta.5$ -- Mars 2002}
+%\chead{}
+%\rhead{Extension \texttt{pst-eucl} -- D. \textsc{Rodriguez}}
+%\cfoot{\thepage}
+\lfoot{version $\beta.5$ -- Mars 2002}
+\rfoot{Extension \texttt{pst-eucl} -- D. \textsc{Rodriguez}}
+%%%%%%%%%%%%%%%%%%%%
+\newcounter{i}
+%%%%%%%%%%%%%%%%%%%%
+\makeatletter
+\newcommand{\twocoltoc}{%
+ \chapter*{\contentsname
+ \@mkboth{%
+ \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
+ \begin{multicols}{2}
+ \@starttoc{toc}%
+ \end{multicols}}
+\makeatother
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+%%%%%%%%%%%%%%%%%%%%
+\maketitle
+%%%%%%%%%%%%%%%%%%%%
+\cbstart
+\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 Manuel \textsc{Luque} et Olivier \textsc{Reboux} pour leurs
+ remarques et leurs exemples.
+ \end{itemize}
+\end{abstract}
+%%%%%%%%%%%%%%%%%%%%
+\renewcommand{\abstractname}{Avertissement}
+\begin{abstract}
+ Ceci est une version $\beta$, elle est encore en cours de
+ développement, le nom des fonctions peut et va changer sans
+ maintient de la compatibilité ascendante.
+\end{abstract}
+\cbend
+\twocoltoc{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Manuel de l'utilisateur}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Spécifications particulières}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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
+géométriques de nommage des points classiques en France :
+
+\begin{itemize}
+\item $O$ est un centre (cercle, repère, symétrie, homotéthie, 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.
+\cbend
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Objets de base}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Les points}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Repère par défaut}
+
+\defcom{pstGeonode}{\OptArg{par}$(x,y)$\Arg{$A$}}
+
+Cette commande définit un point géométrique associé avec un n\oe ud.
+Le point possède un nom de n\oe ud \Argsans{$A$}, qui définit par
+défaut l'étiquette placée sur le dessin. D'autre part, celle-ci est
+par défaut traitée en mode mathématique, le paramètre booléen
+\param{PtNameMath} permet de modifier ce traitement et de traiter
+l'étiquette en mode normal. Elle est positionnée à une distance de
+\texttt{1em} 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}, 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{*}.
+\cbstart
+Le symbole est celui utilisé pour la commande \com{psdot}.
+\cbend Il peut être également positionné à \texttt{none}, auquel cas
+le point n'est pas affiché sur la figure y compris son étiquette.
+
+\cbstart
+Voici en rappel les valeurs possibles du 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}
+\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éferencer \rnode{ici}{d'ici}.
+\nccurve[arrowscale=2]{->}{ici}{B_1}
+
+%l existe un bug lié à la définition de point, il faut impérativement
+%aire suivre la commande par un \verb$%$, sinon il se crée un décalage
+%es points sur le graphiques, comme le montre le dessin suivant :
+%
+% \begin{center}
+% \begin{pspicture}(-2,-2)(2,2)\psgrid
+% \pstGeonode(0,0){A}
+% \pstGeonode[PosAngle=-90, PointName=B_1](1,2){B1}
+% \pstGeonode[PointSymbol=pstSmallCircle, PointName=B_2,
+% linecolor=red](-2,1){B2}%
+% \end{pspicture}
+% \end{center}
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Repère personnalisé}
+
+\defcom{pstOIJGeonode}{\OptArg{par}$(x,y)$\Arg{$A$}\Arg{$O$}\Arg{$I$}\Arg{$J$}}
+
+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)$.
+
+%% EXEMPLE
+\tabex{oij}
+\cbend
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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{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{pstslashslash},
+et produit deux barres sur le segment. Le segment est également tracé.
+
+%% EXEMPLE
+\tabex{segmentmark}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Triangles}
+
+Figures étudiées par excellence, elles possèdent leur macro pour les tracer
+rapidement :
+
+\defcom{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.
+
+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 avec
+le symbole standard :
+
+\defcom{pstRightAngle}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}}
+
+L'unique 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{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 \cbstart dans la direction angulaire de la bissectrice
+intérieure modifié par \param{LabelAngleOffset} \DefaultVal{0} et
+positionnée par rapport à \param{LabelRefPt} \DefaultVal{c}. \cbend
+D'autre part l'arc de cercle utilisé pour le marquage a pour rayon
+\param{MarkAngleRadius} \DefaultVal{.4~unit}. Enfin, il est posible
+de placer une flèche en début ou fin d'arc en utilisant le paramètre
+\param{arrows}.
+
+\tabex{angle}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Droites, demi-droites et segments}
+\cbend
+
+Rien de plus utile qu'une droite !
+
+\defcom{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 :
+
+\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 :
+
+\defcomdeux{pstDistAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}}%
+ {pstDistVal}{\OptArg{par}\Arg{x}}
+
+La première permet de spécifier une distance entre deux points. Le
+paramètre \param{DistCoef} permet de donner un coefficient
+multiplicatif à appliquer sur cette distance. Afin d'être pris en
+considération, ce paramètre doit être spécifié avant la distance. La
+seconde fonction permet de spécifier directement une valeur
+numérique qui peut être un calcul en code \Postcript.
+
+Nous verrons plus loin comment tracer le cercle passant par trois
+points.
+
+\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 \cbstart{\color{green} le cercle de centre $A$ de rayon les deux tiers de $AC$ ;}\cbend
+ \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}
+
+\verbatiminput{Exemples/cercle_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Arcs de cercles}
+
+\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{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.
+
+\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{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.
+
+Toutes ces commandes partagent le paramètre \param{CodeFig} qui permet
+de faire apparaître les propriétés caractéristiques liées à la
+tranformation 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}.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Symétrie centrale}
+
+\defcom{pstSymO}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M$}\Arg{$M'$}}
+
+Construit le point symétrique par rapport au point\Argsans{$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{pstOrtSym}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M$}\Arg{$M'$}}
+
+Construit le point symétrique de $M$ par rapport à la droite $(AB)$.
+
+\tabex{symorthogonale}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Rotation}
+
+\defcom{pstRotation}%
+ {\OptArg{par}\Arg{centre}\Arg{M}\Arg{M'}}
+
+Construit l'image d'un point par rotation. L'angle de rotation est
+donné par le paramètre \param{RotAngle} \DefaultVal{60}. Celui-ci
+peut-être un angle orienté défini par trois points. Il faut alors
+utiliser la fonction :
+
+\defcom{pstAngleABC}{\Arg{$A$}\Arg{$B$}\Arg{$C$}}
+
+Pensez à l'utiliser pour construire un carré ou un triangle équilatéral.
+
+\tabex{rotation}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Translation}
+
+\defcom{pstTranslation}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M$}\Arg{$M'$}}
+
+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.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Homothétie}
+
+\defcom{pstHomO}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M$}\Arg{$M'$}}
+
+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{pstProjection}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M$}\Arg{$M'$}}
+
+Projette orthogonalement le point $M$ sur la droite
+$(AB)$. Très important pour tracer les hauteurs d'un triangle.
+
+\tabex{projection}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Objets particuliers}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Milieu}
+
+\defcom{pstMiddleAB}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$I$}}
+
+Construit le milieu d'un segment.
+
+\tabex{milieu}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Centre de gravité d'un triangle}
+
+\defcom{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{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}.
+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}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Médiatrice d'un segment}
+
+\defcom{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 segement. 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}
+\cbend
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Bissectrices d'un angle}
+
+\defcom{pstBissectBAC}{\OptArg{par}\Arg{$B$}\Arg{$A$}\Arg{$C$}\Arg{$M$}}
+
+\defcom{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.
+Trois types d'intersections sont gérées :
+
+\begin{itemize}
+\item l'intersection droite-droite ;
+\item l'intersection droite-cercle ;
+\item l'intersection cercle-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}
+\cbstart
+\defcom{pstInterLL}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$D$}\Arg{$M$}}
+\cbend
+
+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{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$ et de rayon $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}.
+
+\tabex
+ [@{}m{.4\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.5777\linewidth}@{}]
+ {interDC}
+
+La position des points n'étant pas spécifiée, il faudra bien regarder si
+cela correspond à votre choix. Il arrive aussi, qu'après la
+modification de la position d'un point, un dessin ne représente plus
+la même figure à cause de l'échange entre les deux points d'une
+intersection droite-cercle comme le montre l'exemple suivant sur le
+léger déplacement du point $C$ :
+
+\hfill\rule[-\baselineskip]{0pt}{5cm+2\baselineskip}
+\begin{pspicture}(5,5)\psgrid
+ \pstGeonode(2,2){O}\pstGeonode(3,1){A}%
+ \pstGeonode(1,2){B}\pstGeonode(1.1,4){C}%
+ \pstCircleOA{O}{A}%
+ \pstInterLC{B}{C}{O}{A}{D}{E}
+\end{pspicture}
+\hfill
+\begin{pspicture}(5,5)\psgrid
+ \pstGeonode(2,2){O}\pstGeonode(3,1){A}%
+ \pstGeonode(1,2){B}\pstGeonode(.9,4){C}%
+ \pstCircleOA{O}{A}%
+ \pstInterLC{C}{B}{O}{A}{D}{E}
+\end{pspicture}
+\hspace*{\fill}
+
+Ce traitement se retrouve pour les points d'intersections entre deux
+cercles.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercle--cercle}
+
+\defcom{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}
+
+Et 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}.
+\cbstart
+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é.
+\cbend
+
+\begin{center}
+ \rule[-.5cm]{0pt}{8cm}
+ \begin{pspicture}(-3,-4)(7,3)\psgrid
+ \input{Exemples/interCC_bis_in}
+ \end{pspicture}
+\end{center}
+
+\verbatiminput{Exemples/interCC_bis_in}
+\pagebreak[4]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\chapter{Galerie d'exemples}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \section{Géométrie élémentaire}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Tracé de la bissectrice}
+ \nopagebreak[4]
+
+\tabex{gal_biss}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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}
+
+\cbend
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Droites remarquables du triangle}\nopagebreak[4]
+
+\begin{center}
+\psset{unit=2cm}
+\input{Exemples/remarq}
+\end{center}\nopagebreak[4]
+
+\verbatiminput{Exemples/remarq_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Cercle d'\textsc{Euler}}
+
+\begin{center}
+\psset{unit=2cm}
+\input{Exemples/euler}
+\end{center}\nopagebreak[4]
+
+\verbatiminput{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.
+\nopagebreak[4]
+
+\begin{center}
+\psset{unit=.5cm}
+\input{Exemples/orthoethyper}
+\end{center}\nopagebreak[4]
+
+\verbatiminput{Exemples/orthoethyper_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Polygone régulier à 17 côtés}
+
+Remarquable construction due à K. F. \textsc{Gauss}.
+Il a démontré qu'il était possible de construire les polygones à
+$2^{2^p}+1$ côtés, le suivant est donc à 257 côtés !
+\nopagebreak[4]
+
+%% Polygone à 17 côtés
+\begin{center}
+\psset{unit=1.5cm, CodeFig=true, RightAngleSize=.14, CodeFigColor=red,
+ CodeFigB=true, linestyle=dashed, dash=2mm 2mm}
+\begin{pspicture}(-5.5,-5.5)(5.5,6)%\psgrid
+ \pstGeonode[PosAngle=-90](0,0){O}
+ %% picture correct for x>0 and y<=0 for P_1!!
+ \pstGeonode[PosAngle=0](5,0){P_1}
+ \pstCircleOA{O}{P_1}
+ \pstSymO[PointSymbol=none, CodeFig=false]{O}{P_1}{PP_1}
+ \ncline[linestyle=solid]{PP_1}{P_1}
+ \pstRotation[RotAngle=90, PosAngle=90]{O}{P_1}{B}
+ \pstRightAngle[linestyle=solid]{B}{O}{PP_1}\ncline[linestyle=solid]{O}{B}
+ \pstHomO[HomCoef=.25]{O}{B}{J}
+ \ncline{J}{P_1}
+ \pstBissectBAC[PointSymbol=none]{O}{J}{P_1}{PE1}
+ \pstBissectBAC[PointSymbol=none]{O}{J}{PE1}{PE2}
+ \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PE2}{E}
+ \pstRotation[PosAngle=-90, RotAngle=-45, PointSymbol=none]{J}{E}{PF1}
+ \pstInterLL[PosAngle=-90]{O}{P_1}{J}{PF1}{F}
+ \pstMiddleAB[PointSymbol=none]{F}{P_1}{MFP1}
+ \pstCircleOA{MFP1}{P_1}
+ \pstInterLC[PointSymbolB=none]{O}{B}{MFP1}{P_1}{K}{H}
+ \pstCircleOA{E}{K}
+ \pstInterLC{O}{P_1}{E}{K}{N_4}{N_6}
+ \pstRotation[RotAngle=90, PointSymbol=none]{N_6}{E}{PP_6}{}
+ \pstInterLC[PosAngleA=90, PosAngleB=-90, PointNameB=P_{13}]
+ {N_6}{PP_6}{O}{P_1}{P_6}{P_13}
+ \pstSegmentMark[SegmentSymbol=wedge]{N_6}{P_6}
+ \pstSegmentMark[SegmentSymbol=wedge]{P_13}{N_6}
+ \pstRotation[RotAngle=90, PointSymbol=none]{N_4}{E}{PP_4}{}
+ \pstInterLC[PosAngleA=90, PosAngleB=-90, PointNameB=P_{15}]
+ {N_4}{PP_4}{O}{P_1}{P_4}{P_15}
+ \pstSegmentMark[SegmentSymbol=cup]{N_4}{P_4}
+ \pstSegmentMark[SegmentSymbol=cup]{P_15}{N_4}
+ \pstRightAngle[linestyle=solid]{P_1}{N_6}{P_6}
+ \pstRightAngle[linestyle=solid]{P_1}{N_4}{P_4}
+ \pstBissectBAC[PosAngle=90, linestyle=none]{P_4}{O}{P_6}{P_5}
+ \pstOrtSym[PosAngle=-90, PointName=P_{14}]{O}{P_1}{P_5}{P_14}
+ \pstInterCC[PosAngleB=90, PointSymbolA=none,
+ PointNameA=none]{O}{P_1}{P_4}{P_5}{H}{P_3}
+ \pstOrtSym[PosAngle=-90, SegmentSymbol=pstslash, PointName=P_{16}]
+ {O}{P_1}{P_3}{P_16}
+ \pstInterCC[PosAngleB=90, PointSymbolA=none]{O}{P_1}{P_3}{P_4}{H}{P_2}
+ \pstOrtSym[PosAngle=-90, SegmentSymbol=pstslashslashslash,
+ PointName=P_{17}]{O}{P_1}{P_2}{P_17}
+ \pstInterCC[PosAngleA=90, PointSymbolB=none]{O}{P_1}{P_6}{P_5}{P_7}{H}
+ \pstOrtSym[PosAngle=-90, SegmentSymbol=circ,
+ PointName=P_{12}]{O}{P_1}{P_7}{P_12}
+ \pstInterCC[PosAngleA=100, PointSymbolB=none]{O}{P_1}{P_7}{P_6}{P_8}{H}
+ \pstOrtSym[PosAngle=-100, SegmentSymbol=times,
+ PointName=P_{11}]{O}{P_1}{P_8}{P_11}
+ \pstInterCC[PosAngleA=135, PointSymbolB=none]{O}{P_1}{P_8}{P_7}{P_9}{H}
+ \pstOrtSym[PosAngle=-135, SegmentSymbol=equiv,
+ PointName=P_{10}]{O}{P_1}{P_9}{P_10}
+ \pspolygon[linecolor=green, linestyle=solid, linewidth=2\pslinewidth]
+ (P_1)(P_2)(P_3)(P_4)(P_5)(P_6)(P_7)(P_8)(P_9)
+ (P_10)(P_11)(P_12)(P_13)(P_14)(P_15)(P_16)(P_17)
+\end{pspicture}
+\end{center}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Tangentes de cercles}
+
+Construction des tangentes à un cercle passant par un point donné.
+\nopagebreak[4]
+
+\begin{center}
+\begin{pspicture}(15,10)%\psgrid
+ \pstGeonode(5, 5){O}
+ \pstCircleOA[Radius=\pstDistVal{4}]{O}{}
+ \pstGeonode(14,2){M}
+ \pstMiddleAB[PointSymbol=none]{O}{M}{O'}
+ \pstInterCC[RadiusA=\pstDistVal{4}, DiameterB=\pstDistAB{O}{M},
+ CodeFigB=true, CodeFigColor=magenta, PosAngleB=45]
+ {O}{}{O'}{}{A}{B}
+ \psset{linecolor=red, linewidth=1.3\pslinewidth, nodesep=-2}
+ \pstLineAB{M}{A}\pstLineAB{M}{B}
+\end{pspicture}
+\end{center}
+
+Construction des tangentes à deux cercles.
+\nopagebreak[4]
+
+\begin{center}
+\begin{pspicture}(-2,0)(13,9)%\psgrid
+ %% tangente à deux cercles
+ \pstGeonode(9,3){O}\pstGeonode(3,6){O'}\psset{PointSymbol=none}
+ \pstCircleOA[Radius=\pstDistVal{3}]
+ {O}{}\pstCircleOA[Radius=\pstDistVal{1}]{O'}{}
+ \pstInterLC[Radius=\pstDistVal{3}]{O}{O'}{O}{}{M}{toto}
+ \pstInterLC[Radius=\pstDistVal{1}]{O}{O'}{O'}{}{M'}{toto}
+ \pstRotation[RotAngle=30]{O}{M}{N}
+ \pstRotation[RotAngle=30]{O'}{M'}{N'}
+ \pstInterLL[PointName=\Omega]{O}{O'}{N}{N'}{Omega}
+ \pstMiddleAB{O}{Omega}{I}
+ \pstInterCC{I}{O}{O}{M}{A}{B}
+ \psset{nodesepA=-1, nodesepB=-3, linecolor=blue, linewidth=1.3\pslinewidth}
+ \pstLineAB[nodesep=-2]{A}{Omega}\pstLineAB[nodesep=-2]{B}{Omega}
+ \pstRotation[RotAngle=-150]{O'}{M'}{N''}
+ \pstInterLL[PointName=\Omega']{O}{O'}{N}{N''}{Omega'}
+ \pstMiddleAB{O}{Omega'}{J}
+ \pstInterCC{J}{O}{O}{M}{A'}{B'}
+ \psset{nodesepA=-1, nodesepB=-3, linecolor=red}
+ \pstLineAB{A'}{Omega'}\pstLineAB{B'}{Omega'}
+\end{pspicture}
+\end{center}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Point de \textsc{Fermat} d'un triangle}
+
+Figure de Manuel \textsc{Luque}.\nopagebreak[4]
+
+\begin{pspicture}(-7,-6)(5,5)%\psgrid
+ \psset{PointSymbol=none}
+ \pstTriangle[PosAngleA=-160, PosAngleB=90, PosAngleC=-25]%
+ (-3,-2){B}(0,3){A}(2,-1){C}%
+ \psset{RotAngle=-60}
+ \pstRotation[PosAngle=-90]{B}{C}{A'}
+ \pstRotation{C}{A}{B'}
+ \pstRotation[PosAngle=160]{A}{B}{C'}
+ \pstLineAB{A}{B'}
+ \pstLineAB{C}{B'}
+ \pstLineAB{B}{A'}
+ \pstLineAB{C}{A'}
+ \pstLineAB{B}{C'}
+ \pstLineAB{A}{C'}
+ \pstCircleABC[linecolor=red]{A}{B}{C'}{O_1}
+ \pstCircleABC[linecolor=blue]{A}{C}{B'}{O_2}
+ \pstCircleABC[linecolor=Aquamarine]{A'}{C}{B}{O_3}
+ \pstInterCC[PointSymbolA=none]{O_1}{A}{O_2}{A}{E}{F}
+\end{pspicture}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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
+\bgroup\centering
+\psset{unit=1cm, dash=5mm 4mm}%, PointSymbolA=none, PointSymbolB=none}
+\begin{pspicture}(-6,-5)(11,15)%\psgrid
+ \psframe(-6,-5)(11,15)
+ \pstTriangle[linewidth=2\pslinewidth, PosAngleA=-75, PosAngleB=180,
+ PosAngleC=45, linecolor=red]
+ (4,1){A}(0,3){B}(5,5){C}
+ \psset{linecolor=blue}
+ \pstBissectBAC[PointSymbol=none]{C}{A}{B}{AB}
+ \pstBissectBAC[PointSymbol=none]{A}{B}{C}{BB}
+ \pstBissectBAC[PointSymbol=none]{B}{C}{A}{CB}
+ \pstInterLL{A}{AB}{B}{BB}{I}
+ \psset{linecolor=magenta, linestyle=dashed}
+ \pstProjection[PosAngle=-90]{A}{B}{I}{I_C}
+ \pstLineAB{I}{I_C}\pstRightAngle[linestyle=solid]{A}{I_C}{I}
+ \pstProjection{A}{C}{I}{I_B}
+ \pstLineAB{I}{I_B}\pstRightAngle[linestyle=solid]{C}{I_B}{I}
+ \pstProjection[PosAngle=80]{C}{B}{I}{I_A}
+ \pstLineAB{I}{IA}\pstRightAngle[linestyle=solid]{B}{I_A}{I}
+ \pstCircleOA[linecolor=yellow, linestyle=solid]{I}{I_A}
+ %% BISSECTRICES EXTÉRIEURES
+ \psset{linecolor=magenta, linestyle=none}
+ \pstOutBissectBAC[PointSymbol=none]{C}{A}{B}{AOB}
+ \pstOutBissectBAC[PointSymbol=none]{A}{B}{C}{BOB}
+ \pstOutBissectBAC[PointSymbol=none]{B}{C}{A}{COB}
+ \pstInterLL[PosAngle=-90]{A}{AOB}{B}{BOB}{I_1}
+ \pstInterLL{A}{AOB}{C}{COB}{I_2}
+ \pstInterLL[PosAngle=90]{C}{COB}{B}{BOB}{I_3}
+ \psset{linecolor=magenta, linestyle=dashed}
+ \pstProjection[PosAngle=50, PointName=I_{1C}]{A}{B}{I_1}{I1C}
+ \pstLineAB{I_1}{I1C}\pstRightAngle[linestyle=solid]{I_1}{I1C}{A}
+ \pstProjection[PointName=I_{1B}]{A}{C}{I_1}{I1B}
+ \pstLineAB{I_1}{I1B}\pstRightAngle[linestyle=solid]{A}{I1B}{I_1}
+ \pstProjection[PosAngle=110, PointName=I_{1A}]{C}{B}{I_1}{I1A}
+ \pstLineAB{I_1}{I1A}\pstRightAngle[linestyle=solid]{I_1}{I1A}{C}
+ \pstProjection[PointName=I_{2B}]{A}{C}{I_2}{I2B}
+ \pstLineAB{I_2}{I2B}\pstRightAngle[linestyle=solid]{A}{I2B}{I_2}
+ \pstProjection[PosAngle=-90, PointName=I_{2C}]{A}{B}{I_2}{I2C}
+ \pstLineAB{I_2}{I2C}\pstRightAngle[linestyle=solid]{I_2}{I2C}{A}
+ \pstProjection[PosAngle=90, PointName=I_{2A}]{B}{C}{I_2}{I2A}
+ \pstLineAB{I_2}{I2A}\pstRightAngle[linestyle=solid]{C}{I2A}{I_2}
+ \pstProjection[PosAngle=130, PointName=I_{3A}]{C}{B}{I_3}{I3A}
+ \pstLineAB{I_3}{I3A}\pstRightAngle[linestyle=solid]{C}{I3A}{I_3}
+ \pstProjection[PosAngle=-90, PointName=I_{3C}]{A}{B}{I_3}{I3C}
+ \pstLineAB{I_3}{I3C}\pstRightAngle[linestyle=solid]{A}{I3C}{I_3}
+ \pstProjection[PointName=I_{3B}]{C}{A}{I_3}{I3B}
+ \pstLineAB{I_3}{I3B}\pstRightAngle[linestyle=solid]{I_3}{I3B}{A}
+ \psset{linecolor=yellow, linestyle=solid}
+ \pstCircleOA{I_1}{I1C}
+ \pstCircleOA{I_2}{I2B}
+ \pstCircleOA{I_3}{I3A}
+ \psset{linecolor=red, linestyle=solid, nodesepA=-1, nodesepB=-1}
+ \pstLineAB{I1B}{I3B}\pstLineAB{I1A}{I2A}\pstLineAB{I2C}{I3C}
+\end{pspicture}
+\egroup
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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]
+
+\verbatiminput{Exemples/parabole_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Hyperbole}
+
+\begin{minipage}[m]{.33\linewidth}
+L'hyperbole est composée des points dont la différence des distances
+avec les foyers est constant.
+\end{minipage}
+%% QQ DEFINITIONS
+%% RAPPELS : a=\Sommet, c=\PosFoyer, b^2=c^2-a^2, e=c/a
+%% pour une hyperbole -> e>1, donc c>a
+%% a=\sqrt{2}, c=2, e=\sqrt{2}
+%% M est sur H <=> MF-MF'=2a ou MF'-MF=2a
+\newcommand{\Sommet}{1.4142135623730951}\newcommand{\PosFoyer}{2}
+\newcommand{\HypAngle}{0}
+\setcounter{i}{1}\newcounter{CoefDiv}\setcounter{CoefDiv}{20}
+\newcounter{Inc}\setcounter{Inc}{2}\newcounter{n}\setcounter{n}{2}
+%% rayon des cercles successifs utilisés pour trouver les points de H
+%% on choisi \Rii=\Ri+2\Sommet (définition de l'hyperbole)
+\newcommand{\Ri}{%
+ \PosFoyer\space\Sommet\space%
+ sub \arabic{i}\space\arabic{CoefDiv}\space%
+ div add}
+\newcommand{\Rii}{\Ri\space\Sommet\space 2 mul add}% .001 add}
+\begin{pspicture}[.5](-4,-4)(4,4)%\psgrid
+ \pstGeonode[PosAngle=90](0,0){O}
+ \pstGeonode(\PosFoyer;\HypAngle){F}
+ \pstSymO[PosAngle=180]{O}{F}{F'}
+ \pstLineAB{F}{F'}
+ %% TRACÉ DES ASYMPTOTES
+ %\psset{PointSymbol=none}
+ \pstCircleOA{O}{F}
+ %% positionnement des deux sommets de H
+ \pstGeonode[PosAngle=-135](\Sommet;\HypAngle){S}
+ \pstGeonode[PosAngle=-45](-\Sommet;\HypAngle){S'}
+ %% l'intersection de la droite perpendiculaire à (FF')
+ %% passant par S, coupe les asymptotes sur le cercle
+ %% de diamètre [FF'] (cette droite est une tangente)
+ \pstRotation[RotAngle=90, PointSymbol=none]{S}{O}{B}
+ \pstInterLC[PosAngleA=90, PosAngleB=-90]{S}{B}{O}{F}{A_1}{A_2}
+ \pstLineAB[nodesepA=-3,nodesepB=-5]{A_1}{O}
+ \pstLineAB[nodesepA=-3,nodesepB=-5]{A_2}{O}
+ %% cos(\Psi)=OS/OF (c-a-d \Sommet/\PosFoyer)
+ %% ici \sqrt(2)/2, donc \Psi=45 => hyperbole équilatère
+ \pstMarkAngle[LabelSep=.8, MarkAngleRadius=.7,
+ arrows=->, LabelSep=1.1]{F}{O}{A_1}{$\Psi$}
+ \ncline[linecolor=red]{A_1}{A_2}
+ \pstRightAngle[RightAngleSize=.15]{A_1}{S}{O}
+ \psset{PointName=none}
+ \whiledo{\value{n}<8}{%
+ \psset{RadiusA=\pstDistVal{\Ri},RadiusB=\pstDistVal{\Rii},PointSymbol=none}
+ \pstInterCC{F}{}{F'}{}{M\arabic{n}}{P\arabic{n}}
+ \pstInterCC{F'}{}{F}{}{M'\arabic{n}}{P'\arabic{n}}
+ %% bcp de points au début, moins ensuite
+ %% n -> numéro du point, i -> taille des cercles
+ %% Inc -> incrément variable de i (2^n)
+ \stepcounter{n}\addtocounter{i}{\value{Inc}}
+ \addtocounter{Inc}{\value{Inc}}}%% fin de whiledo
+ \psset{linecolor=blue}
+ %% tracé de l'hyperbole
+ \pstGenericCurve[GenCurvFirst=S]{M}{2}{7}
+ \pstGenericCurve[GenCurvFirst=S]{P}{2}{7}
+ \pstGenericCurve[GenCurvFirst=S']{M'}{2}{7}
+ \pstGenericCurve[GenCurvFirst=S']{P'}{2}{7}
+ %% pour vérif le trace paramètrique
+ %\parametricplot[linecolor=black, linewidth=.25pt]{-1}{1}
+ % {t dup tx@EcldDict begin sh exch ch end \Sommet\space mul exch
+ % \PosFoyer\space dup mul \Sommet\space dup mul sub sqrt mul}
+ %\parametricplot[linecolor=black, linewidth=.25pt]{-1}{1}
+ % {t dup tx@EcldDict begin sh exch ch end neg \Sommet\space mul exch
+ % \PosFoyer\space dup mul \Sommet\space dup mul sub sqrt mul}
+\end{pspicture}
+\pagebreak
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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]
+
+\verbatiminput{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}
+
+\verbatiminput{Exemples/hypocyclo}
+\verbatiminput{Exemples/astro_in}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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}
+
+\verbatiminput{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.
+
+\begin{center}\input{Exemples/envcardi}\end{center}
+
+\verbatiminput{Exemples/envcardi_in}
+
+\cbend
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \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.
+\begin{pspicture}(-5,-5)(5,5)
+ \psclip{\pscircle(0,0){4}}%\psgrid
+ %\newlength{\radius}\setlength{\radius}{0cm}
+ %\newcounter{rapport}\setcounter{i}{1}
+ %\whiledo{\value{i}<100}{
+ % \setlength{\radius}{4cm*\value{i}}
+ % \setcounter{rapport}{\value{i}+1}
+ % \divide\radius by \arabic{rapport}
+ % \pscircle[linestyle=dotted, linecolor=gray]%
+ % (0, 0){\radius}
+ % \setcounter{i}{\value{i}*2}
+ % }
+ \pstGeonode(1, 2){M}\pstGeonode(-2,2){N}\pstGeonode(0,-2){P}%
+ \psset{DrawCirABC=false, PointSymbol=none}%
+ \pstGeonode(0,0){O}\pstGeonode(4,0){A}\pstCircleOA{O}{A}%
+ \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{M} sub
+ \pstDistAB{O}{M} div]{O}{M}{M'}%
+ \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{P} sub
+ \pstDistAB{O}{P} div]{O}{P}{P'}%
+ \pstHomO[HomCoef=\pstDistAB{O}{A} 2 mul \pstDistAB{O}{N} sub
+ \pstDistAB{O}{N} div]{O}{N}{N'}%
+ \psset{linecolor=green, linewidth=1.5\pslinewidth}%
+ \pstCircleABC{M}{N}{M'}{OmegaMN}\pstArcOAB{OmegaMN}{N}{M}%
+ \pstCircleABC{M}{P}{M'}{OmegaMP}\pstArcOAB{OmegaMP}{M}{P}%
+ \pstCircleABC{N}{P}{P'}{OmegaNP}\pstArcOAB{OmegaNP}{P}{N}%
+ \psset{linecolor=blue}
+ %% la hauteur issue de M
+ \pstHomO[HomCoef=\pstDistAB{OmegaNP}{N} 2 mul \pstDistAB{OmegaNP}{M} sub
+ \pstDistAB{OmegaNP}{M} div]{OmegaNP}{M}{MH'}
+ \pstCircleABC{M}{M'}{MH'}{OmegaMH}\pstArcOAB{OmegaMH}{MH'}{M}
+ %% la hauteur issue de N
+ \pstHomO[HomCoef=\pstDistAB{OmegaMP}{M} 2 mul \pstDistAB{OmegaMP}{N} sub
+ \pstDistAB{OmegaMP}{N} div]{OmegaMP}{N}{NH'}
+ \pstCircleABC{N}{N'}{NH'}{OmegaNH}\pstArcOAB{OmegaNH}{N}{NH'}
+ %% la hauteur issue de P
+ \pstHomO[HomCoef=\pstDistAB{OmegaMN}{M} 2 mul \pstDistAB{OmegaMN}{P} sub
+ \pstDistAB{OmegaMN}{P} div]{OmegaMN}{P}{PH'}
+ \pstCircleABC{P}{P'}{PH'}{OmegaPH}\pstArcOAB{OmegaPH}{P}{PH'}
+ \endpsclip
+\end{pspicture}
+\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}
+ \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*}
+%