summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-perspective
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pst-perspective
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pst-perspective')
-rw-r--r--graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.pdfbin0 -> 345521 bytes
-rw-r--r--graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.tex266
-rw-r--r--graphics/pstricks/contrib/pst-perspective/README18
-rw-r--r--graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.pdfbin0 -> 655573 bytes
-rw-r--r--graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.tex1872
-rw-r--r--graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.pdfbin0 -> 643437 bytes
-rw-r--r--graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.tex1810
-rw-r--r--graphics/pstricks/contrib/pst-perspective/pst-perspective.sty11
-rw-r--r--graphics/pstricks/contrib/pst-perspective/pst-perspective.tex408
9 files changed, 4385 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.pdf b/graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.pdf
new file mode 100644
index 0000000000..97b5633ff9
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.tex b/graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.tex
new file mode 100644
index 0000000000..aac7a7e077
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/Parallelprojektion-Kreis.tex
@@ -0,0 +1,266 @@
+\documentclass[a4paper,11pt,fleqn]{article}
+\usepackage[T1]{fontenc}
+\usepackage[sfmath,light]{kpfonts}
+\usepackage[sfdefault]{libertine}
+\usepackage[ngerman]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage{etex} % um die Anzahl der Register zu erh\"{o}hen (sonst nur 256)
+
+\usepackage{geometry}
+\geometry{paperheight=298mm,paperwidth=210mm,tmargin=5mm,textwidth=180mm,textheight=260mm,
+ rmargin=15mm,heightrounded,includeheadfoot,headheight=5mm,headsep=1mm,foot=18mm,
+ marginparsep=0mm,marginparwidth=0mm}
+
+\usepackage[distiller,cmyk]{pstricks}
+\usepackage{pst-plot,pst-eucl}
+\usepackage{pst-text}
+\usepackage{pst-grad}
+\usepackage{pst-perspective}
+\usepackage{pstricks-add}
+
+\pagestyle{empty}
+\setlength\parindent{0pt}
+
+\newcommand{\Zylinder}[9]{% #1 L\"{a}nge, #2 Radius, #3 gradbegin, #4 gradend, #5 gradmidpoint
+\pscustom[dimen=#9,fillstyle=gradient,gradbegin=#3,gradend=#4,gradmidpoint=#5,gradangle=90,linecolor=black,linewidth=#7,linestyle=#8]{%
+\psellipticarc(0,0)(!#2 #2 0.3 mul){180}{360}
+\psellipticarcn(0,#1)(!#2 #2 0.3 mul){0}{-180}
+\closepath
+}
+\psellipse[fillstyle=gradient,gradbegin=#3,gradend=#4,gradangle=20,gradmidpoint=0.5,linestyle=solid,linewidth=#7](0,#1)(!#2 #2 0.3 mul)
+}
+
+\begin{document}
+
+
+\section{Mathematische Grundlagen zur Parallelprojektion eines Kreises}
+
+Das Schr\"{a}gbild eines Kreises ergibt eine Ellipse, allerdings stimmt der Radius der Ellipse nicht mit der gro{\ss}en Halbachse der Ellipse \"{u}berein. Au{\ss}erdem ist die Ellipsenachse gegen den Kreisdurchmesser um einen Winkel $\alpha$ gedreht.
+
+{\psset{unit=1.75}
+\begin{pspicture}[showgrid=false](-0.35,-1)(10,4.4)
+\begin{psclip}%
+{\psframe[linestyle=none](-0.3,-0.8)(9.8,4.3)}
+\psgrid[subgriddiv=2,gridlabels=0,gridwidth=0.5pt,gridcolor=black!50,subgridwidth=0.4pt,subgridcolor=black!30](-1,-1)(12,6)
+\end{psclip}
+\psset{arrowsize=0.1,arrowinset=0.05,arrowlength=2}
+\rput(4,0){\psaxes[labelFontSize=\scriptstyle,labels=none,ticks=none,Ox=4]{->}(0,0)(-4.2,0)(5.5,4.3)[$x$,-90][$y$,0]}
+\pnode(4,0){M}
+\psarc(M){4}{0}{180}
+\psArcTS[linecolor=orange!60,originT={4,0}]{4}{-30}{180}
+\pstransTS[translineA=true,translineB=true,originT={4,0}](4;30){A'}{A}
+\pnode(A|0,0){PA}
+\pnode(A'|0,0){PB}
+\pcline[linecolor=red](4,0)(A)
+\naput[nrot=:U,labelsep=1.4pt,npos=0.65]{\color{red}$R$}
+\pcline[linecolor=green](4,0)(A')
+\naput[nrot=:U,labelsep=1.4pt,npos=0.75]{\color{green}$r$}
+\psdot[linecolor=blue,dotsize=1.8pt](A)\psdot[linecolor=green,dotsize=1.8pt](A')
+\pstMarkAngle[LabelSep=2.0,MarkAngleRadius=2.4,linecolor=red,arrows=->]{5,0}{4,0}{A}{\color{red}$\alpha$}%
+\pstMarkAngle[LabelSep=1.0,MarkAngleRadius=1.35,linecolor=green,arrows=->]{5,0}{4,0}{A'}{\color{green}$\beta$}%
+\pstMarkAngle[LabelSep=0.4,MarkAngleRadius=0.75,linecolor=blue,arrows=->]{PA}{PB}{A}{\color{blue}$\varphi$}%
+\pcline[offset=-0.4,linecolor=green]{|<->|}(4,0)(A'|0,0)
+\ncput*{\color{green}$x$}
+\pcline[offset=-0.45,linecolor=blue]{|<->|}(A|0,0)(A)
+\nbput{\color{blue}$y'$}
+\pcline[offset=-0.4,linecolor=blue]{|<->|}(A'|0,0)(A|0,0)
+\nbput[labelsep=1pt]{\color{blue}$x'$}
+\pcline[offset=-0.9,linecolor=green]{|<->|}(A'|0,0)(A')
+\ncput*{\color{green}$y$}
+\end{pspicture}
+}
+
+Drehwinkel und Halbachse der Ellipse sollen nun ermittelt werden.
+
+F\"{u}r den Kreis im ersten und zweiten Quadranten gilt: $y(x) = \sqrt{r^{2} - x^{2}}$
+
+Die Entfernung der Ellipsenpunkte vom Mittelpunkt des Kreises sei $R$.\\
+Mit Pythagoras gilt dann: $R(x) = \sqrt{(x+x')^{2}+y'^{2}}$, wobei\\ $y' = y\cdot v\cdot \sin(\varphi)$ mit dem Verk\"{u}rzungsfaktor $v$ und dem Verzerrungswinkel $\varphi$.\\
+$x'$ und $y'$ erh\"{a}lt man \"{u}ber den Verzerrungswinkel und den Verk\"{u}rzungsfaktor:\\
+$x' = y\cdot v\cdot \cos(\varphi)$ \quad und \quad $y' = y\cdot v\cdot \sin(\varphi)$.
+%
+\begin{equation*}
+ R(x) = \sqrt{\left(x+y\cdot v\cdot \cos(\varphi)\right)^{2}+\left(y\cdot v\cdot \sin(\varphi)\right)^{2}}
+\end{equation*}
+%
+\begin{equation*}
+ R(x) = \sqrt{\left(x+\sqrt{r^{2} - x^{2}}\cdot v\cdot \cos(\varphi)\right)^{2}+\left(\sqrt{r^{2} - x^{2}}\cdot v\cdot \sin(\varphi)\right)^{2}}
+\end{equation*}
+%
+Ausmultiplizieren und zusammenfassen (trigonometrischer Pythagoras!):
+%
+\begin{equation*}
+ R(x)= \sqrt{x^{2}\cdot \left(1-v^{2}\right) + r^{2}v^{2} + 2xv\cdot \cos(\varphi)\sqrt{r^{2} - x^{2}}}
+\end{equation*}
+%
+Die beiden Extremwerte dieser Funktion liefern die $x$-Werte des Kreises, die zur gro{\ss}en und zur kleinen Halbachse der Ellipse geh\"{o}ren. Diese werden nun bestimmt indem nicht $R(x)$, sondern $\left(R(x)\right)^{2}$ betrachtet wird, denn die Extremwerte von $\left(R(x)\right)^{2}$ sind auch die von $R(x)$; man spart sich die Wurzel!)
+%
+\begin{equation*}
+ R(x)^{2}= x^{2}\cdot \left(1-v^{2}\right) + r^{2}v^{2} + 2xv\cdot \cos(\varphi)\sqrt{r^{2} - x^{2}}
+\end{equation*}
+\begin{equation*}
+ \left(R(x)^{2}\right)' = 2x(1-v^{2}) + 2v\cos(\varphi)\cdot \frac{r^{2}-2x^{2}}{\sqrt{r^{2}-x^{2}}}
+\end{equation*}
+%
+Nullsetzen dieser Ableitung liefert vier L\"{o}sungen, die paarweise symmetrisch sind:
+%
+\begin{equation*}
+ x_{1/3} = \pm\frac{r}{2}\sqrt{2}\cdot\sqrt{\frac{v^{4} + 4 v^{2}\cos^{2}(\varphi) - 2v^{2} + 1 + \sqrt{\left(v^{2} - 1\right)^{2}\left(v^{4} + 4v^{2}\cos^{2}(\varphi) - 2v^{2} + 1\right)}}{v^{4} + 4v^{2}\cos^{2}(\varphi) - 2v^{2} + 1}}
+\end{equation*}
+%
+\begin{equation*}
+ x_{2/4} = \pm\frac{r}{2}\sqrt{2}\cdot\sqrt{\frac{v^{4} + 4 v^{2}\cos^{2}(\varphi) - 2 v^{2} - \sqrt{\left(v^{2} - 1\right)^{2} \left(v^{4} + 4v^{2}\cos^{2}(\varphi) - 2v^{2} + 1\right)}}{v^{4} + 4v^{2}\cos^{2}(\varphi) - 2v^{2} + 1}}
+\end{equation*}
+%
+Eine weitere Vereinfachung l\"{a}sst sich durch die Beziehung $2\cos^{2}(\varphi) -1 = \cos(2\varphi)$ erreichen:
+%
+\begin{equation*}
+ x_{1/3} = \pm\frac{r}{2}\sqrt{2}\cdot\sqrt{\frac{v^{4} + 2 v^{2}\cos(2\varphi) + 1 + \left(v^{2} - 1\right)\sqrt{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}
+\end{equation*}
+%
+\begin{equation*}
+ x_{2/4} = \pm\frac{r}{2}\sqrt{2}\cdot\sqrt{\frac{v^{4} + 2 v^{2}\cos(2\varphi) + 1 - \left(v^{2} - 1\right)\sqrt{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}
+\end{equation*}
+%
+Nochmals unter der Wurzel gek\"{u}rzt und zusammengefasst und mit der Abk\"{u}rzung : $t=\frac{1 - v^{2}}{\sqrt{v^{4}+2v^{2}\cos(2\varphi) + 1}}$:
+%
+\begin{equation*}
+ x_{1/2/3/4} = \pm\frac{r}{2}\sqrt{2}\cdot\sqrt{1 \pm \frac{v^{2} - 1}{\sqrt{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}} = \pm\frac{r}{2}\sqrt{2}\cdot\sqrt{1 \pm t}
+\end{equation*}
+%
+Die Ergebnisse nun wieder in $R(x)$ eingesetzt liefert die beiden Halbachsen:
+%
+\begin{equation*}
+ R(x_{1})= r\cdot\sqrt{\frac{1}{2}\left( 1 + \frac{1 - v^{2}}{\sqrt{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}\right)\cdot \left(1-v^{2}\right) + v^{2} + v\cdot \cos(\varphi)\sqrt{1 - \frac{\left(1 - v^{2}\right)^{2}}{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}}
+\end{equation*}
+%
+\begin{equation*}
+ R(x_{1})= r\cdot\sqrt{\frac{1}{2}\left( 1 + t\right)\cdot \left(1-v^{2}\right) + v^{2} + v\cdot \cos(\varphi)\sqrt{1-t^{2}}}
+\end{equation*}
+%
+\begin{equation*}
+ R(x_{2})= r\cdot\sqrt{\frac{1}{2}\left( 1 - t\right)\cdot \left(1-v^{2}\right) + v^{2} - v\cdot \cos(\varphi)\sqrt{1-t^{2}}}
+\end{equation*}
+%
+Der Skizze entnimmt man, dass sich der Winkel $\beta$ \"{u}ber $\arccos\left(\frac{x}{r}\right)$ bzw. $\arcsin\left(\frac{x}{r}\right)$ berechnen l\"{a}sst:
+\begin{equation*}
+ \beta = \arccos\left(\frac{x_{1}}{r}\right) = \arcsin\left(\frac{x_{2}}{r}\right) = \arcsin\left( \frac{1}{2}\sqrt{2}\cdot\sqrt{1 - \frac{1 - v^{2}}{\sqrt{v^{4} + 2 v^{2}\cos(2\varphi) + 1}}}\right)
+ = \arcsin\left( \frac{1}{2}\sqrt{2}\cdot\sqrt{1 - t}\right)
+\end{equation*}
+Der Winkel $\alpha$ ergibt sich folgenderma{\ss}en:
+\begin{equation*}
+ \alpha = \arcsin\left( \frac{y'}{R}\right) = \arcsin\left( \frac{y\cdot v\cdot \sin(\varphi)}{R}\right)
+ = \arcsin\left( \frac{\frac{\sqrt{2}}{2}\cdot\sqrt{1 - t}\cdot v\cdot \sin(\varphi)}{\sqrt{\frac{1}{2}\left( 1 + t\right)\cdot \left(1-v^{2}\right) + v^{2} + v\cdot \cos(\varphi)\sqrt{1-t^{2}}}}\right)
+\end{equation*}
+
+
+\subsection{Polarkoordinaten}
+
+\begin{equation*}
+\tan2\beta=\frac{2v\cos\varphi}{1-v^2}\quad \tan\alpha = \frac{\tan\varphi}{\frac{1}{v\cos\varphi\tan\beta}+1}
+\end{equation*}
+%
+\begin{equation*}
+R_{\max} = r\sqrt{\frac{1}{2}\left(1+\cos\left(\arctan\left[\frac{2v\cos\varphi}{1-v^2}\right]\right)\right)
+(1-v^2)+v^2+v\cos\varphi\cdot\sin\left(\arctan\left[\frac{2v\cos\varphi}{1-v^2}\right]\right)}
+\end{equation*}
+
+
+
+\subsection{Spezialfall $\varphi=45^{\circ}$, $v=0,5$}
+
+Die Terme lassen sich nochmals vereinfachen und man erh\"{a}lt mit $t=\frac{3\cdot \sqrt{17}}{17}$:
+\begin{equation*}
+ x_{1} = \frac{r}{34}\sqrt{578+102\sqrt{17}} \approx r\cdot 0,9294102631; \qquad x_{2} = -\frac{r}{34}\sqrt{578-102\sqrt{17}} \approx -r\cdot 0,369048184
+\end{equation*}
+Daraus berechnet man die gro{\ss}e und die kleine Halbachse, sowie die beiden Winkel zu:
+\begin{equation*}
+ a = R(x_{1}) = \frac{r}{4}\sqrt{10 + 2\sqrt{17}} \approx r\cdot 1,067889602
+\end{equation*}
+\begin{equation*}
+ b = R(x_{2}) = \frac{r}{4}\sqrt{10 - 2\sqrt{17}} \approx r\cdot 0,3310767232
+\end{equation*}
+%
+\begin{equation*}
+ \beta = \arcsin\left( \frac{1}{34}\sqrt{578-102\sqrt{17}}\right) \approx 21,65692833^{\circ}
+\end{equation*}
+%
+\begin{equation*}
+ \alpha = \arcsin\left( \frac{\sqrt{1-\frac{3\cdot \sqrt{17}}{17}}}{\sqrt{10 + 2\cdot\sqrt{17}}}\right) \approx 7,018121736^{\circ}
+\end{equation*}
+
+\begin{pspicture}[showgrid=true](1,-1.8)(16,6)
+%
+\psset{toplinewidth=0.3pt,opacity=0.3}
+{\psset{vkf=0.4,phi=33}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,2,1){4}{4}{4}{yellow}
+\rput(4,1){%
+\psZylinderTS[topfillcolor=red,opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,2,1){4}{4}{4}{yellow}
+}
+
+{\psset{vkf=0.6,phi=60}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,8,1){4}{4}{4}{cyan}
+\rput(10,1){\psZylinderTS[opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,8,1){4}{4}{4}{cyan}
+}
+
+\rput{-90}(1,-1){\psZylinderTS[phi=-70,vkf=0.4,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!green!80,%
+gradend=black!40!green!30,gradangle=90,gradmidpoint=0.25,topfillstyle=gradient,topmidpoint=0.5,topangle=25]{0.5}{13}}
+\end{pspicture}
+
+\begin{pspicture}[showgrid=true](1,-0.3)(13,6)
+%
+\psset{toplinewidth=0.3pt,opacity=0.3}
+\pnode(4,3){MPK}
+{\psset{vkf=0.3,phi=20}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,8,1){4}{4}{4}{green}
+\rput(10,1){\psZylinderTS[opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,8,1){4}{4}{4}{green}
+}
+
+\psrotate(MPK){0}{\psCircleTS[fillstyle=solid,fillcolor=green,opacity=0.5,linestyle=dashed,originT={MPK}]{3}}
+\psCircleTSX[fillstyle=solid,fillcolor=green,opacity=0.5,linestyle=solid,originT={MPK},linewidth=0.3pt]{3}
+
+\pnode(4,4){MPK}
+\psArcTS[linestyle=dashed,originT={MPK}]{3}{0}{80}
+\end{pspicture}
+
+\begin{pspicture}[showgrid=false,shift=0](0,0)(13,6)%
+
+\pnode(1,1){A}
+\pnode(1,5){B}
+\pnode(5,1){C}
+
+\rput{0}(3,1){%
+\psZylinderTS[hideline=true,hidelinewidth=0.3pt,toplinewidth=0.5pt,dash=2pt 2pt,opacity=0.6,linewidth=0.5pt,fillstyle=gradient,%
+gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+
+\pcline[linestyle=dashed,dash=3pt 2pt,nodesepA=2pt,linewidth=0.6pt](A)([nodesep=-0.9]A)
+\pcline[linestyle=dashed,dash=3pt 2pt,nodesepA=2pt,linewidth=0.6pt](B)([nodesep=-0.9]B)
+
+\pcline[linestyle=dashed,dash=3pt 2pt,nodesepA=3pt,linewidth=0.6pt](A)([offset=-1.1]A)
+\pcline[linestyle=dashed,dash=3pt 2pt,nodesepA=3pt,linewidth=0.6pt](C)([offset=-1.1]C)
+
+\pcline[offset=0.6,arrowsize=0.15,arrowlength=2,arrowinset=0.03]{<->}(A)(B)
+\ncput*{$h$}
+
+\pcline[offset=-1,arrowsize=0.15,arrowlength=2,arrowinset=0.03]{<->}(A)(C)
+\ncput*{$d$}
+
+\psboxTS[opacity=0.2,vkf=0.43,linejoin=1,hideline=true](-2,6.9,1){4}{4.2}{4}{red}
+\rput{0}(9,1){\Zylinder{4}{2}{black!90!blue!80}{black!40!blue!30}{0.2}{black!60!blue!70}{0.5pt}{solid}{middle}}
+\psboxTS[opacity=0.3,vkf=0.43,linejoin=1](-2,6.9,1){4}{4.2}{4}{red}
+
+%\psboxTS[opacity=0.2,vkf=0.43,linejoin=1,hideline=true](-2,6.9,1){4}{4.2}{4}{red}
+%\rput{0}(9,1){\Zylinder{4}{2}{black!90!blue!80}{black!40!blue!30}{0.2}{black!60!blue!70}{0.5pt}{solid}{middle}}
+%\psboxTS[opacity=0.3,vkf=0.5,linejoin=1,hideline=true](-2,7,1){4}{4}{4}{red}
+%
+%\psrotate(9,1){6.38}{\psellipticarc[linecolor=red](9,1)(2.12,0.68){180}{360}}
+
+\end{pspicture}
+
+
+
+
+\end{document} \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-perspective/README b/graphics/pstricks/contrib/pst-perspective/README
new file mode 100644
index 0000000000..33e456e733
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/README
@@ -0,0 +1,18 @@
+------------------------------------------------------------------------
+The pst-perspective package --- orthogonal parallel projection
+Maintained by Thomas S\"{o}ll E-mail: thomas.soell@lehrer.uka.de
+Released under the LaTeX Project Public License
+------------------------------------------------------------------------
+
+The package pst-perspective draw an orthogonal parallel projection with an arbitrarily chosen angle and a variable shortening factor.
+The points first get projected orthogonally to the base line, and therefrom they get transformed with an arbitrarily chosen angle and shortened.
+
+
+Installation
+------------
+
+Copy the files pst-perspective.tex and pst-perspective.sty in your
+LaTeX-input folder and than tex-hash. Now you can use it with
+usepackage{pst-perspective}.
+
+The package requires recent versions of pstricks and pst-node.
diff --git a/graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.pdf b/graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.pdf
new file mode 100644
index 0000000000..e506597c19
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.tex b/graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.tex
new file mode 100644
index 0000000000..7a27b4911d
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/pst-perspective-doc.tex
@@ -0,0 +1,1872 @@
+\PassOptionsToPackage{dvipsnames}{xcolor}
+\PassOptionsToPackage{distiller}{pstricks}
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,
+ smallheadings, headexclude,footexclude,oneside]{pst-doc}
+\usepackage[utf8]{inputenc}
+\usepackage[dvipsnames]{xcolor} %% Farben sind im Dokument xcolor.pdf definiert
+\usepackage{multido,pst-grad,pst-eucl,pst-3dplot,pstricks-add}
+\usepackage{pst-perspective}
+
+\def\fileversion{1.05}
+\let\pstPerspectiveFV\fileversion
+\renewcommand\bgImage{\psscalebox{0.85}{%
+\begin{pspicture}[showgrid=false](0.5,-0.5)(11.5,8.5)
+\begin{psclip}%
+{\psframe[linestyle=none](0.25,-0.25)(11.35,8.35)}
+\psgrid[subgriddiv=2,gridlabels=0,gridwidth=0.7pt,gridcolor=black!70,subgridwidth=0.6pt,subgridcolor=black!40](-1,-1)(13,10)
+\end{psclip}
+{\psset{translineA=true,translineB=true,linestyle=dashed,dash=5pt 3pt,linecolor=blue,linejoin=2}
+%------ Eckepunkte des Achtecks -------------
+\pstransTS(3,0){A}{A'}
+\pstransTS(7,0){B}{B'}
+\pstransTS(9,2){C}{C'}
+\pstransTS(9,6){D}{D'}
+\pstransTS(7,8){E}{E'}
+\pstransTS(3,8){F}{F'}
+\pstransTS(1,6){G}{G'}
+\pstransTS(1,2){H}{H'}
+%---------------------------------------------
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.4,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.2,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\pcline[linewidth=1.3pt](0,0|O)(11,0|O)
+\psset{toplinewidth=0.5pt,opacity=0.3,vkf=0.4,phi=33,topfillcolor=cyan}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,8,1){4}{4}{4}{green}
+\rput(10,1){\psZylinderTS[opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,%
+gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,8,1){4}{4}{4}{green}
+\end{pspicture}
+}}
+
+\parindent0pt
+
+\lstset{explpreset={pos=l,width=-99pt,overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe={}},language=PSTricks,
+morekeywords={pstransTSK,pstransTSX,pstransTS,pstMarkAngle,psIntersectionPoint,psboxTS,pstThreeDPlaneGrid,psZylinderTS,psCircleTS,psCircleTSX,
+psArcTS,psArcTSX}, escapechar=?}
+
+%\lstset{language=PSTricks,morekeywords={pst-perspective},basicstyle=\footnotesize\ttfamily}
+%
+\begin{document}
+
+\title{\texttt{pst-perspective}}
+\subtitle{Plotting the perspective view of a point; v.\pstPerspectiveFV}
+\author{Thomas S\"{o}ll}
+\docauthor{}
+\date{\today}
+\maketitle
+
+\tableofcontents
+\psset{unit=1cm}
+
+\clearpage
+
+\begin{abstract}
+\noindent
+\LPack{pst-perspective} loads by default the following packages: \LPack{pst-xkey}, and, of course \LPack{pstricks}.
+All should be already part of your local \TeX\ installation. If not, or in case of having older versions, go to \url{http://www.CTAN.org/} and load the latest version.
+
+
+
+\vfill\noindent
+Thanks to: \\
+J\"{u}rgen Gilg \\
+Herbert Vo{\ss}
+
+
+\end{abstract}
+
+\clearpage
+\section{Einleitung}
+
+Auf der Suche nach M\"{o}glichkeiten Schr\"{a}gbilder f\"{u}r den Unterricht in der Unter- und Mittelstufe des Gymnasiums mit pstricks zu zeichnen, konnte ich kein Paket finden, das meine Vorstellungen umzusetzen vermochte. Es sollte das Schr\"{a}gbild (eine senkrechte Parallelprojektion) unter einem w\"{a}hlbaren Winkel und mit beliebigem Verk\"{u}rzungsfaktor gezeichnet werden k\"{o}nnen. Die Eingabe der Punkte sollte wahlweise in kartesischen, oder Polarkoordinaten erfolgen.
+
+Das Paket pst-solides3d war nicht geeignet, weil es eine Zentralprojektion erzeugt. Das Paket pst-3dplot erm\"{o}glicht Parallelprojektionen, der Verk\"{u}rzungsfaktor kann wahr\-schein\-lich \"{u}ber den Skalierungsfaktor einer Raumrichtung, beispielsweise xThreeDunit gew\"{a}hlt werden, alle Punkte m\"{u}ssen aber in dreidimensionalen Koordinaten angegeben werden. \"{U}ber die M\"{o}glichkeit der Eingabe in Polarkoordinaten habe ich keinen \"{U}berblick. Der Winkel f\"{u}r die Projektion kann vermutlich auch nicht unabh\"{a}ngig gew\"{a}hlt werden. Mit dem Makro \Lcs{ThreeDput} aus dem Paktet pst-3d lassen sich Fl\"{a}chen oder Linien im dreidimensionalen Raum darstellen. F\"{u}r meine Zwecke schien mir das aber nicht praktisch zu sein.
+
+Ich denke, dass mit den bereits existierenden Paketen eine Realisierung von Schr\"{a}gbildern in der von mir gew\"{u}nschten Form sicher m\"{o}glich gewesen w\"{a}re. Diese M\"{o}glichkeit lag f\"{u}r mich jedoch nicht so leicht ersichtlich vor. Au{\ss}erdem f\"{u}hrt das Laden m\"{a}chtigerer Pakete gelegentlich zu Inkompatibilit\"{a}ten, deshalb versuche ich soweit wie m\"{o}glich davon abzusehen, wenn man dieses Paket nicht zwingend braucht.
+
+Da das hier behandelte Paket nur drei kleinere Makros definiert, sind unerw\"{u}nschte Wechselwirkungen mit anderen Paketen eher unwahrscheinlich.
+
+Zur Abbildung von vielen Punkten bzw. komplexen Objekten ist dieses Paket nicht besonders gut geeignet, da jeder Punkt einzelnen abgebildet werden muss. Lediglich in den F\"{a}llen, bei denen mit Unterst\"{u}tzung des Paketes multido eine gr\"{o}{\ss}ere Anzahl von Punkten transformiert werden kann, ergibt sich ein Einsatz mit einem einigerma{\ss}en akzeptablem Aufwand.
+
+
+\section{Allgemeines}
+
+Die im folgenden beschriebenen Makros sollen dabei helfen das Schr\"{a}gbild eines Objekts zu erstellen, so wie es gerade in den Schulen h\"{a}ufig verwendet wird.
+Es gibt drei Makros, zwei um das Schr\"{a}gbild eines fl\"{a}chenf\"{o}rmigen Objekts mit Kanten in der Zeicheneben \"{u}ber die Transformation der einzelnen Punkte zu erzeugen, n\"{a}mlich \Lcs{pstransTS} und \Lcs{pstransTSX}. Bei \Lcs{pstransTS} werden die einzelnen Punkte senkrecht auf eine Basislinie (Parameter \Lkeyword{base}) parallel zur $x$-Achse projiziert und von dort unter einem w\"{a}hlbaren Winkel (Parameter \Lkeyword{phi}) und verk\"{u}rzt (multipliziert mit dem optionalen Parameter \Lkeyword{vkf}) abgebildet. Auf diesen Punkt kann dann mit dem vergebenen Knotennamen zugegriffen werden. Bei \Lcs{pstransTSX} ist das \"{a}hnlich, mit dem Unterschied, dass hier die einzelnen Punkte senkrecht auf eine Basislinie (Parameter \Lkeyword{base}) parallel zur $y$-Achse projiziert werden und von dort unter einem w\"{a}hlbaren Winkel (Parameter \Lkeyword{phi}) und verk\"{u}rzt (multipliziert mit dem optionalen Parameter \Lkeyword{vkf}) abgebildet. Diese beiden F\"{a}lle entsprechen der Projektion eines fl\"{a}chenf\"{o}rmigen Objekts der Zeichenebene in die $x$-$y$-Ebene bzw. in die $x$-$z$-Ebene. Das dritte Makro mit Namen \Lcs{pstransTSK} f\"{u}hrt eine Verschiebung des gegebenen Punktes durch, wobei die Verschiebung wieder \"{u}ber den Winkel \Lkeyword{phi} und den Parameter \Lkeyword{vkf} gegeben ist. Dieses Makro eignet sich dann gut, wenn die zu transformierenden Kanten alle in der Zeichenebene liegen und die nach hinten laufenden Kanten senkrecht auf der Zeichenebene stehen. Ein typisches Beispiel w\"{a}re das Schr\"{a}gbild eines Quaders oder geraden Prismas, dessen Grundfl\"{a}che (oder Deckfl\"{a}che) in der Zeichenebene liegt.
+
+Die drei Makros erzeugen jeweils die Knoten der transformierten Punkte, die Punkte selbst werden nicht gezeichnet und beschriftet. Dies muss nachtr\"{a}glich geschehen, z.~B. mit \Lcs{psdot} und \Lcs{uput}. \"{U}ber die optionalen Parameter k\"{o}nnen verschiedene Hilfslinien eingeblendet werden, die die senkrechte Projektion auf die Basislinie und von dort auf den berechneten Punkt visualisieren. Diesen Hilfslinien k\"{o}nnen unterschiedliche Farben, Linienstile und Liniendicken \"{u}ber die optionalen Parameter zugewiesen werden.
+
+
+\section{Das Makro \nxLcs{pstransTS}}
+\begin{BDef}
+\Lcs{pstransTS}\OptArgs\Largr{$x_{\rm{A}},y_{\rm{A}}$}\Largb{\rm{A}}\Largb{\rm{A}'}
+\end{BDef}
+
+Das Makro \Lcs{pstransTS}\OptArgs$(x_{\rm{A}},y_{\rm{A}})$\Largb{\rm{A}}\Largb{\rm{A}'} erwartet zuerst in runden Klammern die Eingabe eines Punktes. Hier k\"{o}nnen alle M\"{o}glichkeiten der Punktangabe genutzt werden. Das zweite Argument in geschweiften Klammern ist der Knotenname, der f\"{u}r den in runden Klammern angegebenen Punkt vergeben wird. Der daraus neu berechnete Punkt erh\"{a}lt dann den Knotennamen, der als drittes Argument in geschweiften Klammern anzugeben ist.
+
+Im folgenden Beispiel wird der Punkt $\rm{A}(1|4)$ zuerst auf die $x$-Achse abgebildet (veranschaulicht durch die gr\"{u}ne gestrichelte Linie) und von dort wird unter $\varphi=45^{\circ}$ und mit halber L\"{a}nge \Largr{\rm{vkf}=0.5} ein Knoten mit dem Namen $\text{A}'$ gesetzt.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{translineA=true,translineB=true}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=45^{\circ}$}% Winkel einzeichnen und beschriften
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\subsection{Wahl der Basislinie}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{base=\dots}}]
+\end{BDef}
+
+Optional kann \"{u}ber \Lcs{pstransTS}[\OptArg*{\Lkeyset{base=\dots}}] der $y$-Wert der Basislinie angegeben werden. Der voreingestellte Wert ist \Lkeyset{base=0}. Durch die Angabe \Lkeyset{base=1} erreicht man, dass der Punkt auf die Parallele zur $x$-Achse mit der Gleichung $y=1$ projiziert wird. Das folgende Beispiel stellt dies dar.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{translineA=true,translineB=true,base=1}
+\pstransTS[base=1](1,4){A}{A'}
+\pnode(0,\ba){O}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+Liegt der abzubildende Punkt unter der Basis-Linie, wie im unten dargestellten Beispiel ($\rm{A}(1|0,5)$ mit \Lkeyset{base=3}; \ $3>0,5$), so wird nicht unter $\varphi$ sondern $180^{\circ}+\varphi$ abgebildet. Bei $\varphi=45^{\circ}$ ergibt sich dann ein Winkel von $225^{\circ}$.
+
+\begin{LTXexample}[wide,width=4cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](-1.5,-0.5)(2,4.4)
+{\psset{base=3,translineA=true,translineB=true,linestyle=dashed,transAcolor=red,transBcolor=blue,dash=5pt 4pt}
+\pnode(0,\ba){O}%
+\pstransTS(1,0.5){A}{A'}
+}
+\pcline[linewidth=1.3pt](-2,0|O)(2,0|O)
+\psdot(A)
+\uput{4pt}[-30]{0}(A){$\text{A}$}
+\psdot[linecolor=brown](A')
+\uput{4pt}[180]{0}(A'){$\text{A}'$}
+\pstMarkAngle[LabelSep=1.2,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=225^{\circ}$}
+\end{pspicture}
+\end{LTXexample}
+%
+
+\newpage
+\subsection{Verschiebung des Ursprungs}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{originT=\{Punkt\}}}]
+\end{BDef}
+
+M\"{o}chte man Punkte relativ zu einem bestimmten Punkt angeben, so kann man \"{u}ber \Lkeyset{originT=\{Z\}} einen Punkt vorgeben. Die Angabe dieses Punktes kann in den \"{u}blichen Darstellungen erfolgen. Der Punkt muss aber in geschweifte Klammer gesetzt werden, die runden Klammern entfallen. Besonders bei der Verwendung von Polarkoordinaten kann dies vorteilhaft sein. Ein typisches Beispiel ist das Zeichnen eines regelm\"{a}{\ss}igen $n$-Ecks. Die Eckpunkte gibt man meist in Polarkoordinaten an, um das $n$-Eck leicht drehen zu k\"{o}nnen. F\"{u}r Radius und Winkel wird als Bezugspunkt Z verwendet. Wie in einem sp\"{a}teren Beispiel gezeigt wird, l\"{a}sst sich dadurch einfach ein gerades, aber auch ein schiefes Prisma erzeugen.
+
+Zu beachten ist, dass die Basis durch die Verschiebung des Ursprungs mit verschoben wird. Durch \Lkeyset{originT=\{2,3\}} erh\"{a}lt man als Basislinie dann $y=3$. Die Angabe \Lkeyset{base=-2} f\"{u}hrt dann zu einer Verschiebung der Basislinie um zwei Einheiten und somit zu $y=1$.
+
+Im folgenden Beispiel wird von Z(0,1) aus mit einem Radius von $3$ und unter einem Winkel von $60^{\circ}$ ein Knoten mit dem Namen A erzeugt. Der Punkt A wird nun auf die $x$-Achse (\Lkeyset{base=-1}, denn die Basis wurde durch die Wahl von Z um eine Einheit nach oben verschoben) abgebildet (rote Linie) und von dort wird unter $\varphi=45^{\circ}$ und mit halber L\"{a}nge (\Lkeyset{vkf=0.5}) ein Knoten mit dem Namen $\text{A}'$ gesetzt.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{base=-1,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,0){O}% \ba gibt den y-Wert der Basislinie an
+\pnode(0,1){Z}%
+\pnode(4,0|Z){W1}%
+\pstransTS[originT={Z}](3;60){A}{A'}}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[90]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\psdot(Z)% Punkt bei Z zeichnen
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% Punkt Z' beschriften
+\psarc[linestyle=dashed,linecolor=cyan](Z){3}{15}{100}
+\pcline[linecolor=cyan,linestyle=dashed](Z)(A)
+\naput[nrot=:U]{$r=3$}
+\pstMarkAngle[LabelSep=0.8,MarkAngleRadius=1.2,linecolor=cyan,arrows=->]{W1}{Z}{A}{$60^{\circ}$}% Winkel einzeichnen und beschriften
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,0}{A|O}{A'}{$\varphi=45^{\circ}$}% Winkel einzeichnen und beschriften
+\end{pspicture}
+\end{LTXexample}
+
+
+\newpage
+\subsection{Die Basis durch einen Punkt}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{LowPoint=true},\Lkeyset{LowP=\{Punkt\}}}]
+\end{BDef}
+
+Gerade im Zusammenhang mit Polarkoordinaten kann sich die Schwierigkeit ergeben, dass die $y$-Koordinate des Punktes, durch den die Basislinie verlaufen soll, nicht explizit bekannt ist. Da der Wert f\"{u}r die Basis auch berechnet werden kann, unter Verwendung der RPN, sollte diese Aufgabe dadurch in vielen F\"{a}llen gel\"{o}st werde k\"{o}nnen. F\"{u}r andere, eventuell verschachtelt vorgegebene Punkte kann sich diese Aufgabe aber als un\"{u}bersichtlich erweisen. \"{U}ber die Optionen \Lkeyset{LowPoint=true} und \Lkeyset{LowP=Punkt} wird die Basis durch diesen Punkt gelegt, die explizite Angabe der Basis wird dann ignoriert.
+
+Die unterschiedlichen M\"{o}glichkeiten werden an den beiden folgenden Beispielen verdeutlicht. Ausgehend vom Punkt $\text{Z}(4,4)$ wird ein Punkt relativ dazu \"{u}ber seine Polarkoordinaten angegeben. Soll nun die Basis durch diesen Punkt verlaufen (der transformierte Punkt stimmt dann mit diesem Punkt \"{u}berein), so helfen die trigonometrischen Beziehungen weiter. Das gleiche Ergebnis erh\"{a}lt man aber auch mit den Optionen \Lkeyset{LowPoint=true} und \Lkeyset{LowP=Punkt}.
+
+\OptArg*{\Lkeyset{base=292.5 360 sub sin 3 mul}}
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+%------ Eckepunkte des Achtecks -------------
+{\pnode(4,4){Z}
+\psset{originT=Z,base=292.5 360 sub sin 3 mul,translineA=true,translineB=true}
+\pstransTS(3;292.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[0]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot(B)% Punkt bei B zeichnen
+\uput{4pt}[90]{0}(B){$\text{B}$} % Punkt B beschriften
+\psdot(B')% Punkt bei B' zeichnen
+\uput{4pt}[90]{0}(B'){$\text{B}'$} % Punkt B' beschriften
+\psdot(Z)% Punkt bei Z zeichnen
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% Punkt Z' beschriften
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\OptArg*{\Lkeyset{LowPoint=true},\Lkeyset{LowP=\{3;292.5\}}}
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+%------ Eckepunkte des Achtecks -------------
+{\pnode(4,4){Z}
+\psset{originT=Z,LowPoint=true,LowP={3;292.5},translineA=true,translineB=true}
+\pstransTS(3;292.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[0]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot(B)% Punkt bei B zeichnen
+\uput{4pt}[90]{0}(B){$\text{B}$} % Punkt B beschriften
+\psdot(B')% Punkt bei B' zeichnen
+\uput{4pt}[90]{0}(B'){$\text{B}'$} % Punkt B' beschriften
+\psdot(Z)% Punkt bei Z zeichnen
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% Punkt Z' beschriften
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+Zu beachten ist noch, dass bei einer Definition wie \"{u}ber \Lcs{pnode(r;phi)\{Punkt\}} und anschlie{\ss}endem \Lkeyset{LowP=Punkt} die Basis nicht mit verschoben wird, was sich nur dann bemerkbar macht, wenn der Ursprung verschoben wurde. In diesem Fall schreibt man \Lcs{rput(Ursprung)\{}\Lcs{pnode(r;phi)\{Punkt\}}\}.
+
+Bezogen auf das vorherige Beispiel sieht das dann folgenderma{\ss}en aus.
+
+\Lcs{pnode(4,4){Z}} \Lcs{rput(Z)\{}\Lcs{pnode(3;292.5)\{LP\}}\}
+\OptArg*{\Lkeyset{originT=Z},\Lkeyset{LowPoint=true},\Lkeyset{LowP=\{LP\}}}
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+%------ Eckepunkte des Achtecks -------------
+{\pnode(4,4){Z}
+\rput(Z){\pnode(3;292.5){LP}}
+\psset{originT=Z,LowPoint=true,LowP={LP},translineA=true,translineB=true}
+\pstransTS(3;292.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[0]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot(B)% Punkt bei B zeichnen
+\uput{4pt}[90]{0}(B){$\text{B}$} % Punkt B beschriften
+\psdot(B')% Punkt bei B' zeichnen
+\uput{4pt}[90]{0}(B'){$\text{B}'$} % Punkt B' beschriften
+\psdot(Z)% Punkt bei Z zeichnen
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% Punkt Z' beschriften
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+Ein typisches Beispiel ist das folgende regelm\"{a}{\ss}ige Achteck, dessen Eckpunkte \"{u}ber Polarkoordinaten gegeben sind. Ohne die Basis explizit zu ver\"{a}ndern, verl\"{a}uft diese durch das Zentrum.
+
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+\psset{linejoin=2}
+%------ Eckepunkte des Achtecks -------------
+{\pnode(4,4){Z}
+\psset{originT=Z,translineA=true,translineB=true}
+\pstransTS(3;22.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\pstransTS(3;112.5){C}{C'}
+\pstransTS(3;157.5){D}{D'}
+\pstransTS(3;202.5){E}{E'}
+\pstransTS(3;247.5){F}{F'}
+\pstransTS(3;292.5){G}{G'}
+\pstransTS(3;337.5){H}{H'}
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.1,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+M\"{o}chte man, dass die Basis durch die unteren Punkte verl\"{a}uft, so kann man die Basis entweder berechnen oder die entsprechende Option nutzen.
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+\psset{linejoin=2}
+%------ Eckepunkte des Achtecks -------------
+{\pnode(4,4){Z}
+\rput(Z){\pnode(3;292.5){LP}}
+\psset{originT=Z,LowPoint=true,LowP={LP},translineA=true,translineB=true}
+\pstransTS(3;22.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\pstransTS(3;112.5){C}{C'}
+\pstransTS(3;157.5){D}{D'}
+\pstransTS(3;202.5){E}{E'}
+\pstransTS(3;247.5){F}{F'}
+\pstransTS(3;292.5){G}{G'}
+\pstransTS(3;337.5){H}{H'}
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.1,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\subsection{Winkel der Projektion}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{phi=30}}].
+\end{BDef}
+
+Ohne weitere Angabe wird f\"{u}r den Projektionswinkel $45^{\circ}$ verwendet. Einen anderen Winkel, beispielsweise $30^{\circ}$ erh\"{a}lt man durch die optionale Angabe \Lcs{pstransTS}[\OptArg*{\nxLkeyword{phi=30}}].
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{phi=30,base=0,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=30^{\circ}$}% Winkel einzeichnen und beschriften
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{phi=60,base=0,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=60^{\circ}$}% Winkel einzeichnen und beschriften
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\newpage
+\subsection{Verk\"{u}rzungsfaktor}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{vkf=0.5}}].
+\end{BDef}
+
+Gibt man nichts anderes vor, so wird \Lkeyset{vkf=0.5} gesetzt. Dies bedeutet, dass die Strecke von der senkrechten Projektion zum berechneten Punkt nur die halbe L\"{a}nge besitzt. Ein Beispiel ist \Lcs{pstransTS}[\OptArg*{\nxLkeyword{vkf=1.2}}]. Es d\"{u}rfen auch Berechnungen in RPN angegeben werden wie im folgenden Beispiel:
+
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{vkf=2 sqrt 2 div}}]. Der Streckfaktor betr\"{a}gt dann ungef\"{a}hr $0,707$.
+
+\begin{LTXexample}[wide,width=4.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(5,4.4)
+{\psset{vkf=1.2,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(5,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{vkf=0.5 sqrt,base=0,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\newpage
+\subsection{Hilfslinien und ihre Eigenschaften}
+
+Durch \Lkeyset{translineA=true/false} und \Lkeyset{translineB=true/false} k\"{o}nnen die beiden Hilfs\-linien der Projektion dargestellt werden oder nicht. Die vorgegebene Einstellung ist \Lkeyset{translineA=false} und \Lkeyset{translineB=false}.
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+\pstransTS(1,4){A}{A'}
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=true,translineB=false,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=false,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+
+\newpage
+
+Jede der Hilfslinien kann noch mit drei weiteren unabh\"{a}ngigen Eigenschaften, n\"{a}mlich Liniendicke, Linienfarbe und Linienstil versehen werden. Daf\"{u}r gibt es die optionalen Argumente, die hier mit ihren Standardeinstellungen aufgez\"{a}hlt sind.
+
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transAlinewidth=0.7pt}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transAcolor=green}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transAlinestyle=dashed}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transBlinewidth=0.7pt}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transBcolor=blue}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transBlinestyle=dashed}}]
+\end{BDef}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+\pstransTS[translineA=true,translineB=true,transAlinestyle=solid,transBlinestyle=dotted](1,4){A}{A'}
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=true,translineB=true,transAcolor=brown,transBcolor=cyan}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=true,translineB=true,transAlinewidth=1.2pt,transBlinewidth=2.5pt}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\end{pspicture}
+\end{LTXexample}
+
+
+\newpage
+
+\section{Das Makro \nxLcs{pstransTSX}}
+\begin{BDef}
+\Lcs{pstransTSX}\OptArgs\Largr{$x_{\rm{A}},y_{\rm{A}}$}\Largb{\rm{A}}\Largb{\rm{A}'}
+\end{BDef}
+
+Das Makro \Lcs{pstransTSX}\OptArgs$(x_{\rm{A}},y_{\rm{A}})$\Largb{\rm{A}}\Largb{\rm{A}'} wird genau wie \Lcs{pstransTS} verwendet. Auch die Parameter tragen die gleichen Namen. Der einzige Unterschied liegt darin, dass die Punkte zuerst auf eine Linie parallel zur $y$-Achse projiziert werden. Dieser Fall ist dann interessant, wenn man im Schr\"{a}gbild eines Objektes Punkte auf die Seitenfl\"{a}che dieses Objektes abbilden will. Dabei muss diese Seitenfl\"{a}che senkrecht nach hinten verlaufen.
+
+Im folgenden Beispiel wird der Punkt $\rm{A}(0,5|2)$ zuerst auf die Achse $x=2$ abgebildet (veranschaulicht durch die gr\"{u}ne gestrichelte Linie) und von dort wird unter $\varphi=45^{\circ}$ und mit halber L\"{a}nge \Largr{\rm{vkf}=0.5} ein Knoten mit dem Namen $\text{A}'$ gesetzt.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+{\psset{translineA=true,translineB=true,base=2,symline=0,symX=false}
+\pnode(2,0.5){O}%
+\pstransTSX(0.5,2){A}{A'}
+\pstransTSX(1,1.5){B}{B'}
+\pstransTSX(0,0.5){C}{C'}
+}%
+\pcline[linewidth=1.3pt](2,0)(2,4)% Basislinie zeichnen
+\psdot(A)% Punkt bei A zeichnen
+\uput{4pt}[135]{0}(A){$\text{A}$} % Punkt A beschriften
+\psdot[linecolor=brown](A')% Punkt bei A' zeichnen
+\psdot[linecolor=blue](B')% Punkt bei B' zeichnen
+\psdot[linecolor=red](C')% Punkt bei C' zeichnen
+\uput{4pt}[90]{0}(A'){$\text{A}'$}% Punkt A' beschriften
+\pnode(3,0.5){P}%
+\pstMarkAngle[LabelSep=1.0,MarkAngleRadius=0.65,linecolor=blue,arrows=->]{P}{O}{C'}{$\scriptstyle 45^{\circ}$}% Winkel einzeichnen und beschriften
+\pcline[linestyle=dashed](O)(P)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{Symmetrie der Abbildung}
+
+Wie im obigen Beispiel zu sehen, werden Punkte, die im Urbild weiter links von der Basis liegen, nach der Abbildung weiter von der Basis entfernt liegen, als solche, die weiter rechts liegen. Dies kann st\"{o}rend sein, wenn man ein Bild der Zeichenebene auf eine Seitenfl\"{a}che im Schr\"{a}gbild abbilden m\"{o}chte. Am folgenden Beispiel soll dies erl\"{a}utert werden. Die Uhr zeigt dort drei Uhr an, nach der Transformation auf die Seitenfl\"{a}che zeigt die Uhr aber neun Uhr an. (Beachte: \Lkeyset{base=1} bedeutet, dass die Basis durch $x=2$ gegeben ist, denn \Lkeyset{originT=\{1,2\}} verschiebt den Ursprung, von dem aus die Basis nach rechts positiv gerechnet wird.)
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+\pnode(1,2){UZ}
+{\psset{originT={UZ},base=1,symX=false}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\pscircle(UZ){0.5}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+}
+\end{pspicture}
+\end{LTXexample}
+
+Eine entsprechend symmetrische Darstellung gewinnt man mit \Lkeyset{symX=true,symline=0}, die der Standardeinstellung entspricht. (Beachte auch hier, dass \Lkeyset{symline=0} die Symmetrieachse nur relativ zu \Lkeyset{originT=\{UZ\}} angibt. Die Symmetrieachse ist demnach $x=1$.)
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+\pnode(1,2){UZ}
+{\psset{originT={UZ},base=1,symX=true,symline=0}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\pscircle(UZ){0.5}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+}
+\end{pspicture}
+\end{LTXexample}
+
+Einen weiteren Effekt kann man dadurch erzielen, dass sich f\"{u}r das Makro \Lcs{pstransTSX} \"{u}ber den Parameter \Lkeyset{deltaphi=} der Abbildungswinkel vergr\"{o}{\ss}ern oder verkleinern l\"{a}sst, wodurch sich der r\"{a}umliche Eindruck erzeugen l\"{a}sst, als wenn etwas aus der Seitenfl\"{a}che herausgeklappt w\"{u}rde. Man kann also f\"{u}r die gesamte Abbildung den Abbildungswinkel \Lkeyset{phi=} unver\"{a}ndert lassen und nur an den gew\"{u}nschten Stellen einen anderen Abbildungswinkel, der relativ zu \Lkeyset{phi=} ist, verwenden.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+\pnode(1,2){UZ}
+{\psset{originT={UZ},base=1,phi=15,symX=true,symline=0}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\pscircle(UZ){0.5}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+{\psset{deltaphi=45}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+}
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{Das Makro \nxLcs{pstransTSK}}
+\begin{BDef}
+\Lcs{pstransTSK}\OptArgs$(x_{\rm{A}},y_{\rm{A}})$\Largb{\rm{L\"{a}nge}}\Largb{\rm{A}}\Largb{\rm{A}'}
+\end{BDef}
+
+Verlaufen die zu transformierenden Kanten vertikal in der Zeichenebene, so werden auch sie durch die senkrechte Parallelprojektion erst auf einen Basislinie projiziert und von dort um einen bestimmten Winkel gekippt und eventuell verk\"{u}rzt abgebildet. Die Projektion aller Punkte einer vertikal verlaufenden Linie endet aber immer auf dem Schnittpunkt dieser Linie mit der Basislinie. Bei geeigneter Wahl der Basis ist der Schnittpunkt auch der Endpunkt der vertikalen Linie. Von einer solchen Linie gen\"{u}gt es nur den Endpunkt abzubilden und zwar unter dem Projektionswinkel vom Anfangspunkt aus, so wie man es beim Schr\"{a}gbild eines dreidimensionalen K\"{o}rpers mit den Kanten macht, die senkrecht nach hinten verlaufen. Dadurch kann die Projektion aber vereinfacht werden, da nur die H\"{a}lfte der Punkte abgebildet werden muss und zwar durch eine einfache Verschiebung.
+
+Das Makro \Lcs{pstransTSK} f\"{u}hrt die Verschiebung eines Punktes durch, der in runden Klammern anzugeben ist. Die L\"{a}nge der Verschiebung ergibt sich dann aus dem Wert, der danach in geschweiften Klammern angegeben wird, multipliziert mit dem Verk\"{u}rzungsfaktor, der mit \Lkeyset{vkf=0.5} voreingestellt ist. Der Winkel der Verschiebung gegen die Horizontale betr\"{a}gt $45^{\circ}$, was durch die Wahl von \Lkeyset{phi= } ver\"{a}ndert werden kann. Die Hilfslinien k\"{o}nnen ein- oder ausgeblendet werden. Die Eigenschaften der Hilfslinien lassen sich noch variieren.
+
+Die folgenden Beispiele sollen dies veranschaulichen.
+
+Zun\"{a}chst werden die Punkte eines Quadrates, welches in der Zeichenebene liegen soll, angegeben. Die Punkte erhalten die Knotennamen A, B, C und D. Die transformierten Punkte werden nun durch eine Verschiebung um zwei Einheiten (da die angegebene L\"{a}nge 4 noch mit dem Verk\"{u}rzungsfaktor multipliziert wird) daraus ermittelt und erhalten die Knotennamen $\text{A}'$, $\text{B}'$, $\text{C}'$ und $\text{D}'$.
+
+\begin{LTXexample}[wide,width=5.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Eckpunkte des Quadrats ---
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+Mit anderen Winkeln sieht dies dann folgenderma{\ss}en aus:
+
+\begin{LTXexample}[wide,width=6.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Eckpunkte des Quadrats ---
+\pstransTSK[phi=30](1,0){4}{A}{A'}
+\pstransTSK[phi=30](5,0){4}{B}{B'}
+\pstransTSK[phi=30](5,4){4}{C}{C'}
+\pstransTSK[phi=30](1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=5.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Eckpunkte des Quadrats ---
+\psset{phi=60}
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+
+Eine Ver\"{a}nderung des Verk\"{u}rzungsfaktors f\"{u}hrt zu folgenden Darstellungen.
+
+\begin{LTXexample}[wide,width=5.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Eckpunkte des Quadrats ---
+\psset{vkf=0.25}
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=6.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Eckpunkte des Quadrats ---
+\psset{vkf=0.75}
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+
+\section{Das Makro \nxLcs{psboxTS}}
+\begin{BDef}
+\Lcs{psboxTS}\OptArgs$(x,y,z)$\Largb{\rm{L\"{a}nge in }x}\Largb{\rm{Breite in }y}\Largb{\rm{H\"{o}he in }z}\Largb{\rm{Farbe}}
+\end{BDef}
+
+
+Das Makro \Lcs{psboxTS} mit \Lkeyset{vkf=0.5} \Lkeyset{phi= } erzeugt einen Quader. Dabei ben\"{o}tigt es die Koordinaten des Eckpunkts, der hinten links und unten liegt in runden Klammern und durch Komma getrennt. Jeweils in geschweiften Klammern werden die L\"{a}nge, Breite und H\"{o}he des Quaders angegeben. Zuletzt noch die Farbe.
+
+Mit der Option, z.B. \Lkeyset{hideline=true} werden die verdeckt liegenden Kanten des Quaders gezeichnet. Dabei stehen die Optionen \Lkeyset{hidelinewidth=}, \Lkeyset{hidelinestyle=} und \Lkeyset{hidecolor=} zur Verf\"{u}gung.
+
+Die Option, z.B. \Lkeyset{differentcol=true} erlaubt die drei sichtbaren Fl\"{a}chen des Quaders unabh\"{a}ngig einzuf\"{a}rben. Dabei stehen w\"{a}hlt man \"{u}ber \Lkeyset{facecolorR=} und \Lkeyset{facecolorT=} die Farben der Deckfl\"{a}che und der rechten Fl\"{a}che. Die vordere Fl\"{a}che wird mit der Farbe des angegebenen Arguments gef\"{u}llt.
+
+Das Makro l\"{a}sst sich, wie die anderen auch, gut mit dem Paket pst-3dplot kombinieren indem man \Lkeyset{coorType=1}, \Lkeyset{xThreeDunit=vkf} und \Lkeyset{phi = 180 Alpha sub} w\"{a}hlt.
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=false](-2,-2.5)(6,6)
+\psset{xMin=0,yMin=0,zMin=0,xMax=11,yMax=11,zMax=4,Alpha=155,Beta=20,Dx=1,Dy=1,Dz=1,arrowsize=.2,arrowinset=0.1,coorType=1,xThreeDunit=0.5,phi=180 155 sub}%
+\pstThreeDPlaneGrid[planeGrid=xy,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=7](0,0)(7,7)%
+\pstThreeDPlaneGrid[planeGrid=xz,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=5](0,0)(7,5)%
+\pstThreeDPlaneGrid[planeGrid=yz,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=5](0,0)(7,5)%
+%--------------------------------------
+\psboxTS(0,2,3){3}{4}{1}{blue}
+\psboxTS[hideline=true,dash=2pt 2pt,hidelinewidth=0.5pt](4,0,0){2}{1}{4}{yellow}
+\psboxTS[opacity=0.75,hideline=true,hidelinewidth=1.2pt,hidelinestyle=dotted,hidecolor=green,dotsep=1.5pt](3,4,0){4}{2}{1}{brown}
+\psboxTS[differentcol=true,facecolorR=blue,facecolorT=orange](0,0,1){1}{2}{0.5}{green}
+%--------------------------------------
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{Makros f\"{u}r Kreise und Kreisb\"{o}gen}
+
+\begin{BDef}
+\Lcs{psCircleTS}\OptArgs\Largb{\rm{Radius}},\\
+\Lcs{psCircleTSX}\OptArgs\Largb{\rm{Radius}}
+\end{BDef}
+
+\begin{BDef}
+\Lcs{psArcTS}\OptArgs\Largb{\rm{Radius}}\Largb{\rm{Startwinkel}}\Largb{\rm{\"{u}berstrichener Winkel}},\\
+\Lcs{psArcTSX}\OptArgs\Largb{\rm{Radius}}\Largb{\rm{Startwinkel}}\Largb{\rm{\"{u}berstrichener Winkel}}
+\end{BDef}
+
+%\nxLcs{psCircleTS}, \nxLcs{psCircleTSX}, \nxLcs{psarcTS}, \nxLcs{psarcTSX}, \nxLcs{psZylinderTS}}
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(14,7.3)
+\rput(2,4){\psCircleTS[fillstyle=solid,fillcolor=blue,opacity=0.5]{2}}
+\rput(10,2){\psCircleTSX[fillstyle=solid,fillcolor=red,opacity=0.5]{2}}
+\rput(5,2){\psArcTS[linecolor=green,linewidth=0.5pt]{2}{0}{90}}
+\psArcTSX[linecolor=magenta,linewidth=0.5pt,originT={6,4},symX=false]{1.5}{0}{120}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{Makro f\"{u}r einen Zylinder}
+
+\begin{BDef}
+\Lcs{psZylinderTS}\OptArgs\Largb{\rm{Radius}}\Largb{\rm{H\"{o}he}}
+\end{BDef}
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(14,8.8)
+\psset{toplinewidth=0.3pt,toplinecolor=cyan}
+\rput(10,1){%
+\psZylinderTS[opacity=0.6,fillstyle=gradient,gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,%
+gradmidpoint=0.3,linecolor=cyan,linewidth=0.8pt]{2.5}{6}}
+{\psset{phi=30,vkf=2 sqrt 2 div,opacity=0.2}
+\psboxTS[hideline=true](-1,2,2){2}{2}{4}{green}
+\rput(3,2){%
+\psZylinderTS[opacity=0.6,fillstyle=gradient,gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,%
+gradmidpoint=0.3,linecolor=cyan,linewidth=0.8pt]{1}{4}}
+\psboxTS[hideline=false](-1,2,2){2}{2}{4}{green}
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+F\"{u}r den Zylinder sind folgende zus\"{a}tzliche Optionen m\"{o}glich, damit die Deckfl\"{a}che des Zylinders unabh\"{a}ngig gestaltet werden kann:
+
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topfillstyle}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topmidpoint}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topangle}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{toplinecolor}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topfillcolor}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{toplinewidth}}]
+\end{BDef}
+
+Au{\ss}erdem kann mit \Lkeyset{hideline=true}, \Lkeyset{hidelinewidth=}, \Lkeyset{hidelinestyle=} und \Lkeyset{hidecolor=} die verdeckte Linie des Zylinders mit unterschiedlichen Attributen angezeigt werden.
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](1,-0.3)(16,6)
+\psset{toplinewidth=0.5pt,opacity=0.3}
+{\psset{vkf=0.4,phi=33,topfillcolor=red}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,2,1){4}{4}{4}{green}
+\rput(4,1){\psZylinderTS[opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,%
+gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,2,1){4}{4}{4}{green}}
+{\psset{vkf=0.7,phi=60,topfillstyle=gradient,topmidpoint=0.4,topangle=90}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,8,1){4}{4}{4}{cyan}
+\rput(10,1){\psZylinderTS[hideline=true,hidecolor=orange,dash=2pt 2pt,%
+hidelinewidth=0.3pt,opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,%
+gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,8,1){4}{4}{4}{cyan}}
+\rput{-90}(13,1){\psZylinderTS[phi=-30,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!green!80,%
+gradend=black!40!green!30,gradangle=90,gradmidpoint=0.25,topfillstyle=gradient,topmidpoint=0.5,topangle=35]{1}{3}}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{Beispiele}
+
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(11.5,8.0)
+{\psset{phi=40,translineA=true,translineB=true}
+%------ Eckpunkte des Achtecks -------------
+\pstransTS(3,0){A}{A'}
+\pstransTS(7,0){B}{B'}
+\pstransTS(9,2){C}{C'}
+\pstransTS(9,6){D}{D'}
+\pstransTS(7,8){E}{E'}
+\pstransTS(3,8){F}{F'}
+\pstransTS(1,6){G}{G'}
+\pstransTS(1,2){H}{H'}
+%---------------------------------------------
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.4,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.2,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\pcline[linewidth=1.3pt](0,0|O)(11,0|O)
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(10,8.4)
+{\psset{base=0,translineA=true,translineB=true,linecolor=blue,linestyle=dashed,transAcolor=blue,transBcolor=orange,dash=5pt 5pt}
+\pnode(0,\ba){O}% \ba gibt den y-Wert der Basislinie an
+%------ Eckpunkte des X -------------
+\pstransTS(1,0){A}{A'}
+\pstransTS(2,0){B}{B'}
+\pstransTS(4,3){C}{C'}
+\pstransTS(6,0){D}{D'}
+\pstransTS(7,0){E}{E'}
+\pstransTS[transAlinestyle=solid,transAcolor=red,transAlinewidth=2pt](4.5,4){F}{F'}
+\pstransTS[linestyle=solid,linecolor=green](7,8){G}{G'}
+\pstransTS[transAcolor=red,transBcolor=black,transBlinewidth=1.4pt](6,8){H}{H'}
+\pstransTS(4,5){I}{I'}
+\pstransTS(2,8){J}{J'}
+\pstransTS[linecolor=red](1,8){K}{K'}
+\pstransTS(3.5,4){L}{L'}
+%-------------------------------------
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')(I')(J')(K')(L')
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)(I)(J)(K)(L)
+\pcline[linewidth=1.3pt](0,0|O)(10,0|O)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\newpage
+
+\begin{LTXexample}[pos=t]
+\psscalebox{0.7}{%
+\begin{pspicture}[showgrid=false](0.5,-0.5)(10,9.4)
+\def\lange{2 sqrt 2 mul}
+{\psset{phi=30,base=0,translineK,translinestyle=dashed,linecolor=blue,linejoin=2,fillstyle=solid,opacity=0.5}
+%------ Eckpunkte des X -------------
+\pstransTSK(1,0){\lange}{A}{A'}
+\pstransTSK(2,0){\lange}{B}{B'}
+\pstransTSK(4,3){\lange}{C}{C'}
+\pstransTSK(6,0){\lange}{D}{D'}
+\pstransTSK(7,0){\lange}{E}{E'}
+\pstransTSK(4.5,4){\lange}{F}{F'}
+\pstransTSK(7,8){\lange}{G}{G'}
+\pstransTSK(6,8){\lange}{H}{H'}
+\pstransTSK(4,5){\lange}{I}{I'}
+\pstransTSK(2,8){\lange}{J}{J'}
+\pstransTSK(1,8){\lange}{K}{K'}
+\pstransTSK(3.5,4){\lange}{L}{L'}
+%-------------------------------------
+\pspolygon[linestyle=dashed](A')(B')(C')(D')(E')(F')(G')(H')(I')(J')(K')(L')
+\pspolygon[fillcolor=cyan!30,linestyle=none](B)(B')(C')(C)
+}
+\psIntersectionPoint(C')(B')(C)(D){S1}
+\psline(B)(B')(S1)
+\psIntersectionPoint(H)(I)(I')(J'){S2}
+\psline(J')(S2)
+{\psset{phi=30,base=0,translineK,translinestyle=dashed,linecolor=blue,linejoin=2,fillstyle=solid,opacity=0.5}
+\pspolygon[fillcolor=cyan!30](E)(E')(F')(F)
+\pspolygon[fillcolor=cyan!30](F)(F')(G')(G)
+\pspolygon[fillcolor=cyan!30](G)(G')(H')(H)
+\pspolygon[fillcolor=cyan!30,linestyle=none](I)(I')(J')(J)
+\pspolygon[fillcolor=cyan!30](J)(J')(K')(K)
+\pspolygon[fillcolor=orange!60](A)(B)(C)(D)(E)(F)(G)(H)(I)(J)(K)(L)}
+\end{pspicture}}
+\end{LTXexample}
+
+\newpage
+
+\begin{LTXexample}[wide,pos=t]
+\psscalebox{0.5}{%
+\begin{pspicture}[showgrid=false](0.5,0)(10,5.7)
+{\psset{base=0,linecolor=blue,linestyle=dashed,dash=5pt 4pt}
+%------ Eckpunkte des unteren X -------------
+\pstransTS(1,0){A}{A'}
+\pstransTS(2,0){B}{B'}
+\pstransTS(4,3){C}{C'}
+\pstransTS(6,0){D}{D'}
+\pstransTS(7,0){E}{E'}
+\pstransTS(4.5,4){F}{F'}
+\pstransTS(7,8){G}{G'}
+\pstransTS(6,8){H}{H'}
+\pstransTS(4,5){I}{I'}
+\pstransTS(2,8){J}{J'}
+\pstransTS(1,8){K}{K'}
+\pstransTS(3.5,4){L}{L'}
+%------ Eckpunkte des oberen X -------------
+\rput(0,3){% Das gleiche X um 3 nach oben versetzt
+\pstransTS(1,0){A1}{A1'}
+\pstransTS(2,0){B1}{B1'}
+\pstransTS(4,3){C1}{C1'}
+\pstransTS(6,0){D1}{D1'}
+\pstransTS(7,0){E1}{E1'}
+\pstransTS(4.5,4){F1}{F1'}
+\pstransTS(7,8){G1}{G1'}
+\pstransTS(6,8){H1}{H1'}
+\pstransTS(4,5){I1}{I1'}
+\pstransTS(2,8){J1}{J1'}
+\pstransTS(1,8){K1}{K1'}
+\pstransTS(3.5,4){L1}{L1'}}
+%-------------------------------------
+\pcline(F')(F1')
+\pcline(H')(H1')
+\pcline(I')(I1')
+\pcline(J')(J1')
+\pcline(K')(K1')
+\pcline(L')(L1')
+}
+\psIntersectionPoint(K')(K1')(A1')(L1'){S1}
+\psline[linestyle=solid,linecolor=blue](K1')(S1)
+\psIntersectionPoint(E')(E1')(F')(G'){S2}
+\psline[linestyle=solid,linecolor=blue](S2)(G')(G1')%(F1')(E1')(E')
+{%
+\psset{linejoin=2,fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue}
+\pspolygon[linestyle=none](K')(L')(L1')(K1')
+\pspolygon[linestyle=dashed](A')(B')(C')(D')(E')(F')(G')(H')(I')(J')(K')(L')
+\pspolygon(A')(B')(B1')(A1')
+\pspolygon(B')(C')(C1')(B1')
+\pspolygon(C')(D')(D1')(C1')
+\pspolygon(D')(E')(E1')(D1')
+\pspolygon[linestyle=none](F')(G')(G1')(F1')
+\pspolygon[opacity=0.5](A1')(B1')(C1')(D1')(E1')(F1')(G1')(H1')(I1')(J1')(K1')(L1')
+}
+\end{pspicture}}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,6)
+{\psset{phi=30}
+%------ Eckpunkte vom Aufriss --------------
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,5){4}{C}{C'}
+\pstransTSK(1,5){4}{D}{D'}
+%--------------------------------------------
+}
+\psIntersectionPoint(A)(B')(B)(A'){S1}
+\psIntersectionPoint(C)(D')(D)(C'){S2}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.5,linestyle=none](A)(B)(B')(A')
+{\psset{linestyle=dashed,dash=4pt 2pt,linewidth=0.9pt,linecolor=black}
+\pcline(A')(B')
+\pcline(A')(D')
+\pcline(A)(A')
+\pcline(A)(B')
+\pcline(B)(A')
+\pcline(D)(C')
+\pcline(C)(D')
+\pcline(S1)(S2)
+}
+\pcline(B)(B')
+\pcline(C)(C')
+\pcline(D)(D')
+\pcline(B')(C')
+\pcline(C')(D')
+\pcline(A)(S2)
+\pcline(B)(S2)
+\pcline(B')(S2)
+\pcline(A')(S2)
+\qdisk(S2){2pt}\uput{0.3}[90](S2){S}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\begin{LTXexample}[width=6cm]
+\begin{pspicture}[showgrid=true](1,-0.3)(7,6)
+\pnode(4,3){M}
+{\psset{originT={M}}
+\multido{\i=0+10}{36}{\psset{phi=45,vkf=0.5,translineA=true,translineB=true}
+\pstransTS[linecolor=blue,linewidth=0.5pt,linestyle=dashed](2.5;\i){A\i}{A'\i}
+\psdot[dotsize=1.8pt,linecolor=blue](A\i)\psdot[dotsize=1.8pt,linecolor=red](A'\i)
+}
+}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6cm]
+\begin{pspicture}[showgrid=false](1,-0.3)(7,6)
+\pnode(4,3){M}
+{\psset{originT={M}}
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTS[linecolor=blue,linewidth=0.5pt,linestyle=dashed](2.5;\i){A\i}{A'\i}
+\pstransTS(2.5;\n){B\n}{B'\n}
+\psdot[dotsize=1.8pt,linecolor=blue](A\i)\psdot[dotsize=1.8pt,linecolor=red](A'\i)\psline(A\i)(B\n)\psline[linecolor=orange!50](A'\i)(B'\n)
+}
+}
+\rput(M){\pnode(2.665;7){C'}}
+\rput(M){\pnode(2.665;187){D'}}
+\pcline[linecolor=cyan](C')(D')
+\rput(M){\pnode(0.83;97){E'}}
+\rput(M){\pnode(0.83;277){F'}}
+\pcline[linecolor=magenta](E')(F')
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=false](-2,0)(8,6)
+\pnode(4.5,1){Z}\psset{originT={Z}}
+\pstransTS(2;-60){A'}{A}
+\pstransTS(2;0){B'}{B}
+\pstransTS(2;60){C'}{C}
+\pstransTS(2;120){D'}{D}
+\pstransTS(2;180){E'}{E}
+\pstransTS(2;240){F'}{F}
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue,linestyle=none](A)(B)(C)(D)(E)(F)%(G)(H)(I)(J)(K)(L)
+%\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')%(G')(H')
+\psline[linewidth=0.9pt,linecolor=blue](E)(F)(A)(B)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](D)(E)
+
+\pnode(4.5,5){Z}\psset{originT={Z}}
+\pstransTS(2;-60){I'}{I}
+\pstransTS(2;0){J'}{J}
+\pstransTS(2;60){K'}{K}
+\pstransTS(2;120){L'}{L}
+\pstransTS(2;180){M'}{M}
+\pstransTS(2;240){N'}{N}
+\pspolygon[fillstyle=solid,fillcolor=cyan!60,opacity=0.6,linecolor=blue](A)(B)(J)(I)%(E')(F')%(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](B)(C)(K)(J)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](C)(D)(L)(K)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](D)(E)(M)(L)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](E)(F)(N)(M)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.4,linecolor=blue](F)(A)(I)(N)%
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue](I)(J)(K)(L)(M)(N)%(G)(H)(I)(J)(K)(L)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false](-0.5,0.2)(7,5.6)
+\psset{linejoin=2}
+\pnode(2.5,1){Z}\psset{originT={Z}}
+\pstransTS(2;-90){A'}{A}
+\pstransTS(2;-30){B'}{B}
+\pstransTS(2;30){C'}{C}
+\pstransTS(2;90){D'}{D}
+\pstransTS(2;150){E'}{E}
+\pstransTS(2;210){F'}{F}
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue,linestyle=none](A)(B)(C)(D)(E)(F)%(G)(H)(I)(J)(K)(L)
+\psline[linewidth=0.9pt,linecolor=blue](B)(C)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](D)(E)
+\pnode(2.5,5){Z}\psset{originT={Z}}
+\pstransTS(2;-60){I'}{I}
+\pstransTS(2;0){J'}{J}
+\pstransTS(2;60){K'}{K}
+\pstransTS(2;120){L'}{L}
+\pstransTS(2;180){M'}{M}
+\pstransTS(2;240){N'}{N}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A)(B)(J)(I)%(E')(F')%(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](B)(C)(K)(J)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](C)(D)(L)(K)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](D)(E)(M)(L)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](E)(F)(N)(M)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](F)(A)(I)(N)%
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue](I)(J)(K)(L)(M)(N)%(G)(H)(I)(J)(K)(L)
+\psIntersectionPoint(C)(K)(B)(J){SBJ}
+\psIntersectionPoint(E)(M)(F)(N){SFN}
+\psline[linewidth=0.9pt,linecolor=blue](C)(SBJ)
+\psline[linewidth=0.9pt,linecolor=blue](SFN)(M)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false](0,0)(6,6)
+\pnode(3.5,1){Z}\psset{originT={Z}}
+\pstransTS(2;-60){A'}{A}
+\pstransTS(2;0){B'}{B}
+\pstransTS(2;60){C'}{C}
+\pstransTS(2;120){D'}{D}
+\pstransTS(2;180){E'}{E}
+\pstransTS(2;240){F'}{F}
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue,linestyle=none](A)(B)(C)(D)(E)(F)%(G)(H)(I)(J)(K)(L)
+\psline[linewidth=0.9pt,linecolor=blue](E)(F)(A)(B)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](D)(E)
+\pnode(3.5,5){Z}\psset{originT={Z}}
+\pstransTS(1;-60){I'}{I}
+\pstransTS(1;0){J'}{J}
+\pstransTS(1;60){K'}{K}
+\pstransTS(1;120){L'}{L}
+\pstransTS(1;180){M'}{M}
+\pstransTS(1;240){N'}{N}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A)(B)(J)(I)%(E')(F')%(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](B)(C)(K)(J)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](C)(D)(L)(K)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](D)(E)(M)(L)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](E)(F)(N)(M)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](F)(A)(I)(N)%
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue](I)(J)(K)(L)(M)(N)%(G)(H)(I)(J)(K)(L)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](C)(D)(L)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false](0,0)(13,3.5)
+\psset{linejoin=2,linewidth=1pt}
+\psset{transcolor=black,translinestyle=solid}%
+\pstransTSK(0,0){3}{A}{A'}%
+\pstransTSK(6,0){3}{B}{B'}%
+\pstransTSK(5,3){3}{C}{C'}%
+\psline[linestyle=dashed](A')(B')%
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.3,linewidth=0.9pt,linecolor=black](A)(B)(C)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](A')(A)(C)(C')
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](B)(B')(C')(C)
+\psline(A')(C')(B')%
+\pcline[linecolor=red](C)(C|A)
+\pstransTS(8,3){A}{A'}
+\pstransTS(14,3){B}{B'}
+\pstransTS(13,0){C}{C'}
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.3,linestyle=none](A')(B')(C')
+\psline[linestyle=dashed](A')(B')
+\psline(A')(C')(B')
+{\psset{base=0,originT={0,2}}
+\pstransTS(8,3){D}{D'}
+\pstransTS(14,3){E}{E'}
+\pstransTS(13,0){F}{F'}
+\pstransTS(F|D){K}{K'}
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.3](D')(E')(F')
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](A')(C')(F')(D')
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](C')(B')(E')(F')
+\psline[linestyle=dashed](D')(E')
+\psline(D')(F')(E')
+\psline(C')(F')
+}
+{\psset{phi=-135,transcolor=black}
+\pstransTSK(A'){3}{G'}{G}
+\pstransTSK(B'){3}{H'}{H}
+\pstransTSK(D'){3}{I'}{I}
+\pstransTSK(E'){3}{J'}{J}
+\pspolygon(G)(H)(J)(I)
+}
+\pspolygon(B')(H)(J)(E')
+\pspolygon(A')(G)(I)(D')
+\pcline[linecolor=red](F')(K')
+%}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}(-5,-3)(5,5)
+\psset{linejoin=1,base=-2.5,vkf=2 sqrt 2 div}%,translineA=true,translineB=true}
+\psgrid[subgriddiv=2,gridlabels=0,gridcolor=gray!80,gridwidth=0.6pt](-3,-3)(5,5)
+\pstransTS(-2.5,0){A}{A'}
+\pstransTS(-1,1){B}{B'}
+\pstransTS(0,2.5){C}{C'}
+\pstransTS(1,1){D}{D'}
+\pstransTS(2.5,0){E}{E'}
+\pstransTS(1,-1){F}{F'}
+\pstransTS(0,-2.5){G}{G'}
+\pstransTS(-1,-1){H}{H'}
+\psIntersectionPoint(A')(E')(C')(G'){S1}
+\rput(0,5){%
+\pstransTS(-2.5,0){A1}{A1'}
+\pstransTS(-1,1){B1}{B1'}
+\pstransTS(0,2.5){C1}{C1'}
+\pstransTS(1,1){D1}{D1'}
+\pstransTS(2.5,0){E1}{E1'}
+\pstransTS(1,-1){F1}{F1'}
+\pstransTS(0,-2.5){G1}{G1'}
+\pstransTS(-1,-1){H1}{H1'}
+\psIntersectionPoint(A1')(E1')(C1')(G1'){S2}
+}
+%\pspolygon[linestyle=dashed,linecolor=magenta,linewidth=1.5pt](A)(B)(C)(D)(E)(F)(G)(H)
+\pspolygon[fillstyle=solid,fillcolor=green,opacity=0.3](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=cyan,opacity=0.3,linestyle=none](A')(H')(S2)
+\pspolygon[fillstyle=solid,fillcolor=cyan,opacity=0.3,linestyle=none](H')(G')(S2)
+\pspolygon[fillstyle=solid,fillcolor=cyan,opacity=0.3,linestyle=none](G')(F')(S2)
+\pspolygon[fillstyle=solid,fillcolor=cyan,opacity=0.3,linestyle=none](F')(E')(S2)
+\pstransTS(E|C){I1}{I1'}
+\pstransTS(A|C){J1}{J1'}
+%\pspolygon[linestyle=dashed,linecolor=orange,linewidth=1.5pt](A|G)(E|G)(E|C)(A|C)
+%\pspolygon[linestyle=dashed,linecolor=orange,linewidth=1.5pt](A|G)(E|G)(I1')(J1')
+\psline(A')(S2)
+\psline[linestyle=dashed](B')(S2)
+\psline[linestyle=dashed](C')(S2)
+\psline[linestyle=dashed](D')(S2)
+\psline(E')(S2)
+\psline(F')(S2)
+\psline(G')(S2)
+\psline(H')(S2)
+\pcline[linecolor=cyan,linestyle=dashed](A')(E')
+\pcline[linecolor=cyan,linestyle=dashed](C')(G')
+\pcline[linecolor=magenta,linestyle=dashed](S1)(S2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=t,wide]
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=false](-0.5,0)(17,10.4)
+\psset{linejoin=2,phi=30,vkf=0.7}
+
+{\psset{base=-3}
+\multido{\i=0+1,\n=1+1,\ra=-67.5+22.5,\rb=-45+22.5}{14}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,5}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,5}](6;\rb){J\n}{K\n}
+\psline[linecolor=orange!50](E\i)(G\n)
+\psline[linecolor=orange!50](I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=orange,opacity=1](E\i)(G\n)(K\n)(I\i)
+}}
+
+{\psset{translineK=false}%
+\pstransTSK(0,0){1}{A1}{B1}
+\pstransTSK(2,0){1}{A2}{B2}
+\pstransTSK(2,3){1}{A3}{B3}
+\pstransTSK(0,2){1}{A4}{B4}
+%----------------------------
+\pstransTSK(0,0){6}{A1}{C1}
+\pstransTSK(2,0){6}{A2}{C2}
+\pstransTSK(2,3){6}{A3}{C3}
+\pstransTSK(0,2){6}{A4}{C4}
+}
+\psline[linestyle=dashed](C1)(C4)
+\psline[linestyle=dashed](B1)(C1)(C2)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=0.7](B1)(B2)(B3)(B4)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=0.7](B2)(C2)(C3)(B3)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=120,hatchsep=1.5pt](B4)(B3)(C3)(C4)
+%----------------------------
+\pstransTSK(2,0){6}{A5}{C5}
+\pstransTSK(6,0){6}{A6}{C6}
+\pstransTSK(6,4){6}{A7}{C7}
+\pstransTSK(4,6){6}{A8}{C8}
+\pstransTSK(2,4){6}{A9}{C9}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.2](C5)(C6)(C7)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.2](C7)(C8)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.7](A5)(A6)(A7)(A9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.7](A7)(A8)(A9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.7](A6)(C6)(C7)(A7)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=45,hatchsep=1.5pt](A7)(C7)(C8)(A8)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=135,hatchsep=1.5pt](A9)(A8)(C8)(C9)
+%----------------------------
+\pstransTSK(6,0){2}{A10}{C10}
+\pstransTSK(8,0){2}{A11}{C11}
+\pstransTSK(8,8){2}{A12}{C12}
+\pstransTSK(6,8){2}{A13}{C13}
+\pstransTSK(8.2,8){-0.2}{A14}{B14}
+\pstransTSK(5.8,8){-0.2}{A15}{B15}
+\pstransTSK(8.2,8){2.2}{A14}{C14}
+\pstransTSK(5.8,8){2.2}{A15}{C15}
+\pstransTSK[translineK=false](8,10){2}{A16}{C16}
+\pstransTSK[translineK=false](6,10){2}{A17}{C17}
+\psIntersectionPoint(A16)(C17)(A17)(C16){SB1}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.2](C10)(C11)(C12)(C13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.7](A10)(A11)(A12)(A13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.7](A11)(C11)(C12)(A12)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.2,hatchangle=45,hatchsep=1.5pt](C14)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.2,hatchangle=45,hatchsep=1.5pt](B15)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=45,hatchsep=1.5pt](B14)(B15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=45,hatchsep=1.5pt](B14)(C14)(SB1)
+
+{\psset{base=-3}
+\multido{\i=0+1,\n=1+1,\ra=-67.5+22.5,\rb=-45+22.5}{4}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,5}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,5}](6;\rb){J\n}{K\n}
+\psline[linecolor=orange!50](E\i)(G\n)
+\psline[linecolor=orange!50](I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=orange,opacity=1](E\i)(G\n)(K\n)(I\i)
+}}
+\end{pspicture}}
+\end{LTXexample}
+
+\newpage
+
+\begin{LTXexample}[pos=t,wide]
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=false](-2,-2.5)(6,6)
+\psset{xMin=0,yMin=0,zMin=0,xMax=11,yMax=11,zMax=4,Alpha=155,Beta=20,Dx=1,Dy=1,Dz=1,arrowsize=.2,arrowinset=0.1,coorType=1,xThreeDunit=0.5,phi=180 155 sub}%
+\pstThreeDPlaneGrid[planeGrid=xy,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=7](0,0)(7,7)%
+%--------------------------------------
+\multido{\i=0+1}{5}{%
+\multido{\n=0+1}{5}{%
+\multido{\r=0+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{blue}}}}
+%--------------------------------------
+\multido{\i=0+1}{2}{%
+\multido{\n=0+1}{5}{%
+\multido{\r=2+1}{3}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{blue}}}}
+%--------------------------------------
+\multido{\i=2+1}{3}{%
+\multido{\n=0+1}{2}{%
+\multido{\r=2+1}{3}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{blue}}}}
+%\pstPlanePut[plane=xy](6,1,0){\fbox{\Huge\red xy plane}}
+\end{pspicture}
+}
+\end{LTXexample}
+
+\newpage
+
+\begin{LTXexample}[pos=t,wide]
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=false](-2,-2.5)(6,6)
+\psset{xMin=0,yMin=0,zMin=0,xMax=11,yMax=11,zMax=4,Alpha=135,Beta=20,Dx=1,Dy=1,Dz=1,arrowsize=.2,arrowinset=0.1,coorType=1,xThreeDunit=0.5,opacity=0.4,hideline=true}%\
+\pstThreeDPlaneGrid[planeGrid=xy,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=7](0,0)(7,7)%
+%--------------------------------------
+\multido{\i=0+1}{6}{%
+\multido{\n=0+1}{6}{%
+\multido{\r=0+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{green}}}}
+%--------------------------------------
+\multido{\i=1+1}{4}{%
+\multido{\n=1+1}{4}{%
+\multido{\r=2+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{green}}}}
+%--------------------------------------
+\multido{\i=2+1}{2}{%
+\multido{\n=2+1}{2}{%
+\multido{\r=4+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{green}}}}
+\end{pspicture}
+}
+\end{LTXexample}
+
+\newpage
+
+\pstVerb{/radiusT 2 22.5 cos mul def}
+\pstVerb{/deltaDach 10 2 22.5 sin mul sub def}
+\pstVerb{/deltaDachT 10 2 22.5 sin mul dup 2 sqrt div add sub def}
+
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=true](0,-1)(24,20)
+\psset{linejoin=2,phi=25,vkf=0.7,opacity=1}
+
+\pstransTS(4,0){E01'}{E01}
+\pstransTS(12,0){E02'}{E02}
+\pstransTS(12,5){E03'}{E03}
+\pstransTS(16,5){E04'}{E04}
+\pstransTS(16,11){E05'}{E05}
+\pstransTS(12,11){E06'}{E06}
+\pstransTS(12,12){E07'}{E07}
+\pstransTS(4,12){E08'}{E08}
+\pstransTS(4,11){E09'}{E09}
+\pstransTS(0,11){E10'}{E010}
+\pstransTS(0,5){E011'}{E011}
+\pstransTS(4,5){E012'}{E012}
+\rput(0,7){%
+\pstransTS(4,0){E11'}{E11}
+\pstransTS(12,0){E12'}{E12}
+\pstransTS(12,5){E13'}{E13}
+\pstransTS(16,5){E14'}{E14}
+\pstransTS(16,11){E15'}{E15}
+\pstransTS(12,11){E16'}{E16}
+\pstransTS(12,12){E17'}{E17}
+\pstransTS(4,12){E18'}{E18}
+\pstransTS(4,11){E19'}{E19}
+\pstransTS(0,11){E110'}{E110}
+\pstransTS(0,5){E111'}{E111}
+\pstransTS(4,5){E112'}{E112}
+}
+\multido{\i=1+1,\n=2+1}{11}{%
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E0\i)(E0\n)(E1\n)(E1\i)
+}
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E012)(E01)(E11)(E112)
+
+\rput(0,15){%
+\pstransTS[originT={8,8},base=-8](0,0){T'3}{T3}
+}
+\rput(0,19){%
+\pstransTS[originT={8,1},base=-1](0,0){TV'3}{TV3}
+}
+
+\rput(0,10){%
+\multido{\i=0+1,\r=-90+90}{4}{%
+\pstransTS[originT={8,8},base=-8](!radiusT \r\space PtoC){DM'\i}{DM\i}
+}
+\pstransTS(16,8){DMa1'}{DMa1}
+\pstransTS(8,12){DMa2'}{DMa2}
+\pstransTS(0,8){DMa3'}{DMa3}
+\pstransTS(8,0){DMa4'}{DMa4}
+}
+
+\rput(!0 deltaDach){%
+\multido{\i=1+1,\r=-22.5+45}{8}{%
+\pstransTS[originT={8,8},base=-8](2;\r){DMb\i'}{DMb\i}
+}
+}
+\rput(!0 deltaDachT){%
+\multido{\i=1+1,\r=-45+90}{4}{%
+\pstransTS[originT={8,8},base=-8](! radiusT \r\space PtoC){DMc\i'}{DMc\i}
+}
+}
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa3)(E110)(E19)(DMc3)(DMb5)(DM3)% hinters Dach linkes Seitenschiff
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa2)(E18)(E19)(DMc3)(DMb4)(DM2)% hinters Dach links
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa2)(E17)(E16)(DMc2)(DMb3)(DM2)% hinters Dach rechts
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa1)(E15)(E16)(DMc2)(DMb2)(DM1)% hinters Dach rechtes Seitenschiff
+
+%--- Hinterer Turm -----------------------------------
+\multido{\i=0+1,\n=1+1,\ra=22.5+45,\rb=67.5+45}{8}{%
+\rput(0,7){%
+\pstransTS[originT={8,8},base=-8](2;\ra){T1'\i}{T1\i}
+\pstransTS[originT={8,8},base=-8](2;\rb){Tb1'\n}{Tb1\n}
+}
+%-------------------------------------------------
+\rput(0,13){%
+\pstransTS[originT={8,8},base=-8](2;\ra){T2'\i}{T2\i}
+\pstransTS[originT={8,8},base=-8](2;\rb){Tb2'\n}{Tb2\n}
+\pstransTS[originT={8,8},base=-8](2.1;\ra){E'\i}{E\i}
+\pstransTS[originT={8,8},base=-8](2.1;\rb){F'\n}{F\n}
+}
+%\psline(T2\i)(Tb2\n)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](T1\i)(Tb1\n)(Tb2\n)(T2\i) % Seitenteile des hinteren Turms
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](T3)(E\i)(F\n)% Dach des hinteren Turms
+}
+%--------------------------------------------------------------
+\pspolygon[fillstyle=solid,fillcolor=BrickRed,opacity=1](T3)(E6)(F7)% Letztes Dachteil des hinteren Turms
+
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa3)(E111)(E112)(DMc4)(DMb6)(DM3)% vorderes Dach linkes Seitenschiff
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa1)(E14)(E13)(DMc1)(DMb1)(DM1)% vorderes Dach rechtes Seitenschiff
+
+
+
+%--- Vorderer Turm -----------------------------------
+\multido{\i=0+1,\n=1+1,\rA=22.5+45,\rB=67.5+45}{8}{%
+\pstransTS[originT={8,1},base=-1](2;\rA){A'\i}{A\i}
+\pstransTS[originT={8,1},base=-1](2;\rB){B'\n}{B\n}
+\rput(0,13){%
+\pstransTS[originT={8,1},base=-1](2;\rA){C'\i}{C\i}
+\pstransTS[originT={8,1},base=-1](2;\rB){D'\n}{D\n}
+\pstransTS[originT={8,1},base=-1](2.1;\rA){E'\i}{E\i}
+\pstransTS[originT={8,1},base=-1](2.1;\rB){F'\n}{F\n}
+}
+\pspolygon[fillstyle=solid,fillcolor=brown!30](A\i)(B\n)(D\n)(C\i) % Seitenteile des vorderen Turms
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](TV3)(E\i)(F\n) % Dach des vorderen Turms
+}
+\pspolygon[fillstyle=solid,fillcolor=BrickRed,opacity=1](TV3)(E6)(F7)% Letztes Dachteil des vorderen Turms
+
+\psIntersectionPoint(A4)(A5)(E01)(E02){SP01}%linker unterer Schnittpunkt der Au{\ss}enwand mit dem vorderen Turm
+\psIntersectionPoint(A6)(A7)(E01)(E02){SP02}%rechter unterer Schnittpunkt der Au{\ss}enwand mit dem vorderen Turm
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E01)(SP01)(SP01|0,9.4)(E11)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E02)(E12)(SP02|0,9.4)(SP02)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E02)(E03)(E13)(E12)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E03)(E04)(E14)(E13)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E04)(E05)(E15)(DMa1)(E14)
+
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](C7|0,10)(SP02|0,9.4)(E12)(E13)(DMc1)(DMb8)%(DM0)% vorderes Dach rechts
+\end{pspicture}
+}
+
+
+
+\psscalebox{1}{%
+\begin{pspicture}[showgrid=false](-0.5,-3)(12,14.4)
+\psset{linejoin=2,phi=35,vkf=0.5}
+\pstransTSK[translineK=false](-3,0){11}{GR1}{GR1'}
+\pstransTSK[translineK=false](11,0){11}{GR2}{GR2'}
+\pstransTSK[translineK=false](-3,0){-8}{GR3}{GR3'}
+\pstransTSK[translineK=false](11,0){-8}{GR4}{GR4'}
+\pspolygon[fillstyle=solid,fillcolor=green!60!black!80,linestyle=none](GR1')(GR2')(GR4')(GR3')
+
+{\psset{base=-3}
+\multido{\i=0+1,\n=1+1,\ra=-45+22.5,\rb=-22.5+22.5}{12}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,4}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,4}](6;\rb){J\n}{K\n}
+\psline(E\i)(G\n)
+\psline(I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=gray,opacity=1](E\i)(G\n)(K\n)(I\i)
+}}
+
+{\psset{translineK=false}%
+\pstransTSK(0,0){1}{A1}{B1}
+\pstransTSK(2,0){1}{A2}{B2}
+\pstransTSK(2,3){1}{A3}{B3}
+\pstransTSK(0,2){1}{A4}{B4}
+%----------------------------
+\pstransTSK(0,0){6}{A1}{C1}
+\pstransTSK(2,0){6}{A2}{C2}
+\pstransTSK(2,3){6}{A3}{C3}
+\pstransTSK(0,2){6}{A4}{C4}
+}
+\psline[linestyle=dashed](C1)(C4)
+\psline[linestyle=dashed](B1)(C1)(C2)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=1](B1)(B2)(B3)(B4)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=1](B2)(C2)(C3)(B3)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=-63.5,hatchsep=1.5pt](B4)(B3)(C3)(C4)
+%----------------------------
+\pstransTSK(2,0){6}{A5}{C5}
+\pstransTSK(6,0){6}{A6}{C6}
+\pstransTSK(6,4){6}{A7}{C7}
+\pstransTSK(4,6){6}{A8}{C8}
+\pstransTSK(2,4){6}{A9}{C9}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](C5)(C6)(C7)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](C7)(C8)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A6)(C6)(C7)(A7)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=135,hatchsep=1.5pt](A9)(A8)(C8)(C9)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](A7)(C7)(C8)(A8)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A5)(A6)(A7)(A8)(A9)
+%\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A7)(A8)(A9)
+%----------------------------
+\pstransTSK(6,0){2}{A10}{C10}
+\pstransTSK(8,0){2}{A11}{C11}
+\pstransTSK(8,10){2}{A12}{C12}
+\pstransTSK(6,10){2}{A13}{C13}
+\pstransTSK(8.1,10){-0.1}{A14}{B14}
+\pstransTSK(5.9,10){-0.1}{A15}{B15}
+\pstransTSK(8.1,10){2.1}{A14}{C14}
+\pstransTSK(5.9,10){2.1}{A15}{C15}
+\pstransTSK[translineK=false](8,11.5){2}{A16}{C16}
+\pstransTSK[translineK=false](6,11.5){2}{A17}{C17}
+\psIntersectionPoint(A16)(C17)(A17)(C16){SB1}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](C10)(C11)(C12)(C13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](A10)(A11)(A12)(A13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](A11)(C11)(C12)(A12)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](C14)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B15)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B14)(B15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B14)(C14)(SB1)
+
+{\psset{base=-3,opacity=1}
+\multido{\i=0+1,\n=1+1,\ra=-45+22.5,\rb=-22.5+22.5}{3}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,4}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,4}](6;\rb){J\n}{K\n}
+\psline(E\i)(G\n)
+\psline(I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=gray](E\i)(G\n)(K\n)(I\i)
+}}
+
+%----------- T\"{u}r Nebengeb\"{a}ude -------------------------
+\pstransTSK[translineK=false](1,0){1}{TL}{TL'}
+\rput(TL'){%
+\pscustom[fillstyle=solid,fillcolor=brown]{%
+\psline(0.2,0)(-0.2,0)(-0.2,0.4)
+\psarcn(0.2,0.4){0.4}{180}{120}
+\psarcn(-0.2,0.4){0.4}{60}{0}
+\closepath%
+}
+\psline[linewidth=0.5pt](0,0)(0,0.75)
+\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
+\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
+}
+%----------- Haupt-T\"{u}r ---------------------------------
+\rput(4,0){%
+\psscalebox{2.5 2}%
+{%\psset{unit=2}%
+\psset{linewidth=0.25pt}
+\pscustom[fillstyle=solid,fillcolor=brown]{%
+\psline(0.2,0)(-0.2,0)(-0.2,0.4)
+\psarcn(0.2,0.4){0.4}{180}{120}
+\psarcn(-0.2,0.4){0.4}{60}{0}
+\closepath%
+}
+\psline[linewidth=0.25pt](0,0)(0,0.75)
+\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
+\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
+}}
+
+%------- Uhr -------------------------
+\pnode(7,7.8){UZ}
+
+{\psset{originT={UZ},base=1,deltaphi=0}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX(0.3;50){zg1}{zg1'}
+\pstransTSX(0.5;-36){zg2}{zg2'}
+
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1')(zg1')
+\psline[linecolor=yellow!90!black!70]{c-c}(U1')(zg2')
+
+\multido{\i=0+30,\n=0+30}{12}{%
+%\psset{translineA=true,translineB=true}
+\pstransTSX(0.43;\i){A\i}{A'\i}
+\pstransTSX(0.57;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)
+\psline(A\i)(B\n)}
+
+\pscircle(UZ){0.5}
+\rput(UZ){%
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+}
+
+%------- Turmfenster und \"{O}ffnungen oben ------------------------
+
+\pstransTSX(-0.15,0.75){FU1}{FU1'}
+\pstransTSX(0.15,0.75){FU2}{FU2'}
+\pstransTSX(0.15,1.5){FU3}{FU3'}
+\pstransTSX(-0.15,1.5){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+\pstransTSX(-0.65,0.75){FUL1}{FUL1'}
+\pstransTSX(-0.35,0.75){FUL2}{FUL2'}
+\pstransTSX(-0.35,1.5){FUL3}{FUL3'}
+\pstransTSX(-0.65,1.5){FUL4}{FUL4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUL1)(FUL2)(FUL3)(FUL4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUL1')(FUL2')(FUL3')(FUL4')
+
+\pstransTSX(0.65,0.75){FUR1}{FUR1'}
+\pstransTSX(0.35,0.75){FUR2}{FUR2'}
+\pstransTSX(0.35,1.5){FUR3}{FUR3'}
+\pstransTSX(0.65,1.5){FUR4}{FUR4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUR1)(FUR2)(FUR3)(FUR4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUR1')(FUR2')(FUR3')(FUR4')
+
+\pstransTSX(-0.05,-2){FU1}{FU1'}
+\pstransTSX(0.05,-2){FU2}{FU2'}
+\pstransTSX(0.05,-2.3){FU3}{FU3'}
+\pstransTSX(-0.05,-2.3){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+\pstransTSX(-0.05,-4){FU1}{FU1'}
+\pstransTSX(0.05,-4){FU2}{FU2'}
+\pstransTSX(0.05,-4.3){FU3}{FU3'}
+\pstransTSX(-0.05,-4.3){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+\pstransTSX(-0.05,-6){FU1}{FU1'}
+\pstransTSX(0.05,-6){FU2}{FU2'}
+\pstransTSX(0.05,-6.3){FU3}{FU3'}
+\pstransTSX(-0.05,-6.3){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+}
+
+%------- Turm-T\"{u}r ---------------------------
+\rput(7,0){%
+\pscustom[fillstyle=solid,fillcolor=brown]{%
+\psline(0.2,0)(-0.2,0)(-0.2,0.4)
+\psarcn(0.2,0.4){0.4}{180}{120}
+\psarcn(-0.2,0.4){0.4}{60}{0}
+\closepath%
+}
+\psline[linewidth=0.5pt](0,0)(0,0.75)
+\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
+\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
+}
+
+
+%---------- rundes Haupt-Fenster ----------------------
+\pscircle[fillstyle=solid,fillcolor=black!70](4,2.7){0.45}
+
+%------- Kreuz -----------------------------------------
+\psline[linewidth=2.5pt]{c-c}(4,3.5)(4,5)
+\psline[linewidth=2.5pt]{c-c}(3.58,4.5)(4.42,4.5)
+
+%---------- Weg -----------------------------------------
+\pstransTSK[translineK=false](3.5,0){-8}{W1}{W1'}
+\pstransTSK[translineK=false](4.5,0){-8}{W2}{W2'}
+\pspolygon[fillstyle=solid,fillcolor=gray!50,linestyle=none](W1)(W1')(W2')(W2)
+
+
+{\psset{translineK=false,linestyle=none}
+\multido{\i=1+1,\n=1+1}{8}{%
+\pstransTSK(3.5,0){1 \i\space sub}{WM1a\i}{WM1a'\i}
+\pstransTSK(3.5,0){0.5 \i\space sub}{WM1\i}{WM1'\i}
+\pstransTSK(3.75,0){1 \i\space sub}{WM2a\i}{WM2a'\i}
+\pstransTSK(3.75,0){0.7 \i\space sub}{WM2\i}{WM2'\i}
+\pstransTSK(4.0,0){1 \i\space sub}{WM3a\i}{WM3a'\i}
+\pstransTSK(4.0,0){0.5 \i\space sub}{WM3\i}{WM3'\i}
+\pspolygon[fillstyle=solid,fillcolor=green!50,opacity=1](WM1a'\i)(WM1'\i)(WM2'\i)(WM2a'\i)
+\pspolygon[fillstyle=solid,fillcolor=black!60,opacity=1](WM1'\i)(WM2'\i)(WM3'\i)
+\pspolygon[fillstyle=solid,fillcolor=blue!50,opacity=1](WM2a'\i)(WM2'\i)(WM3'\i)(WM3a'\i)
+\pstransTSK(4,0){0.5 \n\space sub}{WM4a\n}{WM4a'\n}
+\pstransTSK(4,0){-\n}{WM4\n}{WM4'\n}
+\pstransTSK(4.25,0){0.5 \n\space sub}{WM5a\n}{WM5a'\n}
+\pstransTSK(4.25,0){.2 \n\space sub}{WM5\n}{WM5'\n}
+\pstransTSK(4.5,0){0.5 \n\space sub}{WM6a\n}{WM6a'\n}
+\pstransTSK(4.5,0){-\n}{WM6\n}{WM6'\n}
+\pspolygon[fillstyle=solid,fillcolor=green!50,opacity=1](WM4a'\n)(WM4'\n)(WM5'\n)(WM5a'\n)
+\pspolygon[fillstyle=solid,fillcolor=black!60,opacity=1](WM4'\n)(WM5'\n)(WM6'\n)
+\pspolygon[fillstyle=solid,fillcolor=blue!50,opacity=1](WM5a'\n)(WM5'\n)(WM6'\n)(WM6a'\n)
+}}
+\end{pspicture}
+}
+
+
+\def\colA{black!20}
+\def\colB{black!50}
+\def\colC{black!30}
+\def\Pfeiler{%
+%--------- Pfeiler -------------
+\pstransTSK(4,0){8}{A}{A'}
+\pstransTSK(10,0){8}{B}{B'}
+\pstransTSK(9,10){8}{C}{C'}
+\pstransTSK(5,10){8}{D}{D'}
+\pstransTSK(5,13){8}{E}{E'}
+\pstransTSK(9,13){8}{F}{F'}
+\pstransTSK(14,18){8}{G}{G'}
+\pstransTSK(14,21){8}{H}{H'}
+\pstransTSK(0,21){8}{I}{I'}
+\pstransTSK(0,18){8}{J}{J'}
+\pstransTSK(0,13){8}{M1}{M1'}
+\pstransTSK(14,13){8}{M2}{M2'}
+%----------------------------------------
+\pspolygon[fillcolor=\colA](A)(B)(C)(D)
+\pspolygon[fillcolor=\colB](B)(B')(C')(C)
+\pspolygon[fillcolor=\colA](D)(C)(F)(E)
+\pspolygon[fillcolor=\colB](C)(C')(F')(F)
+%----------------------------------------
+\pscustom[fillcolor=\colB]{%
+\psarcn(M2'){5}{180}{90}
+\psline(F|G')(F)(F')
+}
+%----------------------------------------
+\pscustom[fillcolor=\colA]{%
+\psarc(M2){5}{90}{180}
+\psarc(M1){5}{0}{90}
+\psline(I)(H)
+}
+%----------------------------------------
+\pspolygon[fillcolor=\colB](G)(G')(H')(H)
+\pspolygon[fillcolor=\colC](I)(H)(H')(I')
+}
+
+\begin{pspicture}[showgrid=false](0,-.5)(19,14)
+\psset{linejoin=2,transcolor=black,translineK=false,arrowlength=2,arrowsize=0.15,arrowinset=0.02,fillstyle=solid,unit=0.6}
+\Pfeiler
+\psdot(M2)
+\rput(M2){\pnode(5;30){R}}
+\pcline{->}(M2)(R)
+\naput[nrot=:U,labelsep=1pt]{$r=5,0\,\text{m}$}
+\pcline[linestyle=dashed]([nodesep=-1.1]J)(J)
+\pcline[linestyle=dashed]([nodesep=-1.1]I)(I)
+\pcline[linestyle=dashed]([nodesep=-1.8]E)(E)
+\pcline[linestyle=dashed]([nodesep=-1.8]D)(D)
+\pcline[linestyle=dashed]([nodesep=-0.8]A)(A)
+\pcline[linestyle=dashed]([offset=-0.8]A)(A)
+\pcline[linestyle=dashed]([offset=-0.8]B)(B)
+\pcline[linestyle=dashed]([nodesep=0.8]B)(B)
+\pcline[linestyle=dashed]([nodesep=0.8]B')(B')
+\pcline[linestyle=dashed]([nodesep=0.8]C)(C)
+\pcline[linestyle=dashed]([nodesep=0.8]C')(C')
+\pcline[offset=-0.7]{<->}(I)(J)
+\ncput*{$3\,\text{m}$}
+\pcline[offset=1.5]{<->}(D)(E)
+\ncput*{$3\,\text{m}$}
+\pcline[offset=.5]{<->}(A)([nodesep=-1]D)
+\ncput*{$10\,\text{m}$}
+\pcline[offset=-.5]{<->}(A)(B)
+\ncput*{$6,0\,\text{m}$}
+\pcline{<->}([nodesep=0.7]B)([nodesep=0.7]B')
+\ncput*[nrot=:U]{$8,0\,\text{m}$}
+\pcline{<->}([nodesep=0.7]C)([nodesep=0.7]C')
+\ncput*[nrot=:U,fillcolor=black!50]{$8,0\,\text{m}$}
+\pcline[offset=0.5]{<->}(D)(C)
+\ncput*[fillcolor=black!20]{$4,0\,\text{m}$}
+%----------------------------------------
+\def\colA{white}
+\def\colB{white}
+\def\colC{white}
+\rput(14,0){%
+\Pfeiler
+\pcline[linestyle=dashed]([nodesep=0.8]G)(G)
+\pcline[linestyle=dashed]([nodesep=0.8]G')(G')
+\pcline{<->}([nodesep=0.7]G)([nodesep=0.7]G')
+\ncput*[nrot=:U]{$8,0\,\text{m}$}
+}
+\end{pspicture}
+
+
+
+\begin{pspicture}[showgrid=false](-0.5,-0.5)(15,11)
+\psset{linejoin=2,transcolor=black}
+%--------- Torbogen -------------
+\pstransTSK(0,0){5}{A}{A'}
+\pstransTSK(1.5,0){5}{B}{B'}
+\pstransTSK[translineK=false](6.5,2.5){5}{C}{C'}
+\pstransTSK(11.5,0){5}{D}{D'}
+\pstransTSK(13,0){5}{E}{E'}
+\pstransTSK(0,9){5}{F}{F'}
+\pstransTSK(13,9){5}{G}{G'}
+\pscustom[fillstyle=solid,fillcolor=brown!90]{%
+\psline(A)(B)(B')
+\psarcn(C'){5}{180}{110}
+\psline(F)(A)
+}
+\pscustom[fillstyle=solid,fillcolor=brown!60]{%
+\psline(A)(B)
+\psarcn(C){5}{180}{0}
+\psline(D)(E)(G)(F)(A)
+}
+\psdot[dotstyle=o,dotsize=5pt](C)
+\psdot[dotstyle=o,dotsize=5pt](C')
+\pspolygon[fillstyle=solid,fillcolor=brown!90](E)(E')(G')(G)
+\pspolygon[fillstyle=solid,fillcolor=brown!40](F)(G)(G')(F')
+\psline(B|C)([nodesep=0.3]B|C)
+\psline(D|C)([nodesep=-0.3]D|C)
+\psline(B'|C')([nodesep=0.3]B'|C')
+\end{pspicture}
+
+\begin{pspicture}[showgrid=false](0.75,-.5)(19,5)
+\psscalebox{0.2}{%
+\psset{linejoin=2,transcolor=black,translineK=false,arrowlength=2,arrowsize=0.15,arrowinset=0.02,fillstyle=solid,linecolor=black!60}
+\rput(0,0){\Pfeiler}\rput(14,0){\Pfeiler}\rput(28,0){\Pfeiler}\rput(42,0){\Pfeiler}\rput(56,0){\Pfeiler}\rput(70,0){\Pfeiler}\rput(84,0){\Pfeiler}
+}
+\end{pspicture}
+
+
+\clearpage
+\section{Liste aller optionalen Argumente f\"{u}r \texttt{pst-perspective}}
+
+\xkvview{family=pst-perspective,columns={key,type,default}}
+
+
+
+\bgroup
+\raggedright
+\nocite{*}
+\bibliographystyle{plain}
+\bibliography{pst-perspective-doc}
+\egroup
+
+\printindex
+
+
+\end{document}
diff --git a/graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.pdf b/graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.pdf
new file mode 100644
index 0000000000..f2d306449e
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.tex b/graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.tex
new file mode 100644
index 0000000000..96badb0ad2
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/pst-perspective-docEN.tex
@@ -0,0 +1,1810 @@
+\PassOptionsToPackage{dvipsnames}{xcolor}
+\PassOptionsToPackage{distiller}{pstricks}
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,
+ smallheadings, headexclude,footexclude,oneside]{pst-doc}
+\usepackage[utf8]{inputenc}
+\usepackage[dvipsnames]{xcolor} %% Farben sind im Dokument xcolor.pdf definiert
+\usepackage{multido,pst-grad,pst-eucl,pst-3dplot,pstricks-add}
+\usepackage{pst-perspective}
+
+
+\def\fileversion{1.05}
+\let\pstPerspectiveFV\fileversion
+\renewcommand\bgImage{\psscalebox{0.85}{%
+\begin{pspicture}[showgrid=false](0.5,-0.5)(11.5,8.5)
+\begin{psclip}%
+{\psframe[linestyle=none](0.25,-0.25)(11.35,8.35)}
+\psgrid[subgriddiv=2,gridlabels=0,gridwidth=0.7pt,gridcolor=black!70,subgridwidth=0.6pt,subgridcolor=black!40](-1,-1)(13,10)
+\end{psclip}
+{\psset{translineA=true,translineB=true,linestyle=dashed,dash=5pt 3pt,linecolor=blue,linejoin=2}
+%------ Vertices of the octagon -------------
+\pstransTS(3,0){A}{A'}
+\pstransTS(7,0){B}{B'}
+\pstransTS(9,2){C}{C'}
+\pstransTS(9,6){D}{D'}
+\pstransTS(7,8){E}{E'}
+\pstransTS(3,8){F}{F'}
+\pstransTS(1,6){G}{G'}
+\pstransTS(1,2){H}{H'}
+%---------------------------------------------
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.4,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.2,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\pcline[linewidth=1.3pt](0,0|O)(11,0|O)
+\psset{toplinewidth=0.5pt,opacity=0.3,vkf=0.4,phi=33,topfillcolor=cyan}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,8,1){4}{4}{4}{green}
+\rput(10,1){\psZylinderTS[opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,%
+gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,8,1){4}{4}{4}{green}
+\end{pspicture}
+}}
+
+\parindent0pt
+
+\lstset{explpreset={pos=l,width=-99pt,overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe={}},language=PSTricks,
+morekeywords={pstransTSK,pstransTSX,pstransTS,pstMarkAngle,psIntersectionPoint,psboxTS,pstThreeDPlaneGrid,psZylinderTS,psCircleTS,psCircleTSX,
+psArcTS,psArcTSX}, escapechar=?}
+
+%\lstset{language=PSTricks,morekeywords={pst-perspective},basicstyle=\footnotesize\ttfamily}
+%
+\begin{document}
+
+\title{\texttt{pst-perspective}}
+\subtitle{Plotting the perspective view of a point; v.\pstPerspectiveFV}
+\author{Thomas S\"{o}ll}
+\docauthor{}
+\date{\today}
+\maketitle
+
+\tableofcontents
+\psset{unit=1cm}
+
+\clearpage
+
+\begin{abstract}
+\noindent
+\LPack{pst-perspective} loads by default the following packages: \LPack{pst-xkey}, and, of course \LPack{pstricks}.
+All should be already part of your local \TeX\ installation. If not, or in case of having older versions, go to \url{http://www.CTAN.org/} and load the latest version.
+
+\vfill\noindent
+Thanks to: \\
+J\"{u}rgen Gilg \\
+Herbert Vo{\ss}
+\end{abstract}
+
+\clearpage
+\section{Introduction}
+
+On the research to draw perspectives of geometrical objects for my classes with PSTricks, I couldn't find a package that fitted all my needs.
+
+For my needs, it should be possible to draw the perspective (an orthogonal parallel projection) with an arbitrarily chosen angle and a variable shortening factor. The setup for the points should alternatively be possible with cartesian or polar coordinates in two dimensions.
+
+The package \texttt{pst-solides3d} wasn't useful, cause it uses central projection.
+
+The package \texttt{pst-3dplot} allows parallel projection, and a shortening factor in one of the dimensions can eventually be chosen, e.\,g. with xThreeDunit, but all points need to be setup with three coordinates. I am not sure about an easy handling of setting up polar coordinates or giving an independent angle for the projection.
+
+With the macro \Lcs{ThreeDput} from the package \texttt{pst-3d}, only planes and lines in three dimensions are realizable---a third coordinate is needed. For my needs, this didn't seem to be too practicable.
+
+I think that with some of the already existing PSTricks packages a realisation of perspectives in the wanted form could have surely been managed. I couldn't see this however and wanted some simple macros, without loading mighty packages.
+
+To make a long story short: I decided to write a small PSTricks package, that will fit all my needs. This package contains only four small macros, so unwanted crashes with other PSTricks packages are not awaited.
+
+
+\section{General}
+
+The described macros should help you to easily draw a perspective of a geometrical object like often used in school.
+
+There are three macros, the first two called \Lcs{pstransTS} and \Lcs{pstransTSX} are used to draw a perspective of a geometrical object laying in the $x,y$-plane and transforms every vertex. The points first get projected orthogonally to the base line (parameter \Lkeyword{base}), parallel to the $x$-axis, and therefrom they get transformed with an arbitrarily chosen angle measured from the positive $x$-axis (parameter \Lkeyword{phi}) and shortened (multiplied with the shortening factor \Lkeyword{vkf}). You then can use these transformed points with its given node names. It is similar with \Lcs{pstransTSX}, but the difference is, that the points are projected orthogonally onto a base line (Parameter \Lkeyword{base}) parallel to the $y$-axis, and therefrom they get transformed with an arbitrarily chosen angle (parameter \Lkeyword{phi}) and shortened (multiplied with the shortening factor \Lkeyword{vkf}). These two cases correspond to a projection of an object of the drawing plane into the $x$-$y$-plane or $x$-$z$-plane.
+
+The third macro \Lcs{pstransTSK} only shifts the points under a given angle \Lkeyword{phi} and shortens the initial distance to the base line with the factor \Lkeyword{vkf}. This macro is perfect, if the edges that need to be transformed, lay in the $x,y$-plane and the transformed edges lead to the back, orthogonal to the $x,y$-plane. Typical examples are the perspectives of a cuboid, square or an upright prism, where the base is in the $x,y$-plane.
+
+Both macros only generate the nodes for the transformed points, but the points itselves are neither drawn nor labeled. This must be done e.\,g. with \Lcs{psdot} and \Lcs{uput}. With booleans we can visualize the subsidiary lines, which show the orthogonal projection onto the base line and from there to the calculated transformed point.
+
+The subsidiary lines can be drawn in different colors, line styles and line widths with some additional optional parameters.
+
+
+\section{The macro \nxLcs{pstransTS}}
+\begin{BDef}
+\Lcs{pstransTS}\OptArgs\Largr{$x_{\rm{A}},y_{\rm{A}}$}\Largb{\rm{A}}\Largb{\rm{A}'}
+\end{BDef}
+
+The macro \Lcs{pstransTS}\OptArgs$(x_{\rm{A}},y_{\rm{A}})$\Largb{\rm{A}}\Largb{\rm{A}'} uses parentheses for the coordinates of the point. These coordinates can be setup in the usual PSTricks ways. The second argument in curly braces is the node name that is now given for this point. The new calculated point gets the node name to be entered as third argument and is needed to be enclosed in curly braces as well.
+
+In the following example the point $\text{A}(1|4)$ is firstly mapped onto the $x$-axis (visualized by the green dashed line) and from there a node named $\text{A}'$ is generated with a projection angle $\varphi=45^{\circ}$ and with half of its initial length \Largr{\rm{vkf}=0.5}.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{translineA=true,translineB=true}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=45^{\circ}$}% draw and label the angle
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\subsection{Choice of the base line}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{base=\dots}}]
+\end{BDef}
+
+We can define the $y$-value of the base line with \Lcs{pstransTS}[\OptArg*{\Lkeyset{base=\dots}}]. The default value is \Lkeyset{base=0}. Using \Lkeyset{base=1} we achieve, that the point is projected to a parallel to the $x$-axis with the equation $y=1$. This case is shown in the following example.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{translineA=true,translineB=true,base=1}
+\pstransTS[base=1](1,4){A}{A'}
+\pnode(0,\ba){O}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+Is the point to be projected below the base line, as shown in the example below ($\text{A}(1|0.5)$ with \Lkeyset{base=3}; \ $3>0.5$), it is not projected with the angle $\varphi$ but with the angle $180^{\circ}+\varphi$. If the angle $\varphi=45^{\circ}$ is chosen, then we get a resulting angle of $225^{\circ}$.
+
+\begin{LTXexample}[wide,width=4cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](-1.5,-0.5)(2,4.4)
+{\psset{base=3,translineA=true,translineB=true,linestyle=dashed,transAcolor=red,transBcolor=blue,dash=5pt 4pt}
+\pnode(0,\ba){O}
+\pstransTS(1,0.5){A}{A'}
+}
+\pcline[linewidth=1.3pt](-2,0|O)(2,0|O)
+\psdot(A)
+\uput{4pt}[-30]{0}(A){$\text{A}$}
+\psdot[linecolor=brown](A')
+\uput{4pt}[180]{0}(A'){$\text{A}'$}
+\pstMarkAngle[LabelSep=1.2,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=225^{\circ}$}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\subsection{Shifting the origin}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{originT=\{point\}}}]
+\end{BDef}
+
+If we like to give points relative to a certain point, we can setup this point with \Lkeyset{originT=\{Z\}}. The syntax of this point is the usual PSTricks syntax, but it needs to be enclosed in curly braces and the parentheses are omitted. Especially with the usage of polar coordinates this can be profitable. A typical example is the drawing of a regular polygon. The vertices are mostly setup in polar coordinates so that we can rotate the polygon quite easily. For radius and angle we choose $\text{Z}$ as reference point. As shown in later example, it is no big deal to generate an upright prism as well as an oblique prism.
+
+Note, that the base line is shifted as well when shifting of the origin. With \Lkeyset{originT=\{2,3\}} we get the base line $y=3$. With the additional setting of \Lkeyset{base=-2} we additionally shift the base line two units down and finally get $y=1$.
+
+In the following example, we start from $\text{Z}(0|1)$ with a radius of $3$ and an angle of $60^{\circ}$ and a node named $\text{A}$ will be generated. The point $\text{A}$ will now be mapped onto the $x$-axis (\Lkeyset{base=-1}, due to the base was already shifted with the choice of $\text{Z}$ which itself was shifted one unit upwards, see red line) and from there a node named $\text{A}'$ is generated with the angle $\varphi=45^{\circ}$ and with half of its initial length (\Lkeyset{vkf=0.5}).
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{base=-1,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,0){O}% \ba gives the y-value of the base line
+\pnode(0,1){Z}%
+\pnode(4,0|Z){W1}%
+\pstransTS[originT={Z}](3;60){A}{A'}}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[90]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\psdot(Z)% draw point Z
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% label point Z
+\psarc[linestyle=dashed,linecolor=cyan](Z){3}{15}{100}
+\pcline[linecolor=cyan,linestyle=dashed](Z)(A)
+\naput[nrot=:U]{$r=3$}
+\pstMarkAngle[LabelSep=0.8,MarkAngleRadius=1.2,linecolor=cyan,arrows=->]{W1}{Z}{A}{$60^{\circ}$}% draw and label angle
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,0}{A|O}{A'}{$\varphi=45^{\circ}$}% draw and label angle
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\subsection{The base given by a point}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{LowPoint=true},\Lkeyset{LowP=\{point\}}}]
+\end{BDef}
+
+There might arise some difficulties in polar coordinates concerning the $y$-value of the point through which the base line should go, cause it is not explicitly known. This value for the base however can be calculated easily in most cases using RPN.
+
+For more complex points, the described way might be quite complicated. With the options \Lkeyset{LowPoint=true} and \Lkeyset{LowP=point} the base is setup through this point and an explicitly given base is ignored.
+
+Some examples will be visualized in the following examples. Starting from point $\text{Z}(4|4)$ we setup a point relatively to $\text{Z}$ in polar coordinates. Should the base now go through this point (the transformed point matches with this point), some trigonometrical relations might help. We get however the same result when using the options \Lkeyset{LowPoint=true} and \Lkeyset{LowP=point}.
+
+\OptArg*{\Lkeyset{base=292.5 360 sub sin 3 mul}}
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+%------ Vertices of the octagon -------------
+{\pnode(4,4){Z}
+\psset{originT=Z,base=292.5 360 sub sin 3 mul,translineA=true,translineB=true}
+\pstransTS(3;292.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\psdot(A)% draw point A
+\uput{4pt}[0]{0}(A){$\text{A}$} % label point A
+\psdot(B)% draw point B
+\uput{4pt}[90]{0}(B){$\text{B}$} % label point B
+\psdot(B')% draw point B'
+\uput{4pt}[90]{0}(B'){$\text{B}'$} % label point B'
+\psdot(Z)% draw point Z
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% label point Z
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\OptArg*{\Lkeyset{LowPoint=true},\Lkeyset{LowP=\{3;292.5\}}}
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+%------ Vertices of the octagon -------------
+{\pnode(4,4){Z}
+\psset{originT=Z,LowPoint=true,LowP={3;292.5},translineA=true,translineB=true}
+\pstransTS(3;292.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\psdot(A)% draw point A
+\uput{4pt}[0]{0}(A){$\text{A}$} % label point A
+\psdot(B)% draw point B
+\uput{4pt}[90]{0}(B){$\text{B}$} % label point B
+\psdot(B')% draw point B'
+\uput{4pt}[90]{0}(B'){$\text{B}'$} % label point B'
+\psdot(Z)% draw point Z
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% label point Z
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+It must be pointed out, that with the definition of \Lcs{pnode(r;phi)\{point\}} followed by \Lkeyset{LowP=point}, the base is not shifted, which however only becomes noticeable, when the origin was shifted. In this case we write \Lcs{rput(origin)\{}\Lcs{pnode(r;phi)\{point\}}\}.
+
+Referring to the previous example, this looks as follows.
+
+\Lcs{pnode(4,4){Z}} \Lcs{rput(Z)\{}\Lcs{pnode(3;292.5)\{LP\}}\}
+\OptArg*{\Lkeyset{originT=Z},\Lkeyset{LowPoint=true},\Lkeyset{LowP=\{LP\}}}
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+%------ Vertices of the octagon -------------
+{\pnode(4,4){Z}
+\rput(Z){\pnode(3;292.5){LP}}
+\psset{originT=Z,LowPoint=true,LowP={LP},translineA=true,translineB=true}
+\pstransTS(3;292.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\psdot(A)% draw point A
+\uput{4pt}[0]{0}(A){$\text{A}$} % label point A
+\psdot(B)% draw point B
+\uput{4pt}[90]{0}(B){$\text{B}$} % label point B
+\psdot(B')% draw point B'
+\uput{4pt}[90]{0}(B'){$\text{B}'$} % label point B'
+\psdot(Z)% draw point Z
+\uput{4pt}[225]{0}(Z){$\text{Z}$}% label point Z
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+A typical example is the regular octagon, where the vertices can easily be given in polar coordinates. Without changing the base explicitly, it goes through the center.
+
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+\psset{linejoin=2}
+%------ Vertices of the octagon -------------
+{\pnode(4,4){Z}
+\psset{originT=Z,translineA=true,translineB=true}
+\pstransTS(3;22.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\pstransTS(3;112.5){C}{C'}
+\pstransTS(3;157.5){D}{D'}
+\pstransTS(3;202.5){E}{E'}
+\pstransTS(3;247.5){F}{F'}
+\pstransTS(3;292.5){G}{G'}
+\pstransTS(3;337.5){H}{H'}
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.1,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+If we want to have the base through the lower points, we can calculate the base or use a suitable option.
+
+\begin{LTXexample}[wide,pos=t]
+\begin{pspicture}[showgrid=true](1,0.8)(8.5,7)
+\psset{linejoin=2}
+%------ Vertices of the octagon -------------
+{\pnode(4,4){Z}
+\rput(Z){\pnode(3;292.5){LP}}
+\psset{originT=Z,LowPoint=true,LowP={LP},translineA=true,translineB=true}
+\pstransTS(3;22.5){A}{A'}
+\pstransTS(3;67.5){B}{B'}
+\pstransTS(3;112.5){C}{C'}
+\pstransTS(3;157.5){D}{D'}
+\pstransTS(3;202.5){E}{E'}
+\pstransTS(3;247.5){F}{F'}
+\pstransTS(3;292.5){G}{G'}
+\pstransTS(3;337.5){H}{H'}
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.1,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\subsection{Angle of projection}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{phi=30}}].
+\end{BDef}
+
+The angle of projection is $45^{\circ}$ by default. If you like another angle e.\,g. $30^{\circ}$, use the optional argument \Lcs{pstransTS}[\OptArg*{\nxLkeyword{phi=30}}].
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{phi=30,base=0,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=30^{\circ}$}% draw and label angle
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{phi=60,base=0,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\pstMarkAngle[LabelSep=1.5,MarkAngleRadius=0.7,linecolor=blue,arrows=->]{3,\ba}{A|O}{A'}{$\varphi=60^{\circ}$}% draw and label angle
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\newpage
+\subsection{Shortening factor}
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{vkf=0.5}}].
+\end{BDef}
+
+The shortening factor is \Lkeyset{vkf=0.5} by default. This means that the distance from the orthogal projected point to the calculated point only has half the length. A possible example is \Lcs{pstransTS}[\OptArg*{\nxLkeyword{vkf=1.2}}]. We are allowed to calculate the shortening factor in RPN as in the following example:
+
+\Lcs{pstransTS}[\OptArg*{\Lkeyset{vkf=2 sqrt 2 div}}]. The shortening factor is then approximately $0.707$.
+
+\begin{LTXexample}[wide,width=4.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(5,4.4)
+{\psset{vkf=1.2,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(5,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(3,4.4)
+{\psset{vkf=0.5 sqrt,base=0,translineA=true,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\subsection{Subsidiary lines and their options}
+
+With the two booleans \Lkeyset{translineA=true/false} and \Lkeyset{translineB=true/false} the subsidiary lines can be shown or not. Their defaults are \Lkeyset{translineA=false} and \Lkeyset{translineB=false}.
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+\pstransTS(1,4){A}{A'}
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=true,translineB=false,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=false,translineB=true,transAcolor=red,transBcolor=blue}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+Every of the subsidiary lines can individually be setup with three properties: line width, line color and line style. Therefore we define the following options with its defaults.
+
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transAlinewidth=0.7pt}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transAcolor=green}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transAlinestyle=dashed}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transBlinewidth=0.7pt}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transBcolor=blue}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{transBlinestyle=dashed}}]
+\end{BDef}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+\pstransTS[translineA=true,translineB=true,transAlinestyle=solid,transBlinestyle=dotted](1,4){A}{A'}
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=true,translineB=true,transAcolor=brown,transBcolor=cyan}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=3.5cm]
+\begin{pspicture}[showgrid=true,shift=-4.6](0.5,-0.5)(3,4.1)
+{\psset{translineA=true,translineB=true,transAlinewidth=1.2pt,transBlinewidth=2.5pt}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+\pstransTS(1,4){A}{A'}
+}
+\pcline[linewidth=1.3pt](0,0|O)(3,0|O)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\uput{4pt}[45]{0}(A'){$\text{A}'$}% label point A'
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{The macro \nxLcs{pstransTSX}}
+\begin{BDef}
+\Lcs{pstransTSX}\OptArgs\Largr{$x_{\rm{A}},y_{\rm{A}}$}\Largb{\rm{A}}\Largb{\rm{A}'}
+\end{BDef}
+
+The macro \Lcs{pstransTSX}\OptArgs$(x_{\rm{A}},y_{\rm{A}})$\Largb{\rm{A}}\Largb{\rm{A}'} is used like \Lcs{pstransTS}. Also the parameters have the same names.
+The only difference is, that the points are projected on a line parallel to the $y$-axis.
+
+This case we use, when we want to transform points on the lateral face of the perspective. Therefore, the lateral face needs to spread orthogonally backwards related to the $x,y$-plane.
+
+In the following example, the point $\text{A}(0.5|2)$ is projected orthogonally on the line $x=2$ (see green dashed line) und from there with an angle of $\varphi=45^{\circ}$ and with a shortening factor of a \Largr{\rm{vkf}=0.5} a node named $\text{A}'$ is generated.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+{\psset{translineA=true,translineB=true,base=2,symline=0,symX=false}
+\pnode(2,0.5){O}%
+\pstransTSX(0.5,2){A}{A'}
+\pstransTSX(1,1.5){B}{B'}
+\pstransTSX(0,0.5){C}{C'}
+}%
+\pcline[linewidth=1.3pt](2,0)(2,4)% draw base line
+\psdot(A)% draw point A
+\uput{4pt}[135]{0}(A){$\text{A}$} % label point A
+\psdot[linecolor=brown](A')% draw point A'
+\psdot[linecolor=blue](B')% draw point B'
+\psdot[linecolor=red](C')% draw point C'
+\uput{4pt}[90]{0}(A'){$\text{A}'$}% label point A'
+\pnode(3,0.5){P}%
+\pstMarkAngle[LabelSep=1.0,MarkAngleRadius=0.65,linecolor=blue,arrows=->]{P}{O}{C'}{$\scriptstyle 45^{\circ}$}% draw and label angle
+\pcline[linestyle=dashed](O)(P)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{Symmetry of the transformation}
+
+As shown in the example above the points laying in the object left to the base are transformed further away than those laying right. This might disturb, if we want to transform points onto the lateral face. The following example will discuss this problem. It is three o'clock, after the transformation onto the lateral face it is nine o'clock. (Note: \Lkeyset{base=1} means, that the base is $x=2$, cause \Lkeyset{originT=\{1,2\}} shifts the origin, from which the base is counted positive to the right.)
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+\pnode(1,2){UZ}
+{\psset{originT={UZ},base=1,symX=false}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\pscircle(UZ){0.5}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+}
+\end{pspicture}
+\end{LTXexample}
+
+A corresponding symmetrical transformation we get with \Lkeyset{symX=true,symline=0} which is the default. (Note as well, that \Lkeyset{symline=0} gives the symmetry axis relatively to \Lkeyset{originT=\{UZ\}}. Thus, the symmetry axis is $x=1$.)
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+\pnode(1,2){UZ}
+{\psset{originT={UZ},base=1,symX=true,symline=0}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\pscircle(UZ){0.5}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+}
+\end{pspicture}
+\end{LTXexample}
+
+Another effect with the macro \Lcs{pstransTSX} can be achieved by the parameter \Lkeyset{deltaphi=\ldots} with which we can increase or decrease the projection angle for some objects locally and leaving the setting of \Lkeyset{phi=\ldots} globally. \Lkeyset{deltaphi=\ldots} adds/subtracts the given projection angle by that value. The result looks like an object swinging out the lateral face.
+
+\begin{LTXexample}[wide,width=3cm]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(3,4.4)
+\pnode(1,2){UZ}
+{\psset{originT={UZ},base=1,phi=15,symX=true,symline=0}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\pscircle(UZ){0.5}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+{\psset{deltaphi=45}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX[translineA=true,translineB=true](0.3;0){zg1}{zg1'}
+\pstransTSX[translineA=true,translineB=true](0.5;90){zg2}{zg2'}
+%-----------------------------------------------------
+\psline[linecolor=red]{c-c}(U1')(zg1')
+\psline[linecolor=orange]{c-c}(U1')(zg2')
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+}
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\section{The macro \nxLcs{pstransTSK}}
+\begin{BDef}
+\Lcs{pstransTSK}\OptArgs$(x_{\rm{A}},y_{\rm{A}})$\Largb{\rm{length}}\Largb{\rm{A}}\Largb{\rm{A}'}
+\end{BDef}
+
+If the edges that should be transformed run vertically in the $x,y$-plane, they are projected orthogonally to the base line and from there transformed by a chosen angle and eventually by a shortening factor. The orthogonal projection of all points of a vertical edge end in the intersection point of this edge with the base line. Choosing a proper base, the intersection point of the vertical edge with the base line is a vertex of the geometrical object. In that special case it is sufficient to only project one of the vertices of the vertical line---such as doing it, constructing a perspective of the edges vertical to the $x,y$-plane (leading to the back) of a three-dimensional body with a given projection angle and a choden shortening factor. Thus, the projection can be reduced, cause only half of the vertices need to be transformed by a simple shifting.
+
+The macro \Lcs{pstransTSK} shifts a point to be setup in parentheses. The length of the shift is calculated by the value given after it in curly braces multiplied with the shortening factor that is \Lkeyset{vkf=0.5} by default. The angle of the shifting in relation to the horizontal ($x$-axis), $45^{\circ}$ by default, can be varied by \Lkeyset{phi=\ldots}. The subsidiary lines can be shown or hidden. The options of the subsidiary lines can be varied.
+
+The following set of examples will make this clearer.
+
+First we setup the points of a square that lays in $x,y$-plane. These points we give the node names $\text{A}$, $\text{B}$, $\text{C}$ and $\text{D}$. The transformed points are shifted by two units (the length $4$ is multiplied by the shortening factor $0.5$) and the transformed nodes names $\text{A}'$, $\text{B}'$, $\text{C}'$ and $\text{D}'$ are calculated and stored under that names.
+
+\begin{LTXexample}[wide,width=5.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Vertices of the square ---
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+With some other angles this looks as follows:
+
+\begin{LTXexample}[wide,width=6.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Vertices of the square ---
+\pstransTSK[phi=30](1,0){4}{A}{A'}
+\pstransTSK[phi=30](5,0){4}{B}{B'}
+\pstransTSK[phi=30](5,4){4}{C}{C'}
+\pstransTSK[phi=30](1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=5.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Vertices of the square ---
+\psset{phi=60}
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+A change of the shortening factor leads to the following designs.
+
+\begin{LTXexample}[wide,width=5.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Vertices of the square ---
+\psset{vkf=0.25}
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[wide,width=6.5cm]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,5.8)
+%---- Vertices of the square ---
+\psset{vkf=0.75}
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,4){4}{C}{C'}
+\pstransTSK(1,4){4}{D}{D'}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[linewidth=0.9pt,linecolor=black](A')(B')(C')(D')
+\end{pspicture}
+\end{LTXexample}
+
+
+\newpage
+
+
+\section{The macro \nxLcs{psboxTS}}
+\begin{BDef}
+\Lcs{psboxTS}\OptArgs$(x,y,z)$\Largb{\rm{length in }x}\Largb{\rm{width in }y}\Largb{\rm{height in }z}\Largb{\rm{color}}
+\end{BDef}
+
+
+With the macro \Lcs{psboxTS} we can easily draw cuboids. For its three coordinates we use the left, bottom vertex in the back and put them in parentheses separated by commas, followed by its length, width and height and last by its color---all these four arguments are put in curly braces.
+
+With the option \Lkeyset{hideline=true} the hidden lines are shown with the keys \Lkeyset{hidelinewidth=}, \Lkeyset{hidelinestyle=} and \Lkeyset{hidecolor=}.
+
+With the option \Lkeyset{differentcol=true} we can give the three visible faces different colors. The color of the right side can changed with \Lkeyset{facecolorR=}, the color of the top can changed with \Lkeyset{facecolorT=}. The frontcolor is the color in curly braces.
+
+This macro and the others as well can be used in combination with the pst-3dplot package with the settings: \Lkeyset{coorType=1}, \Lkeyset{xThreeDunit=vkf} and \Lkeyset{phi = 180 Alpha sub}.
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=false](-2,-2.5)(6,6)
+\psset{xMin=0,yMin=0,zMin=0,xMax=11,yMax=11,zMax=4,Alpha=155,Beta=20,Dx=1,Dy=1,Dz=1,arrowsize=.2,arrowinset=0.1,coorType=1,xThreeDunit=0.5,phi=180 155 sub}%
+\pstThreeDPlaneGrid[planeGrid=xy,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=7](0,0)(7,7)%
+\pstThreeDPlaneGrid[planeGrid=xz,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=5](0,0)(7,5)%
+\pstThreeDPlaneGrid[planeGrid=yz,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=5](0,0)(7,5)%
+%--------------------------------------
+\psboxTS(0,2,3){3}{4}{1}{blue}
+\psboxTS[hideline=true,dash=2pt 2pt,hidelinewidth=0.5pt](4,0,0){2}{1}{4}{yellow}
+\psboxTS[opacity=0.75,hideline=true,hidelinewidth=1.2pt,hidelinestyle=dotted,hidecolor=green,dotsep=1.5pt](3,4,0){4}{2}{1}{brown}
+\psboxTS[differentcol=true,facecolorR=blue,facecolorT=orange](0,0,1){1}{2}{0.5}{green}
+%--------------------------------------
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{Macros for circles and arcs}
+
+\begin{BDef}
+\Lcs{psCircleTS}\OptArgs\Largb{\rm{Radius}},\\
+\Lcs{psCircleTSX}\OptArgs\Largb{\rm{Radius}}
+\end{BDef}
+
+\begin{BDef}
+\Lcs{psArcTS}\OptArgs\Largb{\rm{Radius}}\Largb{\rm{Startwinkel}}\Largb{\rm{\"{u}berstrichener Winkel}},\\
+\Lcs{psArcTSX}\OptArgs\Largb{\rm{Radius}}\Largb{\rm{Startwinkel}}\Largb{\rm{\"{u}berstrichener Winkel}}
+\end{BDef}
+
+%\nxLcs{psCircleTS}, \nxLcs{psCircleTSX}, \nxLcs{psarcTS}, \nxLcs{psarcTSX}, \nxLcs{psZylinderTS}}
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(14,7.3)
+\rput(2,4){\psCircleTS[fillstyle=solid,fillcolor=blue,opacity=0.5]{2}}
+\rput(10,2){\psCircleTSX[fillstyle=solid,fillcolor=red,opacity=0.5]{2}}
+\rput(5,2){\psArcTS[linecolor=green,linewidth=0.5pt]{2}{0}{90}}
+\psArcTSX[linecolor=magenta,linewidth=0.5pt,originT={6,4},symX=false]{1.5}{0}{120}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{Macro for cylinder}
+
+\begin{BDef}
+\Lcs{psZylinderTS}\OptArgs\Largb{\rm{Radius}}\Largb{\rm{H\"{o}he}}
+\end{BDef}
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true,shift=-4.9](0.5,-0.5)(14,8.8)
+\psset{toplinewidth=0.3pt,toplinecolor=cyan}
+\rput(10,1){%
+\psZylinderTS[opacity=0.6,fillstyle=gradient,gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,%
+gradmidpoint=0.3,linecolor=cyan,linewidth=0.8pt]{2.5}{6}}
+{\psset{phi=30,vkf=2 sqrt 2 div,opacity=0.2}
+\psboxTS[hideline=true](-1,2,2){2}{2}{4}{green}
+\rput(3,2){%
+\psZylinderTS[opacity=0.6,fillstyle=gradient,gradbegin=black!90!blue!80,gradend=black!40!blue!30,gradangle=90,%
+gradmidpoint=0.3,linecolor=cyan,linewidth=0.8pt]{1}{4}}
+\psboxTS[hideline=false](-1,2,2){2}{2}{4}{green}
+}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+The following additional options are possible for the cylinder so that the top surface of the cylinder can be designed independently.
+
+\begin{BDef}
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topfillstyle}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topmidpoint}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topangle}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{toplinecolor}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{topfillcolor}}],\\
+\Lcs{pstransTS}[\OptArg*{\nxLkeyword{toplinewidth}}]
+\end{BDef}
+
+
+In addition, with \Lkeyset{hideline=true}, \Lkeyset{hidelinewidth=}, \Lkeyset{hidelinestyle=} and \Lkeyset{hidecolor=} covert line of the cylinder with different attributes are displayed.
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](1,-0.3)(16,6)
+\psset{toplinewidth=0.5pt,opacity=0.3}
+{\psset{vkf=0.4,phi=33,topfillcolor=red}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,2,1){4}{4}{4}{green}
+\rput(4,1){\psZylinderTS[opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,%
+gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,2,1){4}{4}{4}{green}}
+{\psset{vkf=0.7,phi=60,topfillstyle=gradient,topmidpoint=0.4,topangle=90}
+\psboxTS[linewidth=0.5pt,opacity=0.2,linejoin=1,hideline=true,dash=2pt 2pt,hidelinewidth=0.3pt](-2,8,1){4}{4}{4}{cyan}
+\rput(10,1){\psZylinderTS[hideline=true,hidecolor=orange,dash=2pt 2pt,%
+hidelinewidth=0.3pt,opacity=0.6,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!blue!80,%
+gradend=black!40!blue!30,gradangle=90,gradmidpoint=0.25]{2}{4}}
+\psboxTS[linewidth=0.5pt,opacity=0.1,linejoin=1](-2,8,1){4}{4}{4}{cyan}}
+\rput{-90}(13,1){\psZylinderTS[phi=-30,linewidth=0.5pt,fillstyle=gradient,gradbegin=black!90!green!80,%
+gradend=black!40!green!30,gradangle=90,gradmidpoint=0.25,topfillstyle=gradient,topmidpoint=0.5,topangle=35]{1}{3}}
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+
+\section{Examples}
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(11.5,8.0)
+{\psset{phi=40,translineA=true,translineB=true}
+%------ Vertices of the octagon -------------
+\pstransTS(3,0){A}{A'}
+\pstransTS(7,0){B}{B'}
+\pstransTS(9,2){C}{C'}
+\pstransTS(9,6){D}{D'}
+\pstransTS(7,8){E}{E'}
+\pstransTS(3,8){F}{F'}
+\pstransTS(1,6){G}{G'}
+\pstransTS(1,2){H}{H'}
+%---------------------------------------------
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.4,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.2,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)
+\pcline[linewidth=1.3pt](0,0|O)(12,0|O)
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](0.5,-0.5)(10,8.4)
+{\psset{base=0,translineA,translineB,linecolor=blue,linestyle=dashed,transAcolor=blue,transBcolor=orange,dash=5pt 5pt}
+\pnode(0,\ba){O}% \ba gives the y-value of the base line
+%------ Vertices of the "X" -------------
+\pstransTS(1,0){A}{A'}
+\pstransTS(2,0){B}{B'}
+\pstransTS(4,3){C}{C'}
+\pstransTS(6,0){D}{D'}
+\pstransTS(7,0){E}{E'}
+\pstransTS[transAlinestyle=solid,transAcolor=red,transAlinewidth=2pt](4.5,4){F}{F'}
+\pstransTS[linestyle=solid,linecolor=green](7,8){G}{G'}
+\pstransTS[transAcolor=red,transBcolor=black,transBlinewidth=1.4pt](6,8){H}{H'}
+\pstransTS(4,5){I}{I'}
+\pstransTS(2,8){J}{J'}
+\pstransTS[linecolor=red](1,8){K}{K'}
+\pstransTS(3.5,4){L}{L'}
+%-------------------------------------
+}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')(G')(H')(I')(J')(K')(L')
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=red](A)(B)(C)(D)(E)(F)(G)(H)(I)(J)(K)(L)
+\pcline[linewidth=1.3pt](0,0|O)(10,0|O)
+\end{pspicture}
+\end{LTXexample}
+
+\newpage
+\begin{LTXexample}[pos=t]
+\psscalebox{0.7}{%
+\begin{pspicture}[showgrid=false](0.5,-0.5)(10,9.4)
+\def\lange{2 sqrt 2 mul}
+{\psset{phi=30,base=0,translineK,translinestyle=dashed,linecolor=blue,linejoin=2,fillstyle=solid,opacity=0.5}
+%------ Vertices of the "X" -------------
+\pstransTSK(1,0){\lange}{A}{A'}
+\pstransTSK(2,0){\lange}{B}{B'}
+\pstransTSK(4,3){\lange}{C}{C'}
+\pstransTSK(6,0){\lange}{D}{D'}
+\pstransTSK(7,0){\lange}{E}{E'}
+\pstransTSK(4.5,4){\lange}{F}{F'}
+\pstransTSK(7,8){\lange}{G}{G'}
+\pstransTSK(6,8){\lange}{H}{H'}
+\pstransTSK(4,5){\lange}{I}{I'}
+\pstransTSK(2,8){\lange}{J}{J'}
+\pstransTSK(1,8){\lange}{K}{K'}
+\pstransTSK(3.5,4){\lange}{L}{L'}
+%-------------------------------------
+\pspolygon[linestyle=dashed](A')(B')(C')(D')(E')(F')(G')(H')(I')(J')(K')(L')
+\pspolygon[fillcolor=cyan!30,linestyle=none](B)(B')(C')(C)
+}
+\psIntersectionPoint(C')(B')(C)(D){S1}
+\psline(B)(B')(S1)
+\psIntersectionPoint(H)(I)(I')(J'){S2}
+\psline(J')(S2)
+{\psset{phi=30,base=0,translineK,translinestyle=dashed,linecolor=blue,linejoin=2,fillstyle=solid,opacity=0.5}
+\pspolygon[fillcolor=cyan!30](E)(E')(F')(F)
+\pspolygon[fillcolor=cyan!30](F)(F')(G')(G)
+\pspolygon[fillcolor=cyan!30](G)(G')(H')(H)
+\pspolygon[fillcolor=cyan!30,linestyle=none](I)(I')(J')(J)
+\pspolygon[fillcolor=cyan!30](J)(J')(K')(K)
+\pspolygon[fillcolor=orange!60](A)(B)(C)(D)(E)(F)(G)(H)(I)(J)(K)(L)}
+\end{pspicture}}
+\end{LTXexample}
+
+\newpage
+\begin{LTXexample}[wide,pos=t]
+\psscalebox{0.5}{%
+\begin{pspicture}[showgrid=false](0.5,0)(10,5.7)
+{\psset{base=0,linecolor=blue,linestyle=dashed,dash=5pt 4pt}
+%------ Vertices of the lower "X" -------------
+\pstransTS(1,0){A}{A'}
+\pstransTS(2,0){B}{B'}
+\pstransTS(4,3){C}{C'}
+\pstransTS(6,0){D}{D'}
+\pstransTS(7,0){E}{E'}
+\pstransTS(4.5,4){F}{F'}
+\pstransTS(7,8){G}{G'}
+\pstransTS(6,8){H}{H'}
+\pstransTS(4,5){I}{I'}
+\pstransTS(2,8){J}{J'}
+\pstransTS(1,8){K}{K'}
+\pstransTS(3.5,4){L}{L'}
+%------ Vertices of the upper "X" -------------
+\rput(0,3){% The same "X" shifted 3 units upwards
+\pstransTS(1,0){A1}{A1'}
+\pstransTS(2,0){B1}{B1'}
+\pstransTS(4,3){C1}{C1'}
+\pstransTS(6,0){D1}{D1'}
+\pstransTS(7,0){E1}{E1'}
+\pstransTS(4.5,4){F1}{F1'}
+\pstransTS(7,8){G1}{G1'}
+\pstransTS(6,8){H1}{H1'}
+\pstransTS(4,5){I1}{I1'}
+\pstransTS(2,8){J1}{J1'}
+\pstransTS(1,8){K1}{K1'}
+\pstransTS(3.5,4){L1}{L1'}}
+%-------------------------------------
+\pcline(F')(F1')
+\pcline(H')(H1')
+\pcline(I')(I1')
+\pcline(J')(J1')
+\pcline(K')(K1')
+\pcline(L')(L1')
+}
+\psIntersectionPoint(K')(K1')(A1')(L1'){S1}
+\psline[linestyle=solid,linecolor=blue](K1')(S1)
+\psIntersectionPoint(E')(E1')(F')(G'){S2}
+\psline[linestyle=solid,linecolor=blue](S2)(G')(G1')%(F1')(E1')(E')
+{%
+\psset{linejoin=2,fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue}
+\pspolygon[linestyle=none](K')(L')(L1')(K1')
+\pspolygon[linestyle=dashed](A')(B')(C')(D')(E')(F')(G')(H')(I')(J')(K')(L')
+\pspolygon(A')(B')(B1')(A1')
+\pspolygon(B')(C')(C1')(B1')
+\pspolygon(C')(D')(D1')(C1')
+\pspolygon(D')(E')(E1')(D1')
+\pspolygon[linestyle=none](F')(G')(G1')(F1')
+\pspolygon[opacity=0.5](A1')(B1')(C1')(D1')(E1')(F1')(G1')(H1')(I1')(J1')(K1')(L1')
+}
+\end{pspicture}}
+\end{LTXexample}
+
+\newpage
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false,shift=-5.0](0.7,-0.4)(7,6)
+{\psset{phi=30}
+%------ Eckpunkte vom Aufriss --------------
+\pstransTSK(1,0){4}{A}{A'}
+\pstransTSK(5,0){4}{B}{B'}
+\pstransTSK(5,5){4}{C}{C'}
+\pstransTSK(1,5){4}{D}{D'}
+%--------------------------------------------
+}
+\psIntersectionPoint(A)(B')(B)(A'){S1}
+\psIntersectionPoint(C)(D')(D)(C'){S2}
+\pspolygon[linewidth=0.9pt,linecolor=black](A)(B)(C)(D)
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.5,linestyle=none](A)(B)(B')(A')
+{\psset{linestyle=dashed,dash=4pt 2pt,linewidth=0.9pt,linecolor=black}
+\pcline(A')(B')
+\pcline(A')(D')
+\pcline(A)(A')
+\pcline(A)(B')
+\pcline(B)(A')
+\pcline(D)(C')
+\pcline(C)(D')
+\pcline(S1)(S2)
+}
+\pcline(B)(B')
+\pcline(C)(C')
+\pcline(D)(D')
+\pcline(B')(C')
+\pcline(C')(D')
+\pcline(A)(S2)
+\pcline(B)(S2)
+\pcline(B')(S2)
+\pcline(A')(S2)
+\qdisk(S2){2pt}\uput{0.3}[90](S2){S}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6cm]
+\begin{pspicture}[showgrid=true](1,-0.3)(7,6)
+\pnode(4,3){M}
+{\psset{originT={M}}
+\multido{\i=0+10}{36}{\psset{phi=45,vkf=0.5,translineA=true,translineB=true}
+\pstransTS[linecolor=blue,linewidth=0.5pt,linestyle=dashed](2.5;\i){A\i}{A'\i}
+\psdot[dotsize=1.8pt,linecolor=blue](A\i)\psdot[dotsize=1.8pt,linecolor=red](A'\i)
+}
+}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=6cm]
+\begin{pspicture}[showgrid=false](1,-0.3)(7,6)
+\pnode(4,3){M}
+{\psset{originT={M}}
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTS[linecolor=blue,linewidth=0.5pt,linestyle=dashed](2.5;\i){A\i}{A'\i}
+\pstransTS(2.5;\n){B\n}{B'\n}
+\psdot[dotsize=1.8pt,linecolor=blue](A\i)\psdot[dotsize=1.8pt,linecolor=red](A'\i)\psline(A\i)(B\n)\psline[linecolor=orange!50](A'\i)(B'\n)
+}
+}
+\rput(M){\pnode(2.665;7){C'}}
+\rput(M){\pnode(2.665;187){D'}}
+\pcline[linecolor=cyan](C')(D')
+\rput(M){\pnode(0.83;97){E'}}
+\rput(M){\pnode(0.83;277){F'}}
+\pcline[linecolor=magenta](E')(F')
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=false](-2,0)(8,6)
+\pnode(4.5,1){Z}\psset{originT={Z}}
+\pstransTS(2;-60){A'}{A}
+\pstransTS(2;0){B'}{B}
+\pstransTS(2;60){C'}{C}
+\pstransTS(2;120){D'}{D}
+\pstransTS(2;180){E'}{E}
+\pstransTS(2;240){F'}{F}
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue,linestyle=none](A)(B)(C)(D)(E)(F)%(G)(H)(I)(J)(K)(L)
+%\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A')(B')(C')(D')(E')(F')%(G')(H')
+\psline[linewidth=0.9pt,linecolor=blue](E)(F)(A)(B)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](D)(E)
+
+\pnode(4.5,5){Z}\psset{originT={Z}}
+\pstransTS(2;-60){I'}{I}
+\pstransTS(2;0){J'}{J}
+\pstransTS(2;60){K'}{K}
+\pstransTS(2;120){L'}{L}
+\pstransTS(2;180){M'}{M}
+\pstransTS(2;240){N'}{N}
+\pspolygon[fillstyle=solid,fillcolor=cyan!60,opacity=0.6,linecolor=blue](A)(B)(J)(I)%(E')(F')%(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](B)(C)(K)(J)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](C)(D)(L)(K)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](D)(E)(M)(L)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](E)(F)(N)(M)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.4,linecolor=blue](F)(A)(I)(N)%
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue](I)(J)(K)(L)(M)(N)%(G)(H)(I)(J)(K)(L)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false](-0.5,0.2)(7,5.6)
+\psset{linejoin=2}
+\pnode(2.5,1){Z}\psset{originT={Z}}
+\pstransTS(2;-90){A'}{A}
+\pstransTS(2;-30){B'}{B}
+\pstransTS(2;30){C'}{C}
+\pstransTS(2;90){D'}{D}
+\pstransTS(2;150){E'}{E}
+\pstransTS(2;210){F'}{F}
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue,linestyle=none](A)(B)(C)(D)(E)(F)%(G)(H)(I)(J)(K)(L)
+\psline[linewidth=0.9pt,linecolor=blue](B)(C)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](D)(E)
+\pnode(2.5,5){Z}\psset{originT={Z}}
+\pstransTS(2;-60){I'}{I}
+\pstransTS(2;0){J'}{J}
+\pstransTS(2;60){K'}{K}
+\pstransTS(2;120){L'}{L}
+\pstransTS(2;180){M'}{M}
+\pstransTS(2;240){N'}{N}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A)(B)(J)(I)%(E')(F')%(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](B)(C)(K)(J)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](C)(D)(L)(K)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](D)(E)(M)(L)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](E)(F)(N)(M)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](F)(A)(I)(N)%
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue](I)(J)(K)(L)(M)(N)%(G)(H)(I)(J)(K)(L)
+\psIntersectionPoint(C)(K)(B)(J){SBJ}
+\psIntersectionPoint(E)(M)(F)(N){SFN}
+\psline[linewidth=0.9pt,linecolor=blue](C)(SBJ)
+\psline[linewidth=0.9pt,linecolor=blue](SFN)(M)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false](0,0)(6,6)
+\pnode(3.5,1){Z}\psset{originT={Z}}
+\pstransTS(2;-60){A'}{A}
+\pstransTS(2;0){B'}{B}
+\pstransTS(2;60){C'}{C}
+\pstransTS(2;120){D'}{D}
+\pstransTS(2;180){E'}{E}
+\pstransTS(2;240){F'}{F}
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue,linestyle=none](A)(B)(C)(D)(E)(F)%(G)(H)(I)(J)(K)(L)
+\psline[linewidth=0.9pt,linecolor=blue](E)(F)(A)(B)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](D)(E)
+\pnode(3.5,5){Z}\psset{originT={Z}}
+\pstransTS(1;-60){I'}{I}
+\pstransTS(1;0){J'}{J}
+\pstransTS(1;60){K'}{K}
+\pstransTS(1;120){L'}{L}
+\pstransTS(1;180){M'}{M}
+\pstransTS(1;240){N'}{N}
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](A)(B)(J)(I)%(E')(F')%(G')(H')
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=dashed](B)(C)(K)(J)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](C)(D)(L)(K)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue,linestyle=none](D)(E)(M)(L)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](E)(F)(N)(M)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!30,opacity=0.3,linecolor=blue](F)(A)(I)(N)%
+\pspolygon[fillstyle=solid,fillcolor=yellow!30,opacity=0.5,linewidth=0.9pt,linecolor=blue](I)(J)(K)(L)(M)(N)%(G)(H)(I)(J)(K)(L)
+\psline[linewidth=0.9pt,linecolor=blue,linestyle=dashed](C)(D)(L)
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}[showgrid=false](0,0)(13,3.5)
+\psset{linejoin=2,linewidth=1pt}
+\psset{transcolor=black,translinestyle=solid}%
+\pstransTSK(0,0){3}{A}{A'}%
+\pstransTSK(6,0){3}{B}{B'}%
+\pstransTSK(5,3){3}{C}{C'}%
+\psline[linestyle=dashed](A')(B')%
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.3,linewidth=0.9pt,linecolor=black](A)(B)(C)%
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](A')(A)(C)(C')
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](B)(B')(C')(C)
+\psline(A')(C')(B')%
+\pcline[linecolor=red](C)(C|A)
+\pstransTS(8,3){A}{A'}
+\pstransTS(14,3){B}{B'}
+\pstransTS(13,0){C}{C'}
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.3,linestyle=none](A')(B')(C')
+\psline[linestyle=dashed](A')(B')
+\psline(A')(C')(B')
+{\psset{base=0,originT={0,2}}
+\pstransTS(8,3){D}{D'}
+\pstransTS(14,3){E}{E'}
+\pstransTS(13,0){F}{F'}
+\pstransTS(F|D){K}{K'}
+\pspolygon[fillstyle=solid,fillcolor=yellow!40,opacity=0.3](D')(E')(F')
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](A')(C')(F')(D')
+\pspolygon[fillstyle=solid,fillcolor=cyan!40,opacity=0.3,linestyle=none](C')(B')(E')(F')
+\psline[linestyle=dashed](D')(E')
+\psline(D')(F')(E')
+\psline(C')(F')
+}
+{\psset{phi=-135,transcolor=black}
+\pstransTSK(A'){3}{G'}{G}
+\pstransTSK(B'){3}{H'}{H}
+\pstransTSK(D'){3}{I'}{I}
+\pstransTSK(E'){3}{J'}{J}
+\pspolygon(G)(H)(J)(I)
+}
+\pspolygon(B')(H)(J)(E')
+\pspolygon(A')(G)(I)(D')
+\pcline[linecolor=red](F')(K')
+%}
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=t,wide]
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=false](-0.5,0)(17,10.4)
+\psset{linejoin=2,phi=30,vkf=0.7}
+
+{\psset{base=-3}
+\multido{\i=0+1,\n=1+1,\ra=-67.5+22.5,\rb=-45+22.5}{14}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,5}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,5}](6;\rb){J\n}{K\n}
+\psline[linecolor=orange!50](E\i)(G\n)
+\psline[linecolor=orange!50](I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=orange,opacity=1](E\i)(G\n)(K\n)(I\i)
+}}
+
+{\psset{translineK=false}%
+\pstransTSK(0,0){1}{A1}{B1}
+\pstransTSK(2,0){1}{A2}{B2}
+\pstransTSK(2,3){1}{A3}{B3}
+\pstransTSK(0,2){1}{A4}{B4}
+%----------------------------
+\pstransTSK(0,0){6}{A1}{C1}
+\pstransTSK(2,0){6}{A2}{C2}
+\pstransTSK(2,3){6}{A3}{C3}
+\pstransTSK(0,2){6}{A4}{C4}
+}
+\psline[linestyle=dashed](C1)(C4)
+\psline[linestyle=dashed](B1)(C1)(C2)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=0.7](B1)(B2)(B3)(B4)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=0.7](B2)(C2)(C3)(B3)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=120,hatchsep=1.5pt](B4)(B3)(C3)(C4)
+%----------------------------
+\pstransTSK(2,0){6}{A5}{C5}
+\pstransTSK(6,0){6}{A6}{C6}
+\pstransTSK(6,4){6}{A7}{C7}
+\pstransTSK(4,6){6}{A8}{C8}
+\pstransTSK(2,4){6}{A9}{C9}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.2](C5)(C6)(C7)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.2](C7)(C8)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.7](A5)(A6)(A7)(A9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.7](A7)(A8)(A9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=0.7](A6)(C6)(C7)(A7)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=45,hatchsep=1.5pt](A7)(C7)(C8)(A8)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=135,hatchsep=1.5pt](A9)(A8)(C8)(C9)
+%----------------------------
+\pstransTSK(6,0){2}{A10}{C10}
+\pstransTSK(8,0){2}{A11}{C11}
+\pstransTSK(8,8){2}{A12}{C12}
+\pstransTSK(6,8){2}{A13}{C13}
+\pstransTSK(8.2,8){-0.2}{A14}{B14}
+\pstransTSK(5.8,8){-0.2}{A15}{B15}
+\pstransTSK(8.2,8){2.2}{A14}{C14}
+\pstransTSK(5.8,8){2.2}{A15}{C15}
+\pstransTSK[translineK=false](8,10){2}{A16}{C16}
+\pstransTSK[translineK=false](6,10){2}{A17}{C17}
+\psIntersectionPoint(A16)(C17)(A17)(C16){SB1}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.2](C10)(C11)(C12)(C13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.7](A10)(A11)(A12)(A13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=0.7](A11)(C11)(C12)(A12)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.2,hatchangle=45,hatchsep=1.5pt](C14)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.2,hatchangle=45,hatchsep=1.5pt](B15)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=45,hatchsep=1.5pt](B14)(B15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=0.7,hatchangle=45,hatchsep=1.5pt](B14)(C14)(SB1)
+
+{\psset{base=-3}
+\multido{\i=0+1,\n=1+1,\ra=-67.5+22.5,\rb=-45+22.5}{4}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,5}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,5}](6;\rb){J\n}{K\n}
+\psline[linecolor=orange!50](E\i)(G\n)
+\psline[linecolor=orange!50](I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=orange,opacity=1](E\i)(G\n)(K\n)(I\i)
+}}
+\end{pspicture}}
+\end{LTXexample}
+
+
+\newpage
+
+\begin{LTXexample}[pos=t,wide]
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=false](-2,-2.5)(6,6)
+\psset{xMin=0,yMin=0,zMin=0,xMax=11,yMax=11,zMax=4,Alpha=155,Beta=20,Dx=1,Dy=1,Dz=1,arrowsize=.2,arrowinset=0.1,coorType=1,xThreeDunit=0.5,phi=180 155 sub}%
+\pstThreeDPlaneGrid[planeGrid=xy,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=7](0,0)(7,7)%
+%--------------------------------------
+\multido{\i=0+1}{5}{%
+\multido{\n=0+1}{5}{%
+\multido{\r=0+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{blue}}}}
+%--------------------------------------
+\multido{\i=0+1}{2}{%
+\multido{\n=0+1}{5}{%
+\multido{\r=2+1}{3}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{blue}}}}
+%--------------------------------------
+\multido{\i=2+1}{3}{%
+\multido{\n=0+1}{2}{%
+\multido{\r=2+1}{3}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{blue}}}}
+%\pstPlanePut[plane=xy](6,1,0){\fbox{\Huge\red xy plane}}
+\end{pspicture}
+}
+\end{LTXexample}
+
+\newpage
+
+\begin{LTXexample}[pos=t,wide]
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=false](-2,-2.5)(6,6)
+\psset{xMin=0,yMin=0,zMin=0,xMax=11,yMax=11,zMax=4,Alpha=135,Beta=20,Dx=1,Dy=1,Dz=1,arrowsize=.2,arrowinset=0.1,coorType=1,xThreeDunit=0.5,opacity=0.4,hideline=true}%\
+\pstThreeDPlaneGrid[planeGrid=xy,linewidth=0.3pt,linecolor=gray!70,xsubticks=7,ysubticks=7](0,0)(7,7)%
+%--------------------------------------
+\multido{\i=0+1}{6}{%
+\multido{\n=0+1}{6}{%
+\multido{\r=0+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{green}}}}
+%--------------------------------------
+\multido{\i=1+1}{4}{%
+\multido{\n=1+1}{4}{%
+\multido{\r=2+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{green}}}}
+%--------------------------------------
+\multido{\i=2+1}{2}{%
+\multido{\n=2+1}{2}{%
+\multido{\r=4+1}{2}{%
+\psboxTS(\i,\n,\r){1}{1}{1}{green}}}}
+\end{pspicture}
+}
+\end{LTXexample}
+
+\newpage
+
+\pstVerb{/radiusT 2 22.5 cos mul def}
+\pstVerb{/deltaDach 10 2 22.5 sin mul sub def}
+\pstVerb{/deltaDachT 10 2 22.5 sin mul dup 2 sqrt div add sub def}
+
+\psscalebox{0.6}{%
+\begin{pspicture}[showgrid=true](0,-1)(24,20)
+\psset{linejoin=2,phi=25,vkf=0.7,opacity=1}
+
+\pstransTS(4,0){E01'}{E01}
+\pstransTS(12,0){E02'}{E02}
+\pstransTS(12,5){E03'}{E03}
+\pstransTS(16,5){E04'}{E04}
+\pstransTS(16,11){E05'}{E05}
+\pstransTS(12,11){E06'}{E06}
+\pstransTS(12,12){E07'}{E07}
+\pstransTS(4,12){E08'}{E08}
+\pstransTS(4,11){E09'}{E09}
+\pstransTS(0,11){E10'}{E010}
+\pstransTS(0,5){E011'}{E011}
+\pstransTS(4,5){E012'}{E012}
+\rput(0,7){%
+\pstransTS(4,0){E11'}{E11}
+\pstransTS(12,0){E12'}{E12}
+\pstransTS(12,5){E13'}{E13}
+\pstransTS(16,5){E14'}{E14}
+\pstransTS(16,11){E15'}{E15}
+\pstransTS(12,11){E16'}{E16}
+\pstransTS(12,12){E17'}{E17}
+\pstransTS(4,12){E18'}{E18}
+\pstransTS(4,11){E19'}{E19}
+\pstransTS(0,11){E110'}{E110}
+\pstransTS(0,5){E111'}{E111}
+\pstransTS(4,5){E112'}{E112}
+}
+\multido{\i=1+1,\n=2+1}{11}{%
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E0\i)(E0\n)(E1\n)(E1\i)
+}
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E012)(E01)(E11)(E112)
+
+\rput(0,15){%
+\pstransTS[originT={8,8},base=-8](0,0){T'3}{T3}
+}
+\rput(0,19){%
+\pstransTS[originT={8,1},base=-1](0,0){TV'3}{TV3}
+}
+
+\rput(0,10){%
+\multido{\i=0+1,\r=-90+90}{4}{%
+\pstransTS[originT={8,8},base=-8](!radiusT \r\space PtoC){DM'\i}{DM\i}
+}
+\pstransTS(16,8){DMa1'}{DMa1}
+\pstransTS(8,12){DMa2'}{DMa2}
+\pstransTS(0,8){DMa3'}{DMa3}
+\pstransTS(8,0){DMa4'}{DMa4}
+}
+
+\rput(!0 deltaDach){%
+\multido{\i=1+1,\r=-22.5+45}{8}{%
+\pstransTS[originT={8,8},base=-8](2;\r){DMb\i'}{DMb\i}
+}
+}
+\rput(!0 deltaDachT){%
+\multido{\i=1+1,\r=-45+90}{4}{%
+\pstransTS[originT={8,8},base=-8](! radiusT \r\space PtoC){DMc\i'}{DMc\i}
+}
+}
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa3)(E110)(E19)(DMc3)(DMb5)(DM3)% hinters Dach linkes Seitenschiff
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa2)(E18)(E19)(DMc3)(DMb4)(DM2)% hinters Dach links
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa2)(E17)(E16)(DMc2)(DMb3)(DM2)% hinters Dach rechts
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa1)(E15)(E16)(DMc2)(DMb2)(DM1)% hinters Dach rechtes Seitenschiff
+
+%--- Hinterer Turm -----------------------------------
+\multido{\i=0+1,\n=1+1,\ra=22.5+45,\rb=67.5+45}{8}{%
+\rput(0,7){%
+\pstransTS[originT={8,8},base=-8](2;\ra){T1'\i}{T1\i}
+\pstransTS[originT={8,8},base=-8](2;\rb){Tb1'\n}{Tb1\n}
+}
+%-------------------------------------------------
+\rput(0,13){%
+\pstransTS[originT={8,8},base=-8](2;\ra){T2'\i}{T2\i}
+\pstransTS[originT={8,8},base=-8](2;\rb){Tb2'\n}{Tb2\n}
+\pstransTS[originT={8,8},base=-8](2.1;\ra){E'\i}{E\i}
+\pstransTS[originT={8,8},base=-8](2.1;\rb){F'\n}{F\n}
+}
+%\psline(T2\i)(Tb2\n)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](T1\i)(Tb1\n)(Tb2\n)(T2\i) % Seitenteile des hinteren Turms
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](T3)(E\i)(F\n)% Dach des hinteren Turms
+}
+%--------------------------------------------------------------
+\pspolygon[fillstyle=solid,fillcolor=BrickRed,opacity=1](T3)(E6)(F7)% Letztes Dachteil des hinteren Turms
+
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa3)(E111)(E112)(DMc4)(DMb6)(DM3)% vorderes Dach linkes Seitenschiff
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](DMa1)(E14)(E13)(DMc1)(DMb1)(DM1)% vorderes Dach rechtes Seitenschiff
+
+
+
+%--- Vorderer Turm -----------------------------------
+\multido{\i=0+1,\n=1+1,\rA=22.5+45,\rB=67.5+45}{8}{%
+\pstransTS[originT={8,1},base=-1](2;\rA){A'\i}{A\i}
+\pstransTS[originT={8,1},base=-1](2;\rB){B'\n}{B\n}
+\rput(0,13){%
+\pstransTS[originT={8,1},base=-1](2;\rA){C'\i}{C\i}
+\pstransTS[originT={8,1},base=-1](2;\rB){D'\n}{D\n}
+\pstransTS[originT={8,1},base=-1](2.1;\rA){E'\i}{E\i}
+\pstransTS[originT={8,1},base=-1](2.1;\rB){F'\n}{F\n}
+}
+\pspolygon[fillstyle=solid,fillcolor=brown!30](A\i)(B\n)(D\n)(C\i) % Seitenteile des vorderen Turms
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](TV3)(E\i)(F\n) % Dach des vorderen Turms
+}
+\pspolygon[fillstyle=solid,fillcolor=BrickRed,opacity=1](TV3)(E6)(F7)% Letztes Dachteil des vorderen Turms
+
+\psIntersectionPoint(A4)(A5)(E01)(E02){SP01}%linker unterer Schnittpunkt der Au{\ss}enwand mit dem vorderen Turm
+\psIntersectionPoint(A6)(A7)(E01)(E02){SP02}%rechter unterer Schnittpunkt der Au{\ss}enwand mit dem vorderen Turm
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E01)(SP01)(SP01|0,9.4)(E11)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E02)(E12)(SP02|0,9.4)(SP02)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E02)(E03)(E13)(E12)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E03)(E04)(E14)(E13)
+\pspolygon[fillstyle=solid,fillcolor=brown!30](E04)(E05)(E15)(DMa1)(E14)
+
+\pspolygon[fillstyle=solid,fillcolor=BrickRed](C7|0,10)(SP02|0,9.4)(E12)(E13)(DMc1)(DMb8)%(DM0)% vorderes Dach rechts
+\end{pspicture}
+}
+
+
+
+\psscalebox{1}{%
+\begin{pspicture}[showgrid=false](-0.5,-3)(12,14.4)
+\psset{linejoin=2,phi=35,vkf=0.5}
+\pstransTSK[translineK=false](-3,0){11}{GR1}{GR1'}
+\pstransTSK[translineK=false](11,0){11}{GR2}{GR2'}
+\pstransTSK[translineK=false](-3,0){-8}{GR3}{GR3'}
+\pstransTSK[translineK=false](11,0){-8}{GR4}{GR4'}
+\pspolygon[fillstyle=solid,fillcolor=green!60!black!80,linestyle=none](GR1')(GR2')(GR4')(GR3')
+
+{\psset{base=-3}
+\multido{\i=0+1,\n=1+1,\ra=-45+22.5,\rb=-22.5+22.5}{12}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,4}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,4}](6;\rb){J\n}{K\n}
+\psline(E\i)(G\n)
+\psline(I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=gray,opacity=1](E\i)(G\n)(K\n)(I\i)
+}}
+
+{\psset{translineK=false}%
+\pstransTSK(0,0){1}{A1}{B1}
+\pstransTSK(2,0){1}{A2}{B2}
+\pstransTSK(2,3){1}{A3}{B3}
+\pstransTSK(0,2){1}{A4}{B4}
+%----------------------------
+\pstransTSK(0,0){6}{A1}{C1}
+\pstransTSK(2,0){6}{A2}{C2}
+\pstransTSK(2,3){6}{A3}{C3}
+\pstransTSK(0,2){6}{A4}{C4}
+}
+\psline[linestyle=dashed](C1)(C4)
+\psline[linestyle=dashed](B1)(C1)(C2)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=1](B1)(B2)(B3)(B4)
+\pspolygon[fillstyle=solid,fillcolor=green!30,opacity=1](B2)(C2)(C3)(B3)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=-63.5,hatchsep=1.5pt](B4)(B3)(C3)(C4)
+%----------------------------
+\pstransTSK(2,0){6}{A5}{C5}
+\pstransTSK(6,0){6}{A6}{C6}
+\pstransTSK(6,4){6}{A7}{C7}
+\pstransTSK(4,6){6}{A8}{C8}
+\pstransTSK(2,4){6}{A9}{C9}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](C5)(C6)(C7)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](C7)(C8)(C9)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A6)(C6)(C7)(A7)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=135,hatchsep=1.5pt](A9)(A8)(C8)(C9)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](A7)(C7)(C8)(A8)
+\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A5)(A6)(A7)(A8)(A9)
+%\pspolygon[fillstyle=solid,fillcolor=yellow!50,opacity=1](A7)(A8)(A9)
+%----------------------------
+\pstransTSK(6,0){2}{A10}{C10}
+\pstransTSK(8,0){2}{A11}{C11}
+\pstransTSK(8,10){2}{A12}{C12}
+\pstransTSK(6,10){2}{A13}{C13}
+\pstransTSK(8.1,10){-0.1}{A14}{B14}
+\pstransTSK(5.9,10){-0.1}{A15}{B15}
+\pstransTSK(8.1,10){2.1}{A14}{C14}
+\pstransTSK(5.9,10){2.1}{A15}{C15}
+\pstransTSK[translineK=false](8,11.5){2}{A16}{C16}
+\pstransTSK[translineK=false](6,11.5){2}{A17}{C17}
+\psIntersectionPoint(A16)(C17)(A17)(C16){SB1}
+%----------------------------
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](C10)(C11)(C12)(C13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](A10)(A11)(A12)(A13)
+\pspolygon[fillstyle=solid,fillcolor=cyan!50,opacity=1](A11)(C11)(C12)(A12)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](C14)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B15)(C15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B14)(B15)(SB1)
+\pspolygon[fillstyle=vlines*,fillcolor=BrickRed,opacity=1,hatchangle=45,hatchsep=1.5pt](B14)(C14)(SB1)
+
+{\psset{base=-3,opacity=1}
+\multido{\i=0+1,\n=1+1,\ra=-45+22.5,\rb=-22.5+22.5}{3}{%
+\pstransTS[originT={4,3}](6;\ra){D\i}{E\i}
+\pstransTS[originT={4,3}](6;\rb){F\n}{G\n}
+\pstransTS[originT={4,4}](6;\ra){H\i}{I\i}
+\pstransTS[originT={4,4}](6;\rb){J\n}{K\n}
+\psline(E\i)(G\n)
+\psline(I\i)(K\n)
+\pspolygon[fillstyle=solid,fillcolor=gray](E\i)(G\n)(K\n)(I\i)
+}}
+
+%----------- T\"{u}r Nebengeb\"{a}ude -------------------------
+\pstransTSK[translineK=false](1,0){1}{TL}{TL'}
+\rput(TL'){%
+\pscustom[fillstyle=solid,fillcolor=brown]{%
+\psline(0.2,0)(-0.2,0)(-0.2,0.4)
+\psarcn(0.2,0.4){0.4}{180}{120}
+\psarcn(-0.2,0.4){0.4}{60}{0}
+\closepath%
+}
+\psline[linewidth=0.5pt](0,0)(0,0.75)
+\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
+\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
+}
+%----------- Haupt-T\"{u}r ---------------------------------
+\rput(4,0){%
+\psscalebox{2.5 2}%
+{%\psset{unit=2}%
+\psset{linewidth=0.25pt}
+\pscustom[fillstyle=solid,fillcolor=brown]{%
+\psline(0.2,0)(-0.2,0)(-0.2,0.4)
+\psarcn(0.2,0.4){0.4}{180}{120}
+\psarcn(-0.2,0.4){0.4}{60}{0}
+\closepath%
+}
+\psline[linewidth=0.25pt](0,0)(0,0.75)
+\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
+\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
+}}
+
+%------- Uhr -------------------------
+\pnode(7,7.8){UZ}
+
+{\psset{originT={UZ},base=1,deltaphi=0}
+\pstransTSX(0,0){U1}{U1'}
+\pstransTSX(0.3;50){zg1}{zg1'}
+\pstransTSX(0.5;-36){zg2}{zg2'}
+
+\multido{\i=0+5,\n=5+5}{72}{%
+\pstransTSX(0.5;\i){A\i}{A'\i}
+\pstransTSX(0.5;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)}
+\psline[linecolor=yellow!90!black!70]{c-c}(U1')(zg1')
+\psline[linecolor=yellow!90!black!70]{c-c}(U1')(zg2')
+
+\multido{\i=0+30,\n=0+30}{12}{%
+%\psset{translineA=true,translineB=true}
+\pstransTSX(0.43;\i){A\i}{A'\i}
+\pstransTSX(0.57;\n){B\n}{B'\n}
+\psline(A'\i)(B'\n)
+\psline(A\i)(B\n)}
+
+\pscircle(UZ){0.5}
+\rput(UZ){%
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg1)
+\psline[linecolor=yellow!90!black!70]{c-c}(U1)(zg2)
+}
+
+%------- Turmfenster und \"{O}ffnungen oben ------------------------
+
+\pstransTSX(-0.15,0.75){FU1}{FU1'}
+\pstransTSX(0.15,0.75){FU2}{FU2'}
+\pstransTSX(0.15,1.5){FU3}{FU3'}
+\pstransTSX(-0.15,1.5){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+\pstransTSX(-0.65,0.75){FUL1}{FUL1'}
+\pstransTSX(-0.35,0.75){FUL2}{FUL2'}
+\pstransTSX(-0.35,1.5){FUL3}{FUL3'}
+\pstransTSX(-0.65,1.5){FUL4}{FUL4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUL1)(FUL2)(FUL3)(FUL4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUL1')(FUL2')(FUL3')(FUL4')
+
+\pstransTSX(0.65,0.75){FUR1}{FUR1'}
+\pstransTSX(0.35,0.75){FUR2}{FUR2'}
+\pstransTSX(0.35,1.5){FUR3}{FUR3'}
+\pstransTSX(0.65,1.5){FUR4}{FUR4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUR1)(FUR2)(FUR3)(FUR4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FUR1')(FUR2')(FUR3')(FUR4')
+
+\pstransTSX(-0.05,-2){FU1}{FU1'}
+\pstransTSX(0.05,-2){FU2}{FU2'}
+\pstransTSX(0.05,-2.3){FU3}{FU3'}
+\pstransTSX(-0.05,-2.3){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+\pstransTSX(-0.05,-4){FU1}{FU1'}
+\pstransTSX(0.05,-4){FU2}{FU2'}
+\pstransTSX(0.05,-4.3){FU3}{FU3'}
+\pstransTSX(-0.05,-4.3){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+\pstransTSX(-0.05,-6){FU1}{FU1'}
+\pstransTSX(0.05,-6){FU2}{FU2'}
+\pstransTSX(0.05,-6.3){FU3}{FU3'}
+\pstransTSX(-0.05,-6.3){FU4}{FU4'}
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1)(FU2)(FU3)(FU4)
+\pspolygon[fillstyle=solid,fillcolor=black!80](FU1')(FU2')(FU3')(FU4')
+
+}
+
+%------- Turm-T\"{u}r ---------------------------
+\rput(7,0){%
+\pscustom[fillstyle=solid,fillcolor=brown]{%
+\psline(0.2,0)(-0.2,0)(-0.2,0.4)
+\psarcn(0.2,0.4){0.4}{180}{120}
+\psarcn(-0.2,0.4){0.4}{60}{0}
+\closepath%
+}
+\psline[linewidth=0.5pt](0,0)(0,0.75)
+\pscircle[linewidth=0.25pt](0.04,0.35){0.025}
+\pscircle[linewidth=0.25pt](-0.04,0.35){0.025}
+}
+
+
+%---------- rundes Haupt-Fenster ----------------------
+\pscircle[fillstyle=solid,fillcolor=black!70](4,2.7){0.45}
+
+%------- Kreuz -----------------------------------------
+\psline[linewidth=2.5pt]{c-c}(4,3.5)(4,5)
+\psline[linewidth=2.5pt]{c-c}(3.58,4.5)(4.42,4.5)
+
+%---------- Weg -----------------------------------------
+\pstransTSK[translineK=false](3.5,0){-8}{W1}{W1'}
+\pstransTSK[translineK=false](4.5,0){-8}{W2}{W2'}
+\pspolygon[fillstyle=solid,fillcolor=gray!50,linestyle=none](W1)(W1')(W2')(W2)
+
+
+{\psset{translineK=false,linestyle=none}
+\multido{\i=1+1,\n=1+1}{8}{%
+\pstransTSK(3.5,0){1 \i\space sub}{WM1a\i}{WM1a'\i}
+\pstransTSK(3.5,0){0.5 \i\space sub}{WM1\i}{WM1'\i}
+\pstransTSK(3.75,0){1 \i\space sub}{WM2a\i}{WM2a'\i}
+\pstransTSK(3.75,0){0.7 \i\space sub}{WM2\i}{WM2'\i}
+\pstransTSK(4.0,0){1 \i\space sub}{WM3a\i}{WM3a'\i}
+\pstransTSK(4.0,0){0.5 \i\space sub}{WM3\i}{WM3'\i}
+\pspolygon[fillstyle=solid,fillcolor=green!50,opacity=1](WM1a'\i)(WM1'\i)(WM2'\i)(WM2a'\i)
+\pspolygon[fillstyle=solid,fillcolor=black!60,opacity=1](WM1'\i)(WM2'\i)(WM3'\i)
+\pspolygon[fillstyle=solid,fillcolor=blue!50,opacity=1](WM2a'\i)(WM2'\i)(WM3'\i)(WM3a'\i)
+\pstransTSK(4,0){0.5 \n\space sub}{WM4a\n}{WM4a'\n}
+\pstransTSK(4,0){-\n}{WM4\n}{WM4'\n}
+\pstransTSK(4.25,0){0.5 \n\space sub}{WM5a\n}{WM5a'\n}
+\pstransTSK(4.25,0){.2 \n\space sub}{WM5\n}{WM5'\n}
+\pstransTSK(4.5,0){0.5 \n\space sub}{WM6a\n}{WM6a'\n}
+\pstransTSK(4.5,0){-\n}{WM6\n}{WM6'\n}
+\pspolygon[fillstyle=solid,fillcolor=green!50,opacity=1](WM4a'\n)(WM4'\n)(WM5'\n)(WM5a'\n)
+\pspolygon[fillstyle=solid,fillcolor=black!60,opacity=1](WM4'\n)(WM5'\n)(WM6'\n)
+\pspolygon[fillstyle=solid,fillcolor=blue!50,opacity=1](WM5a'\n)(WM5'\n)(WM6'\n)(WM6a'\n)
+}}
+\end{pspicture}
+}
+
+
+\def\colA{black!20}
+\def\colB{black!50}
+\def\colC{black!30}
+\def\Pfeiler{%
+%--------- Pfeiler -------------
+\pstransTSK(4,0){8}{A}{A'}
+\pstransTSK(10,0){8}{B}{B'}
+\pstransTSK(9,10){8}{C}{C'}
+\pstransTSK(5,10){8}{D}{D'}
+\pstransTSK(5,13){8}{E}{E'}
+\pstransTSK(9,13){8}{F}{F'}
+\pstransTSK(14,18){8}{G}{G'}
+\pstransTSK(14,21){8}{H}{H'}
+\pstransTSK(0,21){8}{I}{I'}
+\pstransTSK(0,18){8}{J}{J'}
+\pstransTSK(0,13){8}{M1}{M1'}
+\pstransTSK(14,13){8}{M2}{M2'}
+%----------------------------------------
+\pspolygon[fillcolor=\colA](A)(B)(C)(D)
+\pspolygon[fillcolor=\colB](B)(B')(C')(C)
+\pspolygon[fillcolor=\colA](D)(C)(F)(E)
+\pspolygon[fillcolor=\colB](C)(C')(F')(F)
+%----------------------------------------
+\pscustom[fillcolor=\colB]{%
+\psarcn(M2'){5}{180}{90}
+\psline(F|G')(F)(F')
+}
+%----------------------------------------
+\pscustom[fillcolor=\colA]{%
+\psarc(M2){5}{90}{180}
+\psarc(M1){5}{0}{90}
+\psline(I)(H)
+}
+%----------------------------------------
+\pspolygon[fillcolor=\colB](G)(G')(H')(H)
+\pspolygon[fillcolor=\colC](I)(H)(H')(I')
+}
+
+\begin{pspicture}[showgrid=false](0,-.5)(19,14)
+\psset{linejoin=2,transcolor=black,translineK=false,arrowlength=2,arrowsize=0.15,arrowinset=0.02,fillstyle=solid,unit=0.6}
+\Pfeiler
+\psdot(M2)
+\rput(M2){\pnode(5;30){R}}
+\pcline{->}(M2)(R)
+\naput[nrot=:U,labelsep=1pt]{$r=5,0\,\text{m}$}
+\pcline[linestyle=dashed]([nodesep=-1.1]J)(J)
+\pcline[linestyle=dashed]([nodesep=-1.1]I)(I)
+\pcline[linestyle=dashed]([nodesep=-1.8]E)(E)
+\pcline[linestyle=dashed]([nodesep=-1.8]D)(D)
+\pcline[linestyle=dashed]([nodesep=-0.8]A)(A)
+\pcline[linestyle=dashed]([offset=-0.8]A)(A)
+\pcline[linestyle=dashed]([offset=-0.8]B)(B)
+\pcline[linestyle=dashed]([nodesep=0.8]B)(B)
+\pcline[linestyle=dashed]([nodesep=0.8]B')(B')
+\pcline[linestyle=dashed]([nodesep=0.8]C)(C)
+\pcline[linestyle=dashed]([nodesep=0.8]C')(C')
+\pcline[offset=-0.7]{<->}(I)(J)
+\ncput*{$3\,\text{m}$}
+\pcline[offset=1.5]{<->}(D)(E)
+\ncput*{$3\,\text{m}$}
+\pcline[offset=.5]{<->}(A)([nodesep=-1]D)
+\ncput*{$10\,\text{m}$}
+\pcline[offset=-.5]{<->}(A)(B)
+\ncput*{$6,0\,\text{m}$}
+\pcline{<->}([nodesep=0.7]B)([nodesep=0.7]B')
+\ncput*[nrot=:U]{$8,0\,\text{m}$}
+\pcline{<->}([nodesep=0.7]C)([nodesep=0.7]C')
+\ncput*[nrot=:U,fillcolor=black!50]{$8,0\,\text{m}$}
+\pcline[offset=0.5]{<->}(D)(C)
+\ncput*[fillcolor=black!20]{$4,0\,\text{m}$}
+%----------------------------------------
+\def\colA{white}
+\def\colB{white}
+\def\colC{white}
+\rput(14,0){%
+\Pfeiler
+\pcline[linestyle=dashed]([nodesep=0.8]G)(G)
+\pcline[linestyle=dashed]([nodesep=0.8]G')(G')
+\pcline{<->}([nodesep=0.7]G)([nodesep=0.7]G')
+\ncput*[nrot=:U]{$8,0\,\text{m}$}
+}
+\end{pspicture}
+
+
+
+\begin{pspicture}[showgrid=false](-0.5,-0.5)(15,11)
+\psset{linejoin=2,transcolor=black}
+%--------- Torbogen -------------
+\pstransTSK(0,0){5}{A}{A'}
+\pstransTSK(1.5,0){5}{B}{B'}
+\pstransTSK[translineK=false](6.5,2.5){5}{C}{C'}
+\pstransTSK(11.5,0){5}{D}{D'}
+\pstransTSK(13,0){5}{E}{E'}
+\pstransTSK(0,9){5}{F}{F'}
+\pstransTSK(13,9){5}{G}{G'}
+\pscustom[fillstyle=solid,fillcolor=brown!90]{%
+\psline(A)(B)(B')
+\psarcn(C'){5}{180}{110}
+\psline(F)(A)
+}
+\pscustom[fillstyle=solid,fillcolor=brown!60]{%
+\psline(A)(B)
+\psarcn(C){5}{180}{0}
+\psline(D)(E)(G)(F)(A)
+}
+\psdot[dotstyle=o,dotsize=5pt](C)
+\psdot[dotstyle=o,dotsize=5pt](C')
+\pspolygon[fillstyle=solid,fillcolor=brown!90](E)(E')(G')(G)
+\pspolygon[fillstyle=solid,fillcolor=brown!40](F)(G)(G')(F')
+\psline(B|C)([nodesep=0.3]B|C)
+\psline(D|C)([nodesep=-0.3]D|C)
+\psline(B'|C')([nodesep=0.3]B'|C')
+\end{pspicture}
+
+\begin{pspicture}[showgrid=false](0.75,-.5)(19,5)
+\psscalebox{0.2}{%
+\psset{linejoin=2,transcolor=black,translineK=false,arrowlength=2,arrowsize=0.15,arrowinset=0.02,fillstyle=solid,linecolor=black!60}
+\rput(0,0){\Pfeiler}\rput(14,0){\Pfeiler}\rput(28,0){\Pfeiler}\rput(42,0){\Pfeiler}\rput(56,0){\Pfeiler}\rput(70,0){\Pfeiler}\rput(84,0){\Pfeiler}
+}
+\end{pspicture}
+
+
+\clearpage
+\section{List of all optional arguments for \texttt{pst-perspective}}
+
+\xkvview{family=pst-perspective,columns={key,type,default}}
+
+\bgroup
+\raggedright
+\nocite{*}
+\bibliographystyle{plain}
+\bibliography{pst-perspective-doc}
+\egroup
+
+\printindex
+\end{document}
diff --git a/graphics/pstricks/contrib/pst-perspective/pst-perspective.sty b/graphics/pstricks/contrib/pst-perspective/pst-perspective.sty
new file mode 100644
index 0000000000..6ea036696d
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/pst-perspective.sty
@@ -0,0 +1,11 @@
+\RequirePackage{pstricks}
+\RequirePackage{pst-grad}
+\ProvidesPackage{pst-perspective}[2014/02/21 package wrapper for PSTricks pst-perspective.tex]
+\input{pst-perspective.tex}
+\ProvidesFile{pst-perspective.tex}
+ [\filedate\space v\fileversion\space `PST-perspective' (ts)]
+\IfFileExists{pst-perspective.pro}{%
+ \ProvidesFile{pst-perspective.pro}
+ [2014/04/07 v. 1.01, PostScript prologue file (hv)]
+ \@addtofilelist{pst-perspective.pro}}{}%
+\endinput
diff --git a/graphics/pstricks/contrib/pst-perspective/pst-perspective.tex b/graphics/pstricks/contrib/pst-perspective/pst-perspective.tex
new file mode 100644
index 0000000000..04b9975498
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-perspective/pst-perspective.tex
@@ -0,0 +1,408 @@
+%% COPYRIGHT 2014 by Thomas Soell
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work consists of the file pstricks.tex, PostScript macros
+% for Generic TeX.
+% See the PSTricks User's Guide for description.
+%
+\csname PSTperspectiveLoaded\endcsname
+\let\PSTperspectiveLoaded\endinput
+\ifx\PSTGradLoaded\endinput \else\input pst-grad \fi
+\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add \fi
+%
+\def\fileversion{1.05}
+\def\filedate{2016/01/04}
+\message{ v\fileversion, \filedate (ts)}
+\message{ v\fileversion, \filedate}
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+\pst@addfams{pst-perspective}
+\define@boolkey[psset]{pst-perspective}[Pst@]{translineA}[false]{} % showtransline
+\define@boolkey[psset]{pst-perspective}[Pst@]{translineB}[false]{} % showtransline
+\define@boolkey[psset]{pst-perspective}[Pst@]{translineK}[true]{} % show transline
+\define@boolkey[psset]{pst-perspective}[Pst@]{hideline}[false]{} % show hideline
+\define@boolkey[psset]{pst-perspective}[Pst@]{differentcol}[false]{} % unterschiedliche Farben der Fl\"{a}chen
+\define@boolkey[psset]{pst-perspective}[Pst@]{LowPoint}[false]{} % Basis durch z.B. tief liegenden Pkt
+\define@boolkey[psset]{pst-perspective}[Pst@]{symX}[true]{} % Symmetrieachse bei spiegelverkehrten Bildern
+\define@key[psset]{pst-perspective}{topfillstyle}[solid]{\def\psk@transTS@topfillstyle{#1}}
+\define@key[psset]{pst-perspective}{topangle}[45]{\def\psk@transTS@topangle{#1}}
+\define@key[psset]{pst-perspective}{topmidpoint}[0.5]{\def\psk@transTS@topmidpoint{#1}}
+\define@key[psset]{pst-perspective}{toplinecolor}[black]{\def\psk@transTS@toplinecolor{#1}}
+\define@key[psset]{pst-perspective}{topfillcolor}[gray]{\def\psk@transTS@topfillcolor{#1}}
+\define@key[psset]{pst-perspective}{toplinewidth}[0.8pt]{\def\psk@transTS@toplinewidth{#1}}
+\define@key[psset]{pst-perspective}{hidecolor}[black!80]{\def\psk@transTS@hidecolor{#1}}
+\define@key[psset]{pst-perspective}{facecolorT}[yellow]{\def\psk@transTS@facecolorT{#1}}
+\define@key[psset]{pst-perspective}{facecolorR}[red]{\def\psk@transTS@facecolorR{#1}}
+\define@key[psset]{pst-perspective}{hidelinestyle}[solid]{\def\psk@transTS@hidelinestyle{#1}}
+\define@key[psset]{pst-perspective}{hidelinewidth}[0.7pt]{\def\psk@transTS@hidelinewidth{#1}}
+\define@key[psset]{pst-perspective}{transcolor}[blue]{\def\psk@transTS@transcolor{#1}}
+\define@key[psset]{pst-perspective}{transAcolor}[green]{\def\psk@transTS@transAcolor{#1}}
+\define@key[psset]{pst-perspective}{transBcolor}[blue]{\def\psk@transTS@transBcolor{#1}}
+\define@key[psset]{pst-perspective}{translinestyle}[solid]{\def\psk@transTS@translinestyle{#1}}
+\define@key[psset]{pst-perspective}{transAlinestyle}[dashed]{\def\psk@transTS@transAlinestyle{#1}}
+\define@key[psset]{pst-perspective}{transBlinestyle}[dashed]{\def\psk@transTS@transBlinestyle{#1}}
+\define@key[psset]{pst-perspective}{translinewidth}[0.8pt]{\def\psk@transTS@translinewidth{#1}}
+\define@key[psset]{pst-perspective}{transAlinewidth}[0.7pt]{\def\psk@transTS@transAlinewidth{#1}}
+\define@key[psset]{pst-perspective}{transBlinewidth}[0.7pt]{\def\psk@transTS@transBlinewidth{#1}}
+\define@key[psset]{pst-perspective}{LowP}[{0|0}]{\def\psk@transTS@LowP{#1 }}
+\define@key[psset]{pst-perspective}{originT}[{0|0}]{\def\psk@transTS@originT{#1 }}
+\define@key[psset]{pst-perspective}{base}[0]{\def\psk@transTS@base{#1 }} % y-Wert der Basis f\"{u}r die Transformation
+\define@key[psset]{pst-perspective}{symline}[0]{\def\psk@transTS@symline{#1 }} % Symmetrieachse
+\define@key[psset]{pst-perspective}{phi}[45]{\def\psk@transTS@phi{#1 }}% Winkel f\"{u}r das Schr\"{a}gbild
+\define@key[psset]{pst-perspective}{deltaphi}[0]{\def\psk@transTS@deltaphi{#1 }}% zus\"{a}tzlicher Winkel f\"{u}r das Schr\"{a}gbild
+\define@key[psset]{pst-perspective}{vkf}[0.5]{\def\psk@transTS@vkf{#1 }} % Verk\"{u}rzungsfaktor
+\psset[pst-perspective]{phi=45,vkf=0.5,base=0,translineA=false,translineB=false,transAcolor=green,transBcolor=blue,differentcol=false,%
+transAlinewidth=0.7pt,transBlinewidth=0.7pt,transAlinestyle=dashed,transBlinestyle=dashed,deltaphi=0,facecolorT=yellow,facecolorR=red,%
+symline=0,symX=true,hidecolor=black!80,translineK=true,transcolor=blue,translinewidth=0.8pt,translinestyle=solid,%
+LowPoint=false,LowP={0,0},originT={0,0},hideline=false,hidelinewidth=0.7pt,hidelinestyle=dashed,%
+topfillstyle=solid,topangle=45,topmidpoint=0.5,toplinecolor=black,toplinewidth=0.8pt,topfillcolor=gray%
+}%
+\SpecialCoor%
+\def\ba{\psk@transTS@base}
+\def\pstransTS{\pst@object{pstpstransTS}}%
+%
+\def\pstpstransTS@i(#1)#2#3{%
+\begingroup%
+% (#1) Punkt 1
+% #2 Node-Name des Startpunktes % #3 Node-Name des transformierten Punktes
+\pst@killglue
+\use@par
+\rput(\psk@transTS@originT){\pnode(#1){#2}}%
+\pst@getcoor{#1}\pst@tempA%
+\pst@getcoor{\psk@transTS@LowP}\pst@tempB
+\rput(\psk@transTS@originT){\pnode(! %
+\pst@tempA \tx@UserCoor /y1 ED /x1 ED
+\ifPst@LowPoint
+\pst@tempB \tx@UserCoor /y2 ED /x2 ED
+\else
+/y2 \psk@transTS@base def \fi
+/lang y2 y1 sub abs \psk@transTS@vkf mul def
+/lang2 y2 y1 sub def
+lang2 0 ge {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add 180 sub def} {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add def} ifelse
+lang alph2 PtoC exch x1 add exch y2 add){#3}
+\ifPst@translineA
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempA \tx@UserCoor pop \pst@tempB \tx@UserCoor exch pop)(#2)
+\else
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempA \tx@UserCoor pop \psk@transTS@base)(#2)
+\fi
+\else \fi%
+\ifPst@translineB
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempA \tx@UserCoor pop \pst@tempB \tx@UserCoor exch pop)(#3)
+\else
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempA \tx@UserCoor pop \psk@transTS@base)(#3)
+\fi
+\else \fi%
+}%
+\endgroup
+\ignorespaces
+}
+\def\pstransTSX{\pst@object{pstpstransTSX}}%
+%
+\def\pstpstransTSX@i(#1)#2#3{%
+\begingroup%
+% (#1) Punkt 1
+% #2 Node-Name des Startpunktes % #3 Node-Name des transformierten Punktes
+\pst@killglue
+\use@par
+\rput(\psk@transTS@originT){\pnode(#1){#2}}%
+\pst@getcoor{#1}\pst@tempA%
+\pst@getcoor{\psk@transTS@LowP}\pst@tempB
+\rput(\psk@transTS@originT){\pnode(! %
+\pst@tempA \tx@UserCoor /y1 ED /x1 ED
+\ifPst@LowPoint
+\pst@tempB \tx@UserCoor /y2 ED /x2 ED
+\else
+/x2 \psk@transTS@base def \fi
+/x3 \psk@transTS@symline def
+\ifPst@symX
+/lang x2 x1 sub x1 x3 sub 2 mul add abs \psk@transTS@vkf mul def
+\else
+/lang x2 x1 sub abs \psk@transTS@vkf mul def \fi
+/lang2 x2 x1 sub def
+x2 x1 ge {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add def} {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add 180 sub def} ifelse
+lang alph2 PtoC exch x2 add exch y1 add){#3}
+\ifPst@translineA
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempB \tx@UserCoor pop \pst@tempA \tx@UserCoor exch pop)(#2)
+\else
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \psk@transTS@base \pst@tempA \tx@UserCoor exch pop)(#2)
+\fi
+\else \fi%
+\ifPst@translineB
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempB \tx@UserCoor pop \pst@tempA \tx@UserCoor exch pop)(#3)
+\else
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \psk@transTS@base \pst@tempA \tx@UserCoor exch pop )(#3)
+\fi
+\else \fi%
+}%
+\endgroup
+\ignorespaces
+}
+%------------------------------------------------------------------
+\def\pstransTSK{\pst@object{pstpstransTSK}}%
+\def\pstpstransTSK@i(#1)#2#3#4{%
+\begingroup%
+% (#1) Koordinaten des Punktes (kartesisch oder Polarkoordinaten)
+% #2 Originall\"{a}nge #3 Node-Name des Startpunktes % #4 Node-Name des transformierten Punktes
+\pst@killglue
+\use@par
+\rput(#1){\pnode(0,0){#3}}
+\rput(#1){\pnode(! %
+/l1 #2 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi PtoC){#4}}
+\ifPst@translineK
+\pcline[linecolor=\psk@transTS@transcolor,linestyle=\psk@transTS@translinestyle,linewidth=\psk@transTS@translinewidth](#3)(#4)
+\else \fi%
+\endgroup
+\ignorespaces
+}
+%--------------------------------------------------------------------------------
+%--------------------------------------------------------------------------------
+\def\psboxTS{\pst@object{pstpsboxTS}}%
+\def\pstpsboxTS@i(#1,#2,#3)#4#5#6#7{%
+\begingroup%
+% (#1) Koordinaten des Punktes (kartesisch oder Polarkoordinaten)
+% #2 Originall\"{a}nge #3 Node-Name des Startpunktes % #4 Node-Name des transformierten Punktes
+\pst@killglue
+\use@par
+\colorlet{colorfl}{#7}
+%-------------------------------------------------
+{\ifPst@differentcol
+\psset{fillstyle=solid,fillcolor=colorfl}%
+\else
+\psset{fillstyle=solid,fillcolor=colorfl!60}%
+\fi
+\pspolygon%
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 add exch)%
+%-------------------------------------------------
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 #5 add add exch)%
+%-------------------------------------------------
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 #5 add add exch)%
+%-------------------------------------------------
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 add exch)%
+}%
+%-------------------------------------------------
+{\ifPst@differentcol
+\psset{fillstyle=solid,fillcolor=\psk@transTS@facecolorR}%
+\else
+\psset{fillstyle=solid,fillcolor=colorfl!90}%
+\fi
+\pspolygon%
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 #5 add add exch)%
+%-------------------------------------------------
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 #5 add add exch)%
+%-------------------------------------------------
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 #5 add add exch)%
+%-------------------------------------------------
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 #5 add add exch)%
+}%
+%%-------------------------------------------------
+{\ifPst@differentcol
+\psset{fillstyle=solid,fillcolor=\psk@transTS@facecolorT}%
+\else
+\psset{fillstyle=solid,fillcolor=colorfl!40}%
+\fi
+\pspolygon%
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 #5 add add exch)%
+%-------------------------------------------------
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 #5 add add exch)%
+%-------------------------------------------------
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 add exch)%
+%-------------------------------------------------
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 add exch)%
+}%
+%-------------------------------------------------
+\ifPst@hideline
+\pcline[nodesep=1.1pt,linecolor=\psk@transTS@hidecolor,linestyle=\psk@transTS@hidelinestyle,linewidth=\psk@transTS@hidelinewidth]%
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 add exch)%
+(!/l1 #1 #4 add def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 add exch)%
+%-------------------------------------------------
+\pcline[nodesep=1.1pt,linecolor=\psk@transTS@hidecolor,linestyle=\psk@transTS@hidelinestyle,linewidth=\psk@transTS@hidelinewidth]%
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 add exch)%
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 #6 add add exch #2 add exch)%
+%-------------------------------------------------
+\pcline[nodesep=1.1pt,linecolor=\psk@transTS@hidecolor,linestyle=\psk@transTS@hidelinestyle,linewidth=\psk@transTS@hidelinewidth]%
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 add exch)%
+(!/l1 #1 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 #5 add add exch)%
+\else \fi%
+\endgroup
+\ignorespaces
+}
+%------------------------------------------------------------------
+\def\psCircleTS{\pst@object{pstpsCircleTS}}%
+\def\pstpsCircleTS@i#1{%
+\begingroup%
+\pst@killglue
+\use@par
+\def\punkte{}
+\multido{\i=0+3}{120}{%
+\pstransTS(#1;\i){AnfPktC\i}{EndPktC'\i}
+\xdef\punkte{\punkte(EndPktC'\i)}}
+\expandafter\psccurve\punkte
+\endgroup
+\ignorespaces
+}
+%--------------------------------------------------------------------------------
+%------------------------------------------------------------------
+\def\psCircleTSX{\pst@object{pstpsCircleTSX}}%
+\def\pstpsCircleTSX@i#1{%
+\begingroup%
+\pst@killglue
+\use@par
+\def\punkte{}
+\multido{\i=0+3}{120}{%
+\pstransTSX(#1;\i){AnfPktC\i}{EndPktC'\i}
+\xdef\punkte{\punkte(EndPktC'\i)}}
+\expandafter\psccurve\punkte
+\endgroup
+\ignorespaces
+}
+%--------------------------------------------------------------------------------
+%------------------------------------------------------------------
+\def\psArcTS{\pst@object{pstpsArcTS}}%
+\def\pstpsArcTS@i#1#2#3{%
+\begingroup%
+\pst@killglue
+\use@par
+\pst@Verb{%
+/v \psk@transTS@vkf def%
+/ph \psk@transTS@phi def%
+/t 1 v 2 exp sub v 4 exp 2 v 2 exp mul 2 ph mul cos mul add 1 add sqrt div def%
+/ws 2 sqrt 2 div 1 t sub sqrt mul ASIN 180 mul Pi div def%
+}
+\def\punkte{}
+\multido{\r=0+1}{#3}{%
+\pstransTS(! #1 ws #2 add \r\space add PtoC){AnfPkt}{EndPkt\r}
+\xdef\punkte{\punkte(EndPkt\r)}}
+\expandafter\pscurve\punkte
+\endgroup
+\ignorespaces
+}
+%--------------------------------------------------------------------------------
+%------------------------------------------------------------------
+\def\psArcTSX{\pst@object{pstpsArcTSX}}%
+\def\pstpsArcTSX@i#1#2#3{%
+\begingroup%
+\pst@killglue
+\use@par
+\pst@Verb{%
+/v \psk@transTS@vkf def%
+/ph \psk@transTS@phi def%
+/t 1 v 2 exp sub v 4 exp 2 v 2 exp mul 2 ph mul cos mul add 1 add sqrt div def%
+/ws 2 sqrt 2 div 1 t sub sqrt mul ASIN 180 mul Pi div def%
+}
+\def\punkte{}
+\multido{\r=0+1}{#3}{%
+\pstransTSX(! #1 ws 90 add #2 add \r\space add PtoC){AnfPkt}{EndPkt\r}
+\xdef\punkte{\punkte(EndPkt\r)}}
+\expandafter\pscurve\punkte
+\endgroup
+\ignorespaces
+}
+%--------------------------------------------------------------------------------
+%------------------------------------------------------------------
+\def\psZylinderTS{\pst@object{pstpsZylinderTS}}%
+\def\pstpsZylinderTS@i#1#2{%
+\begingroup%
+\pst@killglue
+\use@par
+\pst@Verb{%
+/v \psk@transTS@vkf def%
+/ph \psk@transTS@phi def%
+/t 1 v 2 exp sub v 4 exp 2 v 2 exp mul 2 ph mul cos mul add 1 add sqrt div def%
+/ws 2 sqrt 2 div 1 t sub sqrt mul ASIN 180 mul Pi div def%
+/Ra 0.5 1 t add mul 1 v 2 exp sub mul v 2 exp add v ph cos mul 1 t 2 exp sub sqrt mul add sqrt def%
+/Rb 0.5 1 t sub mul 1 v 2 exp sub mul v 2 exp add v ph cos mul 1 t 2 exp sub sqrt mul sub sqrt def%
+/we 2 sqrt 2 div 1 t sub sqrt mul v mul ph sin mul Ra div ASIN 180 mul Pi div def%
+}
+\def\punkteA{}
+\def\punkteB{}
+\def\punkteC{}
+\def\punkteD{}
+\multido{\r=0+1}{180}{%
+\pstransTS[originT={0,0}](! #1 ph 0 ge {ws 180 add} {ws} ifelse \r\space add PtoC){ZylA\r}{ZylA'\r}%
+\xdef\punkteA{\punkteA(ZylA'\r)}}%
+\multido{\rB=0+1}{180}{%
+\pstransTS[originT={0,#2}](! #1 ph 0 ge {ws} {ws 180 add} ifelse \rB\space add PtoC){ZylB\rB}{ZylB'\rB}%
+\xdef\punkteB{\punkteB(ZylB'\rB)}}%
+\multido{\rC=0+1}{180}{%
+\pstransTS[originT={0,0}](! #1 ws \rC\space add PtoC){ZylC\rC}{ZylC'\rC}%
+\xdef\punkteC{\punkteC(ZylC'\rC)}}%
+\multido{\rD=0+1}{360}{%
+\pstransTS[originT={0,#2}](#1;\rD){ZylD\rD}{ZylD'\rD}%
+\xdef\punkteD{\punkteD(ZylD'\rD)}}%
+%-----------------------------------------------
+\pscustom{%
+\expandafter\pscurve\punkteA%
+\rlineto(0,#2)
+\expandafter\pscurve\punkteB%
+\closepath%
+}%
+%-----------------------------------------------
+\pscustom[fillstyle=\psk@transTS@topfillstyle,gradangle=\psk@transTS@topangle,gradmidpoint=\psk@transTS@topmidpoint,linecolor=\psk@transTS@toplinecolor,%
+linewidth=\psk@transTS@toplinewidth,fillcolor=\psk@transTS@topfillcolor]{%
+\expandafter\psccurve\punkteD%
+\closepath
+}%
+%\psrotate(0,#2){! we}{%
+%\psellipse[fillstyle=\psk@transTS@topfillstyle,gradangle=\psk@transTS@topangle,gradmidpoint=\psk@transTS@topmidpoint,linecolor=\psk@transTS@toplinecolor,%
+%linewidth=\psk@transTS@toplinewidth,fillcolor=\psk@transTS@topfillcolor](0,#2)(!Ra #1 mul Rb #1 mul)}%
+\ifPst@hideline
+\psset{linecolor=\psk@transTS@hidecolor,linestyle=\psk@transTS@hidelinestyle,linewidth=\psk@transTS@hidelinewidth}%
+\expandafter\pscurve\punkteC%
+\else \fi%
+\endgroup
+\ignorespaces
+}
+%--------------------------------------------------------------------------------
+\catcode`\@=\TheAtCode\relax
+\endinput
+%%
+%% END pst-perspective.tex \ No newline at end of file