let t; const len = 1000; function setup() { // createCanvas(400, 300); createCanvas(window.innerWidth, window.innerHeight); noLoop(); // will draw only once t = new Turtle(); // getting ready to draw // green stroke(0, 200, 0); strokeWeight(5); } function draw() { background(240); // getting ready t.setxy(-len / 2, 0); t.right(90); // draw Koch line koch(5, len); } function koch(order, length) { // PLACEHOLDER t.forward(200); } // Don't write underneath this line class Turtle { constructor() { this.oldx = int(width / 2); this.oldy = int(height / 2); this.x = this.oldx; this.y = this.oldy; this.tcolor = 0; this.angle = 0; stroke(this.tcolor); } forward(step) { this.x = this.oldx - step * cos(radians(this.angle + 90)); this.y = this.oldy - step * sin(radians(this.angle + 90)); line(this.oldx, this.oldy, this.x, this.y); this.oldx = this.x; this.oldy = this.y; } back(step) { this.x = this.oldx + step * cos(radians(this.angle + 90)); this.y = this.oldy + step * sin(radians(this.angle + 90)); line(this.oldx, this.oldy, this.x, this.y); this.oldx = this.x; this.oldy = this.y; } home() { this.oldx = int(width / 2); this.oldy = int(height / 2); line(this.oldx, this.oldy, this.x, this.y); this.oldx = this.x; this.oldy = this.y; this.angle = 0.0; } setx(step) { this.x = this.oldx + step; this.oldx = this.x; } sety(step) { this.y = this.oldy + step; this.oldy = this.y; } setxy(stepx, stepy) { this.x = this.oldx + stepx; this.y = this.oldy + stepy; this.oldx = this.x; this.oldy = this.y; } left(dangle) { this.angle -= dangle; } right(dangle) { this.angle += dangle; } setheading(nangle) { this.angle = nangle; } pencolor(ncolor) { this.tcolor = ncolor; stroke(this.tcolor); } penup() { noStroke(); } pendown() { stroke(this.tcolor); } }