Tright Treeing

Here is a very simple tree with two branches:

Two-branch tree


These are the steps that a simple computer program follows to draw the tree, with a red arrow indicating where the computer’s focus is at each stage:

Two-branch tree stage 1


2-Tree stage 2


2-Tree stage 3


2-Tree stage 4


2-Tree (animated)


If you had to give the computer an explicit instruction at each stage, the instructions might look something like this:

1. Start at node 1, draw a left branch to node 2 and colour the node green.
2. Return to node 1.
3. Draw a right branch to node 3 and colour the node green.
4. Finish.

Now try a slightly less simple tree with branches that fork twice:

Four-branch tree (static)


These are the steps that a simple computer program follows to draw the tree, with a red arrow indicating where the computer’s focus is at each stage:

4-Tree #1


4-Tree #2


4-Tree #3


4-Tree #4


4-Tree #5


4-Tree #6


4-Tree #7


4-Tree #8


4-Tree #9


4-Tree #10


4-Tree #11


4-Tree (animated)


If you had to give the computer an explicit instruction at each stage, the instructions might look something like this:

1. Start at node 1 and draw a left branch to node 2.
2. Draw a left branch to node 3 and colour it green.
3. Return to node 2.
4. Draw a right branch to node 4 and colour it green.
5. Return to node 2.
6. Return to node 1.
7. Draw a right branch to node 5.
8. Draw a left branch to node 6.
9. Draw a left branch to node 7 and colour it green.
10. Return to node 6.
11. Draw a left branch to node 8 and colour it green.
12. Finish.

It’s easy to see that the list of instructions would be much bigger for a tree with branches that fork three times, let alone four times or you. But you don’t need to give a full set of explicit instructions: you can use a program, or a list of instructions using variables. Suppose the tree has branches that fork f times. If f = 4, you will need an array variable level() with four values, level(1), level(2), level(3) and level(4). Now follow these instructions:

1. li = 1, level(1) = 0, level(2) = 0, ... level(f+1) = 0
2. level(li) = level(li) + 1
3. If level(li) = 1, draw a branch to the left and jump to step 7
4. If level(li) = 2, draw a branch to the right and jump to step 7
5. li = li - 1 (note that this line is reached if the tests fail in lines 3 and 4)
6. If li > 0, jump to step 2, otherwise jump to step 11
7. If li = f, draw a green node and jump to step 5
9. li = li + 1
10. Jump to step 2
11. Finish.

By changing the value of f, a computer can use those eleven basic instructions to draw any size of tree (I’ve left out details like changes in the length of branches and so on). When f = 4, the tree will look like this:

16-Tree (static)


16-Tree (animated)


With simple adjustments, the program can be used for other shapes whose underlying structure can be represented symbolically as a tree. The program is in fact a fractalizer, that is, it draws a fractal. So if you use a version of the program to draw fractals based on right-triangles, you can say you are “tright treeing” (tright = triangle-that-is-right).

Here is some tright treeing. Start with a simple isoceles right-triangle. It can be divided into smaller isoceles right-triangles by finding the midpoint of the hypotenuse, then repeating:

Right-triangle rep-2 stage 1


Right-triangle #2


Tright #3


Tright #4


Tright #5


Tright #6


Tright #7


Tright #7 (no internal lines)


You can distort the isoceles right-triangle in interesting ways by finding the midpoint of a side other than the hypotenuse, like this:

Right-triangle (distorted) #1


Distorted tright #2


Distorted tright #3


Distorted tright #4


Distorted tright #5


Distorted tright #6


Distorted tright #7


Distorted tright #8


Distorted tright #9


Distorted tright #10


Distorted tright #11


Distorted tright #12


Distorted tright #13


Distorted tright (animated)


Here’s a different right-triangle. When you divide it regularly, it looks like this:

Right-triangle rep-3 stage 1


Rep-3 Tright #2


3-Tright #3


3-Tright #4


3-Tright #5


3-Tright #6


3-Tright #7


3-Tright #8


3-Tright #9


3-Tright (one colour)


When you distort the divisions, you can create interesting fractals (click on images for larger versions):

Distorted 3-Tright


Distorted 3-Tright


Distorted 3-Tright


Distorted 3-Tright


Distorted 3-Tright


Distorted 3-Tright


Distorted 3-Tright (animated)


And when four of the distorted right-triangles (rep-2 or rep-3) are joined in a diamond, you can create shapes like these:

Creating a diamond #1


Creating a diamond #2


Creating a diamond #3


Creating a diamond #4


Creating a diamond (animated)


Rep-3 right-triangle diamond (divided)


Rep-3 right-triangle diamond (single colour)


Distorted rep-3 right-triangle diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond


Distorted 3-tright diamond (animated)


Distorted rep-2 right-triangle


Distorted 2-tright diamond


Distorted 2-tright diamond


Distorted 2-tright diamond


Distorted 2-tright diamond


Distorted 2-tright diamond (animated)


Tridentine Math

The Tridentine Mass is the Roman Rite Mass that appears in typical editions of the Roman Missal published from 1570 to 1962. — Tridentine Mass, Wikipedia

A 30°-60°-90° right triangle, with sides 1 : √3 : 2, can be divided into three identical copies of itself:

30°-60°-90° Right Triangle — a rep-3 rep-tile…


And if it can be divided into three, it can be divided into nine:

…that is also a rep-9 rep-tile


Five of the sub-copies serve as the seed for an interesting fractal:

Fractal stage #1


Fractal stage #2


Fractal stage #3


Fractal #4


Fractal #5


Fractal #6


Fractal #6


Tridentine cross (animated)


Tridentine cross (static)


This is a different kind of rep-tile:

Noniamond trapezoid


But it yields the same fractal cross:

Fractal #1


Fractal #2


Fractal #3


Fractal #4


Fractal #5


Fractal #6


Tridentine cross (animated)


Tridentine cross (static)


Elsewhere other-available:

Holey Trimmetry — another fractal cross

Bats and Butterflies

I’ve used butterfly-images to create fractals. Now I’ve found a butterfly-image in a fractal. The exciting story begins with a triabolo, or shape created from three isoceles right triangles:


The triabolo is a rep-tile, or shape that can be divided into smaller copies of itself:


In this case, it’s a rep-9 rep-tile, divisible into nine smaller copies of itself. And each copy can be divided in turn:


But what happens when you sub-divide, then discard copies? A fractal happens:

Fractal crosses (animated)


Fractal crosses (static)


That’s a simple example; here is a more complex one:

Fractal butterflies #1


Fractal butterflies #2


Fractal butterflies #3


Fractal butterflies #4


Fractal butterflies #5


Fractal butterflies (animated)


Some of the gaps in the fractal look like butterflies (or maybe large moths). And each butterfly is escorted by four smaller butterflies. Another fractal has gaps that look like bats escorted by smaller bats:

Fractal bats (animated)

Fractal bats (static)


Elsewhere other-posted:

Gif Me Lepidoptera — fractals using butterflies
Holey Trimmetry — more fractal crosses

Tri Again (Again)

I didn’t expect to find the hourglass fractal playing with squares. I even less expected it playing with triangles. Isosceles right triangles, to be precise. Then again, I found it first playing with the L-triomino, which is composed of three squares. And an isosceles triangle is half of a square. So it all fits. This is an isosceles right triangle:
isosceles_right_triangle

Isosceles right triangle


It’s mirror-symmetrical, so it looks the same in a mirror unless you label one of the acute-angled corners in some way, like this:

right_triangle_chiral_1

Right triangle with labelled corner


right_triangle_chiral_2

Right triangle reflected


Reflection is how you find the hourglass fractal. First, divide a right triangle into four smaller right triangles.

right_triangle_div4

Right triangle rep-tiled


Then discard one of the smaller triangles and repeat. If the acute corners of the smaller triangles have different orientations, one of the permutations creates the hourglass fractal, like this:

right_triangle_div4_1

Hourglass #1


right_triangle_div4_2

Hourglass #2


right_triangle_div4_3

Hourglass #3


right_triangle_div4_4

Hourglass #4


right_triangle_div4_5

Hourglass #5


right_triangle_div4_6

Hourglass #6


right_triangle_div4_7

Hourglass #7


right_triangle_div4_8

Hourglass #8


right_triangle_div4_9

Hourglass #9


right_triangle_div4_123_010

Hourglass animated


Another permutation of corners creates what I’ve decided to call the crane fractal, like this:
right_triangle_div4_123_001

Crane fractal animated


right_triangle_div4_123_001_static

Crane fractal (static)


The crane fractal is something else that I first found playing with the L-triomino:

l-triomino_234

Crane fractal from L-triomino


Previously pre-posted:

Square Routes
Tri Again

Hex Appeal

A polyiamond is a shape consisting of equilateral triangles joined edge-to-edge. There is one moniamond, consisting of one equilateral triangle, and one diamond, consisting of two. After that, there are one triamond, three tetriamonds, four pentiamonds and twelve hexiamonds. The most famous hexiamond is known as the sphinx, because it’s reminiscent of the Great Sphinx of Giza:

sphinx_hexiamond

It’s famous because it is the only known pentagonal rep-tile, or shape that can be divided completely into smaller copies of itself. You can divide a sphinx into either four copies of itself or nine copies, like this (please open images in a new window if they fail to animate):

sphinx4

sphinx9

So far, no other pentagonal rep-tile has been discovered. Unless you count this double-triangle as a pentagon:

double_triangle_rep-tile

It has five sides, five vertices and is divisible into sixteen copies of itself. But one of the vertices sits on one of the sides, so it’s not a normal pentagon. Some might argue that this vertex divides the side into two, making the shape a hexagon. I would appeal to these ancient definitions: a point is “that which has no part” and a line is “a length without breadth” (see Neuclid on the Block). The vertex is a partless point on the breadthless line of the side, which isn’t altered by it.

But, unlike the sphinx, the double-triangle has two internal areas, not one. It can be completely drawn with five continuous lines uniting five unique points, but it definitely isn’t a normal pentagon. Even less normal are two more rep-tiles that can be drawn with five continuous lines uniting five unique points: the fish that can be created from three equilateral triangles and the fish that can be created from four isosceles right triangles:

equilateral_triangle_fish_rep-tile

right_triangle_fish_rep-tile

Rep It Up

When I started to look at rep-tiles, or shapes that can be divided completely into smaller copies of themselves, I wanted to find some of my own. It turns out that it’s easy to automate a search for the simpler kinds, like those based on equilateral triangles and right triangles.

right triangle rep-tiles

right_triangle_fish

equilateral_triangle_reptiles

equilateral_triangle_rocket

(Please open the following images in a new window if they fail to animate)

duodeciamond

triangle mosaic


Previously pre-posted (please peruse):

Rep-Tile Reflections

Fractal Fourmulas

A square can be divided into four right triangles. A right triangle can be divided into a square and two more right triangles. These simple rules, applied again and again, can be used to create fractals, or shapes that echo themselves on smaller and smaller scales.

trisquare5

trisquare3

trisquare4

trisquare2

trisquare6

trisquare7

trisquare1