summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-antiprism
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pst-antiprism
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pst-antiprism')
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/Changes10
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/README.md34
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.bib43
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.pdfbin0 -> 457761 bytes
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.tex286
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/dvips/pst-antiprism.pro154
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/latex/pst-antiprism.sty20
-rw-r--r--graphics/pstricks/contrib/pst-antiprism/tex/pst-antiprism.tex72
8 files changed, 619 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pst-antiprism/Changes b/graphics/pstricks/contrib/pst-antiprism/Changes
new file mode 100644
index 0000000000..f5592b4c2c
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/Changes
@@ -0,0 +1,10 @@
+pst-antiprism.pro --------
+0.02 2018-02-12 first CTAN version
+
+
+pst-antiprism.tex --------
+0.02 2018-02-12 first CTAN version
+
+
+pst-antiprism.sty --------
+0.02 2018-02-12 first CTAN version
diff --git a/graphics/pstricks/contrib/pst-antiprism/README.md b/graphics/pstricks/contrib/pst-antiprism/README.md
new file mode 100644
index 0000000000..852f31690c
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/README.md
@@ -0,0 +1,34 @@
+Save the files pst-antiprism.sty|tex in a directory, which is part of your
+local TeX tree. pst-antiprism.pro should be saved in ../texmf/dvips/pstricks/
+Then do not forget to run texhash to update this tree.
+pst-antiprism needs pst-solides3d and pstricks, which should be part of your
+local TeX installation, otherwise get it from a CTAN server
+http://mirror.CTAN.org
+
+
+Save the files
+
+pst-antiprism.sty
+pst-antiprism.tex
+pst-antiprism.pro
+
+in any place, where latex or any other TeX program will find it.
+Do not forget to update your database, when installing this
+package the first time.
+
+If you like to get the documentation file in another format run
+
+latex pst-antiprism-doc.tex
+biber pst-antiprism.doc
+latex pst-antiprism-doc.tex
+dvips pst-antiprism-doc.dvi
+
+to get a PostScript file. But pay attention, that the pst-antiprism
+files are saved in the above mentioned way, before you run
+latex on the documentation file.
+
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory CTAN:/macros/latex/base/lppl.txt.
+
+$Id: README.md 730 2018-02-13 17:50:37Z herbert $
diff --git a/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.bib b/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.bib
new file mode 100644
index 0000000000..68b88eb2b4
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.bib
@@ -0,0 +1,43 @@
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+@online{weisstein,
+ author = {Eric Weisstein},
+ title = {Antiprism},
+ url = {http://mathworld.wolfram.com/Antiprism.html},
+ urldate = {2018-02-12}
+}
+
+@online{meyer,
+ author = {Hans-Bernhard Meyer},
+ title = {Hexagonal antiprism},
+ url = {http://www.hbmeyer.de/flechten/ap6/indexeng.html},
+ urldate = {2018-02-12}
+}
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Voß},
+ title = {The {\LaTeX} Graphics Companion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ edition = {2},
+ date = {2007},
+ location = {Boston, Mass.}
+}
+
+@ctan{solides3d,
+ Title = {\texttt{pst-solides3d} -- The Basics},
+ Author = {Jean-Paul Vignault and Manuel Luque and Arnauls Schmittbuhl and Jürgen Gilg and Jean-Michel Sarlat and Herbert Voß},
+ url = {/graphics/pstricks/contrib/pst-solides3d/},
+ date = {2017-08-23},
+ urldate = {2018-02-12}
+}
+
+@Book{PSTricksE,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}raphics and {P}ost{S}cript for \LaTeX},
+ edition = {1},
+ publisher = {UIT},
+ date = {2011},
+ location = {Cambridge -- UK}
+}
+
diff --git a/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.pdf b/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.pdf
new file mode 100644
index 0000000000..c508e6c1a5
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.tex b/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.tex
new file mode 100644
index 0000000000..020666a859
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/doc/pst-antiprism-doc.tex
@@ -0,0 +1,286 @@
+%% $Id: pst-antiprism-doc.tex 729 2018-02-13 17:48:53Z herbert $
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,headings=small,
+ headinclude=false,footinclude=false,oneside=true]{pst-doc}
+\listfiles
+
+\usepackage[utf8]{inputenc}
+\usepackage{pst-antiprism}
+\let\pstFV\fileversion
+\def\bgImage{\resizebox{7cm}{!}{\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 60 30 rtp2xyz,Decran=100}
+\psAntiprism[a=1,n=15,hue=0 1 0.5 1,
+ linecolor={[rgb]{0 0 0.5}}]
+\end{pspicture}}}
+
+\usepackage{showexpl,listings,xltabular,booktabs,animate}
+
+\lstset{explpreset={pos=l,width=-99pt,overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe={}}}
+
+\usepackage{biblatex}
+\addbibresource{\jobname.bib}
+
+
+\definecolor{Miel} {RGB}{218 179 10}
+\definecolor{Maroon} {cmyk}{0 0.87 0.68 0.32}
+
+\begin{document}
+\title{\texttt{pst-antiprism}: Drawing an antiprism \\
+\small v.\pstFV}
+%\docauthor{}
+\author{Manuel Luque\\Herbert Voß}
+
+\maketitle
+
+\tableofcontents
+
+
+
+\section{Introduction}
+
+An antiprism is a semiregular polyhedron constructed with 2 n-gons and 2n triangles.
+The nets are particularly simple, consisting of two n-gons on top and bottom, separated by a
+ribbon of 2n triangles, with the two n-gons being offset by one ribbon segment.
+The duals of the antiprisms are the trapezohedra.~\cite{weisstein}
+
+The macro \Lcs{psAntiprism} has the following syntax:
+
+\begin{BDef}
+\Lcs{psAntiprism}\OptArgs
+\end{BDef}
+
+The special optional arguments with its default values are
+
+\begin{xltabular}{\linewidth}{@{} >{\ttfamily}l l X @{}}\toprule
+\rmfamily\emph{name} & \emph{default} & \emph{description}\\\midrule
+n & 8 & number of the edges of the polygon\\
+a & 1 & the radius of the outer polygon circle\\
+meshbases & true & A boolean to mesh the bases with triangles whose one vertex is the
+ center of the base and the two other two consecutive vertices of the polygon of the base.\\
+colored & false & A boolean which will color the antiprism. This is only possible with \texttt{meshbases=true}.
+ The bases of the triangles allow a coloration by continuity of a triangle of the periphery of the
+ antiprisme and the corresponding triangle of the base. It is an adaptation of the idea of H.\,B.\,Meyer
+ for hexagonal antiprism.~\cite{meyer}\\
+fan & false & draw the antiprism as a fan.\\
+\bottomrule
+\end{xltabular}
+
+
+\section{Examples}
+\subsection{The default behaviour}
+
+For \Lkeyword{viewpoint} and \Lkeyword{Decran} see the documentation of \LPack{pst-solides3d}.~\cite{solides3d}
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 60 30 rtp2xyz,Decran=100}
+\psAntiprism
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+
+\subsection{Using the optional arguments}
+
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 60 30 rtp2xyz,Decran=100}
+\psAntiprism[a=1,n=15,hue=0 1 0.5 1,
+ linecolor={[rgb]{0 0 0.5}}]
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 60 30 rtp2xyz,Decran=75}
+\psAntiprism[a=2,n=10,fillcolor=Miel,hollow,incolor=yellow!20,
+ linecolor={[rgb]{0 0 0.5}},
+ linewidth=1.5pt,
+ opacity=0.9]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\subsection{No lines for the base triangles: option \texttt{meshbases=false}}
+In this case, the 2 bases have the numbers 0 and 1 and we can delete them with the optional
+argument setting \Lkeyword{rm}\texttt{=0 1}.
+
+
+
+
+
+
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 60 30 rtp2xyz,Decran=100}
+\psAntiprism[a=2,n=8,inouthue=1 0 0.5 1,
+ meshbases=false,hollow,
+ opacity=0.8]
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 60 30 rtp2xyz,Decran=100}
+\psAntiprism[a=2,n=8,inouthue=1 0 0.5 1,
+ meshbases=false,numfaces=,hollow,
+ opacity=0.8,rm=0 1,affinage=]
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 60 30 rtp2xyz,Decran=100}
+\psAntiprism[a=2,n=10,fillcolor=Maroon,
+ incolor=yellow!20,
+ linecolor=blue,
+ meshbases=false,hollow,
+ opacity=0.8,affinage=all]
+\end{pspicture}
+\end{LTXexample}
+
+
+\section{Colored anitpriam}
+
+This behaviour needs the setting \texttt{meshbases=true} and \texttt{colored=true}.
+
+It allows coloring by continuity of a triangle
+around the antiprism and the corresponding triangle of the base. The other options didn't changed
+its meaning.
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 90 30 rtp2xyz,Decran=100}
+\psset{a=1,r=1}
+\psAntiprism[colored,n=17]
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=0.35\linewidth]
+\begin{pspicture}(-3,-3)(3,3)
+\psset{viewpoint=100 90 -30 rtp2xyz,Decran=100}
+\psset{lightsrc=viewpoint}
+\psset{a=1,r=1,hollow,opacity=0.8,linecolor=blue}
+\psAntiprism[colored,n=17]
+\end{pspicture}
+\end{LTXexample}
+
+
+\section{An antiprism as a fan}
+
+With the optional argument \Lkeyword{fan} the antiprism can be drawn like a fan:
+
+\begin{LTXexample}[width=0.5\linewidth]
+\begin{pspicture}(-4.5,-2.5)(4.5,2.5)
+\psset{viewpoint=200 15 20 rtp2xyz,
+ Decran=500}
+\psAntiprism[fan,a=0.5,n=20,
+ inouthue=0.1 1,hollow,opacity=0.9]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\begin{LTXexample}[width=0.55\linewidth]
+\begin{pspicture}(-4.5,-3)(4.5,3)
+\psset{viewpoint=100 20 30 rtp2xyz,
+ Decran=150}
+\psAntiprism[fan,n=12,a=1.5,hollow,
+ incolor=yellow,fillcolor=red,
+ linecolor=blue,opacity=0.95,
+ affinage=all,affinagecoeff=0.9]
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=0.55\linewidth]
+\begin{pspicture}(-4.5,-3)(4.5,3)
+\psset{viewpoint=200 2 25 rtp2xyz,
+ Decran=500,solidmemory}
+\psAntiprism[fan,n=20,a=0.5,hollow,
+ inouthue=0.1 1,opacity=0.9,
+ plansepare={[1 0 0 0.05]},
+ name=eventail,action=none]
+\psSolid[object=load,load=eventail1,
+ deactivatecolor,hollow,opacity=0.8]
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{animation}
+With the package \LPack{animate} one can create inline animations in an easy way:
+
+
+\begin{center}
+\begin{animateinline}[controls,loop,
+ begin={\begin{pspicture}(-4.5,-2.5)(4.5,2.5)},
+ end={\end{pspicture}}]{12}% 25 images/s
+\multiframe{72}{iTheta=0+5}{%
+\psset{viewpoint=200 \iTheta\space 20 rtp2xyz,
+ Decran=500}
+\psAntiprism[fan,a=0.5,n=20,inouthue=0.1 1,hollow,opacity=0.9]}
+\end{animateinline}
+\end{center}
+
+
+\begin{lstlisting}
+\begin{animateinline}[controls,loop,
+ begin={\begin{pspicture}(-4.5,-2.5)(4.5,2.5)},
+ end={\end{pspicture}}]{12}% 25 images/s
+\multiframe{72}{iTheta=0+5}{%
+\psset{viewpoint=200 \iTheta\space 20 rtp2xyz,
+ Decran=500}
+\psAntiprism[fan,a=0.5,n=20,inouthue=0.1 1,hollow,opacity=0.9]}
+\end{animateinline}
+\end{lstlisting}
+
+
+\begin{center}
+\begin{animateinline}[controls,loop,
+ begin={\begin{pspicture}(-4,-4)(4,4)},
+ end={\end{pspicture}}]{12}% 25 images/s
+\multiframe{72}{iTheta=0+5}{%
+\psset{viewpoint=100 90 20 rtp2xyz,Decran=120}
+\psset{lightsrc=viewpoint}
+\psset{a=1,r=1,hollow,opacity=0.8,linecolor=blue,RotSequence=zxy,RotX=\iTheta,RotZ=\iTheta}
+\psAntiprism[colored,n=17]}
+\end{animateinline}
+\end{center}
+
+
+\begin{lstlisting}
+\begin{animateinline}[controls,loop,
+ begin={\begin{pspicture}(-4,-4)(4,4)},
+ end={\end{pspicture}}]{12}% 25 images/s
+\multiframe{72}{iTheta=0+5}{%
+\psset{viewpoint=100 90 20 rtp2xyz,Decran=120}
+\psset{lightsrc=viewpoint}
+\psset{a=1,r=1,hollow,opacity=0.8,linecolor=blue,RotSequence=zxy,RotX=\iTheta,RotZ=\iTheta}
+\psAntiprism[colored,n=17]}
+\end{animateinline}
+\end{lstlisting}
+
+
+
+\clearpage
+
+\section{List of all optional arguments for \texttt{pst-antiprism}}
+
+\xkvview{family=pst-antiprism,columns={key,type,default}}
+
+
+\bgroup
+\raggedright
+\nocite{*}
+\printbibliography
+\egroup
+
+\printindex
+\end{document}
+
diff --git a/graphics/pstricks/contrib/pst-antiprism/dvips/pst-antiprism.pro b/graphics/pstricks/contrib/pst-antiprism/dvips/pst-antiprism.pro
new file mode 100644
index 0000000000..e9098dba8b
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/dvips/pst-antiprism.pro
@@ -0,0 +1,154 @@
+%% $Id: pst-antiprism.pro 522 2017-08-23 09:03:52Z herbert $
+%% PostScript prologue for pst-antiprism.tex.
+%%
+%% Version 0.02, 2018/02/12
+%%
+%% For distribution, see pst-antiprism.tex.
+%%
+%%
+/ps@antiprism { 12 dict begin
+ /n exch def % cotè du polygone
+ /a exch def % length on the antiprism side
+ /angle 360 n div def
+ % hauteur entre les 2 plans
+ /h a 1 1 angle 4 div cos 2 mul dup mul div sub sqrt mul 2 div def
+ % rayon du cercle circonscrit au polygone
+ /r a 2 div angle 2 div sin div def
+ % Les sommets des polygones réguliers supérieur et inférieur, alternativement
+ % inscrit dans un cercle de rayon 1
+ /sommets [ % 0->2n-1
+ 0 1 n 1 sub {
+ /k exch def
+ angle k mul cos r mul
+ angle k mul sin r mul
+ h
+ k 0.5 add angle mul cos r mul
+ k 0.5 add angle mul sin r mul
+ h neg
+ } for
+ meshbases { % les centres de 2 faces polygonales
+ 0 0 h % né 2n
+ 0 0 h neg % né 2n+1
+ } if
+ ] def
+ % les faces
+ /faces [
+ /i 0 def
+ n {
+ [0 i add 1 i add 2 i add ]
+ /i i 2 add def
+ } repeat
+ /i 0 def
+ n {
+ [1 i add 3 i add 2 i add ]
+ /i i 2 add def
+ } repeat
+ meshbases {
+ % les faces sup et inf en triangles
+ /i 0 def
+ n 1 sub {
+ [2 n mul 0 i add 2 i add ]
+ /i i 2 add def
+ } repeat
+ [2 n mul 2 n mul 2 sub 0 ]
+ /i 0 def
+ n 1 sub {
+ [2 n mul 1 add 3 i add 1 i add ]
+ /i i 2 add def
+ } repeat
+ [2 n mul 1 add 1 2 n mul 1 sub ]
+ }{ % face polygonale sup
+ [ 0 2 2 n mul 2 sub {} for ]
+ % face polygonale inf
+ [ 1 2 2 n mul 1 sub {} for ]
+ } ifelse
+ ] def
+ faces n 1 sub get 2 0 put
+ faces 2 n mul 1 sub get 1 1 put
+ faces 2 n mul 1 sub get 2 0 put
+ % dans le cas oé les bases ne sont pas étoilées
+ % base sup = 2n
+ % base inf = 2n+1
+ %facessup faces 2 n mul get
+ %facesinf faces 2 n mul 1 get
+ %facestemp faces 0 2 n 1 sub getintervall
+ %
+ meshbases {}{
+ /faces1 faces faces length 2 sub 2 getinterval def
+ /faces2 faces 0 faces length 2 sub getinterval def
+ /faces [faces1 aload pop faces2 aload pop] def
+ } ifelse
+ sommets faces generesolid
+end
+} def
+%
+/ps@antiprism-fan {
+ 10 dict begin
+ /n exch def
+ % coté du polygone
+ /a exch def % length on the antiprism side
+ /angle 360 n div def
+ % hauteur entre les 2 plans
+ /h a
+ 1
+ 1
+ angle 4 div cos 2 mul dup mul div sub sqrt mul 2 div def
+% rayon du cercle circonscrit au polygone
+/r a 2 div angle 2 div sin div def
+% Les sommets des polygones réguliers supérieur et inférieur, alternativement
+% inscrit dans un cercle de rayon r
+/sommets [ % 0->2n-1
+0 1 n 1 sub {/k exch def
+ angle k mul cos r mul
+ angle k mul sin r mul
+ h
+ k 0.5 add angle mul cos r mul
+ k 0.5 add angle mul sin r mul
+ h neg
+ } for
+% les centres de 2 faces polygonales
+ 0 0 h % n° 2n
+ 0 0 h neg % n° 2n+1
+ ] def
+% les faces
+/faces [
+0 2 n 2 mul 3 sub {/i exch def
+[
+ i
+ i 1 add
+ 2 n mul 1 add
+ 2 n mul
+ ]
+[
+ i 1 add
+ i 2 add
+ 2 n mul
+ 2 n mul 1 add
+ ]
+} for
+[
+ 2 n mul
+ 2 n mul 2 sub 2 n mul 1 sub 2 n mul 1 add
+]
+[
+ 2 n mul 1 sub
+ 0
+ 2 n mul
+ 2 n mul 1 add
+]
+] def
+sommets faces generesolid
+end
+} def
+%
+/pst-antiprism-fan {
+ a n@ ps@antiprism-fan
+ gere_pstricks_opt
+} def
+%
+/pst-antiprism {
+ a n@ ps@antiprism
+ gere_pstricks_opt
+} def
+%
+% \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-antiprism/latex/pst-antiprism.sty b/graphics/pstricks/contrib/pst-antiprism/latex/pst-antiprism.sty
new file mode 100644
index 0000000000..8530a8930a
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/latex/pst-antiprism.sty
@@ -0,0 +1,20 @@
+%% $Id: pst-antiprism.sty 730 2018-02-13 17:50:37Z herbert $
+
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory CTAN:/macros/latex/base/lppl.txt.
+%
+\ProvidesPackage{pst-antiprism.tex}[2018/02/12 package wrapper for PSTricks pst-antiprism.tex]
+%
+\RequirePackage{pstricks}
+\RequirePackage{pst-solides3d}
+%
+\input{pst-antiprism}
+\ProvidesFile{pst-antiprism.tex}
+ [\filedate\space v\fileversion\space `PST-antiprism.tex']
+\IfFileExists{pst-antiprism.pro}{%
+ \ProvidesFile{pst-antiprism.pro}
+ [2018/02/12 PostScript prologue file (ml,hv)]
+ \@addtofilelist{pst-antiprism.pro}}{}%
+\endinput
+%% End of file `pst-antiprism.tex.sty'.
diff --git a/graphics/pstricks/contrib/pst-antiprism/tex/pst-antiprism.tex b/graphics/pstricks/contrib/pst-antiprism/tex/pst-antiprism.tex
new file mode 100644
index 0000000000..74df744363
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-antiprism/tex/pst-antiprism.tex
@@ -0,0 +1,72 @@
+%% $Id: pst-antiprism.tex 730 2018-02-13 17:50:37Z herbert $
+%% Package `pst-antiprism.tex'
+%%
+%% This program can be redistributed and/or modified under
+%% the terms of the LaTeX Project Public License Distributed
+%% from CTAN archives in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION: 3d representation of an antiprism
+%%
+%% Author : <manuel.luque27@gmail.com>
+%% Author : <hvoss@tug.org>
+%%
+\csname PSTANTIPRISMLoaded\endcsname
+\let \PSTANTIPRISMLoaded\endinput
+% Require PSTricks and pst-solides3d
+\ifx\PSTricksLoaded\endinput \else\input pstricks.tex\fi
+\ifx\PSTSOLIDESIIIDLoaded\endinput \else\input pst-solides3d.tex\fi
+\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey.tex\fi
+
+\def\fileversion{0.02}
+\def\filedate{2018/02/07}
+\message{`PST' v\fileversion, \filedate}
+
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+
+\pst@addfams{pst-antiprism}
+
+\pstheader{pst-antiprism.pro}
+
+\addtosolideslistobject{antiprism,antiprism-fan}
+
+\define@key[psset]{pst-antiprism}{n}{\def\pst@antiprism@n{#1 }} % nombre de cotes des polygones
+% Mesh of the bases of the antiprism
+\define@boolkey[psset]{pst-antiprism}[Pst@]{meshbases}[true]{} %
+\define@boolkey[psset]{pst-antiprism}[Pst@]{colored}[true]{} %
+\define@boolkey[psset]{pst-antiprism}[Pst@]{fan}[true]{} %
+\psset[pst-antiprism]{n=5,meshbases=true,colored=false,fan=false}
+\psset[pst-solides3d]{a=1}
+%
+\def\psAntiprism{\pst@object{psAntiprism}}
+\def\psAntiprism@i{%
+ \pst@killglue
+ \begingroup
+ \use@keep@par
+ \ifPst@colored
+ \addbefore@par{%
+ fcol=
+ 0 1 \pst@antiprism@n 2 mul 1 sub {/i exch def i (i \pst@antiprism@n 2 mul div 1 1 sethsbcolor)} for % le tour complet
+ \pst@antiprism@n 2 mul 1 \pst@antiprism@n 3 mul 1 sub {/i exch def i (i \pst@antiprism@n 2 mul sub \pst@antiprism@n 2 mul div 1 1 sethsbcolor)} for
+ \pst@antiprism@n 3 mul 1 \pst@antiprism@n 4 mul 1 sub {/i exch def i (i \pst@antiprism@n 2 mul sub \pst@antiprism@n 2 mul div 1 1 sethsbcolor)} for,
+ opacity=0.9
+ }%
+ \fi
+ \use@par
+ \addto@pscode{
+ \tx@optionssolides
+ SolidesDict begin
+ /n@ \pst@antiprism@n def
+ /meshbases \ifPst@meshbases true \else false \fi def
+ end
+ }%
+ \ifPst@fan\psSolid[object=antiprism-fan]\else\psSolid[object=antiprism]\fi
+% \use@pscode
+ \showpointsfalse
+ \endgroup
+ \ignorespaces
+}% % fin de la commande PSTricks
+
+
+\catcode`\@=\PstAtCode\relax
+%
+\endinput \ No newline at end of file