diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-geo/pst-map3d.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-geo/pst-map3d.tex | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-geo/pst-map3d.tex b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d.tex new file mode 100644 index 00000000000..23901f8fb88 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-geo/pst-map3d.tex @@ -0,0 +1,187 @@ +%% +%% This is file `pst-map3d.tex', +%% +%% IMPORTANT NOTICE: +%% +%% Package `pst-map3d.tex' +%% +%% Manuel Luque <Mluque5130@aol.com> (France) +%% Giuseppe Matarazzo <joematara@hotmail.com> (Italy) +%% Herbert Voss <voss@perce.de> (Germany) +%% +%% May 09, 2004 +%% +%% 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: +%% `pst-map3d' is a PSTricks package to create geographical objects +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\fileversion{1.02} +\def\filedate{2004/05/09} + +\message{`PST-map3d v\fileversion, \filedate\space (ML/GM/HV)} + +\csname PSTMapThreeD\endcsname +\let\PSTMapThreeDLoaded\endinput + +% Require PSTricks +\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi +\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi % hv 2004-05-09 +% David Carlisle interface to the `keyval' package. +\input pst-key.tex +% +\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax + +\SpecialCoor +% +\define@key{psset}{path}{\edef\psk@WorldMap@Path{#1}} % chemin des données +\setkeys{psset}{path=data} +% +\pstheader{map3d.pro} +\define@key{psset}{RotX}{\edef\psk@TroisD@RotX{#1}} % rotation autour de Ox en degrés +\define@key{psset}{RotY}{\edef\psk@TroisD@RotY{#1}} % rotation autour de Oy en degrés +\define@key{psset}{RotZ}{\edef\psk@TroisD@RotZ{#1}} % rotation autour de OZ en degrés +\define@key{psset}{Radius}{\edef\psk@TroisD@Radius{#1}} % rayon de la sphère +% +\define@key{psset}{THETA}{\edef\psk@TroisD@Theta{#1}} +\define@key{psset}{PHI}{\edef\psk@TroisD@Phi{#1}} +\define@key{psset}{Dobs}{\edef\psk@TroisD@Dobs{#1}} +\define@key{psset}{Decran}{\edef\psk@TroisD@Ecran{#1}} +\setkeys{psset}{THETA=0,PHI=45,Dobs=20,Decran=25,Radius=5} +% +\setkeys{psset}{RotX=0,RotY=0,RotZ=0} +% +\define@key{psset}{increment}{\edef\psk@WorldMap@increment{#1}} +\setkeys{psset}{increment=10} +% +\define@key{psset}{maillageColor}{\edef\psk@WorldMap@maillageColor{#1}} +\setkeys{psset}{maillageColor= 0.5 0.5 0.5 } +% +\define@key{psset}{MapFillColor}{\edef\psk@WorldMap@Fillcolor{#1}} % couleur des continents +\setkeys{psset}{MapFillColor= 0.99 0.95 0.7 } +% +\define@key{psset}{level}{\edef\psk@WorldMap@level{#1}} +\setkeys{psset}{level=1} +% +\def\variablesTroisD{% + /RotX \psk@TroisD@RotX\space def + /RotY \psk@TroisD@RotY\space def + /RotZ \psk@TroisD@RotZ\space def + /THETA \psk@TroisD@Theta\space def + /PHI \psk@TroisD@Phi\space def + /Rsphere \psk@TroisD@Radius\space def + /Dobs \psk@TroisD@Dobs\space def + /DScreen \psk@TroisD@Ecran\space def + /step \psk@WorldMap@level\space def + }% + % +\newif\ifPst@WorldMap@capitals +\define@key{psset}{capital}[false]{\@nameuse{Pst@WorldMap@capitals#1}} +\setkeys{psset}{capital=false} +% +\newif\ifPst@WorldMap@city +\define@key{psset}{city}[false]{\@nameuse{Pst@WorldMap@city#1}} +\setkeys{psset}{city=false} +% +\newif\ifPst@WorldMap@Rivers% hv 2004-05-03 +\define@key{psset}{rivers}[true]{\@nameuse{Pst@WorldMap@Rivers#1}} +\setkeys{psset}{rivers=true} +% +\newif\ifPst@WorldMap@maillage +\define@key{psset}{maillage}[true]{\@nameuse{Pst@WorldMap@maillage#1}} +\setkeys{psset}{maillage=true} +% +\def\WorldMapThreeD{\pst@object{WorldMapThreeD}} +\def\WorldMapThreeD@i{\@ifnextchar[{\WorldMapThreeD@do}{\WorldMapThreeD@do[]}} +\def\WorldMapThreeD@do[#1]{{% +\setkeys{psset}{#1}% +\begin@ClosedObj +\addto@pscode{% + /increment \psk@WorldMap@increment\space def + \variablesTroisD + (\psk@WorldMap@Path/river.dat) run + (\psk@WorldMap@Path/pisland.dat) run + (\psk@WorldMap@Path/pborder.dat) run + (\psk@WorldMap@Path/plake.dat) run + 1 setlinejoin + 0 0 translate + /xunit {\pst@number\psxunit\space mul}def + /yunit {\pst@number\psyunit\space mul}def + /runit {\pst@number\psrunit\space mul}def + gsave + newpath + 0.5 0.8 0.8 setrgbcolor + % cercle vu par l'observateur + /RsphereScreen Rsphere DScreen mul Dobs div + 1 Rsphere dup mul Dobs dup mul div sub sqrt div runit def + 0 0 RsphereScreen 0 360 arc + closepath + fill + grestore + /condition {PSfacette 0 le} def + /departPhi -90 def +tx@map3DDict begin + MatriceTransformation +/Draw { + { +CalculsPoints +closepath +gsave +Color setrgbcolor +fill +grestore +stroke +} forall +}def +%/Color {0.5 0.8 0.5} def +/Color {\psk@WorldMap@Fillcolor} def +border + Draw +islands + Draw +/Color {0.5 0.8 0.8} def +lake + Draw +% les rivières +\ifPst@WorldMap@Rivers % hv 2004-05-03 + /DrawRivers { + { CalculsPoints + 0 0 1 setrgbcolor + stroke + } forall + }def + river + DrawRivers +\fi +\ifPst@WorldMap@city +% les capitales + (\psk@WorldMap@Path/c-cap.dat) run + 1.5 + citycapitals + DrawCitys +% les autres villes + (\psk@WorldMap@Path/c-sub.dat) run + 0.5 + CitySub +DrawCitys +\fi +\ifPst@WorldMap@capitals +% les capitales + (\psk@WorldMap@Path/c-cap.dat) run + 2 + citycapitals + DrawCitys +\fi +\ifPst@WorldMap@maillage +/maillageColor {\psk@WorldMap@maillageColor} def + MaillageSphere +\fi +end}% +\end@ClosedObj +}} +% +\catcode`\@=\PstAtCode\relax +\endinput |