STARLEAP / PYTHON TURTLE
Build 2026.09.17-001210-0400
On this page
8. Layered Flower Design: Small Flower, Big Flower
You have made flower designs with arcs and loops. Today you will draw one flower layer, then draw a larger flower layer around it.
A layered flower design is built around one center point. Each layer starts at the center, points in a chosen direction, and repeats one petal all the way around.
Start With A Turtle File
Save a new file named layered_flower_design.py.
Start with this template.
import turtle
screen = turtle.Screen()
screen.setup(600, 800, 0, 0)
t = turtle.Turtle()
t.speed(0)
# Your layered flower code goes here.
screen.mainloop()
Run the program. A blank turtle window is fine. Close the turtle window before you change the code again.
Step 1 - Return To The Center
Replace the middle comment with this helper function.
t.speed(0)
def center_turtle():
t.teleport(0, 0)
t.setheading(0)
screen.mainloop()
Run the program. Nothing new should appear yet.
t.teleport(0, 0) returns to the center without drawing a travel line.
t.setheading(0) points the turtle to the right. A heading is the direction the turtle is facing.
Step 2 - Draw One Petal
Add a petal function.
def center_turtle():
...
def draw_petal(radius, arc_angle):
for i in range(2):
t.circle(radius, arc_angle)
t.left(180 - arc_angle)
screen.mainloop()
Call it from the center.
def draw_petal(radius, arc_angle):
...
center_turtle()
draw_petal(55, 75)
screen.mainloop()
Run the program.
Step 3 - Repeat A Small Flower
Use a loop to repeat the petal around the center.
center_turtle()
petals = 10
turn = 360 / petals
for i in range(petals):
draw_petal(55, 75)
t.left(turn)
screen.mainloop()
Run the program.
The turn makes all the petals share the same center.
Step 4 - Name One Flower Layer
Turn the layer code into a function.
def draw_petal(radius, arc_angle):
...
def draw_flower_layer(petals, radius, arc_angle, ink):
center_turtle()
t.color(ink)
turn = 360 / petals
for i in range(petals):
draw_petal(radius, arc_angle)
t.left(turn)
draw_flower_layer(10, 55, 75, 'teal')
screen.mainloop()
Run the program.
This function has four arguments because one flower layer needs four choices: number of petals, petal size, arc angle, and color.
Step 5 - Add A Larger Flower Around It
Call the same layer function again with a larger radius.
draw_flower_layer(10, 55, 75, 'teal')
draw_flower_layer(16, 110, 55, 'purple')
screen.mainloop()
Run the program.
The second call draws a larger flower around the smaller one because its radius is bigger.
Step 6 - Rotate One Layer
Add a start_heading argument so one layer can begin turned a little.
def draw_petal(radius, arc_angle):
...
def draw_flower_layer(petals, radius, arc_angle, ink, start_heading):
center_turtle()
t.setheading(start_heading)
t.color(ink)
turn = 360 / petals
for i in range(petals):
draw_petal(radius, arc_angle)
t.left(turn)
draw_flower_layer(10, 55, 75, 'teal', 0)
draw_flower_layer(16, 110, 55, 'purple', 10)
screen.mainloop()
Run the program.
The heading changes where a layer begins. A small heading change can help the larger flower sit between the smaller petals.
Final Project - Layered Flower Design
Use this full program as a layered flower starter.
import turtle
screen = turtle.Screen()
screen.setup(600, 800, 0, 0)
t = turtle.Turtle()
t.speed(0)
t.pensize(2)
def center_turtle():
t.teleport(0, 0)
t.setheading(0)
def draw_petal(radius, arc_angle):
for i in range(2):
t.circle(radius, arc_angle)
t.left(180 - arc_angle)
def draw_flower_layer(petals, radius, arc_angle, ink, start_heading):
center_turtle()
t.setheading(start_heading)
t.color(ink)
turn = 360 / petals
for i in range(petals):
draw_petal(radius, arc_angle)
t.left(turn)
draw_flower_layer(10, 45, 85, 'teal', 0)
draw_flower_layer(14, 80, 65, 'orange', 8)
draw_flower_layer(18, 120, 50, 'purple', 16)
screen.mainloop()
Run the program.
Make the layered flower yours by changing one argument at a time. Good experiments include petals, radius, arc_angle, ink, and start_heading.
Teacher Check
Show your layered flower design. Then point to:
- the helper function that returns the turtle to the center
- the smaller flower layer call
- the larger flower layer call
- the argument that controls petal size
- the argument that controls starting direction
- the loop that repeats one petal around the center
Say this out loud: "A layered flower can be built by drawing a small flower, then drawing a larger flower around it."