summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-geometrictools
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-12-29 03:01:06 +0000
committerNorbert Preining <norbert@preining.info>2021-12-29 03:01:06 +0000
commitdce1a2a6ecd9971433b4ee24c9d36b124cc1280e (patch)
tree051072f1ec49fbe350e7f88309ab293d1806e121 /graphics/pstricks/contrib/pst-geometrictools
parentecdf859b6ce481abfd530425dcf6f0f764bd0001 (diff)
CTAN sync 202112290301
Diffstat (limited to 'graphics/pstricks/contrib/pst-geometrictools')
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/Changes6
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/Changes.txt5
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/README.md16
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.pdfbin0 -> 228546 bytes
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.tex (renamed from graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.tex)110
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.pdfbin0 -> 233412 bytes
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.tex (renamed from graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.tex)102
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/latex/pst-geometrictools.sty (renamed from graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools.sty)0
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.pdfbin214485 -> 0 bytes
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.pdfbin268998 -> 0 bytes
-rw-r--r--graphics/pstricks/contrib/pst-geometrictools/tex/pst-geometrictools.tex (renamed from graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools.tex)2469
11 files changed, 1353 insertions, 1355 deletions
diff --git a/graphics/pstricks/contrib/pst-geometrictools/Changes b/graphics/pstricks/contrib/pst-geometrictools/Changes
new file mode 100644
index 0000000000..535e2ec7f6
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-geometrictools/Changes
@@ -0,0 +1,6 @@
+pst-geometrictools.tex ----------------
+
+1.3 2021/12/28 - more fixes for lualatex (hv)
+1.2 2021/11/17 - fixes for lualatex (hv)
+1.1 2017/09/16 - choose fonts for some tools
+1.0 2017/06/29
diff --git a/graphics/pstricks/contrib/pst-geometrictools/Changes.txt b/graphics/pstricks/contrib/pst-geometrictools/Changes.txt
deleted file mode 100644
index ce16d2fcb1..0000000000
--- a/graphics/pstricks/contrib/pst-geometrictools/Changes.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-pst-geometrictools.tex ----------------
-
-1.1 2017/09/16
-- choose fonts for some tools
-1.0 2017/06/29
diff --git a/graphics/pstricks/contrib/pst-geometrictools/README.md b/graphics/pstricks/contrib/pst-geometrictools/README.md
index c8bd792060..c3b26509db 100644
--- a/graphics/pstricks/contrib/pst-geometrictools/README.md
+++ b/graphics/pstricks/contrib/pst-geometrictools/README.md
@@ -1,8 +1,8 @@
The pst-geometrictools package Author: Thomas Söll
-`pst-geometrictools' is a PSTricks package to draw a protractor, a ruler, a compass and pencils
+"pst-geometrictools" is a PSTricks package to draw a protractor, a ruler, a compass and pencils
-Dated: 2017/09/16 Version 1.1
+Dated: 2021/12/28 Version 1.3
pst-geometrictools contains the following:
@@ -18,15 +18,15 @@ 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).
+on installing packages into your local TeX system
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
+CTAN server, https://mirror.ctan.org
-PSTricks is PostScript Tricks, the documentation cannot be run
-with pdftex, use the sequence latex->dvips->ps2pdf or latex->dvips->distiller.
+PSTricks is PostScript Tricks, the documentation cannot be run with pdftex,
+use the sequence latex->dvips->ps2pdf or latex->dvips->distiller or lualatex.
T. Söll
+
+(Bugfixes by Herbert Voß hvoss@tug.org)
diff --git a/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.pdf b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.pdf
new file mode 100644
index 0000000000..ce1b9782c2
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.tex b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.tex
index f646e7520f..47b04b6f2d 100644
--- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.tex
+++ b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.tex
@@ -20,33 +20,16 @@
\listfiles
-
-\documentclass[%
-11pt,
-english,
-BCOR10mm,
-DIV12,
-bibliography=totoc,
-parskip=false,
-fleqn,
-smallheadings,
-headexclude,
-footexclude,
-oneside,
-dvipsnames,
-svgnames,
-x11names,
-distiller
-]{pst-doc}
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{}
+%% $Id: pst-venn-doc.tex 848 2018-12-04 09:25:49Z herbert $
+\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
+ headinclude=false,footinclude=false,oneside]{pst-doc}
\usepackage[autostyle]{csquotes}
-\usepackage{biblatex}
-%\usepackage[style=dtk]{biblatex}
-\addbibresource{pst-geometrictools-doc.bib}
-\usepackage[utf8]{inputenc}
+%\addbibresource{pst-geometrictools-doc.bib}
\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)
+\usepackage{pst-geometrictools,pst-node,pstricks-add,animate}
\let\belowcaptionskip\abovecaptionskip
@@ -71,22 +54,18 @@ distiller
\begin{document}
-\title{pst-geometrictools v 1.1}
+\title{pst-geometrictools v 1.3}
\subtitle{A PSTricks package to draw a protractor, a ruler, a compass and pencils}
-\author{Thomas \textsc{Söll}}
+\author{Thomas Söll\\Herbert Voß (bugfix)}
\date{\today}
-\maketitle
+\settitle
\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
+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.
@@ -97,12 +76,13 @@ We recommend to use the package \LPack{pst-eucl} (by \textit{Dominique Rodriguez
Have fun to use it!
-\vfill
+\bigskip
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
@@ -111,8 +91,7 @@ either version 1.3c of the License, or (at your option) any later version.
\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}\\
\Lcs{psProtractor}\OptArgs\Largb{angle}\Largr{coordinates of the origin}\Largr{coordinates of a second point}
\end{BDef}
@@ -181,8 +160,7 @@ The command \Lcs{psRuler} offers a positioning
\subsection{\textbackslash psCompass}
\begin{BDef}
-\Lcs{psCompass}\OptArgs\Largb{radius}\Largr{coordinates of origin}
-\\
+\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}
@@ -238,13 +216,14 @@ The command \Lcs{psPencil} contains the options \nxLkeyword{PenScale=}, \nxLkeyw
\newpage
+
\subsection{\textbackslash psParallels (Idea and realization by \emph{Manuel Luque})}
\begin{BDef}
-\Lcs{psParallels}\OptArgs\Largr{pointA}\Largr{pointB}\Largr{pointC}\Largb{angle}
+\Lcs{psParallels}\OptArgs\Largr{pointA}\Largr{pointB}\Largr{pointC}
\end{BDef}
-The command \Lcs{psParallels} contains the option \nxLkeyword{DistCoeff=}.
+The command \Lcs{psParallels} contains the option \nxLkeyword{DistCoeff}.
\begin{quote}
\begin{tabularx}{\linewidth}{ @{} l >{\ttfamily}l X @{} }\toprule
@@ -254,18 +233,36 @@ The command \Lcs{psParallels} contains the option \nxLkeyword{DistCoeff=}.
\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}
+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=\linewidth]
+\psscalebox{0.5}{%
+\begin{pspicture}[showgrid=false](-15,-10)(5,3)%
+ \pnode(-6,1){A}\uput[100](A){A}
+ \pnode(1,2){B}\uput[100](B){B}
+ \pnode(2,0){C}\uput[90](C){C}
+ \pcline[linecolor=BrickRed,nodesepA=-2,nodesepB=-2](A)(B)%
+ \psParallels[style=Parallelen,RulerScale=0.5,ProScale=1,DistCoeff=1](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}
-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.
+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
@@ -274,12 +271,13 @@ For an animation, we vary [DistCoef=0..1], the protractor moves along the ruler
\section{Basic Examples}
\begin{LTXexample}[pos=t,width=16cm]
-\begin{pspicture}*(-6,-5.5)(10,7)
+\psscalebox{0.7}{%
+\begin{pspicture}[showgrid=false](-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{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.
@@ -473,11 +471,11 @@ Constructing the height of a given triangle.
\clearpage
-\nocite{*}
-\bgroup
-\RaggedRight
-\printbibliography
-\egroup
+%\nocite{*}
+%\bgroup
+%\RaggedRight
+%\printbibliography
+%\egroup
\printindex
diff --git a/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.pdf b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.pdf
new file mode 100644
index 0000000000..2d8390e783
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.tex b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.tex
index 18fcfab3b8..4e36c902d1 100644
--- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.tex
+++ b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.tex
@@ -21,32 +21,18 @@
\listfiles
-\documentclass[%
-11pt,
-english,
-BCOR10mm,
-DIV12,
-bibliography=totoc,
-parskip=false,
-fleqn,
-smallheadings,
-headexclude,
-footexclude,
-oneside,
-dvipsnames,
-svgnames,
-x11names,
-distiller
-]{pst-doc}
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{}
+%% $Id: pst-venn-doc.tex 848 2018-12-04 09:25:49Z herbert $
+\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
+ headinclude=false,footinclude=false,oneside]{pst-doc}
\usepackage[autostyle]{csquotes}
\usepackage{biblatex}
%\usepackage[style=dtk]{biblatex}
-\addbibresource{pst-geometrictools-doc.bib}
-\usepackage[utf8]{inputenc}
+%\addbibresource{pst-geometrictools-doc.bib}
\let\pstgeometrictoolsFV\fileversion
-\usepackage{pst-geometrictools,pst-node,pst-eucl,pstricks-add}
-\usepackage{etex} % increase the number of registers (otherwise only 256)
+\usepackage{pst-geometrictools,pst-node,pstricks-add}
\let\belowcaptionskip\abovecaptionskip
@@ -70,19 +56,14 @@ distiller
\begin{document}
-\title{pst-geometrictools v 1.0}
+\title{pst-geometrictools v 1.3}
\subtitle{Package de PSTricks pour dessiner un rapporteur, une r\'{e}glette et un crayon}
-\author{Thomas \textsc{S\"{o}ll}}
+\author{Thomas Söll\\Herbert Voß (bugfixes)}
\date{\today}
-\maketitle
+\settitle
\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 :
@@ -93,7 +74,7 @@ Pour illustrer des notions de g\'{e}om\'{e}trie \'{e}l\'{e}mentaire le package p
\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
+\bigskip
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}
@@ -223,30 +204,43 @@ La commande \Lcs{psParallels} dispose des options \nxLkeyword{Ruler=}, \nxLkeywo
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)
+
+\begin{LTXexample}[pos=t,width=17cm]
+\begin{pspicture}(-11,-10)(6,2.5)
+\psParallels[DistCoeff=1,ProScale=.75,RulerScale=0.7](-6,-1)(1,2)(2,0)
\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.
+
+\psset{unit=1cm}
+
+\begin{LTXexample}[pos=t,width=18cm]
+\psscalebox{0.5}{%
+\begin{pspicture}[showgrid](-11,-1)(11,20)%
+\pnode(5,5){A}\uput[90](A){A}
+\pnode(-8,1){B}\uput[90](B){B}
+\pnode(3,3){C}\uput[250](C){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énuse du rapporteur passe de la position
+où il est tout près de (AB) et parallèle à 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}
+\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}
@@ -404,11 +398,11 @@ Construction des hauteurs d'un triangle
\clearpage
-\nocite{*}
-\bgroup
-\RaggedRight
-\printbibliography
-\egroup
+%\nocite{*}
+%\bgroup
+%\RaggedRight
+%\printbibliography
+%\egroup
\printindex
diff --git a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools.sty b/graphics/pstricks/contrib/pst-geometrictools/latex/pst-geometrictools.sty
index 2f1cd2e24c..2f1cd2e24c 100644
--- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools.sty
+++ b/graphics/pstricks/contrib/pst-geometrictools/latex/pst-geometrictools.sty
diff --git a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.pdf b/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.pdf
deleted file mode 100644
index 39234a8145..0000000000
--- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.pdf b/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.pdf
deleted file mode 100644
index 8b428e9601..0000000000
--- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools.tex b/graphics/pstricks/contrib/pst-geometrictools/tex/pst-geometrictools.tex
index 7cd90ca17a..608e29ef56 100644
--- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools.tex
+++ b/graphics/pstricks/contrib/pst-geometrictools/tex/pst-geometrictools.tex
@@ -1,1233 +1,1238 @@
-%% This is file `pst-geometrictools.tex',
-%%
-%% Thomas Sö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.1}
-\def\filedate{2017/09/16}
-\message{`PST' v\fileversion, \filedate}
-
-\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
-
-
-\pst@addfams{pst-geometrictools}
-
-\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ghost}[true]{}
-\define@key[psset]{pst-geometrictools}{ProLineCol}[cyan]{\pst@getcolor{#1}\ProLineCol}
-\define@key[psset]{pst-geometrictools}{ProFillCol}[gray!60]{\pst@getcolor{#1}\ProFillCol}
-\define@key[psset]{pst-geometrictools}{ProScale}[1]{\def\pst@ProScale{#1 }}%
-\define@key[psset]{pst-geometrictools}{OwnerTxt}[Euklid]{\def\pst@OwnerTxt{#1}}%
-\define@key[psset]{pst-geometrictools}{MadeTxt}[made in NES]{\def\pst@MadeTxt{#1}}%
-\define@key[psset]{pst-geometrictools}{PSfontO}[Symbol]{\def\pst@PSfontO{/#1 }}
-\define@key[psset]{pst-geometrictools}{fontsizeO}[10]{\def\pst@fontsizeO{#1 }}
-\define@key[psset]{pst-geometrictools}{PSfontM}[NimbusRomNo9L-Regu]{\def\pst@PSfontM{/#1 }}
-\define@key[psset]{pst-geometrictools}{fontsizeM}[6]{\def\pst@fontsizeM{#1 }}
-\define@key[psset]{pst-geometrictools}{country}[Germany]{\def\pst@country{#1}}
-\psset[pst-geometrictools]{ProScale=1,OwnerTxt={Euklid},MadeTxt={made in NES},
- country=Germany,PSfontO=StandardSymL,PSfontM=NimbusRomNo9L-Regu,fontsizeO=10,fontsizeM=6,
- ProFillCol=gray!60,ProLineCol=cyan,Ghost=false}
-
-
-\def\psProtractor{\def\pst@par{}\pst@object{psProtractor}}
-\def\psProtractor@i#1(#2){\@ifnextchar(%
-{\psProtractor@ii{#1}(#2)}%
-{\psProtractor@ii{#1}(#2)(#2)}}%
-\def\psProtractor@ii#1(#2)(#3){%------------------------------- #1 Winkel, #2 Ursprung P, zweiter Punkt Q für Winkel
-\begin@SpecialObj
-\pst@killglue
-\begingroup%
-\pnode(#2){@PGD}%
-\pnode(#3){@QGD}%
-\use@par%
-\pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB
-\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
-\addto@pscode{%
-/sysfill {systemdict /fill get exec} def
-/Country (\pst@country) def
- /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
- \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
- \pst@tempB \tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benötigt)
- @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------ Winkelberechnung
- \pst@tempA \pst@coor T % ------------------------------------ Tranformiere den Koordinatenursprung in P
- @delta #1 add 180 add rotate % ------------------------------ Drehe das gesamte Geodreieck
- \pst@ProScale dup scale % -------- Skaliere das ganze Geodreieck
-%-------------------------------------------------------------------------------------------------------------
-\ifPst@Ghost\else
-gsave
-%-------------------------------------------------------------------------------------------------------------
-%-------------- Äuß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ü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@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@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öriger y-Wert ist xWS1 + 8
- xWS2 cm xWS2 7.8 add cm % ----------------------------------- zu xWS2 gehö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ür horizontal-zentriertes - Setzen der cm- Zahlen (180° gedreht) ------------------------
- /cmshow {% (string) x y
- gsave
- moveto 180 rotate % s
- /NimbusRomNo9L-Regu 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ü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ür horizontal-zentriertes - Setzen der Winkel- Zahlen (mitgedreht) ----------------------
- /cmRotshow {% ---------------------------------- (string), Winkel, x y
- gsave
- moveto 90 add rotate % s
- /NimbusRomNo9L-Regu 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ü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 % ------------------ äuß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@PSfontO\space findfont \pst@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@OwnerTxt) 0 cm 4 cm TSshow
- grestore
-%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- /MadeShow {% (string) x y
- gsave
- moveto 180 rotate % s
- \pst@PSfontM\space findfont \pst@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@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ängeneinheit mit der multipliziert wird
- \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
- \pst@tempB \tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benö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@ProScale\space \pst@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@ProScale\space \pst@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@ProScale\space \pst@ProScale\space scale % -------- Skalieren!
- 8 0){GeodrB}%
-\endgroup%
-\end@SpecialObj\ignorespaces
-}%
-
-
-\definecolor{HolzCol}{rgb}{1,0.937,0.835}%
-\define@key[psset]{pst-geometrictools}{PenScale}[1]{\def\pst@PenScale{#1 }}%
-\define@key[psset]{pst-geometrictools}{PenLength}[5]{\def\pst@PenLength{#1 }}%
-\define@key[psset]{pst-geometrictools}{pencilColA}[red]{\pst@getcolor{#1}\pencilColA}
-\define@key[psset]{pst-geometrictools}{pencilColB}[HolzCol]{\pst@getcolor{#1}\pencilColB}
-\psset[pst-geometrictools]{PenLength=5,pencilColA=red,pencilColB=HolzCol,PenScale=1}
-\def\psPencil{\def\pst@par{}\pst@object{psPencil}}
-\def\psPencil@i#1(#2){%------------------------------- #1 Winkel, #2 Ursprung P
-\begin@SpecialObj
-\pst@killglue
-\begingroup
-\pnode(#2){@PGD}%
-\use@par
-\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
-\addto@pscode{
-/sysfill {systemdict /fill get exec} def
-%/Country (\pst@country) def
- /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
- /Plength \pst@PenLength def
-% \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
- \pst@tempA \pst@coor T % ------------------------------------ Tranformiere den Koordinatenursprung in P
- #1 rotate % ------------------------------ Drehe das gesamte Geodreieck
- \pst@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@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@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@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@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@usecolor\pencilColA
- fill
- grestore
- gsave
- 0.3 setlinewidth
- 0.3 setgray
- stroke
- grestore
-grestore
-%--------------------------------------------------------------------------------------------------------
-%--------------------------------------------------------------------------------------------------------
-grestore
-}%
-\endgroup
-\end@SpecialObj\ignorespaces
-}%
-
-
-\define@key[psset]{pst-geometrictools}{RulerFillCol}[cyan!60]{\pst@getcolor{#1}\RulerFillCol}
-\define@key[psset]{pst-geometrictools}{RulerScale}[1]{\def\pst@RulerScale{#1 }}%
-\psset[pst-geometrictools]{RulerFillCol=gray,RulerScale=1}
-
-\def\psRuler{\def\pst@par{}\pst@object{psRuler}}
-\def\psRuler@i#1(#2){\@ifnextchar(%
-{\psRuler@ii{#1}(#2)}%
-{\psRuler@ii{#1}(#2)(#2)}}%
-\def\psRuler@ii#1(#2)(#3){%------------------------------- #1 Winkel, #2 Ursprung P, zweiter Punkt Q für Winkel
-\begin@SpecialObj
-\pst@killglue
-\begingroup%
-\pnode(#2){@PGD}%
-\pnode(#3){@QGD}%
-\use@par%
-\pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB
-\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
-\addto@pscode{
-/sysfill {systemdict /fill get exec} def
- /cm {28.45274 mul} def % --------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
- \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
- \pst@tempB \tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benötigt)
- @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------ Winkelberechnung
- \pst@tempA \pst@coor T % ------------------------------------ Tranformiere den Koordinatenursprung in P
- @delta #1 add 180 add rotate % ------------------------------ Drehe das gesamte Geodreieck
- \pst@RulerScale dup scale % ----------------------------------- Skaliere das ganze Geodreieck
-%-------------------------------------------------------------------------------------------------------------
-gsave
-%-------------------------------------------------------------------------------------------------------------
-%-------------- Füllung der beiden inneren Bereiche und äuß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@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@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ür horizontal-zentriertes - Setzen der cm- Zahlen (180° gedreht) ------------------------
- /cmshow {% (string) x y
- gsave
- moveto % s
- /NimbusRomNo9L-Regu 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ü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@SpecialObj\ignorespaces
-}%
-
-\definecolor{PoCRed}{rgb}{0.7,0.134,0.134}
-\define@boolkey[psset]{pst-geometrictools}[Pst@]{MCAngle}[true]{}
-\define@key[psset]{pst-geometrictools}{PoCLength}[5]{\def\pst@PoCLength{#1 }}
-\define@key[psset]{pst-geometrictools}{PoCAngle}[0]{\def\pst@PoCAngle{#1 }}
-\define@key[psset]{pst-geometrictools}{PoCFillCol}[PoCRed]{\pst@getcolor{#1}\PoCFillCol}
-\define@key[psset]{pst-geometrictools}{PoCMineCol}[black!80]{\pst@getcolor{#1}\PoCMineCol}
-\define@key[psset]{pst-geometrictools}{PoCScale}[1]{\def\pst@PoCScale{#1 }}%
-\define@key[psset]{pst-geometrictools}{RadVS}[RVS]{\def\pst@RadVS{#1}}%
-\define@key[psset]{pst-geometrictools}{AngleVS}[AVS]{\def\pst@AngleVS{#1}}%
-\define@key[psset]{pst-geometrictools}{RadMul}[1]{\def\pst@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@par{}\pst@object{psCompass}}% Pair of Compasses
-\def\psCompass@i#1(#2){\@ifnextchar(%
-{\psCompass@ii{0}(#2)}%
-{\psCompass@ii{#1}(#2)(#2)}}%
-\def\psCompass@ii#1(#2)(#3){%------------------------------- #1 Winkel, #2 Ursprung P, zweiter Punkt Q für Winkel
-\begin@SpecialObj
-\pst@killglue
-\begingroup%
-\pnode(#2){@PGD}%
-\pnode(#3){@QGD}%
-\use@par%
-\pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB
-\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
-\addto@pscode{%
- \pst@RadMul /faktor ED
- \pst@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@PoCLength def
- /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
- \pst@tempA\tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
- \pst@tempB\tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benötigt)
- \pst@tempA\pst@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@PoCAngle\space \ifPst@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@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@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@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@tempA \tx@UserCoor /@@y1 ED /@@x1 ED
- \pst@tempB \tx@UserCoor /@@y2 ED /@@x2 ED
- @@x1 @@x2 sub @@y1 @@y2 sub Pyth \pst@RadMul\space mul /\pst@RadVS\space exch def
- @@y1 @@y2 sub dup mul @@x1 @@x2 sub dup mul add \pst@RadMul dup mul mul /quadlg ED
- quadlg 0 eq { 180 } { @@y1 @@y2 sub @@x1 @@x2 sub atan } ifelse /\pst@AngleVS\space exch def %------------ Winkelberechnung /\pst@AngleVS\space exch def
- 0 0){MoneyforNothing}%
-\endgroup%
-\end@SpecialObj\ignorespaces%
-}%
-
-%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ruler}[true]{}
-%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ppoint}[false]{}
-%\define@boolkey[psset]{pst-geometrictools}[Pst@]{LineOffset}[false]{}
-%\define@key[psset]{pst-geometrictools}{AddAngle}[0]{\def\pst@AddAngle{#1 }}%
-%\psset[pst-geometrictools]{Ruler=true,Ppoint=false,AddAngle=0,LineOffset=false}
-
-%% Distance between two points => #3
-\def\psDistAB(#1)(#2)#3{%
- \pst@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
-\pnode(!
- \pst@tempA \tx@UserCoor
- \pst@tempB \tx@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@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
-\pnode(!
- \pst@tempA \tx@UserCoor
- \pst@tempB \tx@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@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
- \pst@getcoor{#2}\pst@tempC
-\pnode(!
- \pst@tempA \tx@UserCoor
- \pst@tempB \tx@UserCoor
- \pst@tempC \tx@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@key[psset]{pst-geometrictools}{DistCoeff}[1]{\def\pst@DistCoeff{#1 }}%
-\psset[pst-geometrictools]{DistCoeff=1}
-%
-\def\psParallels{\def\pst@par{}\pst@object{psParallels}}
-\def\psParallels@i(#1)(#2)(#3){%
-\begin@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@DistCoeff]{pointK}{pointC}{pointA}[pointA*]
-\psProtractor{alpha1 alpha2 sub}(pointA*)%
-\end@SpecialObj\ignorespaces%
-}%
-
-%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ruler}[true]{}
-%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ppoint}[false]{}
-%\define@boolkey[psset]{pst-geometrictools}[Pst@]{LineOffset}[false]{}
-%\define@key[psset]{pst-geometrictools}{AddAngle}[1]{\def\pst@AddAngle{#1 }}%
-%\psset[pst-geometrictools]{Ruler=true,Ppoint=false,AddAngle=0,LineOffset=false}
-%\def\psParallels{\def\pst@par{}\pst@object{psParallels}}
-%\def\psParallels@i(#1)(#2)(#3){%
-%\psset{saveNodeCoors,NodeCoorPrefix=n}%
-%\@ifundefined{rCounter}{\def\rCounter{1}}{}%
-%\begin@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@Ruler\psRuler{0}(pointE)(GeodrC)\fi%
-%\AplusB(ProB)(KC){ProB*}%
-%\pst@Verb{ nKCx nKCy Pyth /laenge exch def %
-%nKCx laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@ProScale mul add mul 28.45274 div 2 sqrt mul /delX exch def %
-%nKCy laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@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@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@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@Ppoint
-%\ifPst@LineOffset
-%\pst@Verb{ nICx nICy Pyth /laenge exch def %
-%nICx laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@ProScale mul add mul 28.45274 div 2 sqrt mul /delX exch def %
-%nICy laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@ProScale mul add mul 28.45274 div 2 sqrt mul /delY exch def %
-%}%
-%\pnode(!/AddA \pst@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@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@AddAngle}(pointC*)(GProBC*)\else%
-%\psProtractor{\pst@AddAngle}(pointC)(ProB*)\fi%
-%\else
-%\psProtractor{\pst@AddAngle}(MPro)(BPro)\fi % Um die Liniendicke 0.8pt nach rechts versetzt
-%\psLNode(pointC)(ProB*){0.98}{ProB**}%
-%\psLNode(pointC)(ProB**){2}{C*}%
-%\end@SpecialObj\ignorespaces%
-%}%
-
-\catcode`\@=\PstAtCode\relax
+%% This is file `pst-geometrictools.tex',
+%%
+%% Thomas Söll
+%% fixes for lualatex by Herbert Voß
+%%
+%% 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\PSTEuclideLoaded\endinput\else\input pst-eucl.tex\fi
+\ifx\PSTnodeLoaded\endinput \else\input pst-node.tex\fi
+\def\fileversion{1.3}
+\def\filedate{2021/12/28}
+\message{`PST' v\fileversion, \filedate}
+
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+\pst@addfams{pst-geometrictools}
+%
+\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ghost}[true]{}
+\define@key[psset]{pst-geometrictools}{ProLineCol}[cyan]{\pst@getcolor{#1}\ProLineCol}
+\define@key[psset]{pst-geometrictools}{ProFillCol}[gray!60]{\pst@getcolor{#1}\ProFillCol}
+\define@key[psset]{pst-geometrictools}{ProScale}[1]{\def\pst@ProScale{#1 }}%
+\define@key[psset]{pst-geometrictools}{OwnerTxt}[Euklid]{\def\pst@OwnerTxt{#1}}%
+\define@key[psset]{pst-geometrictools}{MadeTxt}[made in NES]{\def\pst@MadeTxt{#1}}%
+\define@key[psset]{pst-geometrictools}{PSfontO}[Symbol]{\def\pst@PSfontO{/#1 }}
+\define@key[psset]{pst-geometrictools}{fontsizeO}[10]{\def\pst@fontsizeO{#1 }}
+\define@key[psset]{pst-geometrictools}{PSfontM}[NimbusRomNo9L-Regu]{\def\pst@PSfontM{/#1 }}
+\define@key[psset]{pst-geometrictools}{fontsizeM}[6]{\def\pst@fontsizeM{#1 }}
+\define@key[psset]{pst-geometrictools}{country}[Germany]{\def\pst@country{#1}}
+\psset[pst-geometrictools]{ProScale=1,OwnerTxt={Euklid},MadeTxt={made in NES},
+ country=Germany,PSfontO=StandardSymL,PSfontM=NimbusRomNo9L-Regu,fontsizeO=10,fontsizeM=6,
+ ProFillCol=gray!60,ProLineCol=cyan,Ghost=false}
+
+
+\def\psProtractor{\def\pst@par{}\pst@object{psProtractor}}
+\def\psProtractor@i#1(#2){\@ifnextchar({\psProtractor@ii{#1}(#2)}{\psProtractor@ii{#1}(#2)(#2)}}%
+
+\def\psProtractor@ii#1(#2)(#3){%------------------------------- #1 Winkel, #2 Ursprung P, zweiter Punkt Q für Winkel
+ \begin@SpecialObj
+ \pst@killglue
+% \begingroup
+ \pnode(#2){@PGD}%
+ \pnode(#3){@QGD}%
+ \use@par
+ \pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB
+ \pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
+ \addto@pscode{%
+ /sysfill {systemdict /fill get exec} def
+ /Country (\pst@country) def
+ /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
+ \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
+ \pst@tempB \tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benötigt)
+ @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------ Winkelberechnung
+ \pst@tempA \pst@coor T % ------------------------------------ Tranformiere den Koordinatenursprung in P
+ @delta #1 add 180 add rotate % ------------------------------ Drehe das gesamte Geodreieck
+ \pst@ProScale dup scale % -------- Skaliere das ganze Geodreieck
+ %-------------------------------------------------------------------------------------------------------------
+ gsave
+ \ifPst@Ghost\else
+ %-------------- Äuß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ü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@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@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öriger y-Wert ist xWS1 + 8
+ xWS2 cm xWS2 7.8 add cm % ----------------------------------- zu xWS2 gehö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ür horizontal-zentriertes - Setzen der cm- Zahlen (180° gedreht) ------------------------
+ /cmshow {% (string) x y
+ gsave
+ moveto 180 rotate % s
+ /NimbusRomNo9L-Regu 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ü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ür horizontal-zentriertes - Setzen der Winkel- Zahlen (mitgedreht) ----------------------
+ /cmRotshow {% ---------------------------------- (string), Winkel, x y
+ gsave
+ moveto 90 add rotate % s
+ /NimbusRomNo9L-Regu 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ü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 % ------------------ äuß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@PSfontO\space findfont \pst@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@OwnerTxt) 0 cm 4 cm TSshow
+ grestore
+%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ /MadeShow {% (string) x y
+ gsave
+ moveto 180 rotate % s
+ \pst@PSfontM\space findfont \pst@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@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 ------------------
+\fi
+grestore
+}%
+\pnode(!
+ /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
+ \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
+ \pst@tempB \tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benö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@ProScale\space \pst@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@ProScale\space \pst@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@ProScale\space \pst@ProScale\space scale % -------- Skalieren!
+ 8 0){GeodrB}%
+%\endgroup%
+ \end@SpecialObj
+ \ignorespaces
+}%
+
+\definecolor{HolzCol}{rgb}{1,0.937,0.835}%
+\define@key[psset]{pst-geometrictools}{PenScale}[1]{\def\pst@PenScale{#1 }}%
+\define@key[psset]{pst-geometrictools}{PenLength}[5]{\def\pst@PenLength{#1 }}%
+\define@key[psset]{pst-geometrictools}{pencilColA}[red]{\pst@getcolor{#1}\pencilColA}
+\define@key[psset]{pst-geometrictools}{pencilColB}[HolzCol]{\pst@getcolor{#1}\pencilColB}
+\psset[pst-geometrictools]{PenLength=5,pencilColA=red,pencilColB=HolzCol,PenScale=1}
+
+\def\psPencil{\def\pst@par{}\pst@object{psPencil}}
+\def\psPencil@i#1(#2){%------------------------------- #1 Winkel, #2 Ursprung P
+\begin@SpecialObj
+\pst@killglue
+\begingroup
+\pnode(#2){@PGD}%
+\use@par
+\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
+\addto@pscode{
+/sysfill {systemdict /fill get exec} def
+%/Country (\pst@country) def
+ /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
+ /Plength \pst@PenLength def
+% \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
+ \pst@tempA \pst@coor T % ------------------------------------ Tranformiere den Koordinatenursprung in P
+ #1 rotate % ------------------------------ Drehe das gesamte Geodreieck
+ \pst@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@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@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@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@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@usecolor\pencilColA
+ fill
+ grestore
+ gsave
+ 0.3 setlinewidth
+ 0.3 setgray
+ stroke
+ grestore
+grestore
+%--------------------------------------------------------------------------------------------------------
+%--------------------------------------------------------------------------------------------------------
+grestore
+}%
+\endgroup
+\end@SpecialObj\ignorespaces
+}%
+
+
+\define@key[psset]{pst-geometrictools}{RulerFillCol}[cyan!60]{\pst@getcolor{#1}\RulerFillCol}
+\define@key[psset]{pst-geometrictools}{RulerScale}[1]{\def\pst@RulerScale{#1 }}%
+\psset[pst-geometrictools]{RulerFillCol=gray,RulerScale=1}
+
+\def\psRuler{\def\pst@par{}\pst@object{psRuler}}
+\def\psRuler@i#1(#2){\@ifnextchar(%
+{\psRuler@ii{#1}(#2)}%
+{\psRuler@ii{#1}(#2)(#2)}}%
+\def\psRuler@ii#1(#2)(#3){%------------------------------- #1 Winkel, #2 Ursprung P, zweiter Punkt Q für Winkel
+\begin@SpecialObj
+\pst@killglue
+\begingroup%
+\pnode(#2){@PGD}%
+\pnode(#3){@QGD}%
+\use@par%
+\pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB
+\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
+\addto@pscode{
+/sysfill {systemdict /fill get exec} def
+ /cm {28.45274 mul} def % --------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
+ \pst@tempA \tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
+ \pst@tempB \tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benötigt)
+ @y1 @y2 sub @x1 @x2 sub Atan /@delta ED %------------ Winkelberechnung
+ \pst@tempA \pst@coor T % ------------------------------------ Tranformiere den Koordinatenursprung in P
+ @delta #1 add 180 add rotate % ------------------------------ Drehe das gesamte Geodreieck
+ \pst@RulerScale dup scale % ----------------------------------- Skaliere das ganze Geodreieck
+%-------------------------------------------------------------------------------------------------------------
+gsave
+%-------------------------------------------------------------------------------------------------------------
+%-------------- Füllung der beiden inneren Bereiche und äuß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@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@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ür horizontal-zentriertes - Setzen der cm- Zahlen (180° gedreht) ------------------------
+ /cmshow {% (string) x y
+ gsave
+ moveto % s
+ /NimbusRomNo9L-Regu 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ü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@SpecialObj\ignorespaces
+}%
+
+\definecolor{PoCRed}{rgb}{0.7,0.134,0.134}
+\define@boolkey[psset]{pst-geometrictools}[Pst@]{MCAngle}[true]{}
+\define@key[psset]{pst-geometrictools}{PoCLength}[5]{\def\pst@PoCLength{#1 }}
+\define@key[psset]{pst-geometrictools}{PoCAngle}[0]{\def\pst@PoCAngle{#1 }}
+\define@key[psset]{pst-geometrictools}{PoCFillCol}[PoCRed]{\pst@getcolor{#1}\PoCFillCol}
+\define@key[psset]{pst-geometrictools}{PoCMineCol}[black!80]{\pst@getcolor{#1}\PoCMineCol}
+\define@key[psset]{pst-geometrictools}{PoCScale}[1]{\def\pst@PoCScale{#1 }}%
+\define@key[psset]{pst-geometrictools}{RadVS}[RVS]{\def\pst@RadVS{#1}}%
+\define@key[psset]{pst-geometrictools}{AngleVS}[AVS]{\def\pst@AngleVS{#1}}%
+\define@key[psset]{pst-geometrictools}{RadMul}[1]{\def\pst@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@par{}\pst@object{psCompass}}% Pair of Compasses
+\def\psCompass@i#1(#2){\@ifnextchar(%
+{\psCompass@ii{0}(#2)}%
+{\psCompass@ii{#1}(#2)(#2)}}%
+\def\psCompass@ii#1(#2)(#3){%------------------------------- #1 Winkel, #2 Ursprung P, zweiter Punkt Q für Winkel
+\begin@SpecialObj
+\pst@killglue
+\begingroup%
+\pnode(#2){@PGD}%
+\pnode(#3){@QGD}%
+\use@par%
+\pst@getcoor{@QGD}\pst@tempB % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempB
+\pst@getcoor{@PGD}\pst@tempA % -------------------------- Hohle die Koordinaten und speichere sie in \pst@tempA
+\addto@pscode{%
+ \pst@RadMul /faktor ED
+ \pst@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@PoCLength def
+ /cm {28.45274 mul} def % ---------------------------------------- Definiere cm als Längeneinheit mit der multipliziert wird
+ \pst@tempA\tx@UserCoor /@y1 ED /@x1 ED % ---------- Definiere die Koordinaten des Ursprungs (zur Winkelberechnung benötigt)
+ \pst@tempB\tx@UserCoor /@y2 ED /@x2 ED % ---------- Definiere die Koordinaten des zweiten Punktes (zur Winkelberechnung benötigt)
+ \pst@tempA\pst@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@PoCAngle\space \ifPst@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@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@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@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@tempA \tx@UserCoor /@@y1 ED /@@x1 ED
+ \pst@tempB \tx@UserCoor /@@y2 ED /@@x2 ED
+ @@x1 @@x2 sub @@y1 @@y2 sub Pyth \pst@RadMul\space mul /\pst@RadVS\space exch def
+ @@y1 @@y2 sub dup mul @@x1 @@x2 sub dup mul add \pst@RadMul dup mul mul /quadlg ED
+ quadlg 0 eq { 180 } { @@y1 @@y2 sub @@x1 @@x2 sub atan } ifelse /\pst@AngleVS\space exch def %------------ Winkelberechnung /\pst@AngleVS\space exch def
+ 0 0){MoneyforNothing}%
+\endgroup%
+\end@SpecialObj\ignorespaces%
+}%
+
+%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ruler}[true]{}
+%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ppoint}[false]{}
+%\define@boolkey[psset]{pst-geometrictools}[Pst@]{LineOffset}[false]{}
+%\define@key[psset]{pst-geometrictools}{AddAngle}[0]{\def\pst@AddAngle{#1 }}%
+%\psset[pst-geometrictools]{Ruler=true,Ppoint=false,AddAngle=0,LineOffset=false}
+
+%% Distance between two points => #3
+\def\psDistAB(#1)(#2)#3{%
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+\pnode(!
+ \pst@tempA \tx@UserCoor
+ \pst@tempB \tx@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@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+\pnode(!
+ \pst@tempA \tx@UserCoor
+ \pst@tempB \tx@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@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \pst@getcoor{#2}\pst@tempC
+\pnode(!
+ \pst@tempA \tx@UserCoor
+ \pst@tempB \tx@UserCoor
+ \pst@tempC \tx@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@key[psset]{pst-geometrictools}{DistCoeff}[1]{\def\pst@DistCoeff{#1 }}%
+\psset[pst-geometrictools]{DistCoeff=1}
+%
+\def\psParallels{\def\pst@par{}\pst@object{psParallels}}
+\def\psParallels@i(#1)(#2)(#3){%
+% \begin@SpecialObj
+ \pst@killglue
+ \begingroup
+ \use@par
+ \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}
+% \psdot(GeodrA)\uput[-90](GeodrA){A'}% right edge of triangle
+ \psProtractor[Ghost]{alpha1 alpha2 sub }(pointA)%
+% \psdot(GeodrA)\uput[-90](GeodrA){A''}% right edge of triangle
+% \psdot(GeodrB)\uput[-90](GeodrB){B''}% left edge of triangle
+% \psdot(GeodrC)\uput[-90](GeodrC){C''}% bottom edge of triangle
+ \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@DistCoeff]{pointK}{pointC}{pointA}[pointA*]
+ \psProtractor{alpha1 alpha2 sub}(pointA*)%
+ \endgroup
+ \ignorespaces%
+}%
+
+%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ruler}[true]{}
+%\define@boolkey[psset]{pst-geometrictools}[Pst@]{Ppoint}[false]{}
+%\define@boolkey[psset]{pst-geometrictools}[Pst@]{LineOffset}[false]{}
+%\define@key[psset]{pst-geometrictools}{AddAngle}[1]{\def\pst@AddAngle{#1 }}%
+%\psset[pst-geometrictools]{Ruler=true,Ppoint=false,AddAngle=0,LineOffset=false}
+%\def\psParallels{\def\pst@par{}\pst@object{psParallels}}
+%\def\psParallels@i(#1)(#2)(#3){%
+%\psset{saveNodeCoors,NodeCoorPrefix=n}%
+%\@ifundefined{rCounter}{\def\rCounter{1}}{}%
+%\begin@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@Ruler\psRuler{0}(pointE)(GeodrC)\fi%
+%\AplusB(ProB)(KC){ProB*}%
+%\pst@Verb{ nKCx nKCy Pyth /laenge exch def %
+%nKCx laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@ProScale mul add mul 28.45274 div 2 sqrt mul /delX exch def %
+%nKCy laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@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@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@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@Ppoint
+%\ifPst@LineOffset
+%\pst@Verb{ nICx nICy Pyth /laenge exch def %
+%nICx laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@ProScale mul add mul 28.45274 div 2 sqrt mul /delX exch def %
+%nICy laenge div \pst@number\pslinewidth\space 2 div 0.35 \pst@ProScale mul add mul 28.45274 div 2 sqrt mul /delY exch def %
+%}%
+%\pnode(!/AddA \pst@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@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@AddAngle}(pointC*)(GProBC*)\else%
+%\psProtractor{\pst@AddAngle}(pointC)(ProB*)\fi%
+%\else
+%\psProtractor{\pst@AddAngle}(MPro)(BPro)\fi % Um die Liniendicke 0.8pt nach rechts versetzt
+%\psLNode(pointC)(ProB*){0.98}{ProB**}%
+%\psLNode(pointC)(ProB**){2}{C*}%
+%\end@SpecialObj\ignorespaces%
+%}%
+
+\catcode`\@=\PstAtCode\relax
\endinput \ No newline at end of file