from ellipse import ellipse
from superturtle.animation import animate
from superturtle.easing import easeInOutCubic
from turtle import color, fillcolor, begin_fill, end_fill

n_frames = 128

def is_even(n):
    return n % 2 == 0

def set_colors(n):
    "Sets the color and fill color to white when n is even, otherwise black."
    if is_even(n):
        color('white')
        fillcolor('white')
    else:
        color('black')
        fillcolor('black')

for frame in animate(n_frames, loop=True, gif_filename="demo.gif"):
    for r in reversed(range(2, 30)):
        set_colors(r)
        with frame.rotate(0, 360, r, n_frames - r, easing=easeInOutCubic):
            begin_fill()
            ellipse(5 * r, 10 * r, 128)
            end_fill()
