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.
What is the equation for the example curve above?
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.