%% %% syntaxe : solid n tronque_cube --> solid (tronque)
%% /tronque_cube {
%% 6 dict begin
%% /d exch def
%% /solid exch def
%% solid issolid not {
%% (Error : mauvais type d argument dans tronque_cube) ==
%% quit
%% } if
%% solid solidgetsommets
%% /S exch def
%% /co [
%% 3 4 1 % 1 3 4 % voisins du sommet 0
%% 0 5 2 % 0 2 5 % de 1
%% 1 6 3 % 1 3 6 % de 2
%% 2 7 0 % 0 2 7 % de 3
%% 7 0 5 % 0 5 7 % de 4
%% 4 1 6 % 1 4 6 % de 5
%% 5 2 7 % 2 5 7 % de 6
%% 6 3 4 % 3 4 6 % de 7
%% ] def
%%
%% /dd {d 1 sub} bind def
%% /i 0 def
%% /les_sommets [ % les coordonnees des sommets du cube tronque
%% 0 3 21 {
%% /j exch def
%% %% sommet d indice i = A1
%% solid i solidgetsommet /A1 defpoint3d
%%
%% %% k = indice du sommet voisin no 1
%% co j get /k exch def
%% %% sommet d indice k = A2
%% solid k solidgetsommet /A2 defpoint3d
%% %% barycentre {(A1, d) (A2, 1)}
%% A1 d A2 1 barycentre3d
%%
%% %% k = indice du sommet voisin no 2
%% co j 1 add get /k exch def
%% %% sommet d indice k = A2
%% solid k solidgetsommet /A2 defpoint3d
%% %% barycentre {(A1, d) (A2, 1)}
%% A1 d A2 1 barycentre3d
%%
%% %% k = indice du sommet voisin no 2
%% co j 2 add get /k exch def
%% %% sommet d indice k = A2
%% solid k solidgetsommet /A2 defpoint3d
%% %% barycentre {(A1, d) (A2, 1)}
%% A1 d A2 1 barycentre3d
%%
%% /i i 1 add store
%% } for
%% ] def
%%
%% /les_faces [
%% [11 10 22 23 12 13 1 0]
%% [2 1 13 14 15 16 4 3]
%% [8 7 19 20 21 22 10 9]
%% [14 12 23 21 20 18 17 15]
%% [3 5 6 8 9 11 0 2]
%% [5 4 16 17 18 19 7 6]
%% [0 1 2]
%% [3 4 5]
%% [6 7 8]
%% [9 10 11]
%% [12 14 13]
%% [15 17 16]
%% [18 20 19]
%% [21 23 22]
%% ] def
%%
%% solid les_sommets solidputsommets
%% solid les_faces solidputfaces
%% solid dup solidgetfcolors [8 {()} repeat] append solidputfcolors
%% solid
%% end
%% } def
%%
|