summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-04-04 22:36:52 +0000
committerKarl Berry <karl@freefriends.org>2014-04-04 22:36:52 +0000
commitcb0d77e2c7837d3ff3ffd2b9de0942e093421bdf (patch)
tree38040b993055bc9edaafebacb9ea1b7afc24813d /Master/texmf-dist/tex
parentb0fd74db0ba6b54773beafbd3d06b39775d832a5 (diff)
pst-perspective (4apr14)
git-svn-id: svn://tug.org/texlive/trunk@33373 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex157
-rw-r--r--Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty10
2 files changed, 167 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex b/Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex
new file mode 100644
index 00000000000..70477a81188
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-perspective/pst-perspective.tex
@@ -0,0 +1,157 @@
+%% COPYRIGHT 2014 by Thomas Soell
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work consists of the file pstricks.tex, PostScript macros
+% for Generic TeX.
+% See the PSTricks User's Guide for description.
+%
+\csname PSTperspectiveLoaded\endcsname
+\let\PSTperspectiveLoaded\endinput
+%\ifx\PSTEuclideLoaded\endinput \else\input pst-eucl \fi
+%\ifx\PSTricksAddLoaded\endinput\else\input pstricks-add \fi
+%
+\def\fileversion{0.01}
+\def\filedate{2014/02/21}
+\message{ v\fileversion, \filedate (ts)}
+\message{ v\fileversion, \filedate}
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+\pst@addfams{pst-perspective}
+\define@boolkey[psset]{pst-perspective}[Pst@]{translineA}[false]{} % showtransline
+\define@boolkey[psset]{pst-perspective}[Pst@]{translineB}[false]{} % showtransline
+\define@boolkey[psset]{pst-perspective}[Pst@]{translineK}[true]{} % show transline
+\define@boolkey[psset]{pst-perspective}[Pst@]{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}{transcolor}[blue]{\def\psk@transTS@transcolor{#1}}
+\define@key[psset]{pst-perspective}{transAcolor}[green]{\def\psk@transTS@transAcolor{#1}}
+\define@key[psset]{pst-perspective}{transBcolor}[blue]{\def\psk@transTS@transBcolor{#1}}
+\define@key[psset]{pst-perspective}{translinestyle}[solid]{\def\psk@transTS@translinestyle{#1}}
+\define@key[psset]{pst-perspective}{transAlinestyle}[dashed]{\def\psk@transTS@transAlinestyle{#1}}
+\define@key[psset]{pst-perspective}{transBlinestyle}[dashed]{\def\psk@transTS@transBlinestyle{#1}}
+\define@key[psset]{pst-perspective}{translinewidth}[0.8pt]{\def\psk@transTS@translinewidth{#1}}
+\define@key[psset]{pst-perspective}{transAlinewidth}[0.7pt]{\def\psk@transTS@transAlinewidth{#1}}
+\define@key[psset]{pst-perspective}{transBlinewidth}[0.7pt]{\def\psk@transTS@transBlinewidth{#1}}
+\define@key[psset]{pst-perspective}{LowP}[{0|0}]{\def\psk@transTS@LowP{#1 }}
+\define@key[psset]{pst-perspective}{originT}[{0|0}]{\def\psk@transTS@originT{#1 }}
+\define@key[psset]{pst-perspective}{base}[0]{\def\psk@transTS@base{#1 }} % y-Wert der Basis f\"{u}r die Transformation
+\define@key[psset]{pst-perspective}{symline}[0]{\def\psk@transTS@symline{#1 }} % Symmetrieachse
+\define@key[psset]{pst-perspective}{phi}[45]{\def\psk@transTS@phi{#1 }}% Winkel f\"{u}r das Schr\"{a}gbild
+\define@key[psset]{pst-perspective}{deltaphi}[0]{\def\psk@transTS@deltaphi{#1 }}% zus\"{a}tzlicher Winkel f\"{u}r das Schr\"{a}gbild
+\define@key[psset]{pst-perspective}{vkf}[0.5]{\def\psk@transTS@vkf{#1 }} % Verk\"{u}rzungsfaktor
+\psset[pst-perspective]{phi=45,vkf=0.5,base=0,translineA=false,translineB=false,transAcolor=green,transBcolor=blue,%
+transAlinewidth=0.7pt,transBlinewidth=0.7pt,transAlinestyle=dashed,transBlinestyle=dashed,deltaphi=0,symline=0,symX=true,%
+translineK=true,transcolor=blue,translinewidth=0.8pt,translinestyle=solid,LowPoint=false,LowP={0,0},originT={0,0}}%
+\SpecialCoor%
+\def\ba{\psk@transTS@base}
+\def\pstransTS{\pst@object{pstpstransTS}}%
+%
+\def\pstpstransTS@i(#1)#2#3{%
+\begingroup%
+% (#1) Punkt 1
+% #2 Node-Name des Startpunktes % #3 Node-Name des transformierten Punktes
+\pst@killglue
+\use@par
+\rput(\psk@transTS@originT){\pnode(#1){#2}}%
+\pst@getcoor{#1}\pst@tempA%
+\pst@getcoor{\psk@transTS@LowP}\pst@tempB
+\rput(\psk@transTS@originT){\pnode(! %
+\pst@tempA \tx@UserCoor /y1 ED /x1 ED
+\ifPst@LowPoint
+\pst@tempB \tx@UserCoor /y2 ED /x2 ED
+\else
+/y2 \psk@transTS@base def \fi
+/lang y2 y1 sub abs \psk@transTS@vkf mul def
+/lang2 y2 y1 sub def
+lang2 0 ge {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add 180 sub def} {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add def} ifelse
+lang alph2 PtoC exch x1 add exch y2 add){#3}
+\ifPst@translineA
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempA \tx@UserCoor pop \pst@tempB \tx@UserCoor exch pop)(#2)
+\else
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempA \tx@UserCoor pop \psk@transTS@base)(#2)
+\fi
+\else \fi%
+\ifPst@translineB
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempA \tx@UserCoor pop \pst@tempB \tx@UserCoor exch pop)(#3)
+\else
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempA \tx@UserCoor pop \psk@transTS@base)(#3)
+\fi
+\else \fi%
+}%
+\endgroup
+\ignorespaces
+}
+\def\pstransTSX{\pst@object{pstpstransTSX}}%
+%
+\def\pstpstransTSX@i(#1)#2#3{%
+\begingroup%
+% (#1) Punkt 1
+% #2 Node-Name des Startpunktes % #3 Node-Name des transformierten Punktes
+\pst@killglue
+\use@par
+\rput(\psk@transTS@originT){\pnode(#1){#2}}%
+\pst@getcoor{#1}\pst@tempA%
+\pst@getcoor{\psk@transTS@LowP}\pst@tempB
+\rput(\psk@transTS@originT){\pnode(! %
+\pst@tempA \tx@UserCoor /y1 ED /x1 ED
+\ifPst@LowPoint
+\pst@tempB \tx@UserCoor /y2 ED /x2 ED
+\else
+/x2 \psk@transTS@base def \fi
+/x3 \psk@transTS@symline def
+\ifPst@symX
+/lang x2 x1 sub x1 x3 sub 2 mul add abs \psk@transTS@vkf mul def
+\else
+/lang x2 x1 sub abs \psk@transTS@vkf mul def \fi
+/lang2 x2 x1 sub def
+x2 x1 ge {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add def} {/alph2 \psk@transTS@phi \psk@transTS@deltaphi add 180 sub def} ifelse
+lang alph2 PtoC exch x2 add exch y1 add){#3}
+\ifPst@translineA
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \pst@tempB \tx@UserCoor pop \pst@tempA \tx@UserCoor exch pop)(#2)
+\else
+\pcline[linecolor=\psk@transTS@transAcolor,linestyle=\psk@transTS@transAlinestyle,linewidth=\psk@transTS@transAlinewidth](! \psk@transTS@base \pst@tempA \tx@UserCoor exch pop)(#2)
+\fi
+\else \fi%
+\ifPst@translineB
+\ifPst@LowPoint
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \pst@tempB \tx@UserCoor pop \pst@tempA \tx@UserCoor exch pop)(#3)
+\else
+\pcline[linecolor=\psk@transTS@transBcolor,linestyle=\psk@transTS@transBlinestyle,linewidth=\psk@transTS@transBlinewidth](! \psk@transTS@base \pst@tempA \tx@UserCoor exch pop )(#3)
+\fi
+\else \fi%
+}%
+\endgroup
+\ignorespaces
+}
+%------------------------------------------------------------------
+\def\pstransTSK{\pst@object{pstpstransTSK}}%
+\def\pstpstransTSK@i(#1)#2#3#4{%
+\begingroup%
+% (#1) Koordinaten des Punktes (kartesisch oder Polarkoordinaten)
+% #2 Originall\"{a}nge #3 Node-Name des Startpunktes % #4 Node-Name des transformierten Punktes
+\pst@killglue
+\use@par
+\rput(#1){\pnode(0,0){#3}}
+\rput(#1){\pnode(! %
+/l1 #2 def
+/l2 l1 \psk@transTS@vkf mul def
+l2 \psk@transTS@phi PtoC){#4}}
+\ifPst@translineK
+\pcline[linecolor=\psk@transTS@transcolor,linestyle=\psk@transTS@translinestyle,linewidth=\psk@transTS@translinewidth](#3)(#4)
+\else \fi%
+\endgroup
+\ignorespaces
+}
+\catcode`\@=\TheAtCode\relax
+\endinput
+%%
+%% END pst-perspective.tex \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty b/Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty
new file mode 100644
index 00000000000..757bf952fe1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-perspective/pst-perspective.sty
@@ -0,0 +1,10 @@
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-perspective}[2014/02/21 package wrapper for PSTricks pst-perspective.tex]
+\input{pst-perspective.tex}
+\ProvidesFile{pst-perspective.tex}
+ [\filedate\space v\fileversion\space `PST-perspective' (ts)]
+\IfFileExists{pst-perspective.pro}{%
+ \ProvidesFile{pst-perspective.pro}
+ [2014/02/21 v. 1.00, PostScript prologue file (hv)]
+ \@addtofilelist{pst-perspective.pro}}{}%
+\endinput