Aban means “fortress”. It is the symbol of strength and authority.

We will use the 5 pixel grid to trace out this image. The image of this is shown below:

## Analysing the Symbol

The symbol is a composite symbol made up of 4 symbols that look like tongs.

A single tong is symmetrical in its quadrant. This property means that we draw a tong and use the steps to draw others.

## The Plan to Draw the Symbol

We shall move the pen to the position (0, 80). Once we do this, we shall set the heading of the pen to 45 degrees thus drawing the tong in the upper right quadrant.

Once the drawing of the first tong is completed, the position of the turtle will place it on the x axis on the right.

At that point, we simply set the heading of the pen to 315 degrees and draw the second tong. When the second tong is drawn, the turtle will be on the negative y axis.

At this point, we simply set the heading of the pen to 225 degrees and draw the third tong. When the third tong is drawn, the turtle will be on the negative x axis.

At this point, we simple set the heading of the pen to 135 degrees and draw the fourth tong thus completing our shape.

## Algorithm to Draw the Symbol

The algorithm to draw the Aban symbol is shown below:

- Lift up the pen
- Set the heading to 45 degrees
- Move the pen to the position (0, 80)
- Set the pen size to half the width of the shape
- Place the pen down
- Move forward to draw the first line
- Turn right by 90 degrees
- Move forward to draw half of the first line
- Turn left by 90 degrees
- Move forward to draw the protruding line at a distance of 5/8 of the length
- Lift up the pen
- Reverse the turtle by moving back the same distance as you moved forward
- Turn right by 90 degrees
- Place the pen down
- Draw the second half of the line
- Turn right by 90 degrees
- Move forward to draw the third line
- Change the heading to 315 and repeat steps 6 – 17
- Change the heading to 225 and repeat steps 6 – 17
- Change the heading to 135 and repeat steps 6 – 17

## Using Turtle Graphics

We will use the template.py file and rename it to aban.py.

The code for steps 1 to 3 is given below:

turtle.penup()

turtle.setheading(45)

turtle.setposition(0, 80)

In step 4 of the algorithm to draw Aban, we have to find the width of the shape. We will also need to find the length of the shape.

To find the width of the line, we need to find the distance between two parallel points it passes through and this are: (120, 0) and (40, 80).

To find the length of a side of the Aban symbol, we take the point (0, 80) as our starting point and get the coordinates of the centre point (80, 160) which is where a line drawing the symbol would stop and turn.

We have to introduce a function coordinateDistance to give us the distance between the two coordinates. The function definition is shown below:

def coordinateDistance(x1, y1, x2, y2):

dx = x1 – x2

dy = y1 – y2

D = math.sqrt((dx * dx) + (dy * dy))

return D

To find the width and length, we use the expressions below:

width = coordinateDistance(120, 0, 40, 80)

length = coordinateDistance(0, 80, 80, 160)

The code for steps 4 and 5 is shown below:

turtle.pensize(width / 2)

turtle.pendown()

Since steps 6 to 17 will be repeated 3 more times, they are a good candidate for a function. We shall call this function drawTong.

Steps 6 to 17 can be automated using the drawTong function. We will first write out the commands for the steps to check then we will later integrate them into the drawTong function.

The code for steps 6 to 10 is given below:

turtle.forward(length)

turtle.right(90)

turtle.forward(length / 2)

turtle.left(90)

turtle.forward(length * 5 / 8)

The generated image is shown below:

The code to lift the pen is straightforward enough. To reverse the shape, we need to move backward the same number of steps as forward.

The code to do this is shown below:

turtle.penup()

turtle.backward(length * 5 / 8)

turtle.right(90)

turtle.pendown()

turtle.forward(length / 2)

turtle.right(90)

turtle.forward(length)

The generated image is shown below:

Now that we have drawn one part of the symbol, we can use the code to create the drawTong function so that we don’t have to repeat ourselves.

The code for the function is shown below:

def drawTong():

turtle.forward(length)

turtle.right(90)

turtle.forward(length / 2)

turtle.left(90)

turtle.forward(length * 5 / 8)

turtle.penup()

turtle.backward(length * 5 / 8)

turtle.right(90)

turtle.pendown()

turtle.forward(length / 2)

turtle.right(90)

turtle.forward(length)

To draw the shape completely, we need to call this function and alternate with the setheading angle that is representative of the quadrant the function will draw in. The code to do this is shown below:

drawTong()

turtle.setheading(315)

drawTong()

turtle.setheading(225)

drawTong()

turtle.setheading(135)

drawTong()

The generated image is shown below:

## Complete Code

""" Project Name: Drawing Adinkra Symbols using Python Developer Name: Truston Ailende Email Address: trustonailende@gmail.com """ import turtle import math # Square def drawSquare(length): turtle.penup() turtle.setposition(-length/2.0, length/2.0) turtle.pendown() for i in range(0, 4): turtle.forward(length) turtle.right(90) turtle.penup() turtle.home() # Horizontal lines def drawHorizontalLine(length, division): pixelSpace = int(length / division) half = int(length / 2) for j in range((-half + pixelSpace), half, pixelSpace): turtle.penup() turtle.setposition(-half, j) turtle.pendown() turtle.forward(length) turtle.penup() turtle.home() # Vertical lines def drawVerticalLine(length, division): pixelSpace = int(length / division) half = int(length / 2) turtle.right(90) for k in range((-half + pixelSpace), half, pixelSpace): turtle.penup() turtle.setposition(k, half) turtle.pendown() turtle.forward(length) turtle.penup() turtle.home() # Draw the grid drawSquare(400) drawHorizontalLine(400, 40) drawVerticalLine(400, 40) # Change the colour mode turtle.colormode(255) # Change the pencolor to red turtle.pencolor(255, 0, 0) # Draw the horizontal centre line turtle.setposition(-200, 0) turtle.pendown() turtle.forward(400) turtle.penup() # Draw the vertical centre line turtle.setposition(0, 200) turtle.setheading(270) turtle.pendown() turtle.forward(400) # Reset all the properties turtle.home() turtle.pencolor(0, 0, 0) # Place code here turtle.penup() turtle.setheading(45) turtle.setposition(0, 80) def coordinateDistance(x1, y1, x2, y2): dx = x1 - x2 dy = y1 - y2 D = math.sqrt((dx * dx) + (dy * dy)) return D width = coordinateDistance(120, 0, 40, 80) length = coordinateDistance(0, 80, 80, 160) turtle.pensize(width/2) turtle.pendown() def drawTong(): turtle.forward(length) turtle.right(90) turtle.forward(length / 2) turtle.left(90) turtle.forward(length * 5 / 8) turtle.penup() turtle.backward(length * 5 / 8) turtle.right(90) turtle.pendown() turtle.forward(length / 2) turtle.right(90) turtle.forward(length) drawTong() turtle.setheading(315) drawTong() turtle.setheading(225) drawTong() turtle.setheading(135) drawTong() # End the program turtle.done()

**Where Can It Be Found?**

A brief Google search led me to the following places where you can get branded Aban products:

- Aban Zanzibar Trinity Rings on Simbasante
- Socks by Adinkra Republic
- Protection Adinkra Earrings by Ahima
- Aban Gold Pendant on Amazon
- Aban Wooden Stamp on Etsy

## Summary

At the end of this post, we have successfully used the Python Turtle environment to draw the Aban symbol.

The code for this series is available on GitHub. Please feel free to check it out.

Next time, we will look at the Abusua Pa Adinkra symbol

## Support this Series

Using the Adinkra symbols, I created the Adinkra Notebooks Collection.

You can support this series by buying one of them.