%% syntaxe : array n newanneau --> solid
%% syntaxe : array {mode} newanneau --> solid
%% ou array est un tableau de points de R^2 et n un nombre entier positif
/newanneau {
10 dict begin
dup isnum {
/n exch def
[n]
} if
[[/n2] [6] [12] [24] [32] [36]] gestionsolidmode
/n2 n2 3 max store
%% on plonge la section dans R^3 par projection sur yOz
/S1 exch {0 3 1 roll} papply def
%% nombre de sommets
/n1 S1 length 3 idiv def
/S S1
n2 {
duparray
{0 0 360 n2 div rotateOpoint3d} papply3d
} repeat
n2 {append} repeat
def
/F [
0 1 n2 1 sub {
/j exch def
n1 j mul 1 j 1 add n1 mul 2 sub {
/i exch def
[i 1 add i dup n1 add i n1 1 add add]
} for
[n1 j mul j 1 add n1 mul 1 sub j 2 add n1 mul 1 sub j 1 add n1 mul]
} for
] def
S F generesolid
end
} def
|