## Curves

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

g(t+2π/N)=g(t).

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 http://bookofgames.ch/curves.html 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.

### 2 Responses to Curves

1. What is the equation for the example curve above?

• Peter Stampfli says:

It is of the form discussed in this article. N=5. For more details look at the source code of the page http://bookofgames.ch/curves.html that generates the image.