Frank Farris begins his book “Creating Symmetry” with symmetric curves of N-fold rotational symmetry. An example:


He uses that we can interpret points (x,y) of the plane as complex numbers z=x+i*y. Thus a complex function f(t) of a real parameter t defines a curve in the complex plane. It becomes a closed curve if f(t+2*π)=f(t).

To get N-fold rotational symmetry we can rewrite Farris recipe as

f(t)=exp(i*m*t) * g(t),

where m is an integer number and the complex function g has a “faster” periodicity


Then, we can write the function g(t) as a complex Fourier series

g(t)=a+b*exp(N*t)+c*exp(-N*t)+d*exp(2N*t)+ …,

where the coefficients a,b,c,d, … are complex numbers. If all numbers are real, then you get a mirror symmetric curve. For more details, you should look at Farris book.

The web-page has all you need to create such curves: A canvas graphics element and the JavaScript code to make such curves. You can download it, change the code and generate your own curves. See how powerful web browsers have become !

I would be happy to see your favorite result. You might publish your code for “function updateZ(t)” as a comment to this post. Then, everyone could recreate it.


This entry was posted in Kaleidoscopes, programming and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s