Source PostScript (tronquecube.pps)

Retour Texte non formaté
%% %% 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 %%