xxxxxxxxxx
88
let side = 50;
let iteration = 2;
function setup() {
angleMode(DEGREES);
createCanvas(650, 650, WEBGL);
smooth();
}
function draw() {
background(0);
stroke(0);
fill(255, 255, 0);
rotateZ(frameCount * -0.3);
rotateX(frameCount * 0.6);
rotateY(frameCount * 0.6);
drawPyramid(side, iteration);
}
function tetrahedron() {
fill(0, 255, 0);
beginShape(TRIANGLES);
vertex(side, side, side);
vertex(-side, -side, side);
vertex(side, -side, -side);
endShape();
beginShape(TRIANGLES);
fill(0, 0, 255);
vertex(-side, -side, side);
vertex(side, -side, -side);
vertex(-side, side, -side);
endShape();
beginShape(TRIANGLES);
fill(255, 0, 0);
vertex(side, side, side);
vertex(-side, side, -side);
vertex(-side, -side, side);
endShape();
beginShape(TRIANGLES);
fill(255, 255, 0);
vertex(side, side, side);
vertex(side, -side, -side);
vertex(-side, side, -side);
endShape();
}
function drawPyramid(side, iteration) {
iteration--;
if (iteration >= 0) {
push();
translate(side, side, side);
if (iteration === 0) {
tetrahedron();
}
drawPyramid(side, iteration);
pop();
push();
translate(-side, -side, side);
if (iteration === 0) {
tetrahedron();
}
drawPyramid(side, iteration);
pop();
push();
translate(side, -side, -side);
if (iteration === 0) {
tetrahedron();
}
drawPyramid(side, iteration);
pop();
push();
translate(-side, side, -side);
if (iteration === 0) {
tetrahedron();
}
drawPyramid(side, iteration);
pop();
}
}