Café wall #illusion
en.wikipedia.org/wiki/caf%c3%a9_wall_illusion
Log in to post a comment.
let squareSize = 14; // min=10, max=36, step=1 let lineRatio = 0.07; // min=0.01, max=0.2, step=.01 let tileOffset = 3; // min=2, max=4, step=1 // You can find the Turtle API reference here: https://turtletoy.net/syntax Canvas.setpenopacity(.5); // Global code will be evaluated once. const turtle = new Turtle(); function drawSquare(x, y, size, fill) { var lineW = size * lineRatio; for(var i = 0; i < size; i += .2) { turtle.jump(x, y + i); turtle.goto(x + (i < lineW? size: lineW) , y + i); } if(fill) { for(var i = 0; i < size - lineW; i += .05) { turtle.jump(x + lineW , y + lineW + i); turtle.goto(x + size , y + lineW + i); } } } var transitions = [] for(var i = 0; i < 1; i += 1 / tileOffset) { transitions.push(squareSize * i); } for(var i = transitions.length - 2; i > 0; i--) { transitions.push(transitions[i]); } // The walk function will be called until it returns false. function walk(i) { y = (i * squareSize) - 105; //transition = [0, squareSize / 3, 2 * squareSize / 3, squareSize / 3]; for(var x = -100 - squareSize, j = 0; x < 100; j++, x += squareSize) { drawSquare(x + transitions[i % transitions.length], y, squareSize, j % 2 == 0); } return y < 100; }