%% $Id: pst-eqhz.pro 1257 2026-05-19 06:42:12Z herbert $ % PostScript prologue for pst-eqhz.tex. % Version 0.01, 2026/05/19 % /pst-parallel { %% définir les borles avec args=latitude1 latitude2 args /latitude2 exch def /latitude1 exch def latitude2 latitude1 gt {/pas 1 def}{/pas -1 def} ifelse /TabPtsParallel [ latitude1 pas latitude2 { /latitude exch def [ r latitude cos mul phi cos mul r latitude sin mul phi cos mul r phi sin mul RotX RotY RotZ rotateOpoint3d ] } for ] def gsave Parallele grestore } def /Parallele { linecolor % linestyle solidlinewidth setlinewidth 0 1 TabPtsParallel length 2 sub {/i exch def TabPtsParallel i get aload pop /Point1 defpoint3d TabPtsParallel i 1 add get aload pop /Point2 defpoint3d Point1 GetCamPos vecteur3d Point1 scalprod3d 0 gt Point2 GetCamPos vecteur3d Point2 scalprod3d 0 gt and { Point1 3dto2d xunit mul exch xunit mul exch moveto Point2 3dto2d xunit mul exch xunit mul exch lineto stroke } if } for projectionsifacevisible { solidlinewidth 5 div setlinewidth 0 1 TabPtsParallel length 2 sub {/i exch def TabPtsParallel i get aload pop /Point1 defpoint3d TabPtsParallel i 1 add get aload pop /Point2 defpoint3d Point1 GetCamPos vecteur3d Point1 scalprod3d 0 le Point2 GetCamPos vecteur3d Point2 scalprod3d 0 le and { Point1 3dto2d xunit mul exch xunit mul exch moveto Point2 3dto2d xunit mul exch xunit mul exch lineto stroke } if } for }if } def /pst-meridian { %% définir les borles avec args=longitude1 longitude2 args /longitude2 exch def /longitude1 exch def longitude2 longitude1 gt {/pas 1 def}{/pas -1 def} ifelse /TabPtsMeridian [ longitude1 pas longitude2 { /longitude exch def [ r theta cos mul longitude cos mul r theta sin mul longitude cos mul r longitude sin mul RotX RotY RotZ rotateOpoint3d ] } for ] def gsave Meridian grestore } def /Meridian { linecolor % linestyle solidlinewidth setlinewidth 0 1 TabPtsMeridian length 2 sub {/i exch def TabPtsMeridian i get aload pop /Point1 defpoint3d TabPtsMeridian i 1 add get aload pop /Point2 defpoint3d Point1 GetCamPos vecteur3d Point1 scalprod3d 0 gt Point2 GetCamPos vecteur3d Point2 scalprod3d 0 gt and { Point1 3dto2d xunit mul exch xunit mul exch moveto Point2 3dto2d xunit mul exch xunit mul exch lineto stroke } if } for projectionsifacevisible { gsave currentlinewidth 5 div setlinewidth 0 1 TabPtsMeridian length 2 sub {/i exch def TabPtsMeridian i get aload pop /Point1 defpoint3d TabPtsMeridian i 1 add get aload pop /Point2 defpoint3d Point1 GetCamPos vecteur3d Point1 scalprod3d 0 le Point2 GetCamPos vecteur3d Point2 scalprod3d 0 le and { Point1 3dto2d xunit mul exch xunit mul exch moveto Point2 3dto2d xunit mul exch xunit mul exch lineto stroke } if } for grestore } if } def