When I first started exploring Python’s Turtle graphics over a decade ago, I was amazed at how simple it was to create beautiful shapes and animations. Drawing an oval, however, was one of those tasks that didn’t have a simple built-in function. Over the years, I’ve developed a few effective methods to draw ovals using Python Turtle, and I want to share these with you in a clear, practical way.
Unlike circles, which are easy to draw with Turtle’s `circle()` function, ovals require a bit more creativity because they involve two different radii, a horizontal radius, and a vertical radius. Turtle doesn’t have a direct `oval()` method, so we have to simulate this shape.
From my experience, there are two main approaches to drawing an oval in Python Turtle: using the `circle()` function with adjustments, and manually plotting the oval using parametric equations.
Methods to Draw an Oval Using Python Turtle
Let me show you the methods to draw an oval using Python turtle.
Method 1: Use Turtle’s Circle Function with Tilt
One of the simplest tricks I use is to leverage the `circle()` function but tilt the turtle to create an oval effect. Here’s how it works:
– First, we tilt the turtle by a specific angle.
– Then, we draw a circle with one radius.
– Next, we tilt the turtle back and draw another circle with a different radius.
This approach creates an illusion of an oval by overlapping two circles at different angles.
import turtle
t = turtle.Turtle()
t.speed(1)
# Draw horizontal oval
t.left(45)
t.circle(100, 90) # Draw quarter circle
t.circle(50, 90) # Draw quarter circle with smaller radius
t.left(90)
t.circle(50, 90)
t.circle(100, 90)
turtle.done()You can see the output in the screenshot below.

This method is quick and works well for simple projects. However, it’s not mathematically perfect, and the oval shape might not be smooth if you want precise control.
Method 2: Draw an Oval Using Parametric Equations
For a more precise and smooth oval, I prefer using parametric equations. The oval (ellipse) can be defined by:
- x = a * cos(θ)
- y = b * sin(θ)
Where a is the horizontal radius and b is the vertical radius, and θ goes from 0 to 360 degrees.
By calculating the x and y positions for small increments of θ and moving the turtle accordingly, you can draw a perfect oval.
Step-by-Step Approach
- Define the horizontal radius (
a) and vertical radius (b). - Use a loop to calculate (x, y) coordinates for θ from 0 to 360 degrees.
- Move the turtle to each coordinate point smoothly.
Sample Code
import turtle
import math
t = turtle.Turtle()
t.speed(0)
t.penup()
a = 150 # Horizontal radius
b = 100 # Vertical radius
# Start at the rightmost point of the oval
t.goto(a, 0)
t.pendown()
for angle in range(361):
rad = math.radians(angle)
x = a * math.cos(rad)
y = b * math.sin(rad)
t.goto(x, y)
turtle.done()You can see the output in the screenshot below.

This method gives you full control over the size and shape of the oval. You can easily adjust a and b to create wider or taller ovals depending on your project needs.
Check out Python Turtle Polygon
Method 3: Use Turtle’s Stretching Feature (For Filled Ovals)
If you want to draw filled ovals, another approach I’ve found useful is to stretch the turtle’s shape itself. This is especially handy for creating oval-shaped turtles or stamps.
Here’s how you can do it:
- Use the
turtle.shapesize(stretch_wid, stretch_len)function. - Set the turtle shape to “circle”.
- Stretch the width and length to create an oval.
Sample Code
import turtle
t = turtle.Turtle()
t.shape("circle")
t.shapesize(stretch_wid=5, stretch_len=10) # Stretch to make oval
t.color("blue")
t.stamp() # Stamp the stretched shape on the canvas
turtle.done()You can see the output in the screenshot below.

This method is great for quick visuals or when you want to use the turtle itself as an oval shape. However, it doesn’t draw an oval path but rather stamps an oval shape.
Read Python Turtle Window
Tips for Using Ovals in Your Python Projects
- When creating graphics for educational purposes, such as illustrating concepts in math or art classes in the USA, combining ovals with other shapes can make your projects more engaging.
- Experiment with colors and filling options (
t.begin_fill()andt.end_fill()) to create vibrant designs. - Adjust the turtle’s speed (
t.speed()) to control how fast the drawing appears, slower speeds are great for demonstrations.
Drawing ovals with Python Turtle is easier than it seems once you understand these methods. Whether you want a quick oval using the circle trick, a mathematically precise ellipse with parametric equations, or a stretched turtle shape for stamps, you now have options to fit your project.
Feel free to try these techniques and tweak the parameters to see what creative designs you can come up with. Python Turtle is a fantastic tool to bring your ideas to life visually, and mastering ovals is a great step forward.
You may like to read other articles:

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.