Sinusoidal Strings of Pebbles (r=0.1, n=32)

(r=0.15, n=42)

(r=0.4, n=60)

A ring of circles can be expressed as follows:

x = cos(t-mod(t,s)) + r*cos(n*mod(t,s))

y = sin(t-mod(t,s)) + r*sin(n*mod(t,s))

r=0.1, n=32, s=2*pi/n, t=0...2*pi.

Note that mod(t,s) = t - s*floor(t/s).

##
gnuplot Examples:

**Method 1:**
r = 0.1

n = 32

s = 2*pi/n

f(t) = cos(s*floor(t/s)) + r*cos(n*(t-s*floor(t/s)))

g(t) = sin(s*floor(t/s)) + r*sin(n*(t-s*floor(t/s)))

theta(t) = atan2(g(t), f(t))

set terminal wxt enhanced font "Arial, 10"

set xtics ('-2π' -2*pi, '-π' -pi, '0' 0, 'π' pi, '2π' 2*pi)

set xrange [-2*pi-0.4:2*pi+0.4]

set yrange [-pi-0.2:pi+0.2]

set size ratio -1

set samples 10000

set multiplot

set parametric

unset key

do for [k=-2:2:2]{

plot [-pi:pi] theta(t) + k*pi, f(t) w p pt 0.5 lc rgb "#0099cc"

}

do for [k=-2:2:2]{

plot [-pi:pi] theta(t) + k*pi, g(t) w p pt 0.5 lc rgb "#ff00ff"

}

unset multiplot

__Method 2:__
r = 0.1

n = 32

s = 2*pi/n

f(t) = cos(s*floor(t/s)) + r*cos(n*(t-s*floor(t/s)))

g(t) = sin(s*floor(t/s)) + r*sin(n*(t-s*floor(t/s)))

angle(t) = atan2(g(t), f(t))

theta(t) = angle(t - 2*pi*floor((t+pi)/(2*pi))) + 2*pi*floor((t+pi)/(2*pi))

set terminal wxt enhanced font "Arial, 10"

set xtics ('-2π' -2*pi, '-π' -pi, '0' 0, 'π' pi, '2π' 2*pi)

set xrange [-2*pi-0.4:2*pi+0.4]

set yrange [-pi-0.2:pi+0.2]

set size ratio -1

set samples 10000

set parametric

unset key

plot [-4*pi:4*pi] theta(t), f(t) w p pt 0.5 lc rgb "#0099cc", \

theta(t), g(t) w p pt 0.5 lc rgb "#ff00ff"

__The result plot:__

##
Graph Examples:

( Mathematical softwares used: Graph, gnuplot )