also known as 'houndstooth'
!! subscribe to PewDiePie !!
Log in to post a comment.
// You can find the Turtle API reference here: https://turtletoy.net/syntax Canvas.setpenopacity(0.15); // Global code will be evaluated once. const turtle = new Turtle(); turtle.penup(); turtle.goto(-90,-110); turtle.pendown(); // !! SUBSCRIBE TO PEWDIEPIE !! // The walk function will be called until it returns false. function walk(i) { var x = (i % 5) * 40 - 90; var y = Math.floor(i / 5) * 40 - 110; for(var i = 0; i < 30; i++){ drawTooth(x, y); } for(var i = 0; i < 2; i++){ fillTooth(x, y); } return i < 30; } function drawTooth(x, y){ var humanizeFactor = 0.0; // set to INT_MAX when creating AI turtle.penup(); turtle.goto(x + 2*humanizeFactor * (Math.random() - 0.5) , y + 2*humanizeFactor * (Math.random() - 0.5) ); turtle.pendown(); turtle.setheading(0 * humanizeFactor * (Math.random() - 0.5)); turtle.forward(10 + humanizeFactor * (Math.random() - 0.5) ); turtle.left(45 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(14.1 + humanizeFactor * (Math.random() - 0.5)); //100 * (2 ^ (1/2)) turtle.right(135 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(10 + humanizeFactor * (Math.random() - 0.5)); turtle.left(90 + humanizeFactor * (Math.random() - 0.5)) turtle.forward(10 + humanizeFactor * (Math.random() - 0.5)); turtle.right(135 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(14.1 + humanizeFactor * (Math.random() - 0.5)); turtle.left(45 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(10 + humanizeFactor * (Math.random() - 0.5)); turtle.right(45 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(14.1 * 2 + humanizeFactor * (Math.random() - 0.5)); turtle.right(135 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(10 + humanizeFactor * (Math.random() - 0.5)); turtle.right(45 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(14.1 + humanizeFactor * (Math.random() - 0.5)); turtle.left(135 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(10 + humanizeFactor * (Math.random() - 0.5)); turtle.right(90 + humanizeFactor * (Math.random() - 0.5)) turtle.forward(10 + humanizeFactor * (Math.random() - 0.5)); turtle.left(135 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(14.1 + humanizeFactor * (Math.random() - 0.5)); turtle.right(45 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(10 + humanizeFactor * (Math.random() - 0.5)); turtle.right(135 + humanizeFactor * (Math.random() - 0.5)); turtle.forward(14.1 * 2 + humanizeFactor * (Math.random() - 0.5)); } function fillTooth(x, y){ var humanizeFactor = 1; turtle.setheading(135 + 1.0 * humanizeFactor * (Math.random() - 0.5)); for(var i = 0; i < 20; i++){ turtle.penup(); turtle.goto(x + i*0.5 + humanizeFactor * (Math.random() - 0.5), y + humanizeFactor * (Math.random() - 0.5)); turtle.pendown(); turtle.forward(14.1 * 2 + humanizeFactor * (Math.random() - 0.5)); turtle.penup(); turtle.goto(x + 20 + i*0.5+ humanizeFactor * (Math.random() - 0.5), y + humanizeFactor * (Math.random() - 0.5)); turtle.pendown(); turtle.forward(14.1 * 2 + humanizeFactor * (Math.random() - 0.5)); turtle.penup(); turtle.goto(x + 20+ humanizeFactor * (Math.random() - 0.5), y - i*0.5 - 1+ humanizeFactor * (Math.random() - 0.5)); turtle.pendown(); turtle.forward(14.1 * 2 + humanizeFactor * (Math.random() - 0.5)); turtle.penup(); turtle.goto(x + 20+ humanizeFactor * (Math.random() - 0.5), y + 20 - i*0.5 - 1+ humanizeFactor * (Math.random() - 0.5)); turtle.pendown(); turtle.forward(14.1 * 2 + humanizeFactor * (Math.random() - 0.5)); } }