Skip to content

Instantly share code, notes, and snippets.

@eliheuer
Created January 2, 2016 19:34
Show Gist options
  • Save eliheuer/f38bcbd76429c0c50aa4 to your computer and use it in GitHub Desktop.
Save eliheuer/f38bcbd76429c0c50aa4 to your computer and use it in GitHub Desktop.
Daily Python kata rendered with Drawbot
#!
# render with drawbot
# forked from https://gist.github.com/justvanrossum/bde7e9b5ae5f9b67dd52
canvas = 512 # canvas size
sq_size = 32 # square size
sq_num = 32 # number of squares
sq_dist = 24 # distance between squares
# used to center the object
width = sq_num * sq_dist
frames_num = 50
for frame in range(frames_num):
newPage(canvas, canvas)
frameDuration(1/20)
fill(1)
rect(0, 0, canvas, canvas)
# angle in radians
phase = 2 * pi * frame / frames_num
start_angle = 90 * sin(phase + 1 * pi)
end_angle = 180 * sin(phase + 1 * pi)
translate(canvas/2 - width/2.32, canvas/2)
fill(0.2)
for i in range(sq_num + 1):
f = i / sq_num
save()
translate(i * sq_dist, 0)
scale(2, 6)
rotate(start_angle + f * (end_angle - start_angle))
fill(1, i * 0.04, 0.2)
rect(-sq_size/2, -sq_size/2, sq_size/16, sq_size)
restore()
saveImage("StackOfSquares.gif")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment