And now for more images with 5-fold rotational symmetry and color change derived from self-similarity as discussed in “self-similarity and color modification“.
Zoom in to see the molten watch faces in this image:
Here I used the portrait of a damselfly, but you wont recognize much:
Here I am showing some quasi-periodic designs of eight-fold rotational symmetry. They have a color change upon mirroring at the x-axis and 7 other mirror axis generated by the rotational symmetry. Note that these images have a rather large scale and have a grey appearance because the color change generates complimentary colors. To see more you should use the zoom function of your browser.
Here are some images of 10-fold rotational symmetry and 2-color symmetry upon rotation. They have an additional mirror symmetry. Thus you can discover local mirror symmetries with and without color change. Again, they are of large size and you can zoom in to see details:
Here are some quasi-periodic designs of five-fold rotational symmetry. They relate to the Penrose tiling and use the method of “quasiperiodic patterns of 5-fold symmetry …“. For all three images the wave packages for the anamorphic mappings X(x,y) and Y(x,y) use the basic waves cos(x) and sin(x). This gives us mirror symmetry.
Note that this images are very large. You can zoom in and scroll around to explore them. They are different only because I used different input images.
Using a black and red bug on a yellow flower gave this:
A clematis made that:
And a red day-lily resulted in:
At first sight these images resemble same 19th century wallpapers.
A long time ago in “Crazy graph paper” I have shown a morphing between the square lattice and the quasiperiodic Ammann-Beenker tiling of eight-fold rotational symmetry. We can do similar morphs with mapping functions using waves.
The wave vectors (1,0) and (0,1) define designs of square symmetry that are aligned with the coordinate axis. We get the same designs rotated by an angle of 45 degrees from the wave vectors (1/√2,1/√2) and (1/√2,-1/√2). All wave vectors together give quasi-periodic designs with 8-fold rotational symmetry. A morphing arises if we combine these wave packages with varying weights.
To create an example I used a constant coefficient for the first set of waves. The weight for the second set vanishes at the border of the image and is equal to the weight of the first set at the center. Thus at the border we get a square lattice and the center has locally eight-fold rotational symmetry:
The Penrose tiling is self-similar as many other quasi-periodic tilings. It matches a copy of itself inflated by the golden ratio τ=(1+√5)/2≅1.618, see “Penrose tiling tied up in ribbons“. Noting that our quasi-periodic designs of 5-fold symmetry are closely related to the Penrose tiling, we think that the self-similarity might show up somehow in these designs.
To show you a simple example, I made a design using wave packages based on cos(x) and sin(x) functions. It should match wave packages of a scale inflated by τ. Thus I used an additional wave package based on cos(x/τ). Wherever it has a negative value, the color of the design gets inverted. This matches the basic design and nicely accentuates its structure:
The center of perfect 5-fold symmetry lies in the lower left part.
The matching between the two different wavelengths is not surprising. The wave vectors of the mapping between output image and input image are of the form k_m=(cos(2πm/5),sin(2πm/5)). Noting that cos(2π/5)=1/(2τ) we get immediately that k_1+k_4=(1/τ,0), which is one of the waves used for controlling the color change. Thus sums of basic wave vectors give the smaller wave vectors of the inflated tiling.
The image quality suffers if the mapping functions X(x,y) and Y(x,y) of the position (x,y) of a pixel of the output image to the position (X,Y) of the sampled input image pixel are strongly contracting or expanding.
For contracting mappings many pixels of the output image are mapped to the same single pixel of the input image. Without interpolation such a pixel appears magnified in the output image as a large patch of uniform color. You can see an example in “How to generate rosettes“. With cubic interpolation we can remove this defect , see the post “interpolation of pixels“.
For strongly expanding mappings neighboring output pixels are mapped to input pixels that lie far away from each other. If they are further apart than the size of characteristic details of the input image, then we get artifacts in the output image. An example are the nearly random pixels at the center of this spiral image:
This is essentially aliasing. We can improve the image by averaging, see “Smoothing and anti-aliasing“. Using four sampling points for each output pixel gives a much nicer image:
Obviously, interpolation and averaging slows down image generation and should only be used where needed. Often, we need neither of them. And never both. The generating program should analyze the mapping and choose the image improvement.