From 0a11b23c3bc0c1e82d3eb3d880e4bd642660259d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 18 Apr 2014 23:32:15 +0000 Subject: pst-perspective (18apr14) git-svn-id: svn://tug.org/texlive/trunk@33524 c570f23f-e606-0410-a88d-b1316a301751 --- .../pst-perspective/Parallelprojektion-Kreis.pdf | Bin 0 -> 345521 bytes .../pst-perspective/Parallelprojektion-Kreis.tex | 266 +++++++++++++++++++++ .../pst-perspective/pst-perspective-doc.pdf | Bin 304874 -> 574741 bytes .../pst-perspective/pst-perspective-doc.tex | 96 +++++++- .../pst-perspective/pst-perspective-docEN.pdf | Bin 293096 -> 547492 bytes .../pst-perspective/pst-perspective-docEN.tex | 99 +++++++- .../generic/pst-perspective/pst-perspective.tex | 145 ++++++++++- .../tex/latex/pst-perspective/pst-perspective.sty | 1 + 8 files changed, 593 insertions(+), 14 deletions(-) create mode 100644 Master/texmf-dist/doc/generic/pst-perspective/Parallelprojektion-Kreis.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-perspective/Parallelprojektion-Kreis.tex (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/generic/pst-perspective/Parallelprojektion-Kreis.pdf b/Master/texmf-dist/doc/generic/pst-perspective/Parallelprojektion-Kreis.pdf new file mode 100644 index 00000000000..97b5633ff92 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-perspective/Parallelprojektion-Kreis.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-perspective/Parallelprojektion-Kreis.tex b/Master/texmf-dist/doc/generic/pst-perspective/Parallelprojektion-Kreis.tex new file mode 100644 index 00000000000..aac7a7e0777 --- /dev/null +++ b/Master/texmf-dist/doc/generic/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/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.pdf b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.pdf index e05e6f46c83..768938c247b 100644 Binary files a/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.pdf and b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.tex b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.tex index 24feb50f8aa..43b2bcae5da 100644 --- a/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.tex +++ b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-doc.tex @@ -1,5 +1,5 @@ \PassOptionsToPackage{dvipsnames}{xcolor} -\PassOptionsToPackage{distiller}{pstricks} +%\PassOptionsToPackage{distiller}{pstricks} \documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false, smallheadings, headexclude,footexclude,oneside]{pst-doc} \usepackage[utf8]{inputenc} @@ -7,7 +7,7 @@ \usepackage{multido,pst-grad,pst-eucl,pst-3dplot,pstricks-add} \usepackage{pst-perspective} -\def\fileversion{1.03} +\def\fileversion{1.04} \let\pstPerspectiveFV\fileversion \renewcommand\bgImage{\psscalebox{0.85}{% \begin{pspicture}[showgrid=false](0.5,-0.5)(11.5,8.5) @@ -30,14 +30,19 @@ \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}, - escapechar=?} +morekeywords={pstransTSK,pstransTSX,pstransTS,pstMarkAngle,psIntersectionPoint,psboxTS,pstThreeDPlaneGrid,psZylinderTS,psCircleTS,psCircleTSX, +psArcTS,psArcTSX}, escapechar=?} %\lstset{language=PSTricks,morekeywords={pst-perspective},basicstyle=\footnotesize\ttfamily} % @@ -731,6 +736,89 @@ Das Makro l\"{a}sst sich, wie die anderen auch, gut mit dem Paket pst-3dplot kom \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} diff --git a/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.pdf b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.pdf index ea148da0d0d..45cfe0ca102 100644 Binary files a/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.pdf and b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.tex b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.tex index 05574b9d6de..966b729ee6f 100644 --- a/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.tex +++ b/Master/texmf-dist/doc/generic/pst-perspective/pst-perspective-docEN.tex @@ -1,5 +1,5 @@ \PassOptionsToPackage{dvipsnames}{xcolor} -\PassOptionsToPackage{distiller}{pstricks} +%\PassOptionsToPackage{distiller}{pstricks} \documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false, smallheadings, headexclude,footexclude,oneside]{pst-doc} \usepackage[utf8]{inputenc} @@ -7,9 +7,8 @@ \usepackage{multido,pst-grad,pst-eucl,pst-3dplot,pstricks-add} \usepackage{pst-perspective} -\lstset{language=PSTricks,morekeywords={pstransTSK,pstransTSX,pstransTS,pstMarkAngle,psIntersectionPoint,psboxTS}} -\def\fileversion{1.03} +\def\fileversion{1.04} \let\pstPerspectiveFV\fileversion \renewcommand\bgImage{\psscalebox{0.85}{% \begin{pspicture}[showgrid=false](0.5,-0.5)(11.5,8.5) @@ -32,13 +31,19 @@ \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={}}, - escapechar=?} +\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} % @@ -730,8 +735,92 @@ This macro and the others as well can be used in combination with the pst-3dplot \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] diff --git a/Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex b/Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex index 76274535f8b..85848c9b4f8 100644 --- a/Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex +++ b/Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex @@ -14,11 +14,11 @@ % \csname PSTperspectiveLoaded\endcsname \let\PSTperspectiveLoaded\endinput -%\ifx\PSTEuclideLoaded\endinput \else\input pst-eucl \fi -%\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add \fi +\ifx\PSTGradLoaded\endinput \else\input pst-grad \fi +\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add \fi % -\def\fileversion{0.01} -\def\filedate{2014/02/21} +\def\fileversion{1.04} +\def\filedate{2014/04/18} \message{ v\fileversion, \filedate (ts)} \message{ v\fileversion, \filedate} \edef\TheAtCode{\the\catcode`\@} @@ -31,6 +31,12 @@ \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}} @@ -55,7 +61,9 @@ \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}% +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}}% @@ -266,6 +274,133 @@ l2 \psk@transTS@phi 180 add PtoC #3 add exch #2 #5 add add exch)% \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 %% diff --git a/Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty b/Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty index 0e857f5cd46..6ea036696d9 100644 --- a/Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty +++ b/Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty @@ -1,4 +1,5 @@ \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} -- cgit v1.2.3