Skip to content

Instantly share code, notes, and snippets.

@justvanrossum
Last active October 4, 2020 23:36
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save justvanrossum/ff716d82a2b3345c3c84255761fc44a4 to your computer and use it in GitHub Desktop.
Save justvanrossum/ff716d82a2b3345c3c84255761fc44a4 to your computer and use it in GitHub Desktop.
DrawBot: create a simple loop of nested ellipses
# Result:
# http://dailydrawbot.tumblr.com/post/160364438359/ellipses
def drawEllipses(cx, cy, rx, ry, dx, dy, n, bw=0):
for i in range(n):
fill(bw)
oval(cx - rx, cy - ry, 2 * rx, 2 * ry)
rx -= dx
ry -= dy
bw = 1 - bw
canvasSize = 500
numFrames = 50
numEllipses = 14
radius = 0.97 * canvasSize/2
maxStep = radius / (numEllipses - 0.5)
for frame in range(numFrames):
t = frame / numFrames
newPage(canvasSize, canvasSize)
frameDuration(1/20)
rect(0, 0, canvasSize, canvasSize)
a = 2 * pi * t
tx = (1 + sin(a)) / 2
ty = (1 + sin(a + pi/2)) / 2
drawEllipses(canvasSize/2, canvasSize/2, radius, radius,
tx * maxStep, ty * maxStep, numEllipses, 1)
saveImage("Ellipses.gif")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment