MetaPost
Petite illusion d'optique

Les lignes horizontales dans la figure ci-dessous sont-elles parallèles? En cliquant sur le bouton en bas à gauche vous pourrez observer le glissement d'une ligne sur deux et ainsi apprécier l'illusion…

Animation flash

carre.mp [ source brut ]

 %@AUTEUR: Maxime Chupin
 %@DATE: 3 mars 2007
 
 verbatimtex
 %&latex
 \documentclass{article} 
 \usepackage[latin1]{inputenc}
 \usepackage{amsmath}
 \usepackage[mdugm]{mathdesign}
 \begin{document}
 etex
 
 u = 1cm;
 path carre,droite;
 carre := (1,1)--(-1,1)--(-1,-1)--(1,-1)--cycle;
 droite := (-20u,0)--(20u,0);
 numeric max;
 max := 9;
 
 for i:=0 upto 20:
  beginfig(i+1);
 
  for y:=0 upto max :
   draw droite shifted (10u,y*u) withpen pencircle scaled 1;
  endfor;
 
  for w:=0 upto 4:
   for x:=0 upto max:
    fill carre scaled (0.5*u) shifted (0.5u+2*x*u,0.5*u+2w*u);
   endfor;
  endfor;
 
  for w:=0 upto 3:
   for x:=(-1) upto (max+1):
    fill carre scaled (0.5*u) shifted ((0.5+i/20)*u+2*x*u,0.5*u+2w*u+u);
   endfor;
  endfor;
 
  label.urt(btex \begin{LARGE}Petite illusion d'optique\end{LARGE} etex, 
     (7.5u,-u));
 
  clip currentpicture to 
 	(-0.5u,-u)--(20u,-u)--(20u,max*u)--(-0.5u,max*u)--cycle;
 
 
  endfig;
 endfor;
 
 for i:=0 upto 40:
  beginfig(22+i);
 
  for y:=0 upto 8 :
   draw droite shifted (10u,y*u) withpen pencircle scaled 1;
  endfor;
 
  for w:=0 upto 4:
   for x:=0 upto 9:
    fill carre scaled (0.5*u) shifted (0.5u+2*x*u,0.5*u+2w*u);
   endfor;
  endfor;
 
  for w:=0 upto 3:
   for x:=(-1) upto (max+1):
    fill carre scaled (0.5*u) shifted ((1.5-i/20)*u+2*x*u,0.5*u+2w*u+u);
   endfor;
  endfor;
 
 label.urt(btex \begin{LARGE}Petite illusion d'optique\end{LARGE} etex, (7.5u,-u));
 
 clip currentpicture to 
 	(-0.5u,-u)--(20u,-u)--(20u,max*u)--(-0.5u,max*u)--cycle;
 
  endfig;
 endfor;
 
 for i:=0 upto 20:
  beginfig(63+i);
 
  for y:=0 upto 8 :
   draw droite shifted (10u,y*u) withpen pencircle scaled 1;
  endfor;
 
  for w:=0 upto 4:
   for x:=0 upto 9:
    fill carre scaled (0.5*u) shifted (0.5u+2*x*u,0.5*u+2w*u);
   endfor;
  endfor;
 
  for w:=0 upto 3:
   for x:=(-1) upto (max+1):
    fill carre scaled (0.5*u) shifted ((-0.5+i/20)*u+2*x*u,0.5*u+2w*u+u);
   endfor;
  endfor;
 
 label.urt(btex \begin{LARGE}Petite illusion d'optique\end{LARGE} etex, (7.5u,-u));
 
 clip currentpicture to 
 	(-0.5u,-u)--(20u,-u)--(20u,max*u)--(-0.5u,max*u)--cycle;
 
  endfig;
 endfor;
 
 
 
 end
 
 
 
 
Validation CSS Validation XHTMLJean-Michel Sarlat — Dernière modification : 6 mars 2007 (0.07s - 3002502 - lundi 12 mai 2008)