Grid of rectangles
twitter.com/mknol
Log in to post a comment.
const w = 200; // min=1, max=400, step=1 const h = 200; // min=1, max=400, step=1 const gridx = 6; // min=1, max=40, step=1 const gridy = 6; // min=1, max=40, step=1 const t = 3; // min=1, max=40, step=1 const itemw = w / gridx; const itemh = h / gridy; const w2 = w * 0.5; const h2 = h * 0.5; const itemw2 = itemw * .5; const itemh2 = itemh * .5; const turtle = new Turtle(); function walk(i) { const x = i % gridx; const y = (i / gridx) | 0; if ((x + y) % 2 == 0) { const x2 = -w2 + x * itemw; const y2 = -w2 + y * itemh; infiniteRect(x2, y2, itemw, itemh); } else { for (let i = 0; i < 4; i++) { const x2 = -w2 + x * itemw + (i % 2) * itemw2; const y2 = -w2 + y * itemh + ((i / 2) | 0) * itemh2; infiniteRect(x2, y2, itemw2, itemh2); } } return i + 1 < gridx * gridy; } function infiniteRect(x, y, w, h) { if (w <= 2 || h <= 2) return; //let t = 3; for (let i = 0; i < t; i++) { rect(x + i , y + i , w - i * 2, h - i * 2); } let i = t + 1; infiniteRect(x + i, y+i , w - i * 2, h - i * 2); } function rect(x, y, w, h) { turtle.penup(); turtle.goto(x, y); turtle.pendown(); turtle.goto(x + w, y); turtle.goto(x + w, y + h); turtle.goto(x, y + h); turtle.goto(x, y); }