xxxxxxxxxx
56
/*
----- Coding Tutorial by Patt Vira -----
Name: Menger Sponge
Video Tutorial:
Connect with Patt: @pattvira
https://www.pattvira.com/
----------------------------------------
*/
let size; let level = 3;
function setup() {
createCanvas(400, 400, WEBGL);
angleMode(DEGREES);
size = width/2;
}
function draw() {
background(220);
// orbitControl();
rotateX(-15);
rotateY(45);
mengersponge(size, level);
}
function mengersponge(size, level) {
normalMaterial();
if (level == 0) {
box(size);
} else {
let s = size/3;
fill(255);
for (let i = -1; i<2; i++) {
for (let j=-1; j<2; j++) {
for (let k = -1; k<2; k++) {
let x = i*s;
let y = j*s;
let z = k*s;
if ((i == 0 && j == 0) ||
(i == 0 && k == 0) ||
(j == 0 && k == 0)) {
} else {
push();
translate(x, y, z);
mengersponge(s, level-1);
pop();
}
}
}
}
}
}