A study in rotating shapes.
Log in to post a comment.
Canvas.setpenopacity(.75); const min_radius = 2; const radius_step = 1; const steps = 30; const rotate_per_step = .025; const elems_side = 3; const turtle = new Turtle(); turtle.radians(); function walk(i) { for (let x=0; x<elems_side; x++) { for (let y=0; y<elems_side; y++) { draw_poly( (x/elems_side-.5*(1-1/elems_side))*200, (y/elems_side-.5*(1-1/elems_side))*200, turtle, 3 + x + y*elems_side, // number of corners i*radius_step+min_radius, // radius (steps-i-1) * rotate_per_step * (1+y), // angle ); } } return i < steps-1; } function draw_poly(x,y,t, c, r, a) { const side = 2*Math.sin(Math.PI/c) * r; t.penup(); t.goto(x,y); t.setheading(a); t.forward(r); t.setheading(a+Math.PI/2); t.pendown(); t.right(Math.PI/c); for (let i=0; i<c; i++) { t.forward(side); t.right(Math.PI*2/c); } }