Source PostScript (newgrille.pps)

Retour Texte non formaté
%% syntaxe : xmin xmax ymin ymax [dx dy] newgrille -> solid %% syntaxe : xmin xmax ymin ymax [nx ny] newgrille -> solid %% syntaxe : xmin xmax ymin ymax {mode} newgrille -> solid %% syntaxe : xmin xmax ymin ymax newgrille -> solid /newgrille { 10 dict begin [[/nx /ny] [1 1] [1. 1.] [1. 1.] [1. 1.] [.5 .5]] gestionsolidmode %% ny nb d etages en y %% nx nb d etages en x % /biface false def [nx ny] {0} newsurfaceparametree end } def %% %% syntaxe : xmin xmax ymin ymax [dx dy] {f} newsurface -> solid %% %% f : R^2 -> R /newsurface { true newsurfaceparametree } def /biface false def /newsurfaceparametree { 10 dict begin dup isbool { pop /surfz true def } { /surfz false def } ifelse /f_surface exch def [[/nx /ny] [2 2] [4 4] [1. 1.] [1. 1.] [.25 .25]] gestionsolidmode %% ny nb d etages en y %% nx nb d etages en x /ymax exch def /ymin exch def /xmax exch def /xmin exch def nx isinteger not { %% alors nx est un dx /nx xmax xmin sub nx div cvi store } if ny isinteger not { %% alors ny est un dy /ny ymax ymin sub ny div cvi store } if /dy ymax ymin sub ny div def %% le pas sur y /dx xmax xmin sub nx div def %% le pas sur x /S [ 0 1 nx { /i exch def 0 1 ny { /j exch def /u xmin i dx mul add def /v ymin j dy mul add def u v surfz {2 copy} if f_surface % pstrickactionR3 } for } for ] def /F [ 0 1 nx 1 sub { /i exch def 0 1 ny 1 sub { /j exch def [ j 1 add i ny 1 add mul add j i ny 1 add mul add j ny 1 add add i ny 1 add mul add j ny 2 add add i ny 1 add mul add ] } for } for %% 0 1 0 {%nx 1 sub { %% /i exch def %% 0 1 0 {%ny 2 sub { %% /j exch def %% [ %% j 1 add %% i ny mul add %% j %% i ny mul add %% ny 1 add j add %% i ny mul add %% ny 2 add j add %% i ny mul add %% ] %% } for %% } for ] def S F generesolid biface {dup videsolid} if end } def %% %% syntaxe : xmin xmax ymin ymax dx dy {f} newsurface -> solid %% %% f : R^2 -> R %% /newsurface { %% 10 dict begin %% /ffonct exch def %% /ny exch def %% nb d etages en y %% /nx exch def %% nb d etages en x %% /ymax exch def %% /ymin exch def %% /xmax exch def %% /xmin exch def %% %% nx isinteger not { %% %% alors nx est un dx %% /nx xmax xmin sub nx div cvi store %% } if %% ny isinteger not { %% %% alors ny est un dy %% /ny ymax ymin sub ny div cvi store %% } if %% /dy ymax ymin sub ny div def %% le pas sur y %% /dx xmax xmin sub nx div def %% le pas sur x %% %% /S [ %% 0 1 nx { %% /i exch def %% 0 1 ny { %% /j exch def %% xmin i dx mul add %% ymin j dy mul add %% 2 copy ffonct %% } for %% } for %% ] def %% %% /F [ %% 0 1 nx 1 sub { %% /i exch def %% 0 1 ny 1 sub { %% /j exch def %% [ %% j 1 add i ny 1 add mul add %% j i ny 1 add mul add %% j ny 1 add add i ny 1 add mul add %% j ny 2 add add i ny 1 add mul add %% ] %% } for %% } for %% ] def %% S F generesolid %% videsolid %% end %% } def %% %% %% syntaxe : xmin xmax ymin ymax dx dy newsurfaceparametree -> solid %% %% ou %% %% syntaxe : xmin xmax ymin ymax nx ny newsurfaceparametree -> solid %% /newsurfaceparametree { %% 10 dict begin %% /f_surface exch def %% [[/nx /ny] [2 2] [4 4] [1. 1.] [1. 1.] [.25 .25]] gestionsolidmode %% %% ny nb d etages en y %% %% nx nb d etages en x %% /ymax exch def %% /ymin exch def %% /xmax exch def %% /xmin exch def %% %% nx isinteger not { %% %% alors nx est un dx %% /nx xmax xmin sub nx div cvi store %% } if %% ny isinteger not { %% %% alors ny est un dy %% /ny ymax ymin sub ny div cvi store %% } if %% /dy ymax ymin sub ny div def %% le pas sur y %% /dx xmax xmin sub nx div def %% le pas sur x %% %% /S [ %% 0 1 nx { %% /i exch def %% 0 1 ny { %% /j exch def %% /u xmin i dx mul add def %% /v ymin j dy mul add def %% u v f_surface %% % pstrickactionR3 %% } for %% } for %% ] def %% %% /F [ %% 0 1 nx 1 sub { %% /i exch def %% 0 1 ny 1 sub { %% /j exch def %% [ %% j 1 add i ny 1 add mul add %% j i ny 1 add mul add %% j ny 1 add add i ny 1 add mul add %% j ny 2 add add i ny 1 add mul add %% ] %% } for %% } for %% %% 0 1 0 {%nx 1 sub { %% %% /i exch def %% %% 0 1 0 {%ny 2 sub { %% %% /j exch def %% %% [ %% %% j 1 add %% i ny mul add %% %% j %% i ny mul add %% %% ny 1 add j add %% i ny mul add %% %% ny 2 add j add %% i ny mul add %% %% ] %% %% } for %% %% } for %% ] def %% S F generesolid %% dup videsolid %% end %% } def %% %% syntaxe : xmin xmax ymin ymax [dx dy] newgrille -> solid %% %% syntaxe : xmin xmax ymin ymax [nx ny] newgrille -> solid %% %% syntaxe : xmin xmax ymin ymax {mode} newgrille -> solid %% %% syntaxe : xmin xmax ymin ymax newgrille -> solid %% /newgrille { %% 10 dict begin %% [[/nx /ny] [1 1] [1. 1.] [1. 1.] [1. 1.] [.5 .5]] gestionsolidmode %% %% ny nb d etages en y %% %% nx nb d etages en x %% /ymax exch def %% /ymin exch def %% /xmax exch def %% /xmin exch def %% %% nx isinteger not { %% %% alors nx est un dx %% /nx xmax xmin sub nx div cvi store %% } if %% ny isinteger not { %% %% alors ny est un dy %% /ny ymax ymin sub ny div cvi store %% } if %% /dy ymax ymin sub ny div def %% le pas sur y %% /dx xmax xmin sub nx div def %% le pas sur x %% %% /S [ %% 0 1 nx { %% /i exch def %% 0 1 ny { %% /j exch def %% xmin i dx mul add %% ymin j dy mul add %% 0 %% } for %% } for %% ] def %% %% /F [ %% 0 1 nx 1 sub { %% /i exch def %% 0 1 ny 1 sub { %% /j exch def %% [ %% j 1 add i ny 1 add mul add %% j i ny 1 add mul add %% j ny 1 add add i ny 1 add mul add %% j ny 2 add add i ny 1 add mul add %% ] %% } for %% } for %% ] def %% S F generesolid %% end %% } def