Fichier kepler.jps — Modifié le 10 Mai 2008 à 11 h 25

kepler.pdf
Source
%% 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**