diff options
Diffstat (limited to 'graphics/pstricks')
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 Binary files differnew file mode 100644 index 0000000000..ce1b9782c2 --- /dev/null +++ b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-doc.pdf 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 Binary files differnew file mode 100644 index 0000000000..2d8390e783 --- /dev/null +++ b/graphics/pstricks/contrib/pst-geometrictools/doc/pst-geometrictools-fr-doc.pdf 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 Binary files differdeleted file mode 100644 index 39234a8145..0000000000 --- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-doc.pdf +++ /dev/null diff --git a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.pdf b/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.pdf Binary files differdeleted file mode 100644 index 8b428e9601..0000000000 --- a/graphics/pstricks/contrib/pst-geometrictools/pst-geometrictools-fr-doc.pdf +++ /dev/null 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 |