Configuring the trace method to explore stunning spirographs in Python

Introduction

Hypotrochoids and epitrochoids are fascinating mathematical curves that create beautiful, mesmerizing patterns

The spyrograph Python package, built on top of the turtle library, provides an easy-to-use interface for visualizing these captivating curves

In this blog post we’ll explore how we can customize the trace method to create our own highly configurable generative art pieces

Getting started

To begin, we’ll need to install the spyrograph package. You can do this by running the following command:

pip3 install spyrograph

Once you have the package installed, let’s import the Hypotrochoid class to trace our shape:

from spyrograph import Hypotrochoid

Using the trace method

The trace method is one of the centerpieces of the spyrograph package, allowing users to draw beautiful hypotrochoids and epitrochoids with ease

The method comes with a variety of customization options, enabling users to create unique patterns suited to their usecase

Here’s a simple example to get us started:

import numpy as np

# Instantiate our hypotrochoid
thetas = np.arange(0, 2 * np.pi, 0.05)
hypotrochoid = Hypotrochoid(R=200, r=50, d=50, thetas=thetas)

# Draw the hypotrochoid using the trace method
hypotrochoid.trace(exit_on_click=True)

Drawing of a hypotrochoid plot with 4 cusps

This code snippet will create a hypotrochoid with the specified parameters and trace it on the turtle screen

You can experiment with different values for R, r, d, and thetas to create a wide variety of patterns and shapes

Customizing the visualization

The trace method offers a wide range of customization options to suit our usecase as needed

Here’s an example of how to modify various aspects of the visualization:

hypotrochoid.trace(
    screen_size=(800, 800),
    screen_color="black",
    color="red",
    show_circles=True,
    show_full_path=True,
    full_path_color="grey",
    circle_color="white",
    frame_pause=0.01,
    repeat=True,
    exit_on_click=True
)

Drawing of a hypotrochoid plot with 4 cusps

In this example, we have:

  • Set the screen size to 800x800 pixels
  • Changed the background color to black
  • Used red as the color of the primary tracing
  • Displayed the inner and outer circles that compose the trace
  • Show the full path that will be traced
  • Set the color of the pre-drawn path to grey
  • Set the color of the circles to white
  • Added a 0.01 second pause for each frame
  • Set the animation to repeat infinitely

Conclusion

The spyrograph Python package empowers users to create and customize mesmerizing hypotrochoids and epitrochoids with just a few lines of code

By leveraging the trace method and its customization options, we can easily generate an array of captivating patterns and stunning art pieces

Additional references

Updated: