One idea sitting in my Taskwarrior queue for a full
year now would still be useful, though. A circle template could help me
break out of the square grid with my Celtic and
I already create circular drawings using symmetry tools in my drawing
apps. Those are doodles, though: unplanned and improvised. I sketch and
see what the automated symmetry produces from my linework. Circle
templates simplify planning a complex image which I then produce,
probably without using symmetry tools.
So, let’s write a little code!
I’ll keep using Python, since that worked for me last time. Lately I
have been using the Anaconda
Distribution for my Python
programming needs. It includes a number of Python
My template includes three characteristics:
an origin in the center of my square image
some concentric circles increasing in radius by a fixed amount
some line segments slicing the image from the origin point to the
Write some code
I will save myself effort by grabbing some of the work used for drawing
grids and putting into a new class.
My CircleTemplate class knows how to construct, save, and show a blank
processes the command line arguments for image size, number of circles,
and number of slices. I added defaults so I don’t have to type in a
value every time I tested the script for this post.
I can build on this framework. Time to fill in the blanks.
Draw some circles
I need to figure out my origin, the center for my circles and slices.
Since the image is a square, it will be the same along both the X and Y
axes. This means I only need to calculate a single midpoint.
Each time we move on to a new radius,
creates a circle by drawing a 360 degree arc within bounding_box, a
square that extends radius pixels from a midpoint along the x and
Add some pie slices
Right. I could do some moderately clever math to calculate angles and
draw lines from the midpoint, or I could use the existing
method to accomplish pretty much the same thing. If you read the section
title, you can probably guess what I chose.
I’m dividing the 360 degrees of a circle into slice_count pieces.
ImageDraw.pieslice draws a tidy wedge at the angles we give it fitting
the bounding box defined by my largest circle.
How does that look?
It looks pretty cool.
I need more circles and slices for the drawings I’m thinking of, though.
Yes, that’s more like it.
This is all I need for a drawing template. Using transformation tools
and the right blending modes, I can manuever and manipulate my grid
however I need for a drawing template!