diff options
author | Karl Berry <karl@freefriends.org> | 2009-09-03 18:31:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-09-03 18:31:22 +0000 |
commit | 5c627c8066bc3d073519704718fffb64af14609a (patch) | |
tree | 25ccc61aba3a849fd39148531748b1ec9be530a5 /Master/texmf-dist/dvips | |
parent | daeaddcef56178dd571d9c813fbdde669ec40f34 (diff) |
pst-geo update (31aug09)
git-svn-id: svn://tug.org/texlive/trunk@15032 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/dvips')
-rw-r--r-- | Master/texmf-dist/dvips/pst-geo/map3dII.pro | 3 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pst-geo/pst-map3d.pro | 58 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pst-geo/pst-map3dII.pro | 205 |
3 files changed, 235 insertions, 31 deletions
diff --git a/Master/texmf-dist/dvips/pst-geo/map3dII.pro b/Master/texmf-dist/dvips/pst-geo/map3dII.pro index 543014d2f03..1652adb185c 100644 --- a/Master/texmf-dist/dvips/pst-geo/map3dII.pro +++ b/Master/texmf-dist/dvips/pst-geo/map3dII.pro @@ -25,8 +25,7 @@ tx@mapII3DDict begin } {pop pop} ifelse } for /ncount 0 def % hv 2004-05-04 - /stepPoint step def - Counter step div 2 lt { stepPoint 1 def } if % hv 2004-05-04 + /stepPoint Counter step div 2 lt { 1 }{ step } ifelse def % hv 2004-05-04 Counter 2 sub -2 2 { /Counter exch def /ncount ncount 1 add def % hv 2004-05-04 diff --git a/Master/texmf-dist/dvips/pst-geo/pst-map3d.pro b/Master/texmf-dist/dvips/pst-geo/pst-map3d.pro index eb46bfac51e..bb98d796fb5 100644 --- a/Master/texmf-dist/dvips/pst-geo/pst-map3d.pro +++ b/Master/texmf-dist/dvips/pst-geo/pst-map3d.pro @@ -1,8 +1,10 @@ % premiere version 29 novembre 2003 -% entierement modifiee le 08/02/2008 -% allégée de 3D.pro -% version 1.0 du 5 mars 2008 +% entierement modifiee le 11/08/2009 +% allegee de 3D.pro +% version 1.01 2009-08-11 (hv) % manuel.luque27@gmail.com +% hvoss@tug.org +% /tx@map3DDict 100 dict def tx@map3DDict begin %% @@ -20,7 +22,7 @@ tx@map3DDict begin /region exch def /nbr region length def % nombre de points 0 1 nbr 1 sub { - /counter exch def % pour mémoriser le premier point vu + /counter exch def % pour memoriser le premier point vu region counter get aload pop CalcCoor CalculsPointsAfterTransformations @@ -116,8 +118,7 @@ TableauRegionsVisibles /CalcCoordinates{% formulesTroisD Xi xunit Yi yunit - } - def +} def % pour la 3D conventionnelle /formulesTroisD{% /xObservateur Xabscisse Sin1 mul neg Yordonnee Cos1 mul add def @@ -125,8 +126,7 @@ TableauRegionsVisibles /zObservateur Xabscisse neg Cos1Cos2 mul Yordonnee Sin1Cos2 mul sub Zcote Sin2 mul sub Dobs add def /Xi DScreen xObservateur mul zObservateur div def /Yi DScreen yObservateur mul zObservateur div def - } -def +} def % /CalculsPointsAfterTransformations{% /Xabscisse M11 Xpoint mul M12 Ypoint mul add M13 Zpoint mul add def @@ -135,12 +135,12 @@ def } def % -/Test { % test de visibilité d'un point +/Test { % test de visibilite d'un point % rayon vers point de vue /RXvue XpointVue Xabscisse sub def /RYvue YpointVue Yordonnee sub def /RZvue ZpointVue Zcote sub def -% test de visibilité +% test de visibilite /PS RXvue Xabscisse mul % produit scalaire RYvue Yordonnee mul add RZvue Zcote mul add @@ -171,7 +171,7 @@ CalculsPointsAfterTransformations /xCentreFacette Xabscisse def /yCentreFacette Yordonnee def /zCentreFacette Zcote def -% normale à la facette +% normale a la facette /nXfacette xCentreFacette def /nYfacette yCentreFacette def /nZfacette zCentreFacette def @@ -179,7 +179,7 @@ CalculsPointsAfterTransformations /RXvue XpointVue xCentreFacette sub def /RYvue YpointVue yCentreFacette sub def /RZvue ZpointVue zCentreFacette sub def -% test de visibilité +% test de visibilite /PSfacette RXvue nXfacette mul RYvue nYfacette mul add RZvue nZfacette mul add @@ -375,7 +375,7 @@ def end } def -% coordonnées sphériques -> coordonnées cartésiennes +% coordonnees spheriques -> coordonnees cartesiennes /rtp2xyz { 6 dict begin /phi exch def @@ -469,7 +469,7 @@ end %%%%% ### rotV3d ### %% rotation autour d'un vecteur u %% defini par (ux,uy,uz) -%% ici l'axe des pôles de la Terre +%% ici l'axe des peles de la Terre %% d'un angle theta /rotV3d { 15 dict begin @@ -506,7 +506,7 @@ u1 u2 u3 rotV3d % vecteur normal dans le plan equateur /theta0 u1 neg u2 atan def theta0 cos theta0 sin 0 /v defpoint3d -% w tels que le trièdre u v w soit direct +% w tels que le triadre u v w soit direct u v vectprod3d dupp3d norme3d 1 exch div mulv3d /w defpoint3d /TabPointsVusNeg[ -180 1 0{ % for @@ -637,11 +637,11 @@ def 50 dict begin /l exch def % latitude : phi /L exch def % longitude : theta - /dlmax exch def % intervalle maximal en degrés + /dlmax exch def % intervalle maximal en degres /nbr exch def % nombre de cercles /dl dlmax nbr div def % le vecteur unitaire normal -% à la sphère au point considéré +% a la sphere au point considere L cos l cos mul L sin l cos mul l sin @@ -655,8 +655,8 @@ def /y_o r L sin mul l cos mul def /z_o r l sin mul def % un vecteur unitaire du plan du cercle -% perpendiculaire à n et dans le plan méridien -% donc même longitude +% perpendiculaire a n et dans le plan meridien +% donc meme longitude /x_I Rsphere L cos mul l' cos mul def /y_I Rsphere L sin mul l' cos mul def /z_I Rsphere l' sin mul def @@ -666,34 +666,34 @@ def /uOI defpoint3d uOI dupp3d norme3d 1 exch div mulv3d /v defpoint3d -% un vecteur w normal à u et v dans le plan du cercle +% un vecteur w normal a u et v dans le plan du cercle u v vectprod3d dupp3d norme3d 1 exch div mulv3d /w defpoint3d -% on décrit le cercle - +% on decrit le cercle v 0 cos r' mul mulv3d w 0 sin r' mul mulv3d addv3d x_o y_o z_o addv3d /Zpoint exch def /Ypoint exch def /Xpoint exch def + MatriceTransformation %%%%%%%%%%%%%%%%% hv 2009-08-11 CalculsPointsAfterTransformations CalcCoordinates moveto -0 1 360{% + 0 1 360 { /t exch def v t cos r' mul mulv3d w t sin r' mul mulv3d addv3d x_o y_o z_o addv3d - /Zpoint exch def /Ypoint exch def /Xpoint exch def - CalculsPointsAfterTransformations - CalcCoordinates - lineto + /Zpoint exch def /Ypoint exch def /Xpoint exch def + CalculsPointsAfterTransformations + CalcCoordinates + lineto } for -stroke + stroke } for end } def -%% nouvelle construction des parallèles +%% nouvelle construction des paralleles /Parallel { 0 1 360{ % for /theta exch def diff --git a/Master/texmf-dist/dvips/pst-geo/pst-map3dII.pro b/Master/texmf-dist/dvips/pst-geo/pst-map3dII.pro new file mode 100644 index 00000000000..1652adb185c --- /dev/null +++ b/Master/texmf-dist/dvips/pst-geo/pst-map3dII.pro @@ -0,0 +1,205 @@ +%version 14 May 2004 +% allégée de 3D.pro +/tx@mapII3DDict 100 dict def +tx@mapII3DDict begin +% + /CalculsPoints{% + /region exch def + newpath + /nbr region length def % nombre de régions + nbr 2 sub -2 2 { + /Counter exch def + region Counter get + /Y exch def + region Counter 1 add get + /X exch def + /Xpoint { Y cos X cos mul Rsphere mul } def + /Ypoint { Y cos X sin mul Rsphere mul } def + /Zpoint { Y sin Rsphere mul } def + CalculsPointsAfterTransformations + CalcCoordinates + Test + PS 0 lt {% marque le point + moveto + exit % termine + } {pop pop} ifelse + } for + /ncount 0 def % hv 2004-05-04 + /stepPoint Counter step div 2 lt { 1 }{ step } ifelse def % hv 2004-05-04 + Counter 2 sub -2 2 { + /Counter exch def + /ncount ncount 1 add def % hv 2004-05-04 + ncount stepPoint ge Counter 2 le or { % hv 2004-05-04 + region Counter get + /Y exch def + region Counter 1 add get + /X exch def + /Xpoint { Y cos X cos mul Rsphere mul } def + /Ypoint { Y cos X sin mul Rsphere mul } def + /Zpoint { Y sin Rsphere mul } def + CalculsPointsAfterTransformations + CalcCoordinates + Test + PS 0 lt { lineto }{ pop pop } ifelse + /ncount 0 def % hv 2004-05-04 + }{ /ncount ncount 1 add def } ifelse % hv 2004-05-04 + } for +} def +% +/MatriceTransformation{% + /Sin1 THETA sin def + /Sin2 PHI sin def + /Cos1 THETA cos def + /Cos2 PHI cos def + /Cos1Sin2 Cos1 Sin2 mul def + /Sin1Sin2 Sin1 Sin2 mul def + /Cos1Cos2 Cos1 Cos2 mul def + /Sin1Cos2 Sin1 Cos2 mul def + /XpointVue Dobs Cos1Cos2 mul def + /YpointVue Dobs Sin1Cos2 mul def + /ZpointVue Dobs Sin2 mul def + /M11 RotZ cos RotY cos mul def + /M12 RotZ cos RotY sin mul RotX sin mul + RotZ sin RotX cos mul sub def + /M13 RotZ cos RotY sin mul RotX cos mul + RotZ sin RotX sin mul add def + /M21 RotZ sin RotY cos mul def + /M22 RotZ sin RotY sin RotX sin mul mul + RotZ cos RotX cos mul add def + /M23 RotZ sin RotY sin mul RotX cos mul + RotZ cos RotX sin mul sub def + /M31 RotY sin neg def + /M32 RotX sin RotY cos mul def + /M33 RotX cos RotY cos mul def + } def +/CalcCoordinates{% + formulesTroisD + Xi xunit Yi yunit +} def +% pour la 3D conventionnelle +/formulesTroisD{% + /xObservateur Xabscisse Sin1 mul neg Yordonnee Cos1 mul add def + /yObservateur Xabscisse Cos1Sin2 mul neg Yordonnee Sin1Sin2 mul sub Zcote Cos2 mul add def + /zObservateur Xabscisse neg Cos1Cos2 mul Yordonnee Sin1Cos2 mul sub Zcote Sin2 mul sub Dobs add def + /Xi DScreen xObservateur mul zObservateur div def + /Yi DScreen yObservateur mul zObservateur div def + } +def +% +/CalculsPointsAfterTransformations{% + /Xabscisse M11 Xpoint mul M12 Ypoint mul add M13 Zpoint mul add def + /Yordonnee M21 Xpoint mul M22 Ypoint mul add M23 Zpoint mul add def + /Zcote M31 Xpoint mul M32 Ypoint mul add M33 Zpoint mul add def + } +def +% +/Test { % test de visibilité d'un point +% rayon vers point de vue + /RXvue Xabscisse XpointVue sub def + /RYvue Yordonnee YpointVue sub def + /RZvue Zcote ZpointVue sub def +% test de visibilité + /PS RXvue Xabscisse mul % produit scalaire + RYvue Yordonnee mul add + RZvue Zcote mul add + def +} def +% +/MaillageSphere { +0 increment 360 increment sub {% + /theta exch def +departPhi increment 90 increment sub {% + /phi exch def +% newpath + /Xpoint Rsphere theta cos mul phi cos mul def + /Ypoint Rsphere theta sin mul phi cos mul def + /Zpoint Rsphere phi sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + moveto +% Centre de la facette + /Xpoint Rsphere theta increment 2 div add cos mul phi increment 2 div add cos mul def + /Ypoint Rsphere theta increment 2 div add sin mul phi increment 2 div add cos mul def + /Zpoint Rsphere phi increment 2 div add sin mul def +CalculsPointsAfterTransformations + /xCentreFacette Xabscisse def + /yCentreFacette Yordonnee def + /zCentreFacette Zcote def +% normale à la facette + /nXfacette xCentreFacette def + /nYfacette yCentreFacette def + /nZfacette zCentreFacette def +% rayon vers point de vue + /RXvue xCentreFacette XpointVue sub def + /RYvue yCentreFacette YpointVue sub def + /RZvue zCentreFacette ZpointVue sub def +% test de visibilité + /PSfacette RXvue nXfacette mul + RYvue nYfacette mul add + RZvue nZfacette mul add + def +condition { +theta 1 theta increment add {% + /theta1 exch def + /Xpoint Rsphere theta1 cos mul phi cos mul def + /Ypoint Rsphere theta1 sin mul phi cos mul def + /Zpoint Rsphere phi sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +phi 1 phi increment add { + /phi1 exch def + /Xpoint Rsphere theta increment add cos mul phi1 cos mul def + /Ypoint Rsphere theta increment add sin mul phi1 cos mul def + /Zpoint Rsphere phi1 sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +theta increment add -1 theta {% + /theta1 exch def + /Xpoint Rsphere theta1 cos mul phi increment add cos mul def + /Ypoint Rsphere theta1 sin mul phi increment add cos mul def + /Zpoint Rsphere phi increment add sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +phi increment add -1 phi { + /phi1 exch def + /Xpoint Rsphere theta cos mul phi1 cos mul def + /Ypoint Rsphere theta sin mul phi1 cos mul def + /Zpoint Rsphere phi1 sin mul def +CalculsPointsAfterTransformations + CalcCoordinates + lineto + } for +} if +} for +} for +gsave +0 setgray +stroke +grestore +} def +% +/DrawCitys { + /CITY exch def + /Rayon exch def + /nbr CITY length def % nombre de villes + 0 1 nbr 1 sub { + /compteur exch def + CITY compteur get aload pop + /X exch def /Y exch def + /Xpoint { Y cos X cos mul Rsphere mul } def + /Ypoint { Y cos X sin mul Rsphere mul } def + /Zpoint { Y sin Rsphere mul } def + CalculsPointsAfterTransformations + CalcCoordinates + Test + PS 0 lt % + { 1 0 0 setrgbcolor newpath Rayon 0 360 arc closepath fill }{ pop pop } ifelse + } for +} def +end |