Skip to content
Related Articles

Related Articles

How to Create custom Turtle shapes in Python?
  • Difficulty Level : Expert
  • Last Updated : 19 Apr, 2021

In Turtle, by default, we have an arrowhead-shaped cursor for drawing on the canvas. This can be changed to some other predefined shape or we can also create a custom shape and register it under a name. Not just that, we can even use gif format images to replace our cursor.

Changing cursor to predefined shapes

The shape() function is used to set the shape of the cursor. The pre-defined shapes include turtle, arrow, circle, square and triangle


import turtle
# turtle object
c_turtle = turtle.Turtle()
# changing the cursor
# shape to circle
Output :


Registering new shapes

The turtle module has register_shape() function for registering custom shapes. 

Syntax : turtle.register_shape(name, shape) 
Parameters : 

  • name : a string- the name of the shape to be registered.


  • shape : a tuple of tuples containing the coordinates for the custom shape.



The n-tuple argument for the shape parameter, denotes the relative position of each corner of an n-sided polygon. Let us try to create a simple diamond shape to understand this.
Consider this diamond, having length of diagonal = 20, in a Cartesian plane :




To create this shape, we need to pass these coordinates in clockwise order.



import turtle
# turtle object
dimond_turtle = turtle.Turtle()
# the coordinates
# of each corner
shape =((0, 0), (10, 10), (20, 0), (10, -10))
# registering the new shape
turtle.register_shape('diamond', shape)
# changing the shape to 'diamond'
Output :

Using images for Turtle cursor
To use an image as the cursor, we need to pass the image file path as parameter to register_shape(). Note that this image has to be in gif format.


import turtle
# turtle object
img_turtle = turtle.Turtle()
# registering the image
# as a new shape
# setting the image as cursor
Output : 


 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :