GeeksforGeeks App
Open App
Browser
Continue

# How to Create custom Turtle shapes in Python?

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

## Python3

 `import` `turtle` `# turtle object``c_turtle ``=` `turtle.Turtle()``  ` `# changing the cursor``# shape to circle``c_turtle.shape(``'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.

## Python3

 `import` `turtle` `# turtle object``diamond_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'``diamond_turtle.shape(``'diamond'``)` `# Keep the turtle window open``turtle.done()`

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.

## Python3

 `import` `turtle` `# turtle object``img_turtle ``=` `turtle.Turtle()`` ` `# registering the image``# as a new shape``turtle.register_shape(``'example.gif'``)` `# setting the image as cursor``img_turtle.shape(``'example.gif'``)`

Output :

My Personal Notes arrow_drop_up