let vertices = [];
var
iter;
var
counter;
function
setup() {
createCanvas(600, 600);
fill(31);
background(31);
iter = 1;
counter = 1;
addVertices();
}
function
draw() {
stroke(255);
strokeWeight(4);
step();
if
(iter < 11) {
counter += 0.05;
iter = floor(counter);
}
else
{
noLoop();
}
}
function
addVertices() {
vertices.push(
new
p5.Vector(100, 300));
vertices.push(
new
p5.Vector(340, 300));
vertices.push(
new
p5.Vector(40, 380));
vertices.push(
new
p5.Vector(160, 380));
vertices.push(
new
p5.Vector(400, 380));
vertices.push(
new
p5.Vector(40, 550));
vertices.push(
new
p5.Vector(160, 550));
vertices.push(
new
p5.Vector(400, 550));
}
function
drawLine(a, b) {
line(vertices[a].x, vertices[a].y,
vertices[b].x, vertices[b].y);
}
function
addGate() {
rectMode(CENTER);
rect(100, 500, 70, 100);
}
function
addWindow() {
rect(280, 430, 40, 30);
}
function
addOculus() {
ellipse(100, 340, 20, 20);
}
function
addChimney() {
rect(320, 295, 16, 20);
ellipse(320, 285, 16, 10);
}
function
step() {
switch
(iter) {
case
1:
drawLine(5, 6);
break
;
case
2:
drawLine(6, 7);
break
;
case
3:
drawLine(2, 5);
drawLine(3, 6);
break
;
case
4:
drawLine(4, 7);
break
;
case
5:
drawLine(2, 3);
drawLine(3, 4);
break
;
case
6:
drawLine(0, 2);
drawLine(0, 3);
drawLine(1, 4);
break
;
case
7:
drawLine(0, 1);
break
;
case
8:
addGate();
break
;
case
9:
addWindow();
break
;
case
10:
addOculus();
break
;
case
11:
addChimney();
break
;
}
}