Spiked or Ragged Circle

by Zevan Rosser

This plot uses a recurrence relation as the radius for a circle. $R$ is the radius and $R_0$ is equal to $r$.

$$ R_{n+1} = r +\frac{((a R_n + c) \mod m) \mod S^2}{S} $$
Produced by GNUPLOT 4.2 patchlevel 6 -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150

The seeming random nature of the plot is achieved by modifiying a linear congruential generator. $a$, $c$ and $m$ are used to control the generator and have the following values:

$$ a = 22695477 \\ c = 1 \\ m = 2^{32} $$

$r$ is set to $50$ in this plot. This is the inner radius of the spiked circle - or the closest a spike can get to the center of the circle. $S$ controls the maximum length of a spike. In this plot $S$ is set to $70$. These values limit our plot to be positioned inside a circle with a radius of $r + S$ ($120$ in this case).

Often when plotting in polar coordinates we just assume $\theta$ is going to go from $0$ to $2\pi$ radians at an arbitrary interval (or maybe even an infintely small positive interval?). In this case the interval is relavent, as each time $\theta$ gets closer to $2\pi$ we get a new radius value. So altering the interval at which $\theta$ increases, will effect the detail of the plot and the number of spikes/edges. The increment in the above plot is:

$$\frac{2\pi}{360}$$

If we divide by say $75$ instead of $360$ we get:

Produced by GNUPLOT 4.2 patchlevel 6 -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150

Since each time we step closer to $\theta$ we need a new radius value. This divisor is also the number of iterations for $R$.

Now that we know the role of each variable. Lets take a look at a few variations:

Produced by GNUPLOT 4.2 patchlevel 6 -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150 S = 110, r = 30, iterations = 1000 -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150 S = 30, r = 90, iterations = 100 -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150 S = 30, r = 70, iterations = 500 -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150 S = 50, r = 70, iterations = 30