diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/euclide/euclide_english.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/euclide/euclide_english.tex | 1177 |
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*} +% |