summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/dvips
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-03 18:31:22 +0000
committerKarl Berry <karl@freefriends.org>2009-09-03 18:31:22 +0000
commit5c627c8066bc3d073519704718fffb64af14609a (patch)
tree25ccc61aba3a849fd39148531748b1ec9be530a5 /Master/texmf-dist/dvips
parentdaeaddcef56178dd571d9c813fbdde669ec40f34 (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.pro3
-rw-r--r--Master/texmf-dist/dvips/pst-geo/pst-map3d.pro58
-rw-r--r--Master/texmf-dist/dvips/pst-geo/pst-map3dII.pro205
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