Group Abstract Group Abstract

Message Boards Message Boards

9
|
30.6K Views
|
6 Replies
|
42 Total Likes
View groups...
Share
Share this post:

New fractal curve from golden ratio: how to generate Harriss spiral?

Posted 12 years ago

The Guardian recently published a piece about a new fractal curve discovered by an artist and math professor from the University of Arkansas. I looked online but did not find any more detailed information or CODE to generate the curve. Can anyone come up with a program that draws the Harriss spiral? Here is how it looks:

enter image description here

And here is the process behind building it. The golden rectangle:

enter image description here

A golden rectangle is a rectangle whose sides are proportioned according to the golden ratio, which is 1.618. In other words, the long side is 1.618 times the size of the short side. What is particularly interesting, however, about a golden rectangle is that if you draw a square inside it, as above, the remaining section (in blue) is a smaller golden rectangle. Let’s continue. We can divide the smaller rectangle into a square and an even smaller golden rectangle:

enter image description here

We can go on for as long as we like subdividing rectangles. And if we draw quarter circles in each square we get a spiral. The illustration below is probably one of the most famous images in mathematics, if not in all of science. The curve is called the “golden spiral”:

enter image description here

Inspired by the classic construction of the golden spiral, Harriss – who is British – began to play around with the process of subdividing rectangles in the hope that he would be able to generate other aesthetically pleasing curves. So, rather than starting with a rectangle and then cutting out a square that leaves a similar rectangle, as we did above with a golden rectangle, he did something subversive. “Instead of cutting a square, I cut a rectangle,” he said. What he did was this: he found the rectangle that would divide into two similar rectangles and a square, as illustrated below. The blue rectangle and the orange rectangle have the same proportions as the overall rectangle, which is a ratio between the sides of 1.325.

enter image description here

Since we have two of these rectangles, we can carry on subdividing. And again. And again.

enter image description here

enter image description here

enter image description here

So any takers for a Wolfram Language implementation?

POSTED BY: Vitaliy Kaurov
6 Replies

Here is an old piece of code from many years ago that does something similar:

circlesOnCircles[?_, ?_, ?_, iter_] :=
Module[{C, ?, cp, \[ScriptD], ?, ?},
C[?[mp_, r_, {?_, ?_}, -1, i_]] :=
(cp = mp + r (\[ScriptD] = {Cos[?], Sin[?]});
? = ?.{r, 1/i}; ? = ?.{? - ?, i};
{?[cp + \[ScriptD] ?, ?, {? - Pi - ?, ? - Pi}, 1, i + 1],
 ?[cp - \[ScriptD] ?, ?, {?, ? + ?}, -1, i + 1]});
C[?[mp_, r_, {?_, ?_}, 1, i_]] :=
(cp = mp + r (\[ScriptD] = {Cos[?], Sin[?]});
? = ?.{r, 1/i}; ? = ?.{? - ?, i};
{?[cp + \[ScriptD] ?, ?, {? - Pi, ? - Pi + ?}, -1, i + 1],
 ?[cp - \[ScriptD] ?, ?, {? - ?, ?}, 1, i + 1]});
Graphics[#, PlotRange -> All]& @
{Flatten[MapIndexed[{Thickness[0.01/#2[[1]]], Circle @@ Take[#,3]&/@#}&,
NestList[Flatten[C /@ #]&,
    Join[?[{0, 0}, 1, ?{-1, 1} Pi/2, #, 1]& /@ {-1, 1},
         ?[{2, 0}, 1, Pi + ?{-1, 1} Pi/2, #, 1]& /@ {-1, 1}], iter]]]}]

Manipulate[
           circlesOnCircles[?, ?, ?, iter] /.
 If[dcq, c_Circle :> {Opacity[op], Disk @@ c}, {}],
           {{iter, 5, "iterations"}, 1, 10, 1, ImageSize -> Small,
 Appearance -> "Labeled"},
          Delimiter,
             {{?, 1, "start segments"}, 0.1, 2,
 ImageSize -> Small},
           {{?, {0.37, 0.25}, "radii"}, {0, 0}, {2, 2},
 ImageSize -> Small},
           {{?, {0.17, 0.31}, "opening\nangles"}, {0, 0}, {1,
  1}, ImageSize -> Small},
          Delimiter,
         Row[{Control[{{dcq, False, "fill"}, {True, False}}], "  ",
  Control[{{op, 0.4, ""}, 0, 1, ImageSize -> Small}]}],
ControlPlacement -> Left]

enter image description here

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard
Be respectful. Review our Community Guidelines to understand your role and responsibilities. Community Terms of Use