\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}