It has been a while since I wrote about making fractal images — and you might recall that I made several observations about how the images were drawn, but didn’t actually prove that these observations were valid in any general sense.
That has changed! A few weeks ago, I decided that it was time to bite the bullet. I had a concise way to describe what angles were chosen (see Creating Fractals, Day008, and Creating Fractals II: Recursion vs. Iteration, Day009), I accumulated a lot of empirical evidence that validated this description, and now it was time to prove it. I made a goal of solving the problem by the end of this semester.
It is amazing what a little determination can do! I went back to the code I wrote last October, stared at and studied countless sequences of angles and their corresponding images, and within a few days had a working hypothesis. Less than a week had gone by before I had a fairly complete proof. What I thought would take me an entire semester took me about a week.
In today’s post, I’ll talk about specific cases which directly relate to my previous blog posts. I won’t really prove anything here, but instead present the idea of the proof. When I write up the complete proof, I’ll post a link to the paper.
The main insight came from looking at sums of angles (mod 360). Let’s look at a specific example, using angles of 40 degrees and 60 degrees (both counterclockwise). These angles produce the following image:
The angle sequence follows the pattern described in Creating Fractals II: 40, 60, 40, 40, 40, 60, etc., where the “40” occurs in position k if the highest power of 2 which divides k is even, and “60” occurs if this power is odd.
The arms in this figure have eight segments each; one such arm is highlighted below.
Now let’s write the angle sums, starting with 0 since the first segment starts at the center and moved directly to the right. We get
The numbers at the top and left are for row/column reference only. We begin with 0, and 40, then add 60 to get 100, then add 40 more to get 140, etc. Once we hit 320 and need to add 60, we write 20 instead of 380 (since as far as angles go, 20 and 380 are equivalent). This is essentially saying that we are adding angles mod 360 (that is, using modular arithmetic).
These angle sums are the actual directions the lines are being drawn in the plane. You should be able to see the first two rows of this table clearly in the previous image — as you go around the first arm, your direction changes and points in the direction indicated by the appropriate sum in the table.
But notice the following interesting fact: each sum in Row 2 is exactly 180 degrees more than the corresponding sum in Row 1! What this means is as follows: once the first four segments are drawn, the next four are drawn pointing in the opposite directions. In other words, they geometrically “cancel out.” This means that after the first two rows, you’ll return to the origin (as seen above).
You can continue to follow along in the table and view the next arm being drawn, as shown below.
This might seem “obvious” by looking at the table — but it is only obvious after you know how to draw the table. Then it’s easy! Even the mathematics is not all that difficult. I can’t emphasize enough, though, how using the computer to look at several (and more!) examples was a tremendous help in making progress towards how to arrange the table.
Now look at the “20” underlined at the beginning of Row 5. Because of the recursive pattern of the angles, this means that the next eight segments drawn will exactly repeat the second arm.
Just when do the arms repeat? The underlined angles (which indicate the direction the next eight segments are starting off) are the beginning of the sequence
0, 20, 20, 40, 60, 80, 80, 100, 100, 120, ….
If we look at the successive differences, we obtain the sequence
20, 0, 20, 20, 20, 0, 20, 0, 20, ….
But notice that this is the same pattern as the sequence of angles:
40, 60, 40, 40, 40, 60, 40, 60, 40, …
This means that the same pattern which indicates which angle to choose also determines which arms are redrawn. Really amazing!
The separation of 20 degrees between arms is just 60 – 40. In general, if d is the difference between the two angles, you need to take the greatest common divisor of d and 360, which is often abbreviated gcd(d, 360). But in this case, since 20 is already a factor of 360, you get the difference back.
Once you know the arms are separated by 20 degrees, you know that there are 360/20 = 18 arms in the final image.
As I mentioned, it is possible to prove all this — and more. Although we looked at a specific case, it is possible to make generalizations. For example, there were 8 segments in each arm — and 8 is a power of 2 (namely 3). But other powers of two are possible for the number segments in arms — 4, 32, 64, etc.
In addition, there is nothing special about degrees. Why divide a circle into 360 equal parts? You can divide the circle into a different number of parts, and still obtain analogous results.
The number of interesting images you can create, then, is truly astonishing. But the question still remains: have we found them all? In addition to all the images obtained by looking at arms whose segments number a power of two, it is possible to obtain more regular figures.
Such images are obtained when both angles are the same. But other than this, I haven’t found any other types of figures.
So are there any others? Maybe. Maybe not. That’s part of the fun of doing mathematics — you just never know until you try. But I think this question will be a bit harder to answer. Is some enthusiastic reader tempted to find out? Perhaps all it takes is a little determination….
One thought on “Creating Fractals IV: Results!”