Fichier kepler.jps — Modifié le 10 Mai 2008 à 11 h 25
%% d'apres un code original de Juergen Gild
%% http://melusine.eu.org/lab/bpst/pst-solides3d/kepler/ex_27.pst
-1 1 setxrange
-1 1 setyrange
200 setxunit
50 -20 30 SetCamPos
0 0 0 SetCamView
%/ScreenDist .3 def
-10 10 setxrange3d
-3 3 setyrange3d
2 setlinejoin
.1 setlinewidth
/aretescachees false def
GetCamPos setlightsrc
%solidgridOff
%% psset{lightsrc=55 15 45,SphericalCoor=true,viewpoint=50 -20 30,Decran=50}
%% \begin{pspicture}(-4,-6)(8,6)
%% \codejps{
/Paleblue {0.8 0.8 1 setrgbcolor} def
/Gray1 {0.1 setgray} def
/Gray2 {0.2 setgray} def
/Gray3 {0.3 setgray} def
/Gray4 {0.4 setgray} def
/Gray5 {0.5 setgray} def
/Gray6 {0.6 setgray} def
/Gray7 {0.7 setgray} def
/Gray8 {0.8 setgray} def
/Gray9 {0.9 setgray} def
/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}def
/LimeGreen{0.50 0 1 0 setcmykcolor}def
/MidnightBlue{0.98 0.13 0 0.43 setcmykcolor}def
/Emerald{1 0 0.50 0 setcmykcolor}def
/BlueGreen{0.85 0 0.33 0 setcmykcolor}def
/ProcessBlue{0.96 0 0 0 setcmykcolor}def
/Turquoise{0.85 0 0.20 0 setcmykcolor}def
/Aquamarine{0.82 0 0.30 0 setcmykcolor}def
/Green{1 0 1 0 setcmykcolor}def
/Yellow{0 0 1 0 setcmykcolor}def
/Blue{1 1 0 0 setcmykcolor}def
%% syntaxe : A solid i dessinefacevisible
/dessinefacevisible {
8 dict begin
/i exch def
/solid exch def
/A exch def
solid issolid not {
(Error : mauvais type d argument dans dessinefacevisible) ==
quit
} if
/F solid solidgetfaces def
/S solid solidgetsommets def
solid i solidfacevisible? {
/n F i get length def %% nb de sommets de la face
startest {
%% choix de la couleur
/lightcolor where {
pop
/coeff
lightintensity
solid i solidnormaleface normalize3d
solid i solidcentreface lightsrc vecteur3d normalize3d
scalprod3d mul
0 max 1 min
def
/fillstyle {
lightcolor {coeff mul} apply setcolor fill
} def
solidgrid not {
lightcolor {coeff mul} apply setcolor
} if
} {
/lightsrc where {
pop
/coeff
lightintensity
solid i solidnormaleface normalize3d
solid i solidcentreface lightsrc vecteur3d normalize3d
scalprod3d mul
0 max 1 min
def
/lacouleur [
gsave
solid solidgetfcolors i get cvx exec currentrgbcolor
grestore
] def
/fillstyle {
lacouleur {coeff mul} apply setcolor fill
} def
solidgrid not {
lacouleur {coeff mul} apply setcolor
} if
} {
% solid F i get length affectecouleursolid_ncotes
solid i affectecouleursolid_facei
} ifelse
} ifelse
} if
/face_a_dessiner [ %% face visible : F [i]
0 1 n 1 sub {
/j exch def
solid j i solidgetsommetface
} for
] def
gsave
i 3097 ge
i 3222 le and {
lacouleur {coeff mul} apply setcolor
} if
face_a_dessiner polygone3d
grestore
} if
end
} def
%% 3097-3222
%% %
%% .001 setlinewidth
%% %
/sph1 {%
6 -90 0 [24 72] newcalottespherecreuse
dup (LimeGreen) outputcolors
dup (Gray8) inputcolors
} def
%
/cub1 {%
6 newcube
dup 0.9 solidaffine
dup videsolid
dup (BlueViolet) outputcolors
dup (Gray7) inputcolors
} def
%
/sph2 {%
3 -90 0 [12 36] newcalottespherecreuse
dup (Emerald) outputcolors
dup (Gray7) inputcolors
} def
%
/tet1 {%
3 newtetraedre
dup 0.9 solidaffine
dup videsolid
dup (MidnightBlue) outputcolors
dup (Gray7) inputcolors
} def
%
/sph3 {%
1.5 -90 0 [12 36] newcalottespherecreuse
dup (BlueGreen) outputcolors
dup (Gray6) inputcolors
} def
%
/dod1 {%
1.3 newdodecaedre
dup 0.9 solidaffine
dup videsolid
dup (ProcessBlue) outputcolors
dup (Gray8) inputcolors
} def
%
/sph4 {%
0.85 -90 0 [6 18] newcalottespherecreuse
dup (Turquoise) outputcolors
dup (Gray5) inputcolors
} def
%
/ico1 {%
0.7 newicosaedre
dup 0.8 solidaffine
dup videsolid
dup (Aquamarine) outputcolors
dup (Gray8) inputcolors
} def
%
/sph5 {%
0.5 -90 0 [6 18] newcalottespherecreuse
dup (ProcessBlue) outputcolors
dup (Gray4) inputcolors
} def
%
/tet2 {%
0.4 newoctaedre
dup 0.8 solidaffine
dup videsolid
dup (Green) outputcolors
dup (Gray4) inputcolors
} def
%
/sph6 {%
0.2 -90 0 [6 18] newcalottespherecreuse
dup (Blue) outputcolors
dup (blanc) inputcolors
} def
%
/sph7 {%
0.125 [6 18] newsphere
dup (Yellow) outputcolors
dup (blanc) inputcolors
} def
%
sph1 cub1 solidfuz
sph2 solidfuz
tet1 solidfuz
sph3 solidfuz
dod1 solidfuz
sph4 solidfuz
ico1 solidfuz
sph5 solidfuz
tet2 solidfuz
sph6 solidfuz
sph7 solidfuz
drawsolid**