Qualunque sia l’immagine iniziale, la trasformazione produce il frattale di Vicsek.
- Mouse (tasto): aumenta la ricorsione
- Mouse (Ctrl+tasto): diminuisce la ricorsione
- Applicazione Java
final int numMax = 5;
int num = 2;
int dim, dim3, dim32;
boolean scende=false;
PImage immagine,
immagine2;
void setup()
{
size(500, 500);
smooth();
dim = width;
dim3 = dim/3;
dim32 = 2*dim3;
immagine = loadImage("buttons.gif");
noLoop();
}
void keyPressed()
{
scende=true;
}
void keyReleased()
{
scende=false;
}
void mousePressed()
{
if(scende && num > 0)
num--;
else if(!scende && num < numMax)
num++;
redraw();
}
void draw()
{
background(255);
image(immagine, 0, 0, dim, dim);
for (int i=0; i < num; i++)
{
loadPixels();
immagine2=createImage(dim, dim, RGB);
arraycopy(pixels, immagine2.pixels);
background(255);
blend(immagine2, 0, 0, dim, dim, 0 , 0 , dim3, dim3, BLEND);
blend(immagine2, 0, 0, dim, dim, dim32, 0 , dim3, dim3, BLEND);
blend(immagine2, 0, 0, dim, dim, dim3 , dim3 , dim3, dim3, BLEND);
blend(immagine2, 0, 0, dim, dim, 0 , dim32, dim3, dim3, BLEND);
blend(immagine2, 0, 0, dim, dim, dim32, dim32, dim3, dim3, BLEND);
}
}