Back to Drac’

draconic, adj. /drəˈkɒnɪk/ pertaining to, or of the nature of, a dragon. [Latin draco, -ōnem, < Greek δράκων dragon] — The Oxford English Dictionary

In Curvous Energy, I looked at the strange, beautiful and complex fractal known as the dragon curve and showed how it can be created from a staid and sedentary square:

A dragon curve


Here are the stages whereby the dragon curve is created from a square. Note how each square at one stage generates a pair of further squares at the next stage:

Dragon curve from squares #1


Dragon curve from squares #2


Dragon curve from squares #3


Dragon curve from squares #4


Dragon curve from squares #5


Dragon curve from squares #6


Dragon curve from squares #7


Dragon curve from squares #8


Dragon curve from squares #9


Dragon curve from squares #10


Dragon curve from squares #11


Dragon curve from squares #12


Dragon curve from squares #13


Dragon curve from squares #14


Dragon curve from squares (animated)


The construction is very easy and there’s no tricky trigonometry, because you can use the vertices and sides of each old square to generate the vertices of the two new squares. But what happens if you use lines rather than squares to generate the dragon curve? You’ll discover that less is more:

Dragon curve from lines #1


Dragon curve from lines #2


Dragon curve from lines #3


Dragon curve from lines #4


Dragon curve from lines #5


Each line at one stage generates a pair of further lines at the next stage, but there’s no simple way to use the original line to generate the new ones. You have to use trigonometry and set the new lines at 45° to the old one. You also have to shrink the new lines by a fixed amount, 1/√2 = 0·70710678118654752… Here are further stages:

Dragon curve from lines #6


Dragon curve from lines #7


Dragon curve from lines #8


Dragon curve from lines #9


Dragon curve from lines #10


Dragon curve from lines #11


Dragon curve from lines #12


Dragon curve from lines #13


Dragon curve from lines #14


Dragon curve from lines (animated)


But once you have a program that can adjust the new lines, you can experiment with new angles. Here’s a dragon curve in which one new line is at an angle of 10°, while the other remains at 45° (after which the full shape is rotated by 180° because it looks better that way):

Dragon curve 10° and 45°


Dragon curve 10° and 45° (animated)


Dragon curve 10° and 45° (coloured)


Here are more examples of dragon curves generated with one line at 45° and the other line at a different angle:

Dragon curve 65°


Dragon curve 65° (anim)


Dragon curve 65° (col)


Dragon curve 80°


Dragon curve 80° (anim)


Dragon curve 80° (col)


Dragon curve 135°


Dragon curve 135° (anim)


Dragon curve 250°


Dragon curve 250° (anim)


Dragon curve 250° (col)


Dragon curve 260°


Dragon curve 260° (anim)


Dragon curve 260° (col)


Dragon curve 340°


Dragon curve 340° (anim)


Dragon curve 340° (col)


Dragon curve 240° and 20°


Dragon curve 240° and 20° (anim)


Dragon curve 240° and 20° (col)


Dragon curve various angles (anim)


Previously pre-posted:

Curvous Energy — a first look at dragon curves

Curvous Energy

Here is a strange and beautiful fractal known as a dragon curve:

A dragon curve (note: this is a twin-dragon curve or Davis-Knuth dragon)


And here is the shape generally regarded as the dullest and most everyday of all:

A square


But squares are square, so let’s go back to dragon-curves. This particular kind of dragon-curve looks a lot like a Chinese dragon. You can see the same writhing energy and scaliness:

Chinese dragon


Dragon-curve for comparison


Dragon-curves also look like some species of soft coral:

Red soft-coral


In short, dragon-curves are organic and lively, quite unlike the rigid, lifeless solidity of a square. But there’s more to a dragon-curve than immediately meets the eye. Dragon-curves are rep-tiles, that is, you can tile one with smaller copies of itself:

Dragon-curve rep-tiled with two copies of itself


Dragon-curve rep-4


Dragon-curve rep-8


Dragon-curve rep-16


Dragon-curve rep-32


Dragon-curve self-tiling (animated)


From the rep-32 dragon-curve, you can see that a dragon-curve can be surrounded by six copies of itself. Here’s an animation of the process:

Dragon-curve surrounded (anim)


And because dragon-curves are rep-tiles, they will tile the plane:

Dragon-curve tiling #1


Dragon-curve tiling #2


But how do you make these strange and beautiful shapes, with their myriad curves and curlicules, their energy and liveliness? It’s actually very simple. You start with the shape generally regarded as the dullest and most everyday of all:

A square


Then you see how the shape can be replaced by five smaller copies of itself:

Square overlaid by five smaller squares


Square replaced by five smaller squares


Then you set about replacing it with two of those smaller copies:

Replacing squares Stage #0


Replacing squares Stage #1


Then you do it again to each of the copies:

Replacing squares Stage #2


And again:

Replacing squares #3


And again:

Replacing squares #4


And keep on doing it:

Replacing squares #5


Replacing squares #6


Replacing squares #7


Replacing squares #8


Replacing squares #9


Replacing squares #10


Replacing squares #11


Replacing squares #12


Replacing squares #13


Replacing squares #14


Replacing squares #15


And in the end you’ve got a dragon-curve:

Dragon-curve built from squares


Dragon-curve built from squares (animated)


Square Routes Re-Re-Re-Revisited

Discovering something that’s new to you in recreational maths is good. But so is re-discovering it by a different route. I’ve long been passionate about what happens when a point is allowed to jump repeatedly halfway towards the randomly chosen vertices of a square. If the point can choose any vertex any number of times, the interior of the square fills slowly and completely with points, like this:

Point jumping at random halfway towards vertices of a square


However, if the point is banned from jumping towards the same vertex twice or more in a row, an interesting fractal appears:

Fractal #1 — ban on jumping towards vertex vi twice or more


If the point can’t jump towards the vertex one place clockwise of the vertex it’s just jumped towards, this fractal appears:

Fractal #2 — ban on jumping towards vertex vi+1


If the point can’t jump towards the vertex two places clockwise of the vertex it’s just jumped towards, this fractal appears (two places clockwise is also two places anticlockwise, i.e. the banned vertex is diagonally opposite):

Fractal #3 — ban on jumping towards vertex vi+2


Now I’ve discovered a new way to create these fractals. You take a filled square, divide it into smaller squares, then remove some of them in a systematic way. Then you do the same to the smaller squares that remain. For fractal #1, you do this:

Fractal #1, stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Stage #7


Stage #8


Fractal #1 (animated)


For fractal #2, you do this:

Fractal #2, stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Stage #7


Stage #8


Fractal #2 (animated)


For fractal #3, you do this:

Fractal #3, stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Stage #7


Stage #8


Fractal #3 (animated)


If the sub-squares are coloured, it’s easier to understand how, say, fractal #1 is created:

Fractal #1 (coloured), stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Stage #7


Stage #8


Fractal #1 (coloured and animated)


The fractal is actually being created in quarters, with one quarter rotated to form the second, third and fourth quarters:

Fractal #1, quarter









Here’s an animation of the same process for fractal #3:

Fractal #3 (coloured and animated)


So you can create these fractals either with a jumping point or by subdividing a square. But in fact I discovered the subdivided-square route by looking at a variant of the jumping-point route. I wondered what would happen if you took a point inside a square, allowed it to trace all possible routes towards the vertices without marking its position, then imposed the restriction for Fractal #1 on its final jump, namely, that it couldn’t jump towards the vertex it jumped towards on its previous jump. If the point is marked after its final jump, this is what appears (if the routes chosen had been truly random, the image would be similar but messier):

Fractal #1, restriction on final jump


Then I imposed the same restriction on the point’s final two jumps:

Fractal #1, restriction on final 2 jumps


And final three jumps:

Fractal #1, restriction on final 3 jumps


And so on:

Fractal #1, restriction on final 4 jumps


Fractal #1, restriction on final 5 jumps


Fractal #1, restriction on final 6 jumps


Fractal #1, restriction on final 7 jumps


Here are animations of the same process applied to fractals #2 and #3:

Fractal #2, restrictions on final 1, 2, 3… jumps


Fractal #3, restrictions on final 1, 2, 3… jumps


The longer the points are allowed to jump before the final restriction is imposed on their n final jumps, the more densely packed the marked points will be:

Fractal #1, packed points #1


Packed points #2


Packed points #3


Eventually, the individual points will form a solid mass, like this:

Fractal #1, solid mass of points


Fractal #1, packed points (animated)


Previously pre-posted (please peruse):

Square Routes
Square Routes Revisited
Square Routes Re-Revisited
Square Routes Re-Re-Revisited

Mice Thrice

Twice before on Overlord-in-terms-of-Core-Issues-around-Maximal-Engagement-with-Key-Notions-of-the-Über-Feral, I’ve interrogated issues around pursuit curves. Imagine four mice or four beetles each sitting on one corner of a square and looking towards the centre of the square. If each mouse or beetle begins to run towards the mouse or beetle to its left, it will follow a curving path that takes it to the centre of the square, like this:

vertices = 4, pursuit = +1


The paths followed by the mice or beetles are pursuit curves. If you arrange eight mice clockwise around a square, with a mouse on each corner and a mouse midway along each side, you get a different set of pursuit curves:

v = 4 + 1 on the side, p = +1


Here each mouse is pursuing the mouse two places to its left:

v = 4+s1, p = +2


And here each mouse is pursuing the mouse three places to its left:

v = 4+s1, p = +3


Now try a different arrangement of the mice. In the square below, the mice are arranged clockwise in rows from the bottom right-hand corner. That is, mouse #1 begins on the bottom left-hand corner, mouse #2 begins between that corner and the centre, mouse #3 begins on the bottom left-hand corner, and so on. When each mice runs towards the mouse three places away, these pursuit curves appear:

v = 4 + 1 internally, p = +3


Here are some more:

v = 4 + i1, p = +5


v = 4 + i2, p = +1


v = 4 + i2, p = +2


So far, all the mice have eventually run to the centre of the square, but that doesn’t happen here:

v = 4 + i2, p = 4


Here are more pursuit curves for the v4+i2 mice, using an animated gif:

v = 4 + i2, p = various (animated — open in new tab for clearer image)


And here are more pursuit curves that don’t end in the centre of the square:

v = 4 + i4, p = 4


v = 4 + i4, p = 8


v = 4 + i4, p = 12


v = 4 + i4, p = 16


But the v4+i4 pursuit curves more usually look like this:

v = 4 + i4, p = 7


Now try adapting the rules so that mice don’t run directly towards another mouse, but towards the point midway between two other mice. In this square, the odd- and even-numbered mice follow different rules. Mice #1, #3, #5 and #7 run towards the point midway between the mice one and two places away, while ice #2, #4, #6 and #8 run towards the point midway between the mice two and seven places away:

v = 4 + s1, p(1,3,5,7) = 1,2, p(2,4,6,8) = 2,7


I think the curves are very elegant. Here’s a slight variation:

v = 4 + s1, p1 = 1,3, p2 = 2,7


Now try solid curves:

v = 4 + s1, p1 = 1,3, p2 = 2,7 (red)


v = 4 + s1, p1 = 1,3, p2 = 2,7 (yellow-and-blue)


And some variants:

v = 4 + s1, p1 = 1,7, p2 = 1,2


v = 4 + s1, p1 = 2,3, p2 = 2,5


v = 4 + s1, p1 = 5,6, p2 = 1,3


v = 4 + s1, p1 = 5,6, p2 = 1,4


v = 4 + s1, p1 = 5,6, p2 = 1,6


Elsewhere other-posted:

Polymorphous Pursuit
Persecution Complex

Horn Again

Pre-previously on Overlord-in-terms-of-Core-Issues-around-Maximal-Engagement-with-Key-Notions-of-the-Über-Feral, I interrogated issues around this shape, the horned triangle:

unicorn_reptile_static

Horned Triangle (more details)


Now I want to look at the tricorn (from Latin tri-, “three”, + -corn, “horn”). It’s like a horned triangle, but has three horns instead of one:

Tricorn, or three-horned triangle


These are the stages that make up the tricorn:

Tricorn (stages)


Tricorn (animated)


And there’s no need to stop at triangles. Here is a four-horned square, or quadricorn:

Quadricorn


Quadricorn (animated)


Quadricorn (coloured)


And a five-horned pentagon, or quinticorn:

Quinticorn, or five-horned pentagon


Quinticorn (anim)


Quinticorn (col)


And below are some variants on the shapes above. First, the reversed tricorn:

Reversed Tricorn


Reversed Tricorn (anim)


Reversed Tricorn (col)


The nested tricorn:

Nested Tricorn (anim)


Nested Tricorn (col)


Nested Tricorn (red-green)


Nested Tricorn (variant col)


The nested quadricorn:

Nested Quadricorn (anim)


Nested Quadricorn


Nested Quadricorn (col #1)


Nested Quadricorn (col #2)


Finally (and ferally), the pentagonal octopus or pentapus:

Pentapus (anim)


Pentapus


Pentapus #2


Pentapus #3


Pentapus #4


Pentapus #5


Pentapus #6


Pentapus (col anim)


Elsewhere other-engageable:

The Art Grows Onda — the horned triangle and Katsushika Hokusai’s painting The Great Wave off Kanagawa (c. 1830)

Square Routes Re-Verticed

Start with a point in the middle of a square. Allow it to make a series of, say, eight jumps towards the vertices of the square, but with one restriction: it can’t jump towards the same vertex twice in a row. When the point has made the eight jumps, mark its position. If you do this for every possible route, the result will look like this:

Ban jump towards same vertex


And here’s a different restriction: the point can’t jump towards the vertex immediately to the left of the vertex it has just jumped towards:

Ban jump towards v + 1


And here it can’t jump towards the vertex diagonally opposite the vertex it has just jumped towards:

Ban jump towards v + 2


Now allow the point to jump not just towards the vertices, but towards points midway between the vertices. And expand and reverse the restrictions: instead of not allowing a jump towards v + i1, v + i2…, only allow a jump towards v + i1, v + i2… Some interesting shapes appear:

Jump must be towards v, v + 1 or v + 2 (one point between vertices)


v, v + 1 or v + 6


v, v + 2 or v + 3


v, v + 2 or v + 4


v, v + 2 or v + 6


v, v + 3 or v + 4


v, v + 3 or v + 5


v, v + 2 or v + 7


v + 1, v + 4 or v + 7


v, v + 1 or v + 6 (two points between vertices)


v, v + 2 or v + 4


v, v + 2 or v + 6


v, v + 2 or v + 9


v, v + 3 or v + 6


v, v + 3 or v + 8


v, v + 4 or v + 8


v, v + 5 or v + 7


v , v + 6 or v + 11


v + 1, v + 5 or v + 6


v + 1, v + 2 or v + 10


v + 1, v + 6 or v + 10


v + 1, v + 6 or v + 11


v + 2, v + 6 or v + 10


Elsewhere other-posted:

Square Routes
Square Routes Revisited
Square Routes Re-Revisited
Square Routes Re-Re-Revisited

Square Routes Re-Re-Revisited

This is an L-triomino, or shape created from three squares laid edge-to-edge:

When you divide each square like this…

You can create a fractal like this…

Stage #1


Stage #2


Stage #3


Stage #4


Stage #5


Stage #6


Stage #7


Stage #8


Stage #9


Stage #10


Animated fractal


Here are more fractals created from the triomino:

Animated


Static


Animated


Static


Animated


Static


And here is a different shape created from three squares:

And some fractals created from it:

Animated


Static


Animated


Static


Animated


Static


And a third shape created from three squares:

And some fractals created from it:

Animated


Static


Animated


Static


Animated


Static


Animated


Static


Animated


Static


Animated


Static


Animated


Static


Animated


Static


Previously pre-posted (please peruse):

Tri-Way to L
Square Routes
Square Routes Revisited
Square Routes Re-Revisited

Holey Trimmetry

Symmetry arising from symmetry isn’t surprising. But what about symmetry arising from asymmetry? You can find both among the rep-tiles, which are geometrical shapes that can be completely replaced by smaller copies of themselves. A square is a symmetrical rep-tile. It can be replaced by nine smaller copies of itself:

Rep-9 Square

If you trim the copies so that only five are left, you have a symmetrical seed for a symmetrical fractal:

Fractal cross stage #1


Fractal cross #2


Fractal cross #3


Fractal cross #4


Fractal cross #5


Fractal cross #6


Fractal cross (animated)


Fractal cross (static)


If you trim the copies so that six are left, you have another symmetrical seed for a symmetrical fractal:

Fractal Hex-Ring #1


Fractal Hex-Ring #2


Fractal Hex-Ring #3


Fractal Hex-Ring #4


Fractal Hex-Ring #5


Fractal Hex-Ring #6


Fractal Hex-Ring (animated)


Fractal Hex-Ring (static)


Now here’s an asymmetrical rep-tile, a nonomino or shape created from nine squares joined edge-to-edge:

Nonomino


It can be divided into twelve smaller copies of itself, like this:

Rep-12 Nonomino (discovered by Erich Friedman)


If you trim the copies so that only five are left, you have an asymmetrical seed for a familiar symmetrical fractal:

Fractal cross stage #1


Fractal cross #2


Fractal cross #3


Fractal cross #4


Fractal cross #5


Fractal cross #6


Fractal cross (animated)


Fractal cross (static)


If you trim the copies so that six are left, you have an asymmetrical seed for another familiar symmetrical fractal:

Fractal Hex-Ring #1


Fractal Hex-Ring #2


Fractal Hex-Ring #3


Fractal Hex-Ring #4


Fractal Hex-Ring #5


Fractal Hex-Ring (animated)


Fractal Hex-Ring (static)


Elsewhere other-available:

Square Routes Re-Re-Visited

Square Routes Re-Revisited

This is a very simple fractal:


It has four orientations:


Any orientation can be turned into any other by a rotation of 90°, 180° or 270°, either clockwise or anticlockwise. If you mix orientations and rotations, you can create much more complex fractals. Here’s a selection of them:

Animated fractal

Static fractal


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Animated fractal

Static


Elsewhere other-posted:

Square Routes
Square Routes Revisited

Living Culler

When you replace a square with four smaller squares, each a quarter the size of the original, the smaller squares occupy the same area, because 4 * ¼ = 1. If you discard one sub-square, then divide each of the three remaining sub-squares into four sub-sub-square, discard one sub-sub-quare and repeat, you create fractals like those I looked at in Squaring and Paring. The fractals stay within a fixed boundary.

Square replaced with four smaller squares, each ¼th the size of the original


Animated fractal


Static fractal


This time I want to look at a slightly different process. Replace a square with nine smaller squares each a quarter the size of the original. Now the sub-squares occupy a larger area than the original, because 9 * ¼ = 2¼. If you discard — or cull — sub-squares and repeat, the resultant fractal grows beyond the original boundary. Indeed, sub-squares start to overlap, so you can use colours to represent how often a particular pixel has been covered with a square. Here is an example of this process in action:

Square replaced with nine smaller squares, each ¼th the size of the original


Animated fractal


Static fractal #1


Static fractal #2


Here are the individual stages of a more complex fractal that uses the second process:

Stage 1


Stage 2


Stage 3


Stage 4


Stage 5


Stage 6


Stage 7


Stage 8


Stage 9 (compare Fingering the Frigit and Performativizing the Polygonic)


Stage 10


Animated version


Static version #1


Static version #2


And here are some more of the fractals you can create in a similar way:


Static version #1

Static version #2


Static version #2

Static version #2

Static version #3





Various fractals in an animated gif