%% Polygones tournants %% JMS - 06/01/2002 %% ----------------------------------------------------- % Le nombre de côtés du polygone numeric n; % Le paramètre de rotation-contraction numeric k; % Le nombre d'itérations numeric N; % La couleur de base color couleur; % La similitude T est telle que l'image d'un sommet du % polygone soit située sur l'un des côtés du polygone. % i.e. l'image d'un point est un barycentre du système % constitué de ce point et de son image dans la rotation % de centre O et d'angle 360/n (k est le poids relatif % de ce dernier point). %% ----------------------------------------------------- %% La « procédure » vardef go = transform T; path polygone; % définition du polygone polygone := right -- for i=1 upto (n-1): right rotated (360/n*i) -- endfor cycle; % adaptation du polygone polygone := polygone scaled 8cm; % définition de la similitude origin transformed T = origin; right transformed T = k[right,right rotated (360/n)]; up transformed T = k[up,up rotated (360/n)]; % tracé for j=1 upto N: kc := (.3+.7*j/N); if j=1: fill polygone withcolor kc*couleur; fi; draw polygone withpen pencircle scaled .5pt withcolor (white-kc*couleur); polygone := polygone transformed T; endfor; enddef; beginfig(1); n := 3; k := 0.1; N := 50; couleur := red; go; endfig; beginfig(2); n := 4; k := 0.1; N := 100; couleur := blue; go; endfig; beginfig(3); n := 5; k := .1; N := 100; couleur := green; go; endfig; beginfig(4); n := 6; k := .14; N := 100; couleur := (1,1,.3); go; endfig; beginfig(5); n := 12; k := .2; N := 150; couleur := (1,.6,.8); go; endfig; end