%% 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
|