texlive[44742] Master: pst-geometrictools (2jul17)

commits+karl at tug.org commits+karl at tug.org
Sun Jul 2 23:15:25 CEST 2017


Revision: 44742
          http://tug.org/svn/texlive?view=revision&revision=44742
Author:   karl
Date:     2017-07-02 23:15:25 +0200 (Sun, 02 Jul 2017)
Log Message:
-----------
pst-geometrictools (2jul17)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/generic/pst-geometrictools/
    trunk/Master/texmf-dist/doc/generic/pst-geometrictools/Changes.txt
    trunk/Master/texmf-dist/doc/generic/pst-geometrictools/README.md
    trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.tex
    trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.tex
    trunk/Master/texmf-dist/tex/generic/pst-geometrictools/
    trunk/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex
    trunk/Master/texmf-dist/tex/latex/pst-geometrictools/
    trunk/Master/texmf-dist/tex/latex/pst-geometrictools/pst-geometrictools.sty
    trunk/Master/tlpkg/tlpsrc/pst-geometrictools.tlpsrc

Added: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/Changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-geometrictools/Changes.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-geometrictools/Changes.txt	2017-07-02 21:15:25 UTC (rev 44742)
@@ -0,0 +1,3 @@
+pst-geometrictools.tex ----------------
+
+1.0 2017/06/29


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/Changes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-geometrictools/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-geometrictools/README.md	2017-07-02 21:15:25 UTC (rev 44742)
@@ -0,0 +1,32 @@
+The pst-geometrictools package Author: Thomas Söll
+
+`pst-geometrictools' is a PSTricks package to draw a protractor, a ruler, a compass and pencils 
+
+Dated: 2017/06/29 Version 1.0
+
+pst-geometrictools contains the following:
+
+1) pst-geometrictools.sty
+2) pst-geometrictools.tex
+
+- psProtractor
+- psRuler
+- psPencil
+- psCompass
+
+Save the files pst-geometrictools.sty|tex in a directory, which is part of your 
+local TeX tree.
+Then do not forget to run texhash to update this tree.
+For more information  see the documentation of your LATEX distribution 
+on installing packages into your local TeX system or read the 
+TeX Frequently Asked Questions:
+(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
+
+pst-geometrictools needs pst-eucl, pstricks-xkey and pstricks, which should 
+be part of your local TeX installation, otherwise get it from a 
+CTAN server, http://mirror.ctan.org
+
+PSTricks is PostScript Tricks, the documentation cannot be run
+with pdftex, use the sequence latex->dvips->ps2pdf or latex->dvips->distiller.
+
+T. Söll


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.pdf	2017-07-02 21:13:29 UTC (rev 44741)
+++ trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.pdf	2017-07-02 21:15:25 UTC (rev 44742)

Property changes on: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.tex	2017-07-02 21:15:25 UTC (rev 44742)
@@ -0,0 +1,484 @@
+%%
+%% This is file `pst-geometrictools-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\pstpersFV\fileversion
+\usepackage{pst-geometrictools,pst-node,pst-eucl,pst-pers,pstricks-add,animate}
+\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,psCompass,psPencil,psRuler,psParallels,psGetAngleABC,pstGeonode,midAB,pstRightAngle,perspective,multiframe,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{A PSTricks package to draw a protractor, a ruler, a compass and pencils}
+\author{Thomas \textsc{S\"{o}ll}}
+\date{\today}
+
+\maketitle
+
+\tableofcontents
+\psset{unit=1cm}
+
+
+\clearpage
+
+
+\begin{abstract}
+The package \LPack{pst-geometrictools} offers some customizable options to setup a \emph{protractor}, a \emph{ruler}, a \emph{compass} and \emph{pencils} to the users'  wishes. Some geometric tools are predefined
+ and ready-to-use for the customer to be able to present some pixel-free graphics showing the handling of some geometric tools.
+
+The geometric tools can be scaled, rotated, positioned, colored as wanted, even labeled---if wanted.
+
+These tools were already available since years within diverse examples---however not yet packaged together in pure PostScript. This was done within this package.
+
+We recommend to use the package \LPack{pst-eucl} (by \textit{Dominique Rodriguez}) which makes it easy to position the tools precisely.
+
+Have fun to use it!
+
+\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{How to use the commands}
+
+\subsection{\textbackslash psProtractor}
+
+\begin{BDef}
+\Lcs{psProtractor}\OptArgs\Largb{angle}\Largr{coordinates of the origin}
+\\
+\Lcs{psProtractor}\OptArgs\Largb{angle}\Largr{coordinates of the origin}\Largr{coordinates of a second point}
+\end{BDef}
+
+The command \Lcs{psProtractor} contains the 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{Name}           & \emph{Default} & \emph{Meaning} \\\midrule
+\Lkeyword{ProScale}     & 1          & scale factor\\
+\Lkeyword{ProFillCol}     & gray!60          & transparent fill color of the protrace\\
+\Lkeyword{ProLineCol}     & cyan          & linecolor of the protrace\\
+\Lkeyword{OwnerTxt}    & T.S.             & Name of the owner\\
+\Lkeyword{MadeTxt}  & Made in NES   & Made in wherever\\
+\Lkeyword{PSfontO}  & Symbol   & PSfont for the owner\\
+\Lkeyword{fontsizeO}  & 10pt   & fontsize for the owner\\
+\Lkeyword{PSfontM}  &  Times-Roman  & PSfont for Made in wherever\\
+\Lkeyword{fontsizeM}  & 6pt  &  fontsize for Made in wherever\\
+\Lkeyword{country}  & Germany  & Permissible values: Germany, France\\
+\Lkeyword{Ghost}  & false  & true: not showing the protrace itself, but getting the nodes of its verices\\
+\bottomrule
+\end{tabularx}
+\end{quote}
+
+This above introduced command \Lcs{psProtractor} automatically provides three nodes of the vertices of the protractor which are named as follows: \texttt{GeodrA}, \texttt{GeodrB}, \texttt{GeodrC}
+
+These nodes maybe very helpful.
+
+The command \Lcs{psProtractor} offers a positioning
+\begin{itemize}
+\item either by one point and an angle of rotation
+\item or by two points (and an additional angle of rotation)
+\end{itemize}
+
+
+\subsection{\textbackslash psRuler}
+
+\begin{BDef}
+\Lcs{psRuler}\OptArgs\Largb{angle}\Largr{coordinates of origin}
+\\
+\Lcs{psRuler}\OptArgs\Largb{angle}\Largr{coordinates of origin}\Largr{coordinates of a second point}
+\end{BDef}
+
+The command \Lcs{psRuler} contains the options \nxLkeyword{RulerScale=} and \nxLkeyword{RulerFillCol=}.
+
+\begin{quote}
+\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
+\emph{Name}           & \emph{Default} & \emph{Meaning} \\\midrule
+\Lkeyword{RulerScale}     & 1          & scale factor of the ruler\\
+\Lkeyword{RulerFillCol}    & gray           & color of the ruler\\
+\bottomrule
+\end{tabularx}
+\end{quote}
+
+The command \Lcs{psRuler} offers a positioning
+
+\begin{itemize}
+\item either by one point and an angle of rotation
+\item or by two points (and an additional angle of rotation)
+\end{itemize}
+
+
+\newpage
+
+
+\subsection{\textbackslash psCompass}
+
+\begin{BDef}
+\Lcs{psCompass}\OptArgs\Largb{radius}\Largr{coordinates of  origin}
+\\
+\Lcs{psCompass}\OptArgs\Largb{radius}\Largr{coordinates of origin}\Largr{coordinates of a second point}
+\end{BDef}
+
+The command \Lcs{psCompass} contains the options \nxLkeyword{PoCAngle=}, \nxLkeyword{MCAngle=}, \nxLkeyword{PoCLength}, 
+\nxLkeyword{PoCFillCol=}, \nxLkeyword{PoCMineCol=}, \nxLkeyword{RadVS=}, \nxLkeyword{AngleVS=}, \nxLkeyword{RadMul=} and \nxLkeyword{PoCScale=}.
+
+\begin{quote}
+\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
+\emph{Name}           & \emph{Default} & \emph{Meaning} \\\midrule
+\Lkeyword{PoCAngle}     & 0          & angle of rotation\\
+\Lkeyword{PoCLength}     & 5          & length of the compass\\
+\Lkeyword{PoCFillCol}    & gray!60           & color of the compass\\
+\Lkeyword{PoCMineCol}  & gray!60   & color of the mine\\
+\Lkeyword{PoCScale}  & 1   & scaling factor \\
+\Lkeyword{MCAngle} & false & suppresses the initial angle, when two points are given\\
+\Lkeyword{RadVS} & RVS & PostScript value for the radius\\
+\Lkeyword{AngleVS} & AVS & PostScript value for the angle\\
+\Lkeyword{RadMul} & 1 & multiplication factor for the radius\\
+\bottomrule
+\end{tabularx}
+\end{quote}
+
+The command \Lcs{psCompass} offers a positioning
+\begin{itemize}
+\item either by one point and the radius---a rotation is set with \texttt{[PoCAngle=30]}.
+\item or by two points (the radius and initial angle then are calculated automatically)---if one sets an additional rotation with \texttt{[PoCAngle=30]}, 
+these two angles are automatically added. If one will suppress the initial rotation, then set \texttt{[MCAngle=false]}. 
+Using \texttt{RadVS=<unique name>} and \texttt{AngleVS=<unique name>} you can use the values of the radius respectively the angle within some PostScript calculations. 
+When you like to use a radius other than the distance between the two points that automatically calculates the radius, use \texttt{RadMul=<decimal number>} to multiply the initial radius with this factor.
+\end{itemize}
+
+
+\subsection{\textbackslash psPencil}
+
+\begin{BDef}
+\Lcs{psPencil}\OptArgs\Largb{angle}\Largr{coordinates of the cone end}
+\end{BDef}
+
+The command \Lcs{psPencil} contains the options \nxLkeyword{PenScale=}, \nxLkeyword{PenLength=}, \nxLkeyword{pencilColA=} and \nxLkeyword{pencilColB=}.
+
+\begin{quote}
+\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
+\emph{Name}           & \emph{Default} & \emph{Meaning} \\\midrule
+\Lkeyword{PenScale}     & 1          & scale factor\\
+\Lkeyword{PenLength}    & 5           & length of the pencil\\
+\Lkeyword{pencilColA}  & red   & color of the pencil\\
+\Lkeyword{pencilColB}  & HolzCol   & color of the wooden cone end \\
+\bottomrule
+\end{tabularx}
+\end{quote}
+
+
+\newpage
+
+
+\subsection{\textbackslash psParallels (Idea and realization by \emph{Manuel Luque})}
+
+\begin{BDef}
+\Lcs{psParallels}\OptArgs\Largr{pointA}\Largr{pointB}\Largr{pointC}\Largb{angle}
+\end{BDef}
+
+The command \Lcs{psParallels} contains the option \nxLkeyword{DistCoeff=}.
+
+\begin{quote}
+\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
+\emph{Name}           & \emph{Default} & \emph{Meaning} \\\midrule
+\Lkeyword{DistCoeff}     & 1          & relative disctance between (AB) and C\\
+\bottomrule
+\end{tabularx}
+\end{quote}
+
+This command is made to directly draw a line parallel to the line containing \texttt{pointA} and \texttt{pointB} intersecting at point \texttt{pointC}.
+
+\begin{LTXexample}[pos=t,width=17cm]
+\begin{pspicture}(-11,-10)(6,2.5)
+\psParallels[DistCoeff=1](-6,-1)(1,2)(2,0)
+\end{pspicture}
+\end{LTXexample}
+
+The command \verb+\psParallels[DistCoeff=1](A)(B)(C){angle}+ allows to draw a parallel through the point C with the help of a ruler and protractor. The angle is the one between the pencil and the vertical. 
+The command uses the option [DistCoef=] as within pst-eucl. If [DistCoef=0] the hypotenuse of the protractor lays on the line (AB), the ruler automatically positions below the protractor.
+
+For an animation, we vary [DistCoef=0..1], the protractor moves along the ruler letting the hypotenuse parallel to the line (AB). If [DistCoef=1], the protractor intersects with the point C. We can now draw the parallel to (AB) intersecting C.
+
+
+\newpage
+
+
+\section{Basic Examples}
+
+\begin{LTXexample}[pos=t,width=16cm]
+\begin{pspicture}*(-6,-5.5)(10,7)
+\psProtractor{0}(0,0)% origin of the protractor
+\psRuler{0}(0,0)% origin of the ruler
+\psPencil{-30}(6,0)% origin of the pencil
+\psCompass{3}(2,0)% origin of the compass
+\end{pspicture}
+\end{LTXexample}
+
+We see, that the origins of the \emph{protractor} and \emph{ruler}, \emph{compass} and respectively the \emph{cone end of the pencil} are positioned at $(0|0)$, $(2|0)$, $(6|0)$. Adding an angle rotates the objects around their origins.
+
+For the \emph{protractor} and \emph{ruler}, there are two ways to position them:
+
+\begin{itemize}
+\item one point and an angle, like:
+
+\Lcs{psProtractor}\OptArgs\Largb{<angle>}\Largr{<point>}\\
+\Lcs{psRuler}\OptArgs\Largb{<angle>}\Largr{<point>}
+
+This is quite self-explanatory. The origin is positioned  at the point and the tool is rotated around this point by the chosen angle.
+\item two points and an additional angle, like:
+
+\Lcs{psProtractor}\OptArgs\Largb{<additional angle>}\Largr{<pointA>}\Largr{<pointB>}\\
+\Lcs{psRuler}\OptArgs\Largb{<additional angle>}\Largr{<pointA>}\Largr{<pointB>}
+
+The origin of the tool is set to pointA. The hypotenuse of the protractor is aligned to the line between pointA and pointB, when the additional angle is chosen to $0$.
+\end{itemize}
+
+
+\newpage
+
+
+\begin{LTXexample}[pos=t,width=16cm]
+\begin{pspicture}(-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}(-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}
+
+
+\newpage
+
+
+The predefined nodes of a protractor.
+
+\begin{LTXexample}[pos=t,width=13cm]
+\begin{pspicture}(-8,-6.5)(5,0.3)
+\psProtractor[ProScale=0.75]{0}(0,0)
+\psdot[linecolor=Green,dotsize=7pt](GeodrA)\uput[45](GeodrA){GeodrA}
+\psdot[linecolor=Blue,dotsize=7pt](GeodrB)\uput[135](GeodrB){GeodrB}
+\psdot[linecolor=BrickRed,dotsize=7pt](GeodrC)\uput[-90](GeodrC){GeodrC}
+\end{pspicture}
+\end{LTXexample}
+
+Compass
+
+\begin{LTXexample}[pos=t,width=12cm]
+\begin{pspicture}(-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}
+
+
+\newpage
+
+
+\section{Advanced examples}
+
+Measuring the angles of a given 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,xShift=-6,yShift=9}
+\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}
+\rput(S){\pnode(7;35){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}% pstricks-add
+\pcline[linecolor=Green,arrowinset=0.1,arrowlength=2,linewidth=2pt]{->}([offset=1.5cm]D)(D)
+\psGetAngleABC[style=WkMessung](B)(S)(C){\Large\color{Green}$\alpha$}% pst-eucl
+\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
+
+
+Constructing the height of a given 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']% pst-eucl
+\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}% pst-eucl
+\end{pspicture}
+\end{LTXexample}
+
+
+\newpage
+
+
+%Using the package \LPack{pst-pers} (by \emph{Manuel Luque} avec la collaboration de \emph{Thomas S\"{o}ll} et \emph{J\"{u}rgen Gilg}), we have the full range to project objects into whatever planes we want.
+%
+%Here we present a little example, setting the protractor into the [$x,y$]-plane, whereas the compass is set into the [$y,z$]-plane.
+%
+%\begin{LTXexample}[pos=t,width=16cm]
+%\begin{pspicture}(-8,-1.75)(9,7)
+%\perspective[normal=0 90](0,0,0){% pst-pers
+%\psarc[linecolor=green](0,0){2}{180}{0}
+%\psProtractor{0}(0,0)(2,0)
+%}
+%\perspective[normal=0 0](0,0,0){% pst-pers
+%\psCompass[PoCAngle=0,PoCScale=1,PoCMineCol=green]{2}(0,0)
+%}
+%\end{pspicture}
+%\end{LTXexample}
+%
+%
+%\newpage
+
+
+%\section{Animations}
+%
+%\begin{LTXexample}[pos=t,width=17cm]
+%\begin{animateinline}[% animate
+%controls,
+%palindrome,
+%begin={\begin{pspicture}(-8,-1.75)(9,7)},
+%end={\end{pspicture}}]{10}% 10 frames/s (velocity of the animation)
+%\multiframe{73}{rB=0+2.5}{% number of frames
+%\perspective[normal=0 90](0,0,0){% pst-pers
+%    \psarc[linecolor=Green](0,0){2}{0}{\rB}
+%    \psProtractor[ProLineCol=Yellow]{180}(0,0)(2,0)
+%    }
+%\perspective[normal=\rB\space 0](0,0,0){% pst-pers
+%    \psCompass[PoCAngle=0,PoCScale=1,PoCMineCol=Green]{2}(0,0)
+%    }
+%}
+%\end{animateinline}
+%\end{LTXexample}
+%
+%
+%\clearpage
+
+
+\section{List of all optional arguments for \texttt{pst-geometrictools}}
+
+\xkvview{family=pst-geometrictools,columns={key,type,default}}
+
+
+\clearpage
+
+
+\nocite{*}
+\bgroup
+\RaggedRight
+\printbibliography
+\egroup
+
+
+\printindex
+\end{document} 
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.pdf	2017-07-02 21:13:29 UTC (rev 44741)
+++ trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.pdf	2017-07-02 21:15:25 UTC (rev 44742)

Property changes on: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.tex	2017-07-02 21:15:25 UTC (rev 44742)
@@ -0,0 +1,415 @@
+%%
+%% 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\pstpersFV\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{<angle>}\Largr{<point>}
+
+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{<angle additionnel>}\Largr{<pointA>}\Largr{<pointB>}
+
+ 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} 
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-geometrictools/pst-geometrictools-fr-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex	2017-07-02 21:15:25 UTC (rev 44742)
@@ -0,0 +1,1231 @@
+%% This is file `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 
+%%
+%%
+\csname PSTgeometrictoolsLoaded\endcsname
+\let\PSTgeometrictoolsLoaded\endinput
+% Requires PSTricks, pst-xkey, pst-node packages
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex\fi
+\ifx\PSTnodeLoaded\endinput\else\input pst-node.tex\fi
+\def\fileversion{1.0}
+\def\filedate{2017/06/29}
+\message{`PST' v\fileversion, \filedate}
+
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+
+
+\pst at addfams{pst-geometrictools}
+
+\define at boolkey[psset]{pst-geometrictools}[Pst@]{Ghost}[true]{}
+\define at key[psset]{pst-geometrictools}{ProLineCol}[cyan]{\pst at getcolor{#1}\ProLineCol}
+\define at key[psset]{pst-geometrictools}{ProFillCol}[gray!60]{\pst at getcolor{#1}\ProFillCol}
+\define at key[psset]{pst-geometrictools}{ProScale}[1]{\def\pst at ProScale{#1 }}%
+\define at key[psset]{pst-geometrictools}{OwnerTxt}[Euklid]{\def\pst at OwnerTxt{#1}}%
+\define at key[psset]{pst-geometrictools}{MadeTxt}[made in NES]{\def\pst at MadeTxt{#1}}%
+\define at key[psset]{pst-geometrictools}{PSfontO}[Symbol]{\def\pst at PSfontO{/#1 }}
+\define at key[psset]{pst-geometrictools}{fontsizeO}[10]{\def\pst at fontsizeO{#1 }}
+\define at key[psset]{pst-geometrictools}{PSfontM}[Times-Roman]{\def\pst at PSfontM{/#1 }}
+\define at key[psset]{pst-geometrictools}{fontsizeM}[6]{\def\pst at fontsizeM{#1 }}
+\define at key[psset]{pst-geometrictools}{country}[Germany]{\def\pst at country{#1}}
+\psset[pst-geometrictools]{ProScale=1,OwnerTxt={Euklid},MadeTxt={made in NES},country=Germany,PSfontO=Symbol,PSfontM=Times-Roman,fontsizeO=10,fontsizeM=6,ProFillCol=gray!60,ProLineCol=cyan,Ghost=false}
+
+
+\def\psProtractor{\def\pst at par{}\pst at object{psProtractor}}
+\def\psProtractor at i#1(#2){\@ifnextchar(%
+{\psProtractor at ii{#1}(#2)}%
+{\psProtractor at ii{#1}(#2)(#2)}}%
+\def\psProtractor at ii#1(#2)(#3){%-------------------------------    #1 Winkel,  #2 Ursprung P,  zweiter Punkt Q f\"{u}r Winkel
+\begin at SpecialObj
+\pst at killglue
+\begingroup%
+\pnode(#2){@PGD}%
+\pnode(#3){@QGD}%
+\use at par%
+\pst at getcoor{@QGD}\pst at tempB % --------------------------   Hohle die Koordinaten und speichere sie in \pst at tempB
+\pst at getcoor{@PGD}\pst at tempA % --------------------------   Hohle die Koordinaten und speichere sie in \pst at tempA
+\addto at pscode{%
+/sysfill {systemdict /fill get exec} def
+/Country (\pst at country) def
+    /cm {28.45274 mul} def %  ----------------------------------------  Definiere cm als L\"{a}ngeneinheit mit der multipliziert wird
+    \pst at tempA \tx at UserCoor /@y1 ED /@x1 ED % ----------  Definiere die Koordinaten des Ursprungs (zur Winkelberechnung ben\"{o}tigt)
+    \pst at tempB \tx at UserCoor /@y2 ED /@x2 ED % ----------  Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung ben\"{o}tigt)
+   @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------   Winkelberechnung
+    \pst at tempA \pst at coor T % ------------------------------------   Tranformiere den Koordinatenursprung in P
+    @delta #1 add 180 add rotate % ------------------------------     Drehe das gesamte Geodreieck
+   \pst at ProScale dup scale % --------    Skaliere das ganze Geodreieck
+%-------------------------------------------------------------------------------------------------------------
+\ifPst at Ghost\else
+gsave
+%-------------------------------------------------------------------------------------------------------------
+%-------------- \"{A}u{\ss}ere Begrenzung des Geodreiecks -----------------------------------------------
+gsave
+     newpath
+       -8 cm 0 moveto
+       16 cm 0 rlineto
+       -8 cm 8 cm rlineto
+       closepath
+     gsave
+       0.7 setlinewidth
+       0.1 setgray
+       stroke
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- Gef\"{u}llter innerer Teil des Geodreiecks -----------------------------------------------
+gsave
+    newpath
+        -7.5 cm 0.5 22.5 tan mul cm moveto
+       15 cm 0 rlineto
+       -7.5 cm 7.5 cm rlineto
+    closepath
+    gsave
+         \pst at usecolor\ProFillCol
+       [ /ca .1 /SetTransparency  pdfmark %    set  transparency
+       0.1 .setopacityalpha sysfill
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- Millimetereinteilung auf der Grundseite -------------------------------------------
+ /mmBlinie { newpath
+                   -7 cm 0 cm moveto
+                    0 cm 0.17 cm rlineto
+%                   closepath
+                     gsave
+                     0.5 setlinewidth
+                     0 setgray
+                     stroke
+                     grestore
+                      0.1 cm 0 cm translate
+                    } def
+gsave
+140 {mmBlinie} repeat
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- 0,5- cm-Einteilung auf der Grundseite ----------------------------------------------
+   /cmBlinie { newpath
+                   -7 cm 0 cm moveto
+                    0 cm 0.27 cm rlineto
+%                     closepath
+                     gsave
+                     0.55 setlinewidth
+                     0 setgray
+                     stroke
+                     grestore
+                      0.5 cm 0 cm translate
+                    } def
+gsave
+   29 {cmBlinie} repeat
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- mm-Einteilung von der Grundseite nach oben ------------------------------------
+/mmlinie { newpath
+                   -2.3 cm 0.3 cm moveto
+                    0.2 cm 0 rlineto
+                    2.2 cm 0.3 cm moveto
+                    0.2 cm 0 rlineto
+%                    closepath
+                     gsave
+                     0.5 setlinewidth
+                     0 setgray
+                     stroke
+                     grestore
+                      0 cm 0.1 cm translate
+                    } def
+gsave
+33 {mmlinie} repeat
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- 0,5 cm-Einteilung von der Grundseite nach oben --------------------------------
+/cmlinie { newpath
+                   -4.5 cm 0.5 cm moveto
+                    2 cm 0 rlineto
+                    0.75 cm 0 rmoveto
+                    1.5 cm 0 rlineto
+                    0.5 cm 0 rmoveto
+                    1.5 cm 0 rlineto
+                    0.75 cm 0 rmoveto
+                    2 cm 0 rlineto
+%                 closepath
+                     gsave
+                     0.6 setlinewidth
+                     0 setgray
+                     stroke
+                     grestore
+                      0 cm 0.5 cm translate
+                   } def
+%------------------------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- Clippen entlang eines Kreises  der 0,5 cm-Einteilung von der Grundseite nach oben ------------------------------------
+/kreisring { newpath
+                      0 0 translate
+                      0 0 4.2 cm 0 180 arc
+                     closepath
+                    } def
+               gsave
+                        kreisring clip
+                        7 {cmlinie} repeat
+              grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- farbiger und transparenter Halb-Ring -----------------------------------------------------------------------------
+   gsave
+                 newpath
+                      0 0 translate
+                      0 0 5.1 cm 6 174 arc
+                      0 0 4.8 cm 174 6 arcn
+                 closepath
+                   gsave
+                    \pst at usecolor\ProLineCol
+                      [ /ca .4 /SetTransparency  pdfmark %    set  transparency
+                       0.4 .setopacityalpha
+                       sysfill
+                 grestore
+   grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 1-Grad-Winkeleinteilung an der linken Kathete -----------------------------------------------------------------
+ gsave
+   91 1 179 { /Wk exch def % ---------------------------------------------------- Schleifenvariable festlegen, die von 91° bis 179° geht
+                       {8 Wk sin Wk cos div 1 sub div} /xWS1 exch def %---------- xWS1=8/(tan(alpha)-1) --> SP der Geraden linke Kathete mit Ursprungsgeraden im Winkel alpha
+                       {7.8 Wk sin Wk cos div 1 sub div} /xWS2 exch def % ------- xWS2=7,8/(tan(alpha)-1) --> SP einer Parallelen zur Geraden linke Kathete mit Ursprungsgeraden im Winkel alpha
+                        newpath
+                        xWS1 cm xWS1 8 add cm moveto % --------------------------- zu xWS1 geh\"{o}riger y-Wert ist xWS1 + 8
+                        xWS2 cm xWS2 7.8 add cm % ----------------------------------- zu xWS2 geh\"{o}riger y-Wert ist xWS1 + 7,8
+                       lineto
+%                      closepath
+                       0.5 setlinewidth
+                       0 setgray
+                       stroke
+                   } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 5-Grad-Winkeleinteilung an der linken Kathete -----------------------------------------------------------------
+  gsave
+     95 5 175 { /Wk exch def
+                        {8 Wk sin Wk cos div 1 sub div} /xWS1 exch def
+                        {7.6 Wk sin Wk cos div 1 sub div} /xWS2 exch def
+                        newpath
+                        xWS1 cm xWS1 8 add cm moveto
+                        xWS2 cm xWS2 7.6 add cm
+                        lineto
+%                       closepath
+                        0.5 setlinewidth
+                        0 setgray
+                        stroke
+                      } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 10-Grad-Winkeleinteilung an der linken Kathete -----------------------------------------------------------------
+  gsave
+    100 10 170 { /Wk exch def
+                          {8 Wk sin Wk cos div 1 sub div} /xWS1 exch def
+                          {5.1 Wk cos mul  Wk cos div 1 sub div} /xWS2 exch def
+                          newpath
+                          xWS1 cm xWS1 8 add cm moveto
+                         5.1 Wk cos mul cm 5.1 Wk sin mul cm
+                         lineto
+%                       closepath
+                         0.5 setlinewidth
+                         0 setgray
+                        stroke
+                     } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 1-Grad-Winkeleinteilung an der rechten Kathete ---------------------------------------------------------------
+  gsave
+     1 1 89 { /Wk exch def
+                   {8 Wk sin Wk cos div 1 add div} /xWS1 exch def
+                   {7.8 Wk sin Wk cos div 1 add div} /xWS2 exch def
+                   newpath
+                   xWS1 cm xWS1 neg 8 add cm moveto
+                   xWS2 cm xWS2 neg 7.8 add cm
+                  lineto
+%                  closepath
+                  0.5 setlinewidth
+                  0 setgray
+                  stroke
+               } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 5-Grad-Winkeleinteilung an der rechten Kathete ---------------------------------------------------------------
+  gsave
+      5 5 85 { /Wk exch def
+                    {8 Wk sin Wk cos div 1 add div} /xWS1 exch def
+                    {7.6 Wk sin Wk cos div 1 add div} /xWS2 exch def
+                    newpath
+                    xWS1 cm xWS1 neg 8 add cm moveto
+                    xWS2 cm xWS2 neg 7.6 add cm
+                   lineto
+%                   closepath
+                   0.5 setlinewidth
+                   0 setgray
+                   stroke
+                } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 10-Grad-Winkeleinteilung an der rechten Kathete --------------------------------------------------------------
+  gsave
+      10 10 80 { /Wk exch def
+                        {8 Wk sin Wk cos div 1 add div} /xWS1 exch def
+                        {5.1 Wk cos mul  Wk cos div 1 add div} /xWS2 exch def
+                        newpath
+                        xWS1 cm xWS1 neg 8 add cm moveto
+                        5.1 Wk cos mul cm 5.1 Wk sin mul cm
+                        lineto
+%                        closepath
+                        0.5 setlinewidth
+                        0 setgray
+                        stroke
+                   } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 1-Grad-Winkeleinteilung auf Halbkreis ------------ ---------------------------------------------------------------
+  gsave
+          5 1 175 { /Wk exch def
+                           newpath
+                           4.3 Wk cos mul cm 4.3 Wk sin mul cm moveto
+                           4.45 Wk cos mul cm 4.45 Wk sin mul cm
+                           lineto
+%                           closepath
+                           0.5 setlinewidth
+                           0 setgray
+                           stroke
+                        } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- 5-Grad-Winkeleinteilung auf Halbkreis ------------ ---------------------------------------------------------------
+  gsave
+         5 5 175 { /Wk exch def
+                          newpath
+                         4.3 Wk cos mul cm 4.3 Wk sin mul cm moveto
+                         4.5 Wk cos mul cm 4.5 Wk sin mul cm
+                         lineto
+%                         closepath
+                         0.5 setlinewidth
+                         0 setgray
+                         stroke
+                     } for
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%-------------------------- Linke Diagonallinie-dashed -------------------------------------------------------------------------------
+  gsave
+              newpath /Wk 135 def
+               {8 Wk sin Wk cos div 1 sub div} /xWS1 exch def
+               0 0 moveto
+               4.3 Wk cos mul cm 4.3 Wk sin mul cm lineto
+%               closepath
+               gsave
+                 [2 sqrt 2 div 0.24 sub cm 0.24 cm] -0.12 cm setdash
+                 0.5 setlinewidth
+                 0 setgray stroke
+              grestore
+  grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%-------------------------- Rechte Diagonallinie-dashed -----------------------------------------------------------------------------
+ gsave
+              newpath /Wk 45 def
+               {8 Wk sin Wk cos div 1 add div} /xWS1 exch def
+               0 0 moveto
+               4.3 Wk cos mul cm 4.3 Wk sin mul cm lineto
+%               closepath
+             gsave
+               [2 sqrt 2 div 0.24 sub cm 0.24 cm] -0.12 cm setdash
+               0.5 setlinewidth
+               0 setgray stroke
+             grestore
+ grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------
+%---------------------------------------- Mittel-Linie -------------------------------------------------------------------------------------
+  gsave
+              newpath
+              0 0.5 cm moveto
+              0 3.5 cm lineto
+              0 5.1 cm moveto
+              0 6.0 cm lineto
+              0 6.4 cm moveto
+              0 8.0 cm lineto
+%              closepath
+              gsave
+              0.5 setlinewidth
+               0 setgray stroke
+              grestore
+  grestore
+%--------------------------------------------------------------------------------------------------------------------------------------------------
+%------------------------- Definition f\"{u}r horizontal-zentriertes - Setzen der cm- Zahlen (180° gedreht) ------------------------
+  /cmshow {% (string)  x y
+                      gsave
+                            moveto 180 rotate  % s
+                            /Helvetica findfont 7 scalefont setfont
+                            dup % s s
+                            stringwidth pop 2 div neg 0 % s -dx/2
+                            rmoveto 0.2 setgray show
+                      grestore
+                 } bind def
+%-------------------------  Setzen der Zahlen f\"{u}r die cm-Einteilungen -----------------------------------------------------------------
+      0 1 7 { /MZ exch def MZ 2 string cvs MZ cm 0.47 cm cmshow } for %---------------- Zahlen 0 bis 7 (nach rechts)
+      1 1 7 { /MZ exch def MZ 2 string cvs MZ neg cm 0.47 cm cmshow } for %----------- Zahlen 1 bis 7 (nach links)
+      1 1 3 { /MZ exch def MZ 2 string cvs 2 cm MZ 0.1 add cm cmshow } for %---------- Zahlen 1 bis 3 (nach oben, rechte Seite)
+      1 1 3 { /MZ exch def MZ 2 string cvs -2 cm MZ 0.1 add cm cmshow } for %--------- Zahlen 1 bis 3 (nach oben, linke Seite)
+%--------------------------------------------------------------------------------------------------------------------------------------------------
+%------------------------- Definition f\"{u}r horizontal-zentriertes - Setzen der Winkel- Zahlen (mitgedreht) ----------------------
+  /cmRotshow {% ----------------------------------   (string),  Winkel,   x  y
+                             gsave
+                                    moveto 90 add rotate  % s
+                                    /Helvetica findfont 7 scalefont setfont
+                                    dup % s s
+                                    stringwidth pop 2 div neg 0 % s -dx/2
+                                    rmoveto 0.2 setgray show
+                             grestore
+                          } bind def
+  gsave
+%-------------------------  Setzen der Zahlen f\"{u}r die Winkel-Einteilungen -------------------------------------------------------------------------------------------------
+      10 10 170 { /MZ exch def MZ 3 string cvs  MZ 5.03 cm MZ cos mul 5.03 cm MZ sin mul  cmRotshow } for % ------------------ \"{a}u{\ss}erer Kreisbogen
+      10 10 170 { /MZ exch def 180 MZ sub 3 string cvs  MZ 4.75 cm MZ cos mul 4.75 cm MZ sin mul  cmRotshow } for % ------- innerer Kreisbogen
+ grestore
+%---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ /TSshow {% (string)  x y
+                         gsave
+                         moveto 180 rotate  % s
+                         \pst at PSfontO findfont \pst at fontsizeO scalefont setfont
+                         dup % s s
+                         stringwidth pop 2 div neg 0 % s -dx/2
+                         rmoveto 0.4 setgray show
+                         grestore
+                      } bind def
+   gsave
+      (\pst at OwnerTxt) 0 cm 4 cm TSshow
+   grestore
+%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ /MadeShow {% (string)  x y
+                         gsave
+                         moveto 180 rotate  % s
+                         \pst at PSfontM findfont \pst at fontsizeM scalefont setfont
+                         dup % s s
+                         stringwidth pop 2 div neg 0 % s -dx/2
+                         rmoveto 0.7 setgray show
+                         grestore
+                      } bind def
+   gsave
+      (\pst at MadeTxt) 0 cm 6.25 cm MadeShow
+   grestore
+%---------------------------------------- Fahne -------------------------------------------------------------------------------------
+  gsave
+           /Fahne {
+                             newpath
+                             0 0 moveto
+                             0 1 rlineto
+                             1 0 rlineto
+                             0 -1 rlineto
+                             closepath
+                             setrgbcolor
+                             [ /ca .5 /SetTransparency  pdfmark %    set  transparency
+                              0.5 .setopacityalpha sysfill
+                           } def
+Country (France) eq {
+      0.73 cm 6.1 cm translate
+      3 6 scale
+      1 0 0 Fahne
+      1 0 translate
+      1 1 1 Fahne
+      1 0 translate
+      0 0 1 Fahne
+      } if
+Country (Germany) eq {
+      0.775 cm 6.22 cm translate
+      7.5 1.5 scale
+      1 0.588 0 Fahne
+      0 -1 translate
+      0.75 0.07 0.11 Fahne
+      0 -1 translate
+      0 0 0 Fahne
+      } if
+  grestore
+%--------------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- Ende nur grestore von gsave ganz am Anfang ------------------
+grestore
+\fi
+}%
+\pnode(!
+    /cm {28.45274 mul} def %  ----------------------------------------  Definiere cm als L\"{a}ngeneinheit mit der multipliziert wird
+    \pst at tempA \tx at UserCoor /@y1 ED /@x1 ED % ----------  Definiere die Koordinaten des Ursprungs (zur Winkelberechnung ben\"{o}tigt)
+    \pst at tempB \tx at UserCoor /@y2 ED /@x2 ED % ----------  Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung ben\"{o}tigt)
+   @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------   Winkelberechnung
+    @x1 cm @y1 cm  T % ------------------------------------   Tranformiere den Koordinatenursprung in P
+    @delta #1 add 180 add rotate % ------------------------------     Drehe den oberen Punkt des Geodreiecks
+   \pst at ProScale\space \pst at ProScale\space scale % --------    Skalieren!
+   0 8){GeodrC}%
+\pnode(!
+    @x1 cm @y1 cm  T % ------------------------------------   Tranformiere den Koordinatenursprung in P
+    @delta #1 add 180 add rotate % ------------------------------     Drehe die linke untere  Ecke des Geodreiecks
+   \pst at ProScale\space \pst at ProScale\space scale % --------    Skalieren!
+   -8 0){GeodrA}%
+\pnode(!
+    @x1 cm @y1 cm  T % ------------------------------------   Tranformiere den Koordinatenursprung in P
+    @delta #1 add 180 add rotate % ------------------------------     Drehe die rechte untere Ecke des Geodreiecks
+   \pst at ProScale\space \pst at ProScale\space scale % --------    Skalieren!
+   8 0){GeodrB}%
+\endgroup%
+\end at SpecialObj\ignorespaces
+}%
+
+
+\definecolor{HolzCol}{rgb}{1,0.937,0.835}%
+\define at key[psset]{pst-geometrictools}{PenScale}[1]{\def\pst at PenScale{#1 }}%
+\define at key[psset]{pst-geometrictools}{PenLength}[5]{\def\pst at PenLength{#1 }}%
+\define at key[psset]{pst-geometrictools}{pencilColA}[red]{\pst at getcolor{#1}\pencilColA}
+\define at key[psset]{pst-geometrictools}{pencilColB}[HolzCol]{\pst at getcolor{#1}\pencilColB}
+\psset[pst-geometrictools]{PenLength=5,pencilColA=red,pencilColB=HolzCol,PenScale=1}
+\def\psPencil{\def\pst at par{}\pst at object{psPencil}}
+\def\psPencil at i#1(#2){%-------------------------------    #1 Winkel,  #2 Ursprung P
+\begin at SpecialObj
+\pst at killglue
+\begingroup%
+\pnode(#2){@PGD}%
+\use at par%
+\pst at getcoor{@PGD}\pst at tempA % --------------------------   Hohle die Koordinaten und speichere sie in \pst at tempA
+\addto at pscode{%
+/sysfill {systemdict /fill get exec} def
+%/Country (\pst at country) def
+    /cm {28.45274 mul} def %  ----------------------------------------  Definiere cm als L\"{a}ngeneinheit mit der multipliziert wird
+    /Plength \pst at PenLength def
+%    \pst at tempA \tx at UserCoor /@y1 ED /@x1 ED % ----------  Definiere die Koordinaten des Ursprungs (zur Winkelberechnung ben\"{o}tigt)
+    \pst at tempA \pst at coor T % ------------------------------------   Tranformiere den Koordinatenursprung in P
+     #1 rotate % ------------------------------     Drehe das gesamte Geodreieck
+     \pst at PenScale dup scale % --------    Skaliere das ganze Geodreieck
+%-------------------------------------------------------------------------------------------------------------
+gsave
+%-------------------------------------------------------------------------------------------------------------
+%-------------- Unterer Holzteil des Stifts -------------------------------------------------------------
+gsave
+     newpath
+       0 cm 0 moveto
+       -0.3 cm 1 cm rlineto
+       0 cm 0.2 cm rlineto
+       0.6 cm 0 cm rlineto
+       0 cm -0.2 cm rlineto
+        closepath
+     gsave
+       \pst at usecolor\pencilColB
+       fill
+    grestore
+    gsave
+    0.4 setlinewidth
+    0.5 setgray
+    1 setlinejoin
+    stroke
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- langer farbiger Teil des Stifts ----------------------------------------------------------
+gsave
+     newpath
+       -0.3 cm 1 cm moveto
+       0 cm  Plength cm rlineto
+       0.6 cm 0 cm rlineto
+       0 cm  Plength neg cm rlineto
+       0.3 cm 1.13 cm 0.13 cm 270 180 arcn
+       0 cm 1.13 cm 0.17 cm 0 180 arcn
+       -0.3 cm 1.13 cm 0.13 cm 0 270 arcn
+       closepath
+     gsave
+       \pst at usecolor\pencilColA
+       fill
+    grestore
+     gsave
+       0.5 setlinewidth
+       0.1 setgray
+      stroke
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%--------------------------- Spitze in Farbe --------------------------------------------------------------
+gsave
+     newpath
+       0 cm 0 moveto
+       -0.1 cm 1 3 div cm rlineto
+       0.2 cm 0 cm rlineto
+     closepath
+     gsave
+       \pst at usecolor\pencilColA
+       fill
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%--------------------------- Striche im Stift --------------------------------------------------------------
+gsave
+     newpath
+       -0.17 cm 1.13 cm moveto
+       0 cm  Plength 0.13 sub cm rlineto
+       0.17 cm 1.13 cm moveto
+       0 cm  Plength 0.13 sub cm rlineto
+       closepath
+     gsave
+      0.5 setlinewidth
+      0.1 setgray
+       stroke
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%--------------------------- Elliptisches Stift-Ende in Holz --------------------------------------------
+gsave
+     newpath
+       0 cm Plength 1 add cm T
+       1 0.2 scale
+       0 cm 0 cm 0.3 cm 0 360 arc
+     closepath
+     gsave
+       \pst at usecolor\pencilColB
+       fill
+      grestore
+       gsave
+       0.5 setlinewidth
+       0.3 setgray
+      stroke
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%--------------------------- Elliptisches Stift-Ende in Farbe -------------------------------------------
+gsave
+     newpath
+       0 cm Plength 1 add cm T
+       1 0.2 scale
+       0 cm 0 cm 0.1 cm 0 360 arc
+     closepath
+     gsave
+       \pst at usecolor\pencilColA
+       fill
+      grestore
+       gsave
+       0.3 setlinewidth
+       0.3 setgray
+       stroke
+    grestore
+grestore
+%--------------------------------------------------------------------------------------------------------
+%--------------------------------------------------------------------------------------------------------
+grestore
+}%
+\endgroup%
+\end at SpecialObj\ignorespaces
+}%
+
+
+\define at key[psset]{pst-geometrictools}{RulerFillCol}[cyan!60]{\pst at getcolor{#1}\RulerFillCol}
+\define at key[psset]{pst-geometrictools}{RulerScale}[1]{\def\pst at RulerScale{#1 }}%
+\psset[pst-geometrictools]{RulerFillCol=gray,RulerScale=1}
+
+\def\psRuler{\def\pst at par{}\pst at object{psRuler}}
+\def\psRuler at i#1(#2){\@ifnextchar(%
+{\psRuler at ii{#1}(#2)}%
+{\psRuler at ii{#1}(#2)(#2)}}%
+\def\psRuler at ii#1(#2)(#3){%-------------------------------    #1 Winkel,  #2 Ursprung P,  zweiter Punkt Q f\"{u}r Winkel
+\begin at SpecialObj
+\pst at killglue
+\begingroup%
+\pnode(#2){@PGD}%
+\pnode(#3){@QGD}%
+\use at par%
+\pst at getcoor{@QGD}\pst at tempB % --------------------------   Hohle die Koordinaten und speichere sie in \pst at tempB
+\pst at getcoor{@PGD}\pst at tempA % --------------------------   Hohle die Koordinaten und speichere sie in \pst at tempA
+\addto at pscode{%
+/sysfill {systemdict /fill get exec} def
+    /cm {28.45274 mul} def %  --------------------------------------- Definiere cm als L\"{a}ngeneinheit mit der multipliziert wird
+    \pst at tempA \tx at UserCoor /@y1 ED /@x1 ED % ----------  Definiere die Koordinaten des Ursprungs (zur Winkelberechnung ben\"{o}tigt)
+    \pst at tempB \tx at UserCoor /@y2 ED /@x2 ED % ----------  Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung ben\"{o}tigt)
+   @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------   Winkelberechnung
+    \pst at tempA \pst at coor T % ------------------------------------  Tranformiere den Koordinatenursprung in P
+    @delta #1 add 180 add rotate % ------------------------------    Drehe das gesamte Geodreieck
+   \pst at RulerScale dup scale % -----------------------------------    Skaliere das ganze Geodreieck
+%-------------------------------------------------------------------------------------------------------------
+gsave
+%-------------------------------------------------------------------------------------------------------------
+%-------------- F\"{u}llung der beiden inneren Bereiche und \"{a}u{\ss}ere Begrenzung des Lineals -----------------------------------------------
+gsave
+     newpath
+       -0.2 cm 0 moveto
+       30.4 cm 0 rlineto
+       0 cm -0.9 cm rlineto
+       -30.4 cm 0 cm rlineto
+       closepath
+        gsave
+         \pst at usecolor\RulerFillCol
+       [ /ca .25 /SetTransparency  pdfmark %    set  transparency
+       0.25 .setopacityalpha sysfill
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+gsave
+     newpath
+       -0.2 cm 0 moveto
+       30.2 cm 0 lineto
+       0 cm -3 cm rlineto
+       -30.4 cm 0 cm rlineto
+     closepath
+       3.75 cm -1.5 cm moveto
+       3.5 cm -1.5 cm 0.25 cm 0 360 arc
+     closepath
+    gsave
+         \pst at usecolor\RulerFillCol
+       [ /ca .15 /SetTransparency  pdfmark %    set  transparency
+       0.15 .setopacityalpha sysfill
+    grestore
+         gsave
+%         2 setlinejoin
+       0.7 setlinewidth
+       0.1 setgray
+      stroke
+    grestore
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- Millimetereinteilung auf der Grundseite -------------------------------------------
+ /mmBlinie { newpath
+                    0 cm 0 cm moveto
+                    0 cm -0.25 cm rlineto
+                     gsave
+                     0.5 setlinewidth
+                     0 setgray
+                     stroke
+                     grestore
+                      0.1 cm 0 cm translate
+                    } def
+gsave
+300 {mmBlinie} repeat
+grestore
+%-------------------------------------------------------------------------------------------------------------
+%-------------- 0,5- cm-Einteilung auf der Grundseite ----------------------------------------------
+   /cmBlinie { newpath
+                   0.5 cm 0 cm moveto
+                    0 cm -0.375 cm rlineto
+%                     closepath
+                     gsave
+                     0.55 setlinewidth
+                     0 setgray
+                     stroke
+                     grestore
+                      1 cm 0 cm translate
+                    } def
+gsave
+   30 {cmBlinie} repeat
+grestore
+%-------------- 1- cm-Einteilung auf der Grundseite ----------------------------------------------
+   /cmBlinie { newpath
+                   0 cm 0 cm moveto
+                    0 cm -0.5 cm rlineto
+%                     closepath
+                     gsave
+                     0.6 setlinewidth
+                     0 setgray
+                     stroke
+                     grestore
+                      1 cm 0 cm translate
+                    } def
+gsave
+   31 {cmBlinie} repeat
+grestore
+%--------------------------------------------------------------------------------------------------------------------------------------------------
+%------------------------- Definition f\"{u}r horizontal-zentriertes - Setzen der cm- Zahlen (180° gedreht) ------------------------
+  /cmshow {% (string)  x y
+                      gsave
+                            moveto   % s
+                            /Helvetica findfont 8 scalefont setfont
+                            dup % s s
+                            stringwidth pop 2 div neg 0 % s -dx/2
+                            rmoveto 0.2 setgray show
+                      grestore
+                 } bind def
+%-------------------------  Setzen der Zahlen f\"{u}r die cm-Einteilungen -----------------------------------------------------------------
+      0 1 30 { /MZ exch def MZ 2 string cvs MZ cm -0.78 cm cmshow } for %---------------- Zahlen 0 bis 30 (nach rechts)
+%-------------------------------------------------------------------------------------------------------------
+%--------------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- Ende nur grestore von gsave ganz am Anfang ------------------
+grestore
+}%
+\endgroup%
+\end at SpecialObj\ignorespaces
+}%
+
+\definecolor{PoCRed}{rgb}{0.7,0.134,0.134}
+\define at boolkey[psset]{pst-geometrictools}[Pst@]{MCAngle}[true]{}
+\define at key[psset]{pst-geometrictools}{PoCLength}[5]{\def\pst at PoCLength{#1 }}
+\define at key[psset]{pst-geometrictools}{PoCAngle}[0]{\def\pst at PoCAngle{#1 }}
+\define at key[psset]{pst-geometrictools}{PoCFillCol}[PoCRed]{\pst at getcolor{#1}\PoCFillCol}
+\define at key[psset]{pst-geometrictools}{PoCMineCol}[black!80]{\pst at getcolor{#1}\PoCMineCol}
+\define at key[psset]{pst-geometrictools}{PoCScale}[1]{\def\pst at PoCScale{#1 }}%
+\define at key[psset]{pst-geometrictools}{RadVS}[RVS]{\def\pst at RadVS{#1}}%
+\define at key[psset]{pst-geometrictools}{AngleVS}[AVS]{\def\pst at AngleVS{#1}}%
+\define at key[psset]{pst-geometrictools}{RadMul}[1]{\def\pst at RadMul{#1 }}%
+\psset[pst-geometrictools]{PoCScale=1,PoCFillCol=PoCRed,PoCAngle=0,PoCMineCol=black!80,PoCLength=5,MCAngle=true,RadVS=RVS,AngleVS=AVS,RadMul=1}
+
+\def\psCompass{\def\pst at par{}\pst at object{psCompass}}%  Pair of Compasses
+\def\psCompass at i#1(#2){\@ifnextchar(%
+{\psCompass at ii{0}(#2)}%
+{\psCompass at ii{#1}(#2)(#2)}}%
+\def\psCompass at ii#1(#2)(#3){%-------------------------------    #1 Winkel,  #2 Ursprung P,  zweiter Punkt Q f\"{u}r Winkel
+\begin at SpecialObj
+\pst at killglue
+\begingroup%
+\pnode(#2){@PGD}%
+\pnode(#3){@QGD}%
+\use at par%
+\pst at getcoor{@QGD}\pst at tempB % --------------------------   Hohle die Koordinaten und speichere sie in \pst at tempB
+\pst at getcoor{@PGD}\pst at tempA % --------------------------   Hohle die Koordinaten und speichere sie in \pst at tempA
+\addto at pscode{%
+     \pst at RadMul /faktor ED
+     \pst at PoCScale /skal ED
+     #1 skal div 2 div /Radius ED
+     skal dup scale % --------    Skaliere das ganze Geodreieck
+    /sysfill {systemdict /fill get exec} def
+    /SLg \pst at PoCLength def
+    /cm {28.45274 mul} def %  ----------------------------------------  Definiere cm als L\"{a}ngeneinheit mit der multipliziert wird
+    \pst at tempA\tx at UserCoor /@y1 ED /@x1 ED % ----------  Definiere die Koordinaten des Ursprungs (zur Winkelberechnung ben\"{o}tigt)
+    \pst at tempB\tx at UserCoor /@y2 ED /@x2 ED % ----------  Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung ben\"{o}tigt)
+    \pst at tempA\pst at coor /@y3 ED /@x3 ED
+    @y1 @y2 sub dup mul @x1 @x2 sub dup mul add faktor dup mul mul /quadlg ED
+     quadlg 0 eq { 180 } { @y1 @y2 sub @x1 @x2 sub atan } ifelse /@delta ED %------------   Winkelberechnung
+     quadlg sqrt 2 div /RadiusPktB ED %------------   Radiusberechnung mit zweitem Punkt
+     SLg RadiusPktB Radius add  gt { RadiusPktB Radius add } { SLg } ifelse  /RadPoC ED
+    /hoehe SLg dup mul RadPoC dup mul sub sqrt  def
+    /phiS RadPoC hoehe atan def
+    @x3 @y3 T % -------------------------------------------------------------------------------    Transformiere den Koordinatenursprung in P
+    \pst at PoCAngle\space \ifPst at MCAngle\space @delta add 180 add \fi rotate % ------------------------------     Drehe das gesamte Geodreieck
+%-------------------------------------------------------------------------------------------------------------
+gsave
+%-------------------------------------------------------------------------------------------------------------
+%-------------- Linke Zirkelspitze-----------------------------------------------     0 cm 0 cm  0.15 cm 0 360 arc
+gsave
+     newpath
+     phiS neg rotate
+       0 cm 0 cm moveto
+       -0.1 cm 0.33 cm lineto
+       0.07 cm 0 cm rlineto
+       closepath
+    gsave
+         0.5 setgray
+         fill
+    grestore
+grestore
+%---------------------------------------- rechte Zirkel-Mine --------------------------------------
+gsave
+     newpath
+     phiS neg rotate
+       0 cm SLg cm T
+        phiS 2 mul rotate
+         0 cm SLg  neg cm moveto
+         0.06 cm 0.1 cm rlineto
+         0.013 cm 0.2 cm rlineto
+        -0.06 cm 0 cm rlineto
+       closepath
+     gsave
+       \pst at usecolor\PoCMineCol
+         fill
+    grestore
+grestore
+%---------------------------------------- Spindel --------------------------------------
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        -2 cm -1 phiS cos mul cm rmoveto
+        4 cm 0 cm rlineto
+    gsave
+         0.5 setgray
+                1.6 setlinewidth
+         stroke
+    grestore
+grestore
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        -2 cm -1 phiS cos mul cm rmoveto
+        0.2 -0.75 rmoveto
+       189 { 0.5 1.5 rlineto
+        0.1 -1.5 rmoveto } repeat
+    gsave
+         0.2 setgray
+                0.2 setlinewidth
+         stroke
+    grestore
+grestore
+%---------------------------------------- Drehrad an der Spindel --------------------------------------
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        0 cm -1.3 phiS cos mul cm rmoveto
+        0 cm 0.6 cm rlineto
+    gsave
+         0.5 setgray
+                0.08 cm setlinewidth
+         stroke
+    grestore
+grestore
+gsave
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        -0.04 cm -1.28 phiS cos mul cm rmoveto
+        20 { 0.08 cm 0 cm rlineto
+        -0.08 cm 0.03 cm rmoveto } repeat
+    gsave
+         0.3 setgray
+                0.2 setlinewidth
+         stroke
+    grestore
+grestore
+gsave
+%---------------------------------------- Halterung zum Anfassen --------------------------------------
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        0 cm 0.75 0.54 phiS sin mul add cm moveto
+        0 cm 0.2 cm rlineto
+    gsave
+         0.5 setgray
+                3 setlinewidth
+         stroke
+    grestore
+grestore
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        0 cm 0.95 0.54 phiS sin mul add cm moveto
+        0 cm 0.05 cm rlineto
+    gsave
+         \pst at usecolor\PoCFillCol
+                5 setlinewidth
+         stroke
+    grestore
+grestore
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        0 cm 1.0 0.54 phiS sin mul add cm moveto
+        0 cm 0.5 cm rlineto
+    gsave
+         0.5 setgray
+                5 setlinewidth
+         stroke
+    grestore
+grestore
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        -0.08 cm 1.0 0.6 phiS sin mul add cm moveto
+        0 cm 0.48 cm rlineto
+        6 { 0.025 cm -0.48 cm rmoveto
+         0 cm 0.48 cm rlineto } repeat
+    gsave
+         0.65 setgray
+                0.15 setlinewidth
+         stroke
+    grestore
+grestore
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        -0.075 cm 1.0 0.6 phiS sin mul add cm moveto
+        0 cm 0.48 cm rlineto
+        6 { 0.025 cm -0.48 cm rmoveto
+         0 cm 0.48 cm rlineto } repeat
+    gsave
+         0.25 setgray
+                0.2 setlinewidth
+         stroke
+    grestore
+grestore
+%---------------------------------------- Kreis um oberen Teil --------------------------------------
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm T
+        phiS rotate
+        0 cm 0.1 0.54 phiS sin mul add cm moveto
+        0.65 -50 PtoC exch cm exch cm  rmoveto
+        0 cm 0.1 0.54 phiS sin mul add cm  0.65 cm -50 230 arc
+    gsave
+         0.1 setgray
+                1.3 setlinewidth
+         stroke
+    grestore
+grestore
+%---------------------------------------- Kreis zwischen den Schenkeln --------------------------------------
+gsave
+     newpath
+        phiS neg rotate
+        0 cm SLg cm moveto
+        0 cm SLg cm  0.15 cm 0 360 arc
+      closepath
+    gsave
+         0.1 setgray
+         fill
+    grestore
+grestore
+%---------------------------------------- Schenkel des Zirkels ----------------------------------------------------
+gsave
+     newpath
+     phiS neg rotate
+       0 cm 0.3 cm moveto
+       -0.3 cm SLg 0.1 add cm lineto
+       0 cm SLg cm T
+        phiS 2 mul rotate
+       0.3 cm 0.1 cm moveto
+       0 cm SLg 0.3 sub neg cm lineto
+%       closepath
+     gsave
+       0.285 cm setlinewidth
+       2 setlinejoin
+       \pst at usecolor\PoCFillCol
+        stroke
+    grestore
+grestore
+gsave
+     newpath
+     phiS neg rotate
+       -0.17 cm SLg 0.6 mul cm moveto
+       -0.25 cm  SLg 0.85 mul cm lineto
+       0 cm SLg cm T
+        phiS 2 mul rotate
+       0.17 cm SLg -0.4 mul cm moveto
+       0.25 cm  SLg -0.15 mul cm lineto
+%       closepath
+     gsave
+       0.17 cm setlinewidth
+       2 setlinejoin
+       0.4 setgray
+        stroke
+    grestore
+grestore
+%---------------------------------------- Kreis an der linken Spitze --------------------------------------
+gsave
+     newpath
+        phiS neg rotate
+       -0.03 cm 0.8 cm moveto
+        -0.03 cm 0.8 cm 0.175 cm 0 360 arc
+      closepath
+    gsave
+         0.25 setgray
+         fill
+    grestore
+grestore
+gsave
+     newpath
+        phiS neg rotate
+       -0.03 cm 0.8 cm moveto
+        -0.03 cm 0.8 cm 0.025 cm 0 360 arc
+      closepath
+    gsave
+         0.8 setgray
+         fill
+    grestore
+grestore
+%---------------------------------------- Kreis an der rechten Spitze --------------------------------------
+gsave
+     newpath
+     phiS neg rotate
+       0 cm SLg cm T
+        phiS 2 mul rotate
+               0.03 cm 0 cm T
+         0 cm SLg 0.8 sub neg cm moveto
+         0 cm SLg 0.8 sub cm neg 0.175 cm 0 360 arc
+      closepath
+    gsave
+         0.25 setgray
+         fill
+    grestore
+grestore
+gsave
+     newpath
+     phiS neg rotate
+       0 cm SLg cm T
+        phiS 2 mul rotate
+               0.03 cm 0 cm T
+         0 cm SLg 0.8 sub neg cm moveto
+         0 cm SLg 0.8 sub cm neg 0.025 cm 0 360 arc
+      closepath
+    gsave
+         0.8 setgray
+         fill
+    grestore
+grestore
+%--------------------------------------------------------------------------------------------------------------------------------------------------
+%--------------- Ende nur grestore von gsave ganz am Anfang ------------------
+grestore
+}%
+\pnode(!
+   \pst at tempA \tx at UserCoor /@@y1 ED /@@x1 ED
+   \pst at tempB \tx at UserCoor  /@@y2 ED /@@x2 ED
+    @@x1 @@x2 sub @@y1 @@y2 sub Pyth \pst at RadMul\space mul /\pst at RadVS\space exch def
+    @@y1 @@y2 sub dup mul @@x1 @@x2 sub dup mul add \pst at RadMul dup mul mul /quadlg ED
+    quadlg 0 eq { 180 } { @@y1 @@y2 sub @@x1 @@x2 sub atan } ifelse /\pst at AngleVS\space exch def  %------------   Winkelberechnung /\pst at AngleVS\space exch def
+  0 0){MoneyforNothing}%
+\endgroup%
+\end at SpecialObj\ignorespaces%
+}%
+
+%\define at boolkey[psset]{pst-geometrictools}[Pst@]{Ruler}[true]{}
+%\define at boolkey[psset]{pst-geometrictools}[Pst@]{Ppoint}[false]{}
+%\define at boolkey[psset]{pst-geometrictools}[Pst@]{LineOffset}[false]{}
+%\define at key[psset]{pst-geometrictools}{AddAngle}[0]{\def\pst at AddAngle{#1 }}%
+%\psset[pst-geometrictools]{Ruler=true,Ppoint=false,AddAngle=0,LineOffset=false}
+
+%% Distance between two points => #3
+\def\psDistAB(#1)(#2)#3{%
+   \pst at getcoor{#1}\pst at tempA
+   \pst at getcoor{#2}\pst at tempB
+\pnode(!
+   \pst at tempA \tx at UserCoor
+   \pst at tempB \tx at UserCoor
+  3 -1 roll sub dup mul 3 1 roll sub dup mul add sqrt
+  /#3 ED
+  0 0
+  ){XX}
+}
+%% calcule l'angle entre Ox et AB et le place en #3
+\def\psAngleAB(#1)(#2)#3{%
+   \pst at getcoor{#1}\pst at tempA
+   \pst at getcoor{#2}\pst at tempB
+\pnode(!
+   \pst at tempA \tx at UserCoor
+   \pst at tempB \tx at UserCoor
+   3 -1 roll sub 3 1 roll exch sub Atan
+  /#3 ED
+  0 0
+  ){YY}
+}%
+%% angle defined by three points
+\def\psAngleAOB(#1)(#2)(#3)#4{%
+   \pst at getcoor{#1}\pst at tempA
+   \pst at getcoor{#2}\pst at tempB
+   \pst at getcoor{#2}\pst at tempC
+\pnode(!
+   \pst at tempA \tx at UserCoor
+   \pst at tempB \tx at UserCoor
+   \pst at tempC \tx at UserCoor
+  4 copy exch 4 -1 roll mul
+  3 -2 roll mul add
+  4 -2 roll mul 4 -2 roll mul sub exch Atan
+   /#4 ED
+   0 0
+   ){ZZ}
+}
+
+% la nouvelle version de \psParallels
+\define at key[psset]{pst-geometrictools}{DistCoeff}[1]{\def\pst at DistCoeff{#1 }}%
+\psset[pst-geometrictools]{DistCoeff=1}
+%
+\def\psParallels{\def\pst at par{}\pst at object{psParallels}}
+\def\psParallels at i(#1)(#2)(#3){%
+\begin at SpecialObj %
+\pnode(#1){pointA}%
+\pnode(#2){pointB}%
+\pnode(#3){pointC}%
+\pcline[nodesep=-3](pointA)(pointB)
+\psdots(pointA)(pointB)(pointC)
+\uput[l](pointA){A}
+\uput[l](pointB){B}
+\uput[r](pointC){C}
+%
+\psProtractor[Ghost]{0}(pointA)%
+\psAngleAB(pointA)(pointB){alpha1}
+\psAngleAB(pointA)(GeodrA){alpha2}
+\psProtractor[Ghost]{alpha1 alpha2 sub}(pointA)%
+\psRuler{0}(GeodrB)(GeodrC)
+%
+\pstProjection[PointName={},PointSymbol=none]{pointA}{pointB}{pointC}[pointI]%
+\pstRotation[RotAngle=45,PointSymbol=none,PointName={}]{pointC}{pointI}[pointJ]%
+\pstInterLL[PointSymbol=none,PointName={}]{pointA}{pointB}{pointC}{pointJ}{pointK}%
+\pstTranslation[PointSymbol=none,PointName={},DistCoef=\pst at DistCoeff]{pointK}{pointC}{pointA}[pointA*]
+\psProtractor{alpha1 alpha2 sub}(pointA*)%
+\end at SpecialObj\ignorespaces%
+}%
+
+%\define at boolkey[psset]{pst-geometrictools}[Pst@]{Ruler}[true]{}
+%\define at boolkey[psset]{pst-geometrictools}[Pst@]{Ppoint}[false]{}
+%\define at boolkey[psset]{pst-geometrictools}[Pst@]{LineOffset}[false]{}
+%\define at key[psset]{pst-geometrictools}{AddAngle}[1]{\def\pst at AddAngle{#1 }}%
+%\psset[pst-geometrictools]{Ruler=true,Ppoint=false,AddAngle=0,LineOffset=false}
+%\def\psParallels{\def\pst at par{}\pst at object{psParallels}}
+%\def\psParallels at i(#1)(#2)(#3){%
+%\psset{saveNodeCoors,NodeCoorPrefix=n}%
+%\@ifundefined{rCounter}{\def\rCounter{1}}{}%
+%\begin at SpecialObj %
+%\pnode(#1){pointA}%
+%\pnode(#2){pointB}%
+%\pnode(#3){pointC}%
+%\pstProjection[PointName={},PointSymbol=none]{pointA}{pointB}{pointC}[pointI]%
+%\midAB(pointA)(pointB){pointM}%
+%\pstRotation[RotAngle=45,PointSymbol=none,PointName={}]{pointC}{pointI}[pointJ]%
+%\pstInterLL[PointSymbol=none,PointName={}]{pointA}{pointB}{pointC}{pointJ}{pointK}%
+%\AtoB(pointI)(pointC){IC}%
+%\AtoB(pointK)(pointC){KC}%
+%\AplusB(pointM)(KC){MT}%
+%\AplusB(pointB)(KC){BT}%
+%\psProtractor[Ghost]{0}(pointM)(pointB)%
+%\pnode(GeodrB){ProB}%
+%\pnode(GeodrC){ProC}%
+%\psLDNode(ProB)(ProC){-1cm}{pointE}%
+%\ifPst at Ruler\psRuler{0}(pointE)(GeodrC)\fi%
+%\AplusB(ProB)(KC){ProB*}%
+%\pst at Verb{ nKCx nKCy Pyth /laenge exch def %
+%nKCx laenge div \pst at number\pslinewidth\space 2 div 0.35 \pst at ProScale mul add mul 28.45274 div 2 sqrt mul /delX exch def %
+%nKCy laenge div \pst at number\pslinewidth\space 2 div 0.35 \pst at ProScale mul add mul 28.45274 div 2 sqrt mul /delY exch def
+%}%
+%\pnode(!nProB*x delX add nProB*y delY add ){GProB*}%
+%\pnode(!/AddA \pst at AddAngle def nProB*x  AddA 0 eq { delX add } { AddA 180 eq { delX sub } { 0 add } ifelse } ifelse nProB*y AddA 0 eq { delY add } { AddA 180 eq { delY sub } { 0 add } ifelse } ifelse ){GProBC*}%
+%\pnode(!nMTx  delX add nMTy  delY add){GMT*}%
+%\pnode(!/AddA \pst at AddAngle def npointCx  AddA 0 eq { delX add } { AddA 180 eq { delX sub } { 0 add } ifelse } ifelse npointCy AddA 0 eq { delY add } { AddA 180 eq { delY sub } { 0 add } ifelse } ifelse ){pointC*}%
+%\psLNode(pointM)(GMT*){\rCounter}{MPro}%
+%\psLNode(ProB)(GProB*){\rCounter}{BPro}%
+%\ifPst at Ppoint
+%\ifPst at LineOffset
+%\pst at Verb{ nICx nICy Pyth /laenge exch def %
+%nICx laenge div \pst at number\pslinewidth\space 2 div 0.35 \pst at ProScale mul add mul 28.45274 div 2 sqrt mul /delX exch def %
+%nICy laenge div \pst at number\pslinewidth\space 2 div 0.35 \pst at ProScale mul add mul 28.45274 div 2 sqrt mul /delY exch def %
+%}%
+%\pnode(!/AddA \pst at AddAngle def nProB*x  AddA 0 eq { delX add } { AddA 180 eq { delX sub } { 0 add } ifelse } ifelse nProB*y AddA 0 eq { delY add } { AddA 180 eq { delY sub } { 0 add } ifelse } ifelse ){GProBC*}%
+%\pnode(!/AddA \pst at AddAngle def npointCx  AddA 0 eq { delX add } { AddA 180 eq { delX sub } { 0 add } ifelse } ifelse npointCy AddA 0 eq { delY add } { AddA 180 eq { delY sub } { 0 add } ifelse } ifelse ){pointC*}%
+%\psProtractor{\pst at AddAngle}(pointC*)(GProBC*)\else%
+%\psProtractor{\pst at AddAngle}(pointC)(ProB*)\fi%
+%\else
+%\psProtractor{\pst at AddAngle}(MPro)(BPro)\fi % Um die Liniendicke 0.8pt nach rechts versetzt
+%\psLNode(pointC)(ProB*){0.98}{ProB**}%
+%\psLNode(pointC)(ProB**){2}{C*}%
+%\end at SpecialObj\ignorespaces%
+%}%
+
+\catcode`\@=\PstAtCode\relax
+\endinput 
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/pst-geometrictools/pst-geometrictools.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/pst-geometrictools/pst-geometrictools.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pst-geometrictools/pst-geometrictools.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pst-geometrictools/pst-geometrictools.sty	2017-07-02 21:15:25 UTC (rev 44742)
@@ -0,0 +1,23 @@
+%% This is file `pst-geometrictools.sty',
+%%
+%% 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
+%%
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-geometrictools}[2017/06/29 package wrapper for pst-geometrictools.tex]
+\input{pst-geometrictools.tex}
+\ProvidesFile{pst-geometrictools.tex}
+  [\filedate\space v\fileversion\space `PST-geometrictools']
+\endinput


Property changes on: trunk/Master/texmf-dist/tex/latex/pst-geometrictools/pst-geometrictools.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-07-02 21:13:29 UTC (rev 44741)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-07-02 21:15:25 UTC (rev 44742)
@@ -502,7 +502,7 @@
     pst-calendar pst-cie pst-circ pst-coil pst-cox pst-dbicons pst-diffraction
     pst-electricfield pst-eps pst-eucl pst-eucl-translation-bg pst-exa
     pst-fill pst-fit pst-fr3d pst-fractal pst-fun pst-func
-    pst-gantt pst-geo pst-gr3d pst-grad pst-graphicx
+    pst-gantt pst-geo pst-geometrictools pst-gr3d pst-grad pst-graphicx
     pst-infixplot pst-intersect pst-jtree pst-knot pst-labo pst-layout
     pst-lens pst-light3d pst-magneticfield pst-math pst-mirror pst-node
     pst-ob3d pst-ode pst-optexp pst-optic

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2017-07-02 21:13:29 UTC (rev 44741)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2017-07-02 21:15:25 UTC (rev 44742)
@@ -913,6 +913,7 @@
  'pst-gantt',   "&MAKEpst",
  'pst-geo',     "&MAKEpst",
  'pst-geo-compress',    "die 'skipping, in pst-geo, check with hvoss'",
+ 'pst-geometrictools',	"&MAKEpst",
  'pst-graphicx',"&MAKEpst",
  'pst-gr3d',    "&MAKEpst",
  'pst-grad',    "&MAKEpst",

Modified: trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc	2017-07-02 21:13:29 UTC (rev 44741)
+++ trunk/Master/tlpkg/tlpsrc/collection-pstricks.tlpsrc	2017-07-02 21:15:25 UTC (rev 44742)
@@ -44,6 +44,7 @@
 depend pst-func
 depend pst-gantt
 depend pst-geo
+depend pst-geometrictools
 depend pst-ghsb
 depend pst-gr3d
 depend pst-grad

Added: trunk/Master/tlpkg/tlpsrc/pst-geometrictools.tlpsrc
===================================================================


More information about the tex-live-commits mailing list