diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:44:40 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:44:40 +0000 |
commit | b4fc5f639874db951177ec539299d20908adb654 (patch) | |
tree | 52f08823ca58fffe3db6a9b075635038c567626c /Master/texmf-dist/doc/latex/euclide/euclide.tex | |
parent | dec3d98ebe442d7ea93efbaa8dd2e2be8149a467 (diff) |
doc 4
git-svn-id: svn://tug.org/texlive/trunk@80 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/euclide/euclide.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/euclide/euclide.tex | 1322 |
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*} +% |