Try shift-clicking and control-clicking or both.
This Java applet was programmed by the fabulous Kristjan Varnik based on Chapter 9 in Cliff Pickover's book
Keys to Infinity. Learn more below.
You should follow me on twitter HERE
The Loom of Creation: An Explanation from Keys to Infinity
Consider a race of spider-beings named Mygalomorphs
who spend their days spinning webs upon circular frames. Status in
their society is based on the beauty of their webs. To create the web
patterns, the spiders string a straight piece of web from one point on
the circle to another. Usually the patterns are dull and uninspiring,
and therefore most spiders are relegated to lower societal classes.
One day, a rather intelligent Mygalomorph
let a straight web piece amble around the circumference of the circle,
the front end going six times as fast as the rear. In other words, every
time the rear of the straight web moved one space, the front end moved
six. After a few moments' contemplation, the Mygalomorph realized that
by the time the fast end has completed one trip around the circle, the
slow end had traveled just a sixth of the the way around. His web grew
ever more intricate as he continued weaving. His forelimbs
moved back and forth with lightning speed.
When he stood back and gazed at his creation, it was
not some complicated, meaningless pattern but rather a five-lobed object
which mathematicians on Earth call a
ranunculoid (Figure 9.1 in Keys to Infinity). Amidst the
intricate beauty of the strands, a ghost of the ranunculoid seemed to
materialize as if out of thin air!
After many experiments, the Mygalomorph
noticed that if one end of its web strand went
n
times faster around the circumference of a circle as its other end, then
the web created a curve with
n-1
lobes. So beautiful were his patterns, that the wise Mygalomorph soon
became King of the Spiders.
What strange shapes can you create by hand or by
using the C or BASIC
spider programs in this chapter? Both programs compute the endpoint
positions
(x, y) and
(x2, y2)
of each straight web chord on a
circle. To control the programs, you can alter
the values for variables
a
and
b
which allow you to create an amazing
array of spider forms. These two control parameters control the speed
with which one end of the spider strand moves with respect to the other.
Figure 9.2 in my book,
for example, was created by having one end of the web go twice
as fast as the other (a=2, b=2). This produces a heart
(cardioid) shape amidst
an intricate weave of lines. Figure 9.3 in my book was created using
(a=3, b=3).
It's called a nephroid. Figure 9.4 was created using
(a=100, b=100),
and,
of course, this fabulously detailed shape
has no common name. Figure 9.5
was created by using different values for
a
and
b % (a=2, b=3).
Although
quite beautiful, the points on this fishtail object do not lie on a
circle. Can readers guess what constants were used to generate
Figure 9.6 in my book?
Of all the web curves in this article, the cardioid is
the most famous. The cardioid (meaning heart-shaped) was first studied
in 1674 by astronomer Ole Romer who was seeking the best shape for gear
teeth. When a circle rolls around another circle of the same
size, any point on the moving circle traces out a cardioid. The Greeks
used this fact when attempting to describe the motions of the planets.
Finally, the cardioid is the envelope of all circles with centers on a
fixed circle, passing through one point on the fixed circle.
What strange new worlds can you create using the spider programs?
What happens when you use ever larger values for
a
and
b?
I would be interested in hearing from readers
who have discovered parameters which yield particularly beautiful
and novel shapes. What are your favorite parameters and patterns?
Here is the basic idea behind the code:
10 REM Compute Ranunculoids
20 R = 1
25 REM Ranunucloid parameters:
26 A = 6
27 B = 6
30 P = 3.1415926
40 FOR I=0 TO 360
50 T=I*P/180.0
60 X = R*COS(T)
70 Y = R*SIN(T)
80 REM select another point on circle
90 X2 = R*COS(A*T)
100 Y2 = R*SIN(B*T)
110 PRINT "Chord on Circle: "; X;Y;" TO ";X2;Y2
120 NEXT I
130 END
The Java code allows you to experiment with values of A and B using a mouse.
For noisier and distorted patterns,
you can shift-click
on a point, and then A will be set to x, and B to y.
Without holding shift, both A and B are always set to the x value
so a pretty circle is always formed. Holding Control divides
the x and y values by 50. If you set A=2 and B=3 the shape
is called a Fishtailoid.
A different Java applet
at this page lets you explore the patterns in a different way. Give it a try.
These patterns are now taking the world by storm. For example,
visit this artist's web site.
See also Wolfram
Return to
Cliff Pickover's home page which includes computer art, educational
puzzles, higher dimensions, fractals, virtual caverns, JAVA/VRML, alien
creatures, black hole artwork, and animations. Click here
for a complete list of over 30 Cliff Pickover books.