MetaPost Présentation des sources Retour à la page précédente Archive (source + images) Fichier au format texte pour télécharger Imprimer le document sans le menu !
%% 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