xxxxxxxxxx
121
//https://github.com/johnnyawesome/CantorSet/blob/master/CantorSet/CantorSet/sketch.js
/*let size;
function setup() {
createCanvas(800, 800);
background(220);
size = 600;
stroke(0);
strokeWeight(5);
translate(100,100);
generateCantor(size);
}
function draw() {
noLoop();
}
function generateCantor(s) {
if (s > 2) {
s /= 3;
// left
push();
translate(0, +50);
line(0,0,s,0);
generateCantor(s);
pop();
// right
push();
translate(s*2, +50);
line(s,0,-s,0);
generateCantor(s);
pop();
}
}*/
//Change size to change the sidelength of the initial Square
let size = 450;
function setup() {
createCanvas(1000, 1000, P2D);
background(220);
stroke(255);
strokeWeight(1);
//noFill();
translate(width / 2 - size / 2, height / 2 - size / 2);
generateSierpinskiCarpet(size);
}
function draw() {
}
function generateSierpinskiCarpet(size) {
if (size > 4) {
fill(color(map(size,450,1,200,0)));
rect(0, 0, size, size);
size /= 3;
//Left
push()
translate(0 - size * 3 + size, 0 + size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
//Right
push()
translate(0 + size * 5 - size, 0 + size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
//Top
push()
translate(0 + size, 0 - size * 3 + size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
//Bottom
push()
translate(0 + size, 0 + size * 5 - size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
//Top Left
push()
translate(0 - size * 3 + size, 0 - size * 3 + size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
//Top Right
push()
translate(0 + size * 5 - size, 0 - size * 3 + size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
//Bottom Left
push()
translate(0 - size * 3 + size, 0 + size * 5 - size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
//Bottom Right
push()
translate(0 + size * 5 - size, 0 + size * 5 - size);
rect(0, 0, size, size);
generateSierpinskiCarpet(size);
pop();
}
}