Draw Circles with Python Turtle

I was working on a Python project where I needed to create a visualization with circular elements. The best tool for this job was Python’s Turtle module, a simple and intuitive graphics library that makes drawing shapes fun and easy.

In this article, I’ll share multiple ways to draw circles using Python Turtle based on my years of experience.

So let’s get in!

Methods to Draw Python Turtle and Circles

Python Turtle is a built-in graphics library that allows you to create pictures and shapes by moving a virtual “turtle” around the screen. One of the most common shapes you might want to draw is a circle, and fortunately, Turtle makes this quite simple.

There are several ways to create circles with Turtle, from using the built-in circle method to creating your circular patterns with loops. I’ll cover each approach with practical examples.

1: Use the Built-in circle() Method

The simplest and most direct way to draw a circle in Python Turtle is by using the built-in circle() method. This method takes a radius parameter and draws a circle with that radius.

import turtle

# Create a turtle object
t = turtle.Turtle()

# Draw a simple circle with radius 100
t.circle(100)

# Keep the window open
turtle.done()

I executed the above example code and added the screenshot below.

turtle circle code

This code creates a perfect circle with a radius of 100 pixels. The turtle draws the circle counterclockwise from its current position, starting from the east position (3 o’clock).

You can customize your circle by changing various properties:

import turtle

# Create a turtle object
t = turtle.Turtle()

# Set color and pen size
t.pencolor("blue")
t.pensize(5)

# Fill the circle with color
t.fillcolor("lightblue")
t.begin_fill()
t.circle(100)
t.end_fill()

# Keep the window open
turtle.done()

2: Create a Circle with a Loop

If you want more control over how your circle is drawn, you can create one using a loop. This approach helps understand the mathematics behind circle drawing.

import turtle
import math

# Create a turtle object
t = turtle.Turtle()
t.speed(0)  # Fastest speed

# Set circle properties
radius = 100
steps = 360  # More steps = smoother circle

# Draw a circle using small line segments
t.penup()
t.goto(0, -radius)  # Start from the bottom of the circle
t.pendown()

for i in range(steps):
    angle = math.radians(i)
    x = radius * math.sin(angle)
    y = -radius * math.cos(angle)
    t.goto(x, y)

# Keep the window open
turtle.done()

I executed the above example code and added the screenshot below.

python turtle circle

This method draws the circle by calculating the x and y coordinates at each angle and connecting the points.

Read Python Turtle Window

3: Draw Multiple Concentric Circles

You might want to create a pattern of concentric circles, which is a common design element:

import turtle

# Create a turtle object
t = turtle.Turtle()
t.speed(0)  # Fastest speed

# Draw concentric circles
for radius in range(10, 150, 20):
    t.penup()
    t.goto(0, -radius)  # Position the turtle
    t.pendown()
    t.circle(radius)

# Keep the window open
turtle.done()

I executed the above example code and added the screenshot below.

turtle circle python

This code creates a series of circles with increasing radii, creating a beautiful concentric pattern.

4: Create a Spiral Using Circles

By gradually changing the radius or position as you draw, you can create spiral patterns:

import turtle

# Create a turtle object
t = turtle.Turtle()
t.speed(0)  # Fastest speed

# Create a spiral using circles
radius = 5
for i in range(60):
    t.circle(radius + i)
    t.left(10)  # Turn left after each circle

# Keep the window open
turtle.done()

This creates a spiral effect by drawing circles of increasing size and turning the turtle slightly after each circle.

Check out Python Turtle Polygon

5: Draw a Bullseye Target

Let’s create something practical – a bullseye target, which combines circles with color:

import turtle

# Create a turtle object
t = turtle.Turtle()
t.speed(0)

# Define colors for the bullseye
colors = ["red", "white", "red", "white", "red"]

# Draw the bullseye
radius = 150
for i in range(5):
    t.penup()
    t.goto(0, -radius + i * 30)
    t.pendown()
    t.fillcolor(colors[i])
    t.begin_fill()
    t.circle(radius - i * 30)
    t.end_fill()

# Add a bullseye center
t.penup()
t.goto(0, 0)
t.pendown()
t.fillcolor("black")
t.begin_fill()
t.circle(10)
t.end_fill()

# Keep the window open
turtle.done()

This code creates a realistic bullseye target with alternating red and white rings and a black center.

Create an Olympic Rings Logo

Now let’s create something more complex and recognizable – the Olympic rings logo:

import turtle

# Create a turtle object
t = turtle.Turtle()
t.speed(0)
t.pensize(5)

# Define positions and colors for Olympic rings
rings = [
    {'pos': (-110, 0), 'color': 'blue'},
    {'pos': (0, 0), 'color': 'black'},
    {'pos': (110, 0), 'color': 'red'},
    {'pos': (-55, -50), 'color': 'yellow'},
    {'pos': (55, -50), 'color': 'green'}
]

# Draw each Olympic ring
for ring in rings:
    t.penup()
    t.goto(ring['pos'])
    t.pendown()
    t.pencolor(ring['color'])
    t.circle(50)

# Hide the turtle and display the result
t.hideturtle()
turtle.done()

This creates the iconic Olympic rings symbol, demonstrating how circles can be arranged to create complex designs.

Control Circle Direction and Extent

Python’s circle() method allows you to control the direction and extent of your circles:

import turtle

# Create a turtle object
t = turtle.Turtle()
t.pensize(3)

# Draw a full circle (360 degrees)
t.color("blue")
t.circle(50)

# Draw a semi-circle (180 degrees)
t.penup()
t.goto(150, 0)
t.pendown()
t.color("red")
t.circle(50, 180)  # The second parameter is the extent in degrees

# Draw a circle clockwise
t.penup()
t.goto(-150, 0)
t.pendown()
t.color("green")
t.circle(-50)  # Negative radius draws clockwise

# Keep the window open
turtle.done()

This example shows how to draw full circles, partial circles, and how to control the direction of drawing.

Python’s Turtle module is an excellent tool for creating circular designs and patterns. Whether you’re using the built-in circle() method or creating your own with loops, the possibilities are endless. The examples I’ve provided should give you a solid foundation to start creating your circular masterpieces.

Remember that circles are just the beginning; once you’re comfortable with these techniques, you can combine them with other shapes and movements to create complex and beautiful designs. The key is to experiment and have fun with it!

You may like to read other Turtle-related articles:

51 Python Programs

51 PYTHON PROGRAMS PDF FREE

Download a FREE PDF (112 Pages) Containing 51 Useful Python Programs.

pyython developer roadmap

Aspiring to be a Python developer?

Download a FREE PDF on how to become a Python developer.

Let’s be friends

Be the first to know about sales and special discounts.