# drawing.py # ---------- # By Hope Wright # # a turtle and bubbles will be drawn and animate swimming across the screen # phase 2 would be to have it start smaller and grow is it swims across the screen to look like it's getting closer # phase 3 would be to animate the bubbles. from turtle import * from superturtle.movement import fly from superturtle.animation import animate from superturtle.easing import easeInQuad import math import random def draw_turtle(size): #draw an oval for the shell height = size*2 width = size*1.5 steps = 100 for i in range(steps + 1): angle = 2 * math.pi * i / steps x = (width) * math.cos(angle) y = (height) * math.sin(angle) goto(x,y) #move to top of for head penup() left(90) forward(size*4) left(90) forward(size*1.5) pendown() #draw a circle for the head circle(size) #draw some lines on the shell penup() left(90) forward(size*2) pendown() forward(size*4) right(180) forward(size*2) left(90) forward(size*1.5) penup() left(180) forward(size*1.5) pendown() def draw_flipper(size): left(90) def draw_bubble(b_size): pencolor("blue") circle(b_size) def place_bubbles(number): #draws bubbles of random sizes and locations in each of the 4 quadrants for i in range(number): x = random.random()*400 y = random.random()*200 fly(x,y) b_size = random.random()*15 draw_bubble(b_size) for i in range(number): x = random.random()*400 y = random.random()*200 fly(-x,y) b_size = random.random()*15 draw_bubble(b_size) for i in range(number): x = random.random()*400 y = random.random()*200 fly(x,-y) b_size = random.random()*15 draw_bubble(b_size) for i in range(number): x = random.random()*400 y = random.random()*200 fly(-x,-y) b_size = random.random()*15 draw_bubble(b_size) fly(0,0) #pass the number of bubbles you want in each quadrant (so it will be 4 X what you pass) for frame in animate(50, loop=True): x = frame.interpolate(-10, 10) y = frame.interpolate(20, -10, easing=easeInQuad) fly(x, y) place_bubbles(1) draw_turtle(20) done()