import math # degrees() from math wasn't working so I have this to do math.degrees() instead... from turtle import * from superturtle import * def startingPosition(HALF): # Sets up a square region with max x-coordinate HALF and min -HALF penup() setup(HALF * 2 + 40, HALF * 2 + 40) bgcolor("aquamarine") left(180) forward(HALF) left(90) forward(HALF) left(90) def drawPerson(HALF): # Turtle starts and ends at starting position drawBody(HALF) drawHead(HALF) drawFace(HALF) def drawBody(HALF): # Turtle starts at starting position fillcolor("green") begin_fill() forward(HALF * 4 / 5.0) pendown() forward(HALF * 2 / 5.0) left(90) forward(HALF / 2.0) right(180) forward(HALF / 5.0) left(90) forward(HALF / 10.0) left(45) forward(HALF * math.sqrt(2) / 5.0) left(135) forward(HALF / 10.0) left(45) forward(HALF * math.sqrt(2) / 10.0) right(135) forward(HALF / 5.0) left(90) forward(HALF / 5.0) left(45) forward(HALF * math.sqrt(2) / 10.0) right(90) forward(HALF * math.sqrt(2) / 10.0) left(45) forward(HALF / 5.0) left(90) forward(HALF / 5.0) right(135) forward(HALF * math.sqrt(2) / 10.0) left(45) forward(HALF / 10.0) left(135) forward(HALF * math.sqrt(2) / 5.0) left(45) forward(HALF / 10.0) left(90) forward(HALF / 5.0) left(180) forward(HALF / 2.0) penup() end_fill() def drawHead(HALF): # Turtle starts from where drawBody ended neckHeadAngle = math.degrees(math.acos(.35)) fillcolor("bisque") right(180) forward(.6 * HALF) right(90) forward(.1 * HALF) begin_fill() pendown() right(45) forward(.1 * math.sqrt(2) * HALF) left(90) forward(.1 * math.sqrt(2) * HALF) left(135) forward(.05 * HALF) right(90) forward(.1 * HALF) right(neckHeadAngle) circle(HALF / 7.0, 180 + 2 * neckHeadAngle) right(neckHeadAngle) forward(.1 * HALF) right(90) forward(.05 * HALF) penup() end_fill() def drawFace(HALF): # Turtle starts from where drawHead ended and returns to starting position right(90) forward(1.7 * HALF / 7.0) right(90) forward(.025 * HALF) left(90) pendown() forward(.025 * HALF) penup() right(90) forward(.15 * HALF) right(90) pendown() forward(.025 * HALF) penup() forward(.05 * HALF) pendown() circle(-0.075 * HALF,180) penup() right(180) forward(27 * HALF / 140.0) right(90) forward(37 * HALF / 40.0) left(90) forward(3 * HALF / 5.0) print("C") print(position()) left(90) def drawJugglingCircle(HALF,OFFSET): # Turtle starts and ends from starting position # Draw 3 balls in a circle. The 3 balls are evenly spaced apart and the first ball starts at OFFSET degrees CCW from the starting position. forward(.5 * HALF) left(90) forward(.5 * HALF) right(150) penup() circle(math.sqrt(3) /3 * HALF,OFFSET) for i in range(2): pendown() drawBall(HALF) penup() circle(math.sqrt(3) /3 * HALF,120) pendown() drawBall(HALF) penup() circle(math.sqrt(3) /3 * HALF,120-OFFSET) def drawBall(HALF): # draw a filled circle fillcolor("blue") begin_fill() circle(HALF / 10.0) end_fill()