A fill layer based on de Bruijn's 1981 multigrid method to generate Penrose Tilings . This generator projects a hyperdimensional grid lattice onto a 2d plane, giving some pretty cool patterns. Besides looking cool, there's a few interesting and potentially useful features the resulting patterns have:
It always produces rhombs, that is diamond or rectangle shapes. This is particularly useful for 3d artists.
For all dimensions but 3, 4 and 6 the results are aperiodic, this means that it will never repeat itself in the width or height of the image.
The results do repeat symmetrically around the center. The amount of symmetric repetitions is the same as the amount of dimensions projected.
The resulting patterns are also known to show up in nature as quasicrystals.
The meat of the algorithm. The default values for this produce the Star Penrose tiling.
The amount of dimensions the hyperlattice has. 3 is a lattice of cubes, 4 is a lattice of tesseracts, 5 is a lattice of penteracts, and so forth.
Effectively a zoom-out. This is the subdivisions of the length of the width between the center and the corner of the image. This is then used to determine how many lines are projected for each dimension.
This controls how much each set of lines is offset from the center of the image. Changing this value changes the pattern within the same dimension significantly.
- Line Width
The width of the outlines of the rhombs in image pixels. Due to the way the rhombs are drawn, there is still a hairfine line visible at 0 px.
- Connector Lines
This optionally draws lines between the different sides of the shape. This is typically used to show that a specific tiling has certain matching rules, but it also gives cool looking results.
- Acute Angle
Draws an arc between the sides that connect to an acute angle.
- Obtuse Angle
Draws an arc between the sides that connect to an obtuse angle.
Draws two lines crossed between the sides of each rhomb. Particularly interesting with 0 line width.
This section controls all the colors, all grouped together because Krita's color buttons allow drag and dropping colors to one another. You can change the color for the outlines and the connector lines, and there is a gradient for coloring the individual rhombs.
The color factors determine which properties of each rhomb is used to determine its coloring. This value is used as a multiplier, to finally result in a value that can be used to get the value from the gradient.
This colors the rhombs based on their ratio. Thin rhombs have a low ratio, thick rhombs have a high ratio, and perfect squares have the largest ratio.
This colors the rhombs based on which intersecting lines resulted in this rhomb. In effect, this colors the rhomb depending on which side of the hyperlattice the rhomb is on, as is especially clear when setting the dimension to 3.
This colors the rhombs based on the index of the intersecting lines from the center. In effect, rhombs closer to the center will have a lower value, while rhombs further from the center will have a higher value.