DISCLAIMER: This blog post was written by a human with the help of AI
In this blog post, we will explore the scale
method in the spyrograph
package which enables users to easily scale their trochoid's and cycloid's input parameters
- Scaling trochoid's and cycloid's input parameters with the spyrograph
scale
method - Creating a
Hypocycloid
- Scaling the
Hypocycloid
with thescale
method - Using
scale
totrace
a beautiful pattern - Conclusion
chris-greening / spyrograph
Python library for analyzing, exploring, and visualizing epitrochoids and hypotrochoids in just a few lines of code
spyrograph: elegant mathematics and geometries
What is it?
spyrograph is a lightweight Python package that provides an expressive and flexible set of tools for drawing beautiful mathematically driven art. With just a few lines of easy-to-read code you can start analyzing, visualizing, and exploring elegant mathematics
Table of Contents
🔑 Key features
- Expressive and consistent syntax
- Robust underlying mathematics
- Beginner and expert friendly
-
numpy
is the only required third-party installation - Clear visualizations and animations
- Flexible to a wide range of usecases
- Lightweight, just plug and play
💻 Installation
pip
Install the latest stable release from PyPI using
$ pip3 install spyrograph
or clone the development version from GitHub with
$ git clone https://github.com/chris-greening/spyrograph.git
🌱 Quickstart
spyrograph
is designed to be expressive and easy-to-use - simply import spyrograph
and jump right into drawing elegant, complex shapes…
Creating a Hypocycloid
First, let's create a Hypocycloid
with 10 cusps to work with:
import numpy as np
from spyrograph import Hypocycloid
hypocycloid = Hypocycloid.n_cusps(
R=300,
n=10,
thetas=np.arange(0, 2*np.pi, .1)
)
Scaling the Hypocycloid
with the scale
method
Now that we have a Hypocycloid
, we can easily scale it using the scale
method:
scaled_hypocycloid = hypocycloid.scale(factor=.5)
The scaled_hypocycloid
will now have its input parameters (R
, r
, and d
) multiplied by the scaling factor
For example the radius of the big circle R=300
will now be R*.5=150
Using scale
to trace
a beautiful pattern
Let's jump into a concrete example of using the scale
method in action to trace
a gradually smaller set of curves
from spyrograph import Hypocycloid
import numpy as np
import time
screen = None
hypocycloid = Hypocycloid.n_cusps(
R=200,
n=20,
theta_start=0,
theta_stop=2*3.1415,
theta_step=.01
)
for i in range(1,40):
screen = hypocycloid.trace(screen=screen)
hypocycloid = hypocycloid.scale(factor=((40/(i+40))))
time.sleep(.1)
turtle.exitonclick()
Conclusion
The scale
method in spyrograph provides a convenient way to resize trochoids and cycloids while preserving their shape
With just a single method call and a scaling factor, users can quickly create new shapes with different sizes, making the package even more versatile for artists, educators, and developers alike
Don't forget to experiment with different scaling factors and shapes to create stunning patterns and visuals!
Top comments (0)