It is important to know how the packages of wave functions with rotational symmetry change when the drawing plane is mirrored. What is

for r-fold rotational symmetry and where M stands for a mirror symmetry?

Note that we want a mirror symmetry at the x-axis with M(x,y)=(x,-y). Then the rotational symmetry gives us more mirror symmetries at axis with angles of integer multiples of π/r. Actually, the unit vectors e are mirror axis and the lines exactly between two adjacent unit vectors are mirror axis too. M can be any of these mirror symmetries. Then

where the mirror image of the wave vector simply reverses its components. In general:

where we can do additional, essentially irrelevant rotations. If the wave vector has only one non-zero component then the package of wave functions is mirror symmetric, M(k,0,0,…)≅(k,0,0,…). If there are two non-zero components, then they get exchanged, M(k,g,0,0,…)=(g,k,0,0,…) and we can get a wave package that is not mirror symmetric with respect to the x-axis.

We can always make that a rotationally symmetric package of waves becomes mirror symmetric by adding its mirror image

but most of the time I get a mirror symmetric image by accident.

Actually, it is quite difficult to get quasi-periodic images that are not mirror symmetric. Here is an example of 5-fold rotational symmetry. The center of perfect symmetry lies near its bottom left corner.

Look out for local approximate mirror symmetries !

]]>

For r-fold rotational symmetry the elementary rotation R(2π/r) simply changes the sign of U and we can use the absolute value of U(x,y) as the x-component for the mapping to the input image X(x,y)=|U(x,y)|. This is an extra imposed mirror symmetry and relates the color change to the anamorphic distortion of the input image. For the y-component we can use any function Y(x,y) that does not change upon the elementary rotation. This is a typical result:

There is another, more sophisticated way. We can use another two-color-changing function V(x,y) to get a full mapping to the W=U+iV plane. An elementary rotation changes the sign of W(x,y) which implies a two-fold rotational symmetry. Thus, similar to the other color symmetries we can use as a mapping to the input image Z(x,y)=f(|W|)*[W(x,y)]². The color is still determined by the sign of U(x,y) and a typical result looks like this:

]]>

For n-fold color symmetry and r-fold rotational symmetry the complex valued mapping W(x,y) changes upon a rotation by an angle of 2π/r as:

The mapping Z(x,y)=X(x,y)+iY(x,y) to the input image should not change upon this rotation and it should depend on W. This has a simple solution:

where the n-th power of W eliminates the phase factor that appears at rotations of W. We can use the scalar function f to reduce the power of the zero at W=0. This method effectively maps the output image to an anamorphic rosette image of the input and comes close what Farris has presented in “Creating symmetry”.

Here are some results I got using this method for three-color symmetry. A periodic image with six-fold rotational symmetry:

and a quasi-periodic image with 9-fold rotational symmetry and some accidental approximate symmetry:

]]>

For periodic images with three- or six-fold rotational symmetry I use sums of several wave packages to get nontrivial color symmetry. This is an example:

For quasi-periodic images a single wave package gives already an interesting color switching pattern. This is an example with 12-fold rotational symmetry:

The center of perfect 12-fold rotational symmetry lies at the lower left corner. See how it has quasi-periodically repeated approximate copies.

]]>

where the d are real valued coefficients and the U are real functions.

If the dimension p of the embedding space is an even number then

and if p is an odd number then

These results are actually easy to get by intuition without needing the theory of the last post. The sign of W chooses one of the two different color variants. For the transition region of small W we better use a neutral color such as a dark grey to improve the image.

The effect of the two-color symmetry can be subtle, such as in this image with basic 8-fold rotational symmetry:

More drastic two-color symmetries are possible too. Here for an image of basic 10-fold rotational symmetry:

To create your own images have a look at my Github repository https://github.com/PeterStampfli/creatingSymmetries. You would not to download the current commit 68f2f1b and open warpingKaleidoscope.html in your browser. Be aware that this is a moving target.

]]>

We combine the n-fold color symmetry with an r-fold rotational symmetry. A rotation of the image plane by an angle of 2π/r maps to the same position of the input image X[R(2π/r)(x,y)]=X(x,y) and Y[R(2π/r)(x,y)]=Y(x,y). But in the complex plane of color choices we get a rotation by 2π/n resulting in another color choice. Thus

where multiplying with the exponential function makes a rotation. Clearly, r must be an integer multiple of n to get unique choices.

As for the mapping X(x,y) and Y(x,y) to the input image we make symmetric packages of waves. As discussed in the last post, except for additional phase factors:

Finally, the mapping is a sum of such packages

with constants C of complex value.

If the order r of the rotational symmetry is odd, then it equals the dimension p=r of the embedding space. The package of waves are then trivially given by

Even orders r of the rotational symmetry are double the dimension p=r/2 of the embedding space and we can simplify the calculation using

which results in

Here we have two different cases. First, if 2p/n is an even number, then exp(i2πp/n)=1 and thus

Second, if 2p/n is an even number, then exp(i2πp/n)=-1 and thus

These equations are particularly easy to evaluate for k-vectors that have only one nonzero component or two neighboring nonzero components.

]]>

We simply put the two-dimensional scalar products between the position of the pixel and the unit vectors in a large vector ω, which has the same number of components as the dimension p of the embedding space:

Then we can write a single wave as

where we use a scalar product in p-dimensional space and

is the wave vector that defines the wave. To go further we have to distinguish two different cases.

For p-fold rotational symmetry with odd p, the embedding space has p dimensions. In the drawing plane, the angle between neighboring unit vectors is 2π/p. They can be written as

If we rotate the points x in the plane by an angle of 2π/p, then the wave f changes like that:

as discussed in “Rotational symmetry from space with an odd number of dimensions“. Now, we can write this more conveniently

Here we actually have a rotation of the wave vector k in the embedding p-dimensional space

that corresponds to the rotation of the drawing plane. It is easily programmed by shifting cyclically the components of the wave vector.

To create symmetric images we need symmetric packages of rotated wave function. They are

where the h-th power of a rotation R means that the rotation has to be done h times. Obviously

The mapping functions X(x,y) and Y(x,y) for creating images are linear combinations of such packages

where the A and B are real valued coefficients. Y(x,y) has the same form.

Now for the other case: n-fold rotational symmetry with even n. The embedding space has a lower dimension p=n/2 by a factor of 2. Note that it does not matter if p is even or odd. The angle between unit vectors is π/p and we can write the unit vectors as

Again we look at rotated wave functions. As discussed in”Rotational symmetry from space with an even number of dimensions” we have a change in the sign of components of the wave vector k:

This gives

where the rotated wave vector is

The rotational symmetric packages of waves are

which we can simplify using of the symmetries of the sine and cosine functions. Thus we get

and the mapping functions X and Y are linear combinations of such packages:

and Y(x,y) has the same form.

I hope that this has not become too obscure and that there are no stupid mistakes. I would appreciate your comments and corrections.

]]>

A center of approximate 8-fold rotational symmetry is near the lower left corner. Large brown patches appear at roughly equal distances. They lie at corners of squares, rhombs with an acute angle of 45 degrees and regular octagons. These polygons bear similar decorations. Overall this image seems to be an approximate decoration of the Ammann-Beenker tiling. This is no surprise as a simple superposition of sinusoidal waves too makes a decoration of the Ammann-Beenker tiling, see my post “Quasiperiodic pattern from eight waves and the Ammann-Beenker tiling”.

To do your own experiments, simply get my public repository https://github.com/PeterStampfli/creatingSymmetries and first have a look at “warpingKaleidoscope.html”, which you can open in your browser to create kaleidoscopic images. But beware, everything is changing. The current commit is 929315b.

]]>

For even p the unit vectors are

Note that

Rotations are similar to the case of an odd number of dimensions, but we consider here multiples of π/p. To get an image with rotational symmetry we have to sum up a full cycle of 2p rotated basic mapping functions, like that:

where the basic mapping function X(x,y) usually is not symmetric.

Rotating the first unit vector clockwise by π/p now gives the opposite of the last unit vector:

Using

we get

Observe that we have exponential functions of imaginary arguments that come in pairs with opposite signs. This simplifies to

This gives mapping functions from special choices for the wave vector components. With a basic mapping function of only one non-zero component of the wave vector

we get the same symmetric function as for embedding spaces with an odd number of dimensions:

But for the second part of the mapping function Y we now cannot use sine functions. Instead, we can use a basic function with two non-zero wave vector components

resulting in the symmetric mapping function

You best make a drawing of these vector combinations to see the rotational symmetry.

With these mapping functions we easily generate quasi-periodic designs with a rotational symmetry which is a multiple of four.

A note added on the 23rd july: We can use any orientation for the unit vectors as long as they are spaced by angles of π/p. Another choice is obviously

]]>

(1, 0), (-½, ½√3) and (-½, -½√3).

They are isometric projections of the three coordinate axis and form a triangular lattice. You do not need to use all three vectors. Often, one replaces the third unit vector by

(-½, -½√3) = – (1,0) – (-½, ½√3).

But for creating designs with three-fold rotational symmetry it might be better to use all three vectors. Then, the symmetry becomes obvious. Similar to the previous post, the simplest mapping functions with three-fold rotational symmetry are

X(x,y) = cos(x) +cos(-½ x+½√3 y) +cos(-½ x -½√3 y) and

Y(x,y) = sin(x) +sin(-½ x+½√3 y) +sin(-½ x -½√3 y).

This results in images like that:

As input image I used a photo of a rosechafer on sedum spectabilis. The green and rose shapes result from the flower. The shiny yellow and blue shape is part of the body of the insect. At the ends you can discover its head.

A minstrel bug and different mapping functions give

]]>