Level 0 figure is 30-60-90 triangle.
Level n+1 figure has Level n figure on the two short sides.
Log in to post a comment.
// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(1);
//Canvas.clear();
// Global code will be evaluated once.
const turtle = new Turtle();
turtle.penup();
turtle.goto(-50,50);
turtle.pendown();
function triangle(l, depth) {
const start_pos = turtle.position();
const start_heading = turtle.heading();
turtle.left(60);
const first_pos = turtle.position();
const first_heading = turtle.heading();
turtle.forward(l/2);
turtle.right(90);
const second_pos = turtle.position();
const second_heading = turtle.heading();
turtle.forward(l/2*Math.sqrt(3));
turtle.right(180-30);
turtle.forward(l);
const last_pos = turtle.position();
const last_heading = turtle.heading();
if (depth < 13) {
move_and_turn(first_pos, first_heading);
triangle(l/2, depth+1);
move_and_turn(second_pos, second_heading);
triangle(l/2 * Math.sqrt(3), depth+1);
move_and_turn(last_pos, last_heading);
}
}
function move_and_turn(position, heading) {
turtle.penup();
turtle.setx(position[0]);
turtle.sety(position[1]);
turtle.setheading(heading);
turtle.pendown();
}
// The walk function will be called until it returns false.
function walk(i) {
triangle(70, 0);
return false;
}