APPLICAZIONI
Sierpinski


Mouse
tasto: pi¨ triangoli
Ctrl+tasto: meno triangoli

A partire da un triangolo qualsiasi A-B-C si segnano i punti intermedi AB, AC e BC.
╚ possibile individuare 3 triangoli A-AB-AC, AB-B-BC e AC-BC-C.
Se si continua all'infinito...
 
Codice
final int numMax=8;

int   num=2;  
float X1, Y1,
      X2, Y2,
      X3, Y3;

boolean scende=false;

void setup()
{
   size(360, 360);
   smooth();
   noStroke();
   fill(0);
   
   X1=0;       Y1=height-1;
   X2=width-1; Y2=height-1;
   X3=width/2; Y3=0;  
   
   noLoop();
}

void keyPressed()
{
   scende=true;
}
void keyReleased()
{
   scende=false;
}
void mousePressed()
{
   if(scende && num > 1)
      num--;
   else if(!scende && num < numMax)  
      num++;
   redraw();
}

void draw()
{
   background(255);
   sierpinski(num, X1, Y1, X2, Y2, X3, Y3);
}

void sierpinski(int n, float x1, float y1,
                       float x2, float y2,
                       float x3, float y3)
{
   if(n == 1)
      triangle(x1, y1, x2, y2, x3, y3);
   else
   {
      float x12=(x1+x2)/2; float y12=(y1+y2)/2;
      float x23=(x2+x3)/2; float y23=(y2+y3)/2;
      float x13=(x1+x3)/2; float y13=(y1+y3)/2;
     
      sierpinski(n-1, x1,  y1,  x12, y12, x13, y13);
      sierpinski(n-1, x2,  y2,  x12, y12, x23, y23);
      sierpinski(n-1, x3,  y3,  x23, y23, x13, y13);
   }
}
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki