%% %% This is file `pst-geometrictools-fr-doc.tex', %% %% IMPORTANT NOTICE: %% %% Package `pst-geometrictools.tex' %% %% Thomas S\"{o}ll %% %% This program can redistributed and/or modified under %% %% the terms of the LaTeX Project Public License %% %% Distributed from CTAN archives in directory %% %% macros/latex/base/lppl.txt; either version 1.3c of %% %% the License, or (at your option) any later version. %% %% %% DESCRIPTION: %% `pst-geometrictools' is a PSTricks package to draw a protractor, a ruler, a compass and pencils %% %% \listfiles \documentclass[% 11pt, english, BCOR10mm, DIV12, bibliography=totoc, parskip=false, fleqn, smallheadings, headexclude, footexclude, oneside, dvipsnames, svgnames, x11names, distiller ]{pst-doc} \usepackage[autostyle]{csquotes} \usepackage{biblatex} %\usepackage[style=dtk]{biblatex} \addbibresource{pst-geometrictools-doc.bib} \usepackage[utf8]{inputenc} \let\pstgeometrictoolsFV\fileversion \usepackage{pst-geometrictools,pst-node,pst-eucl,pstricks-add} \usepackage{etex} % increase the number of registers (otherwise only 256) \let\belowcaptionskip\abovecaptionskip \parindent0pt \psset{arrowlength=2.8,arrowinset=0.1} \def\bgImage{% \begin{pspicture}(-7,-3)(7,7)% \psProtractor[ProScale=0.75]{-5}(-2,2)% \psRuler[RulerFillCol=Blue!80,RulerScale=0.75]{190}(1,5) \psPencil[pencilColA=Green,PenScale=0.75]{10}(-2,2) \psPencil[PenLength=2,pencilColA=red,PenScale=0.75]{-20}(1,5) \psCompass[PoCScale=1.25,PoCFillCol=Yellow,PoCAngle=0,PoCMineCol=Green]{5}(3.5,-3.5)(7.5,-3.5) \end{pspicture} } \lstset{language=PSTricks,morekeywords={psdot,psIntersectionPoint,psProtractor,psPencil,psRuler,psParallels,psGetAngleABC,pstRightAngle,psline}\footnotesize\ttfamily} \newpsstyle{Parallelen}{country=G,ProScale=0.5,ProLineCol=cyan,ProFillCol=gray!50,OwnerTxt=Pythagoras,MadeTxt={Geodreieck},RulerFillCol=cyan!40} \begin{document} \title{pst-geometrictools v 1.0} \subtitle{Package de PSTricks pour dessiner un rapporteur, une r\'{e}glette et un crayon} \author{Thomas \textsc{S\"{o}ll}} \date{\today} \maketitle \tableofcontents \psset{unit=1cm} \clearpage \begin{abstract} Pour illustrer des notions de g\'{e}om\'{e}trie \'{e}l\'{e}mentaire le package pst-geometrictools dispose des outils suivants : \begin{itemize} \item r\`{e}gle gradu\'{e}e ; \item \'{e}querre-rapporteur ; \item crayon. \end{itemize} Les arguments et options des commandes d\'{e}di\'{e}es permettent de les positionner ainsi que de les personnaliser. Vous remarquerez dans les exemples qui illustrent la documentation le soin tout professionnel qui a \'{e}t\'{e} apport\'{e} au dessin et aux d\'{e}tails des outils. L'utilisation du package pst-eucl de Dominique Rodriguez est vivement conseill\'{e} car ses commandes sont particuli\`{e}rement efficaces pour cr\'{e}er facilement des animations et des illustrations. \vfill This program can redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from CTAN archives in directory macros/latex/base/lppl.txt; either version 1.3c of the License, or (at your option) any later version. \end{abstract} \clearpage \section{Comment utiliser les commandes} \subsection{\textbackslash psProtractor} \begin{BDef} \Lcs{psProtractor}\OptArgs\Largb{angle}\Largr{coordonn\'{e}es de l'origine}% \\ \Lcs{psProtractor}\OptArgs\Largb{angle}\Largr{coordonn\'{e}es de l'origine}\Largr{coordonn\'{e}es du second point} \end{BDef} La commande \Lcs{psProtractor} est munie des options \nxLkeyword{ProScale=}, \nxLkeyword{ProLineCol=}, \nxLkeyword{ProFillCol=}, \nxLkeyword{OwnerTxt=}, \nxLkeyword{MadeTxt=}, \nxLkeyword{PSfontO=}, \nxLkeyword{fontsizeO=}, \nxLkeyword{PSfontM=}, \nxLkeyword{fontsizeM=}, \nxLkeyword{country=} and \nxLkeyword{Ghost=}. \begin{quote} \begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule \emph{Nom} & \emph{D\'{e}faut} & \emph{action} \\\midrule \Lkeyword{ProScale} & 1 & facteur d'\'{e}chelle\\ \Lkeyword{ProFillCol} & gray!60 & couleur de transparence \\ \Lkeyword{ProLineCol} & cyan & couleur de l'arc en demi-cercle\\ \Lkeyword{OwnerTxt} & T.S. & Nom du propri\'{e}taire\\ \Lkeyword{MadeTxt} & Made in NES & Lieu de fabrication\\ \Lkeyword{PSfontO} & Symbol & PSfont pour le nom du propri\'{e}taire\\ \Lkeyword{fontsizeO} & 10pt & fontsize pour le nom du propri\'{e}taire\\ \Lkeyword{PSfontM} & Times-Roman & PSfont pour le lieu de fabrication\\ \Lkeyword{fontsizeM} & 6pt & fontsize pour le lieu de fabrication\\ \Lkeyword{country} & Germany & options permises : Germany, France\\ \Lkeyword{Ghost} & false & true : ne trace pas le rapporteur, mais calcule les n\oe{}uds des sommets\\ \bottomrule \end{tabularx} \end{quote} La commande \Lcs{psProtractor} fournit automatiquement les 3 n\oe{}uds des sommets du rapporteur, ils sont nomm\'{e}s : \texttt{GeodrA}, \texttt{GeodrB}, \texttt{GeodrC} Ces n\oe{}uds peuvent \^{e}tre tr\`{e}s utiles. \subsection{\textbackslash psRuler} \begin{BDef} \Lcs{psRuler}\OptArgs\Largb{angle}\Largr{coordonn\'{e}es de l'origine} \\ \Lcs{psRuler}\OptArgs\Largb{angle}\Largr{coordonn\'{e}es de l'origine}\Largr{coordonn\'{e}es du second point} \end{BDef} Cette commande \Lcs{psRuler} est munie des options \nxLkeyword{RulerScale=} et \nxLkeyword{RulerFillCol=}. \begin{quote} \begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule \emph{Nom} & \emph{D\'{e}faut} & \emph{action} \\\midrule \Lkeyword{RulerScale} & 1 & facteur d'\'{e}chelle de la r\`{e}glette\\ \Lkeyword{RulerFillCol} & gray & couleur de la r\'{e}glette\\ \bottomrule \end{tabularx} \end{quote} \subsection{\textbackslash psPencil} \begin{BDef} \Lcs{psPencil}\OptArgs\Largb{angle}\Largr{coordonn\'{e}es de la pointe du crayon} \end{BDef} Cette \Lcs{psPencil} est munie des options \nxLkeyword{PenScale=}, \nxLkeyword{PenLength=}, \nxLkeyword{pencilColA=} and \nxLkeyword{pencilColB=}. \begin{quote} \begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule \emph{Nom} & \emph{D\'{e}faut} & \emph{action} \\\midrule \Lkeyword{PenScale} & 1 & facteur d'\'{e}chelle\\ \Lkeyword{PenLength} & 5 & longueur du crayon\\ \Lkeyword{pencilColA} & red & couleur du corps du crayon\\ \Lkeyword{pencilColB} & HolzCol & couleur de la mine\\ \bottomrule \end{tabularx} \end{quote} \subsection{\textbackslash psCompass} \begin{BDef} \Lcs{psCompass}\OptArgs\Largb{radius}\Largr{coordonn\'{e}es de l'origine : pointe du compas} \\ \Lcs{psCompass}\OptArgs\Largb{radius}\Largr{coordonn\'{e}es de l'origine}\Largr{ccoordonn\'{e}es du second point} \end{BDef} Cette commande \Lcs{psCompass} poss\`{e}de les options \nxLkeyword{PoCAngle=}, \nxLkeyword{PoCLength}, \nxLkeyword{PoCFillCol=}, \nxLkeyword{PoCMineCol=} and \nxLkeyword{PoCScale=}. \begin{quote} \begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule \emph{Nom} & \emph{D\'{e}faut} & \emph{action} \\\midrule \Lkeyword{PoCAngle} & 0 & angle de rotation\\ \Lkeyword{PoCLength} & 5 & longueur des bras du compas\\ \Lkeyword{PoCFillCol} & gray!60 & couleur des bras\\ \Lkeyword{PoCMineCol} & gray!60 & couleur de la mine\\ \Lkeyword{PoCScale} & 1 & facteur d'\'{e}chelle \\ \bottomrule \end{tabularx} \end{quote} La commande \Lcs{psCompass} permet de placer le compas : \begin{itemize} \item soit par un point et le rayon ; \item ou par deux points (le rayon est ensuite calcul\'{e} automatiquement). \end{itemize} \subsection{\textbackslash psParallels} \begin{BDef} \Lcs{psParallels}\OptArgs\Largr{pointA}\Largr{pointB}\Largr{pointC} \end{BDef} La commande \Lcs{psParallels} dispose des options \nxLkeyword{Ruler=}, \nxLkeyword{Ppoint=}, \nxLkeyword{pencilColA=} et \nxLkeyword{AddAngle=}. \begin{quote} \begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule \emph{Nom} & \emph{D\'{e}faut} & \emph{action} \\\midrule \Lkeyword{Ruler} & true & dessine la r\'{e}glette gradu\'{e}e\\ \Lkeyword{Ppoint} & false & Si \Lkeyword{Ppoint}=true] : l'origine du rapporteur est plac\'{e}e en C, son hypot\'{e}nuse \'{e}tant parall\'{e}le \`{a} (AB).\\ \Lkeyword{AddAngle} & 0 & Angle suppl\'{e}mentaire pour inverser le rapporteur (0 or 180)\\ \bottomrule \end{tabularx} \end{quote} Cette commande permet de tracer la parrall\`{e}le passant par le point \texttt{pointC} \`{a} la droite d\'{e}finie par les points \texttt{pointA} and \texttt{pointB}. Le rapporteur et la r`{e}gle sont plac\'{e}s automatiquement. \begin{LTXexample}[pos=t,width=18cm] \begin{pspicture}[showgrid](-11,-4)(7,8)% \pstGeonode[PosAngle=135,linecolor=red](5,5){A} \pstGeonode[PosAngle=135,linecolor=Green](-8,1){B} \pstGeonode[PosAngle=-45,linecolor=blue](3,3){C} \pcline[linecolor=BrickRed,nodesepA=-2,nodesepB=-2](A)(B)% \psParallels[style=Parallelen,RulerScale=0.75,ProScale=0.75](A)(B)(C) \pcline[linecolor=BrickRed](GeodrB)(GeodrA)% \midAB(GeodrB)(GeodrA){M}% \psPencil[PenLength=5,pencilColA=red,PenScale=0.5]{60}(M) \end{pspicture} \end{LTXexample} Pour une animation, on utilisera la commande \verb+\multido{}{N}{...+ en fixant uniquement le nombre de pas souhait\'{e} pour que l'hypoth\'{e}nuse du rapporteur passe de la position o\`{u} il est tout pr\`{e}s de (AB) et parall\'{e}le \`{a} celle-ci au point C. \begin{verbatim} \multido{}{40}{ \begin{pspicture}[showgrid](-11,-4)(7,8)% \pstGeonode[PosAngle=135,linecolor=red](-2,6){A} \pstGeonode[PosAngle=135,linecolor=Green](-8,1){B} \pstGeonode[PosAngle=-45,linecolor=blue](0,3){C} \pcline[linecolor=BrickRed,nodesepA=-2,nodesepB=-2](A)(B)% \psParallels[style=Parallelen,RulerScale=0.75,ProScale=0.75](A)(B)(C) \end{pspicture} } \end{verbatim} Remarque : Si [Ppoint=true] : l'origine du rapporteur est plac\'{e}e en C, son hypot\'{e}nuse \'{e}tant parall\`{e}le \`{a} (AB). La r\`{e}gle n'est plus plac\'{e}e automatiquement \`{a} sa position exacte sous le rapporteur. Il la placer soi-m\^{e}me. \section{Exemples de base} Les outils avec les options par d\'{e}faut. \begin{LTXexample}[pos=t,width=11cm] \begin{pspicture}(-6,-8.5)(5,4) \psProtractor{0}(0,0) \psRuler{0}(0,0) \psPencil{-30}(0,0) \end{pspicture} \end{LTXexample} Nous voyons que pour le rapporteur, la r\`{e}gle, et la pointe de la mine du crayon (son origine) sont positionn\'{e}es \`{a} $(0|0)$. L'ajout d'un angle tourne les objets autour de leur origine. Pour le rapporteur et la r\`{e}gle, il existe deux fa\c{c}ons de les positionner : \begin{itemize} \item Un point et un angle, comme : \Lcs{psProtractor}\OptArgs\Largb{}\Largr{} C'est tout \`{a} fait explicite. L'origine est positionn\'{e}e au point et l'outil est tourn\'{e} autour de ce point de l'angle choisi. \item deux points et un angle suppl\'{e}mentaire, comme: \Lcs{psProtractor}\OptArgs\Largb{}\Largr{}\Largr{} L'origine de l'outil est d\'{e}finie sur pointA. L'hypot\'{e}nuse du rapporteur est align\'{e}e sur la droite joignant pointA et pointB, lorsque l'angle vaut $0$. \end{itemize} \begin{LTXexample}[pos=t,width=16cm] \begin{pspicture}[showgrid](-8,-6.5)(8,2) \pnode(-2,-1){A}\psdot[linecolor=Green,dotsize=5pt](A)\uput[90](A){A} \pnode(5,-2){B}\psdot[linecolor=Green,dotsize=5pt](B)\uput[180](B){B} \psProtractor[ProScale=0.5]{30}(A) \psProtractor[ProLineCol=Yellow,ProScale=0.5]{90}(B) \end{pspicture} \end{LTXexample} \begin{LTXexample}[pos=t,width=13cm] \begin{pspicture}[showgrid](-8,-6.5)(5,2) \pnode(-2,-2){A}\psdot[linecolor=Green,dotsize=5pt](A)\uput[45](A){A} \pnode(5,-4){B}\psdot[linecolor=Green,dotsize=5pt](B)\uput[45](B){B} \pcline[linecolor=Green](A)(B) \psProtractor[ProScale=0.5]{0}(A)(B) \psProtractor[ProLineCol=Yellow,ProScale=0.5]{190}(A)(B) \end{pspicture} \end{LTXexample} Les n\oe{}uds pr\'{e}d\'{e}finis du rapporteur. \begin{LTXexample}[pos=t,width=13cm] \begin{pspicture}(-8,-8.5)(5,2) \psProtractor{0}(0,0) \psdot[linecolor=Green,dotsize=10pt](GeodrA)\uput[45](GeodrA){GeodrA} \psdot[linecolor=Blue,dotsize=10pt](GeodrB)\uput[135](GeodrB){GeodrB} \psdot[linecolor=BrickRed,dotsize=10pt](GeodrC)\uput[-90](GeodrC){GeodrC} \end{pspicture} \end{LTXexample} A pair of compasses \begin{LTXexample}[pos=t,width=12cm] \begin{pspicture}[showgrid](-6,-2)(6,6)% \pnode(-1,0){A}\psdot[dotsize=3pt,linecolor=red](A) \pnode(1,0){B}\psdot[dotsize=3pt,linecolor=Green](B) \pscircle(A){2} \pcline[linecolor=BrickRed,nodesepA=-9,nodesepB=-6](A)(B) \psCompass[PoCAngle=70,PoCScale=0.8]{2}(A) \pnode(2,0){A}\psdot[dotsize=3pt,linecolor=red](A) \pnode(6,0){B}\psdot[dotsize=3pt,linecolor=Green](B) \psCompass[PoCScale=1,PoCFillCol=Yellow,PoCAngle=0,PoCMineCol=Green]{5}(A)(B) \end{pspicture} \end{LTXexample} \section{Exemples avanc\'{e}s} Mesurer les angles d'un triangle. \begin{LTXexample}[pos=t,width=17cm] \newpsstyle{WkMessung}{linestyle=none,AngleValue=true,ArcColor=Green,arrows=->,WedgeOpacity=0.6,WedgeColor=Green!30,LabelSep=1.6,MarkAngleRadius=2.8,linecolor=Green,decimals=1,comma} \newpsstyle{GeoDrG}{country=G,ProScale=1,ProLineCol=Green,ProFillCol=Green!50,OwnerTxt={Pythagoras},MadeTxt={Geodreieck}} \begin{pspicture}(0,-1)(17,10) \pnode(8,0){S}\uput[d](S){S}\psdot(S) \pnode(17,0){B}%\uput[l](B){B} \rput(S){\pnode(7;35){C}}%\uput[l](C){C} \pcline[linecolor=blue,nodesepB=-0](S)(B) \pcline[linecolor=red,nodesepB=-2](S)(C) \psProtractor[style=GeoDrG]{0}(S)(B)% \psIntersectionPoint(S)(C)(GeodrB)(GeodrC){D} %\psLDNode(A)(C){5.65}{D} \pcline[linecolor=Green,arrowinset=0.1,arrowlength=2,linewidth=2pt]{->}([offset=1.5cm]D)(D) \psGetAngleABC[style=WkMessung,xShift=-6,yShift=9](B)(S)(C){\Large\color{Green}$\alpha$} %\rput(8,9){\psframebox[framesep=6pt,framearc=0.2]{Winkel messen mit dem Geodreieck}} \rput([offset=4.5]D){\psframebox[framesep=6pt,framearc=0.2]{ \begin{minipage}[t]{5.5cm} Lege das Geodreieck auf den blauen Schenkel, so dass die Null auf dem Scheitel S liegt. Lies nun am \"{a}u{\ss}eren Rand den Winkel ab (gr\"{u}ner Pfeil). \end{minipage} }} \end{pspicture} \end{LTXexample} \begin{LTXexample}[pos=t,width=16cm] \begin{pspicture}(-9,-6)(7,10) \pnode(1,7){A} \pnode(-5,0){B} \pnode(5,-2){C} \pspolygon[linecolor=red](A)(B)(C) \psProtractor[ProScale=0.5]{0}(A)(B) \psProtractor[ProScale=0.5]{0}(B)(C) \psProtractor[ProScale=0.5]{0}(C)(A) \end{pspicture} \end{LTXexample} \newpage Construction des hauteurs d'un triangle \begin{LTXexample}[pos=t,width=16cm] \begin{pspicture}(-6,-4.5)(5,8) \pnode(1,7){A} \pnode(-5,1){B} \pnode(3,2){C} \uput[ur](A){A}\uput[d](B){B}\uput[d](C){C} \pspolygon(A)(B)(C) \pstProjection{B}{C}{A}[A'] \psProtractor[ProScale=0.8,OwnerTxt={Height of a triangle},MadeTxt={Made in NES},PSfontO=Helvetica,PSfontM=Times-Roman,fontsizeO=8,fontsizeM=6]{0}(A')(A) \pcline[linecolor=red,linestyle=dashed,linewidth=2pt](GeodrC)(A') \pstRightAngle[RightAngleType=german]{C}{A'}{A} \end{pspicture} \end{LTXexample} \clearpage \section{Liste de tous les options pour \texttt{pst-geometrictools}} \xkvview{family=pst-geometrictools,columns={key,type,default}} \clearpage \nocite{*} \bgroup \RaggedRight \printbibliography \egroup \printindex \end{document}