summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/euclide/euclide_english.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/euclide/euclide_english.tex')
-rw-r--r--Master/texmf-dist/doc/latex/euclide/euclide_english.tex1177
1 files changed, 1177 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/euclide/euclide_english.tex b/Master/texmf-dist/doc/latex/euclide/euclide_english.tex
new file mode 100644
index 00000000000..4c0f2a98b99
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/euclide/euclide_english.tex
@@ -0,0 +1,1177 @@
+\documentclass[12pt, draft]{article}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage[a4paper]{geometry}
+\usepackage[usenames]{pstcol}
+\usepackage{pst-eucl}
+\usepackage{pst-plot}
+\usepackage{multido}
+\usepackage{ifthen}
+\usepackage{calc}
+\usepackage{array}
+\usepackage{moreverb}
+\usepackage{multicol}
+\usepackage{mathrsfs}
+\usepackage[dvips]{changebar}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% QQ DEFINITIONS
+\newcommand{\Vecteur}[1]{\ensuremath{\overrightarrow{#1}}}%
+\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}}%
+\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} by default)}
+\newcommand{\PStricks}{\texttt{PStricks}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{The \texttt{pst-euclide.sty} Package}
+\author{Version $0.\beta.5$\\Dominique Rodriguez}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\geometry{bottom=1cm, left=1cm, right=1cm}
+\psset{subgriddiv=0,griddots=5}
+%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%
+\newcounter{i}
+%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+\renewcommand{\abstractname}{WARNING}
+\maketitle
+\cbstart
+\begin{abstract}
+ This is a $\beta$-version, it is still in development, the macros
+ name can and will change without upward-compatibility.
+\end{abstract}
+\cbend
+\begin{multicols}{2}
+\tableofcontents{}
+\end{multicols}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Special specifications}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{\PStricks\ Options}
+
+The package activates the \com{SpecialCoor} mode. This mode extend the
+coordinates specification. Furthermore the plotting type is set to
+\texttt{dimen=middle}, which indicates that the position of the
+drawing is done according to the middle of the line. Please look at
+the user manual for more information about these setting.
+
+At last, the working axes are supposed to be (ortho)normed.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Conventions}
+
+For this manual, I used the geometric French conventions for naming
+the points:
+
+\begin{itemize}
+\item $O$ is a centre (circle, axes, symmetry, homothety, rotation);
+\item $I$ defined the unity of the abscissa axe, or a midpoint;
+\item $J$ defined the unity of the ordinate axe;
+\item $A$, $B$, $C$, $D$ are points ;
+\item $M'$ is the image of $M$ by a transformation ;
+\end{itemize}
+
+At last, although these are nodes in \PStricks, I treat them
+intentionally as points.
+\cbend
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Basic Objects}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Points}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{default axes}
+
+\defcom{pstGeonode}{\OptArg{par}\Arg{$A$}}
+
+This command defines a geometrical point associated with a node. This
+point has a node name \Argsans{$A$} which defines the default label put on
+the picture. This label is managed by default in mathematical mode,
+the boolean parameter \param{PtNameMath} can modify this behavior and
+let manage the label in normal mode. It is put at a distance of
+\texttt{1em} of the center of the node with a angle of
+\param{PosAngle}\DefaultVal{0}. It is possible to
+specify another label using the parameter \param{PointName}, and an
+empty label can be specified by selecting the value \texttt{none}, in
+that case the point will have no name on the picture.
+
+The point symbol is given by the parameter
+\param{PointSymbol} \DefaultVal{*}. The symbol is the same as used by
+the macro \com{pstdot}. This parameter can be set to \texttt{none},
+which means that neither the point nor its label will be drawn on the
+picture.
+
+Here are the possible values for this parameter:
+
+\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}
+
+% EXEMPLE GEONODE
+\tabex{geonode}
+
+Obviously, the nodes appearing in the picture can be used as normal
+pstricks nodes. Thus, it is possible to reference a point from
+\rnode{ici}{here}.
+\nccurve{->}{ici}{B_1}
+
+% There is a bug linked to the definition of a point, so a mandatory
+% \verb$%$ symbol must be put at the end of each such command. If it is
+% forgotten, a shift appear on the picture as it can be seen on the
+% following diagram:
+
+% \begin{center}
+% \begin{pspicture}(-2,-2)(2,2)\psgrid
+% \pstGeonode(0,0){A}{A}
+% \pstGeonode[PosAngle=-90](1,2){B1}{B_1}
+% \pstGeonode[PointSymbol=pstSmallCircle,
+% linecolor=red](-2,1){B2}{B_2}%
+% \end{pspicture}
+% \end{center}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{User defined axes}
+
+\defcom{pstOIJGeonode}{\OptArg{par}$(x,y)$\Arg{$A$}\Arg{$O$}\Arg{$I$}\Arg{$J$}}
+
+This command allows the placement of points in any landmark(?) defined
+by the three points $(O;I;J)$.
+
+%% EXAMPLE
+\tabex{oij}
+\cbend
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Segment mark}
+
+A segment can be drawn using the \texttt{\bs ncline} command. However,
+for marking a segment there is the following command:
+
+\defcom{pstMarkSegment}{\OptArg{par}\Arg{$A$}\Arg{$B$}}
+
+The symbol drawn on the segment is given by the parameter
+\param{SegmentSymbol}. Its value can be any valid command which can be
+used in math mode. Its default value is \texttt{pstSlashsSlash},
+which produced two slashes on the segment. The segment is drawn.
+
+%% EXAMPLE
+\tabex{segmentmark}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Triangles}
+
+The more classical figure, it has its own macro for a quick definition:
+
+\defcom{pstTriangle}{%
+ \OptArg{par}
+ $(x_A;y_A)$\Arg{$A$}$(x_B;y_B)$\Arg{$B$}$(x_C;y_C)$\Arg{$C$}}
+
+In order to accurately put the name of the points, there are three
+parameters \param{PosAngleA}, \param{PosAngleB} and \param{PosAngleC},
+which are associated respectively to the nodes \Argsans{$A$},
+\Argsans{$B$} et \Argsans{$C$}. Obviously they have the same meaning
+as the parameter \param{PosAngle}. If one or more of such parameters is
+omitted, the value of \param{PosAngle} is taken.
+
+In the same way there are parameters for controlling the symbol used
+for each points: \param{PointSymbolA}, \param{PointSymbolB} and
+\param{PointSymbolC}. They are equivalent to the parameter
+\param{PointSymbol}. The management of the default value followed the
+same rule.
+
+\tabex{triangle}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Angles}
+
+Each angle is defined with three points. The vertex is the second
+point. Their order is important because it is assumed that the angle is
+specified in the direct order. The first command is the marking of a
+right angle:
+
+\defcom{pstRightAngle}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}}
+
+The only parameter controlling this command, excepting the ones which
+controlled the line, is \param{RightAngleSize} which defines the size
+of the symbol\DefaultVal{0.28 unit}.
+
+For other angles, there is the command:
+
+\defcom{pstMarkAngle}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}}
+
+The \param{label} can be any valid \TeX\ box, it is put at
+\param{LabelSep} \DefaultVal{1 unit} of the node in the direction of
+\cbstart the bisector of the angle modified by
+\param{LabelAngleOffset}\DefaultVal{0} and positioned using
+\param{LabelRefPt} \DefaultVal{c}. \cbend Furthermore the arc used for
+marking has a radius of \param{MarkAngleRadius} \DefaultVal{.4~unit}.
+At least, it is possible to place an arrow using the parameter
+\param{arrows}.
+
+\tabex{angle}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Lines, half-lines and segments}
+
+The classical line!
+
+\defcom{pstLineAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}}
+
+In order to control its length\footnote{which is the comble for a
+line!}, the two parameters \param{nodesepA} et \param{nodesepB}
+specify the abscissa of the extremity of the drawing part of the line.
+A negative abscissa specify an outside point, while a positive
+abscissa specify an internal point. If these parameters have to be
+equal, \param{nodesep} can be used instead. The default value of these
+parameters is equal to 0.
+
+\tabex{droite}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Circles}
+
+A circle can be defined either with its center and a point of its
+circumference, or with two diameterly opposed points. There is two
+commands :
+
+\defcomdeux{pstCircleOA}{\OptArg{par}\Arg{$O$}\Arg{$A$}}%
+ {pstCircleAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}}
+
+For the first macro, it is possible to omit the second point and then
+to specify a radius or a diameter using the parameters \param{Radius}
+and \param{Diameter}. The values of these parameters must be specified
+with one of the two following macros :
+
+\defcomdeux{pstDistAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}}%
+ {pstDistVal}{\OptArg{par}\Arg{x}}
+
+The first specifies a distance between two points. The parameter
+\param{DistCoef} can be used to specify a coefficient to reduce or
+enlarge this distance. To be taken into account this last parameter
+must be specified before the distance. The second macro can be used to
+specify an explicit numeric value.
+
+We will see later how to draw the circle crossing three points.
+
+\vspace{1.1\baselineskip}
+\begin{minipage}[m]{.45\linewidth}
+ With this package, it becomes possible to draw:
+
+ \begin{itemize}
+ \item {\color{red} the circle of center $A$ crossing $B$ ;}
+ \item {\color{green} the circle of center $A$ whose radius is $AC$ ;}
+ \item {\color{blue} the circle of center $A$ whose radius is $BC$ ;}
+ \item {\color{Sepia} the circle of center $B$ whose radius is $AC$ ;}
+ \item {\color{Aquamarine} the circle of center $B$ of diameter $AC$ ;}
+ \item {\color{RoyalBlue} the circle whose diameter is $BC$ ;}
+ \end{itemize}
+\end{minipage}
+%
+\input{Exemples/cercle}
+
+\verbatiminput{Exemples/cercle_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Circle arcs}
+
+\defcomdeux{pstArcOAB}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}}%
+ {pstArcnOAB}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}}
+
+These two macros draw circle arcs, $O$ is the center, the radius
+defined by $OA$, the beginning angle given by $A$ and the final angle
+by $B$. Finally, the first macro draws the arc in the direct way,
+whereas the second in the indirect way. It is not necessary that the
+two points are at the same distance of $O$.
+
+\tabex{arc}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Curved abscissa}
+
+A point can be positioned on a circle using its curved abscissa.
+
+\defcom{pstCurvAbsNode}{\OptArg{par}\Arg{$O$}\Arg{$A$}\Arg{$B$}\Arg{Abs}}
+
+The point \Argsans{$B$} is positioned on the circle of center
+\Argsans{$O$} crossing \Argsans{$A$}, with the curved abscissa
+\Argsans{Abs}. The origin is \Argsans{$A$} and the direction is
+anti-clockwise by default. The parameter \param{CurvAbsNeg}
+\DefaultVal{false} can change this behavior.
+
+\tabex{abscur}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Généric curve}
+
+It is possible to generate a set of point using a loop, and to give
+them a generic name defined by a radical and a number. The following
+command can draw a interpolated curve crossing all such kind of
+points.
+
+\defcom{pstGenericCurve}{\OptArg{par}\Arg{Radical}\Arg{$n_1$}\Arg{$n_2$}}
+
+The curve is drawn on the points whose name is defined using the
+radical \Argsans{Radical} followed by a number from \Argsans{$n_1$} to
+\Argsans{$n_2$}. In order to manage side effect, the parameters
+\param{GenCurvFirst} et \param{GenCurvLast} can be used to specified
+special first or last point. The parameter \param{GenCurvInc} can be
+used to modify the increment from a point to the next one
+\DefaultVal{1}.
+
+\tabex{gencur}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Geometric Transformations}
+
+The geometric transformation are the ideal tools to construct
+geometric figures. All the classical transformation are accessible
+with the following macros.
+
+They share the parameter \param{CodeFig} which draws the specific
+constructions lines. Its default value is \param{false}, and a
+\param{true} value activates this optional drawing.
+
+The drawing is done using the line style \param{CodeFigStyle}
+\DefaultVal{dashed}, with the color \param{CodeFigColor}
+\DefaultVal{cyan}.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Central symmetry}
+
+\defcom{pstSymO}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M$}\Arg{$M'$}}
+
+Draw the symmetric point in relation to point $O$. The classical
+parameter of point creation are usable here, and also for all the
+following functions.
+
+\tabex{symcentrale}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Orthogonal (or axial) symmetry}
+
+\defcom{pstOrtSym}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M$}\Arg{$M'$}}
+
+Draw the symmetric point in relation to line $(AB)$.
+
+\tabex{symorthogonale}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Rotation}
+
+\defcom{pstRotation}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M$}\Arg{$M'$}}
+
+Draw the image of $M$ by the rotation of center $O$ and angle given by
+the parameter \param{RotAngle}. This later can be an angle specified
+by three points. In such a case, the following function must be used:
+
+\defcom{pstAngleABC}{\Arg{$A$}\Arg{$B$}\Arg{$C$}}
+
+Never forget to use the rotation for a square or a equilateral
+triangle.
+
+\tabex{rotation}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Translation}
+
+\defcom{pstTranslation}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M$}\Arg{$M'$}}
+
+Draw the translated of vector \Vecteur{AB} of the point
+\Argsans{$M$}. Useful for drawing a parallel line.
+
+\tabex{translation}
+
+The parameter \param{DistCoef} can be used as a multiplicand
+coefficient to modify the translation vector.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Homothetie}
+
+\defcom{pstHomO}%
+ {\OptArg{par}\Arg{$O$}\Arg{$M$}\Arg{$M'$}}
+
+Draw $M'$ the image of $M$ by the homotethy of center $O$ and
+coefficient specified with the parameter \param{HomCoef}.
+
+\tabex{homothetie}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Orthogonal projection}
+
+\defcom{pstProjection}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$M$}\Arg{$M'$}}
+
+Project orthogonally the point $M$ on the line
+$(AB)$. Useful for the altitude of a triangle.
+
+\tabex{projection}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Special object}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Midpoint}
+
+\defcom{pstMiddleAB}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$I$}}
+
+Draw the midpoint $I$ of segment $[AB]$.
+
+\tabex{milieu}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Triangle center of gravity}
+
+\defcom{pstCGravABC}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$G$}}
+
+Draw the $ABC$ triangle centre of gravity $G$.
+
+\tabex{grav}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Centre of the circumcircle of a triangle}
+
+\defcom{pstCircleABC}{\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$O$}}
+
+It's obvious.
+
+\tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]%
+ {ccirc}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Perpendicular bisector of a segment}
+
+\defcom{pstMediatorAB}{\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$I$}\Arg{$M$}}
+
+The perpendicular bisector of a segment is a line perpendicular to
+this segment in its midpoint. The segment is $[AB]$, the midpoint $I$,
+and $M$ is a point belonging to the perpendicular bisector line. It is
+build by a rotation of $B$ of 90 degrees around $I$. This mean
+that the order of $A$ and $B$ is important, it controls the position
+of $M$. The command creates the two points $M$ end $I$. The
+construction is controlled by the following parameters:
+
+\begin{itemize}
+\item \param{CodeFig}, \param{CodeFigColor} et \param{SegmentSymbol}
+ for marking the right angle ;
+\item \param{PointSymbol} et \param{PointName} for controlling the
+ drawing of the two points, each of them can be specified
+ separately with the parameters \param{...A} et \param{...B} ;
+\item parameters controlling the line drawing.
+\end{itemize}
+
+\tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]%
+ {mediator}
+\cbend
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Bissectors of angles}
+
+\defcom{pstBissectBAC}{\OptArg{par}\Arg{$B$}\Arg{$A$}\Arg{$C$}\Arg{$N$}}
+
+\defcom{pstOutBissectBAC}{\OptArg{par}\Arg{$B$}\Arg{$A$}\Arg{$C$}\Arg{$N$}}
+
+there are two bisectors for a given geometric angle: the inside one and
+the outside one; this is why there is two commands. The angle is
+specified by three points specified in the trigonometric direction
+(anti-clockwise). The result of the commands is the specific line and
+a point belonging to this line. This point is built by a rotation of
+point $B$.
+
+\tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]%
+ {bissec}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Intersections}
+
+Points can be defined by intersections. Three intersection types are
+managed:
+
+\begin{itemize}
+\item line-line;
+\item line-circle;
+\item circle-circle.
+\end{itemize}
+
+An intersection can not exist: case of parallel lines. In such a case,
+the point(s) are positioned at the origin. In fact, the user has to
+manage the existence of these points.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Line-Line}
+
+\defcom{pstInterLL}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$C$}\Arg{$D$}\Arg{$M$}}
+
+Draw the intersection point between lines $(AB)$ and $(CD)$.
+
+\begin{description}
+\item[basique]
+
+ \tabex{interDD}
+
+\item[Horthocentre]
+
+ \tabex%
+ [@{}m{.35\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.627\linewidth}@{}]
+ {orthocentre}
+
+\end{description}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Circle--Line}
+
+\defcom{pstInterLC}%
+ {\OptArg{par}\Arg{$A$}\Arg{$B$}\Arg{$O$}\Arg{$C$}%
+ \Arg{$M_1$}\Arg{$M_2$}}
+
+Draw the one or two intersection point(s) between the line $(AB)$ and
+the circle of centre $O$ and with radius $OC$.
+
+The circle is specified with its center and either a point of its
+circumference or with a radius specified with parameter \param{radius}
+or its diameter specified with parameter \param{Diameter}. These two
+parameters can be modify by coefficient \param{DistCoef}.
+
+\tabex
+ [@{}m{.4\linewidth}@{\hspace{.013\linewidth}}>{\small}m{.5777\linewidth}@{}]
+ {interDC}
+
+In the case of a two points intersection, their position is not
+specified, the user will have to check the result. It can arise that
+after a modification the name of points can be swapped leading to a
+wrong figure as shown in the following example:
+
+\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{B}{C}{O}{A}{D}{E}
+\end{pspicture}
+\hspace*{\fill}
+
+This management is the same for the circle-circle intersection.
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Circle--Circle}
+
+\defcom{pstInterCC}%
+ {\OptArg{par}\Arg{$O_1$}\Arg{$B$}\Arg{$O_2$}\Arg{$C$}%
+ \Arg{$M_1$}\Arg{$M_2$}}
+
+This function is similar to the last one. The boolean parameters
+\param{CodeFigA} et \param{CodeFigB} allow the drawing of the arcs
+at the intersection. In order to get a coherence \param{CodeFig} allow
+the drawing of both arcs. The boolean parameters \param{CodeFigAarc} and
+\param{CodeFigBarc} specified the direction of these optional arcs:
+trigonometric (by default) or clockwise. Here is a first example.
+
+\tabex{interCC}
+
+And a more complete one, which includes the special circle
+specification using radius and diameter. For such specifications it
+exists the parameters \param{RadiusA}, \param{RadiusB},
+\param{DiameterA} and \param{DiameterB}.
+
+\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}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Examples gallery}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Basic geometry}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Drawing of the bissector}
+ \nopagebreak[4]
+
+\tabex{gal_biss}
+
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{German right angle}
+
+In Germany, there is another convention for the right angle (remark
+of U. Dirr).
+\nopagebreak[4]
+
+\tabex{german_ra}
+
+\cbend
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Triangle lines}
+
+\begin{center}
+\psset{unit=2cm}
+\input{Exemples/remarq}
+\end{center}\nopagebreak[4]
+
+\verbatiminput{Exemples/remarq_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Euler circle}
+
+\begin{center}
+\psset{unit=2cm}
+\input{Exemples/euler}
+\end{center}\nopagebreak[4]
+
+\verbatiminput{Exemples/euler_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Orthocenter and hyperbola}
+
+The orthocenter of a triangle whose points are on the branches of the
+hyperbola ${\mathscr H} : y=a/x$ belong to this hyperbola.
+\nopagebreak[4]
+
+\begin{center}
+\psset{unit=.5cm}
+\input{Exemples/orthoethyper}
+\end{center}\nopagebreak[4]
+
+\verbatiminput{Exemples/orthoethyper_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{17 sides regular polygon}
+
+Striking picture created by K. F. Gauss.
+he also demonstrates that it is possible to build the polygons which
+have $2^{2^p}+1$ sides, the following one has 257 sides!
+\nopagebreak[4]
+
+%% Polygone à 17 côtés
+\bgroup\centering
+\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{B}{O}{PP_1}\ncline[linestyle=solid]{O}{B}%
+ \pstHomO[HomCoef=.25]{O}{B}{J}{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{P_1}{N_6}{P_6}\pstRightAngle{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}%
+ \psline[linecolor=green, linestyle=solid]%
+ (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)(P_1)%
+\end{pspicture}
+\egroup
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Circles tangents}
+
+The drawing of the circle tangents which crosses a given point.
+\nopagebreak[4]
+
+\begin{pspicture}(15,9)%\psgrid
+ %%% tangente à un cercle passant par un point
+ \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}]%
+ {O}{}{O'}{}{A}{B}%
+ \psset{linecolor=red, linewidth=1.3pt, nodesep=-2}
+ \pstLineAB{M}{A}\pstLineAB{M}{B}
+\end{pspicture}
+
+The drawing of the common tangent of two circles.
+\nopagebreak[4]
+
+\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[PointSymbol=none]{O}{Omega}{I}
+ \pstInterCC{I}{O}{O}{M}{A}{B}
+ \psset{nodesepA=-1, nodesepB=-3, linecolor=blue, linewidth=1.3pt}
+ \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[PointSymbol=none]{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}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Fermat's point}
+
+Drawing of Manuel 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}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Escribed and inscribed circles of a triangle}
+
+%% 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=2pt, 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
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Some locus points}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Parabola}
+
+\begin{minipage}[m]{.33\linewidth}
+The parabola is the set of points which is at the same distance
+between a point and a line.
+\end{minipage}
+\newcommand{\NbPt}{11}
+\input{Exemples/parabole}\nopagebreak[4]
+
+\verbatiminput{Exemples/parabole_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Hyperbola}
+
+\begin{minipage}[m]{.33\linewidth}
+The hyperbola is the set of points whose difference between their
+distance of two points (the focus) is constant.
+\end{minipage}
+%% QQ DEFINITIONS
+\newcommand{\Sommet}{1.4142135623}\newcommand{\PosFoyer}{2}
+\newcommand{\HypAngle}{0}
+\setcounter{i}{0}\newcounter{CoefDiv}\setcounter{CoefDiv}{20}
+\newcounter{Inc}\setcounter{Inc}{1}\newcounter{n}\setcounter{n}{1}
+\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}
+ \pstGeonode[PosAngle=-135](\Sommet;\HypAngle){S}
+ \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}
+ \pstMarkAngle[LabelSep=.8, MarkAngleRadius=.7, arrows=->]{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}}
+ \stepcounter{n}\addtocounter{i}{\value{Inc}}\addtocounter{Inc}{\value{Inc}}
+ } %% fin de whiledo
+ \psset{linecolor=blue}
+ \pstGenericCurve[GenCurvFirst=P1]{M}{1}{7}\pstGenericCurve{P}{1}{7}
+ \pstGenericCurve[GenCurvFirst=P'1]{M'}{1}{7}\pstGenericCurve{P'}{1}{7}
+\end{pspicture}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Cycloid}
+
+The wheel rolls from $M$ to $A$. The circle points are on a
+cycloids.\nopagebreak[4]
+
+\begin{center}
+\input{Exemples/cyclo}
+\end{center}\nopagebreak[4]
+
+\verbatiminput{Exemples/cyclo_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Hypocycloids (Astroid and Deltoid)}
+
+A wheel rolls inside a circle, and depending of the radius ratio, it
+is an astroid, a deltoid and in the general case hypo-cycloids.
+\nopagebreak[4]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% ASTROIDE
+\input{Exemples/hypocyclo}
+%%%%%%%%%%%%%%%%%%%%
+\begin{center}
+\input{Exemples/astro}\input{Exemples/delto}
+\end{center}
+
+\verbatiminput{Exemples/hypocyclo}
+\verbatiminput{Exemples/astro_in}
+
+\cbstart
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Lines and circles envelope}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Conics}
+
+Let's consider a circle and a point $A$ not on the circle. The
+set of all the mediator lines of segments defined by $A$ and the
+circle points, create two conics depending of the position of $A$:
+
+\begin{itemize}
+\item inside the circle: an hyperbola;
+\item outside the circle: an ellipse.
+\end{itemize}
+
+(figure of O. Reboux).
+
+\begin{center}\input{Exemples/envellipse}\end{center}
+
+\verbatiminput{Exemples/envellipse_in}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsubsection{Cardioid}
+
+The cardioid is defined by the circles centred on a circle and
+crossing a given point.
+
+\begin{center}\input{Exemples/envcardi}\end{center}
+
+\verbatiminput{Exemples/envcardi_in}
+
+\cbend
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{Homotethy and fractals}
+
+\tabex{fracthom}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{hyperbolic geometry: a triangle and its altitudes}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% 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.5pt}%
+ \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}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \subsection{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*}
+%