Equations: sin(π sqrt((x + k sgn(y)/2)² + y²)) = 0

k = 1, 2, 3, ..., 8

Equations: cos(π sqrt((x + k sgn(y)/2)² + y²)) = 0

k = 1, 2, 3, ..., 8

Square Spirals (spirals made of half-squares):

Equations: sin(π(abs(x + k sgn(y)/2) + abs(y))) = 0

k = 1, 2, 3, 4

Equations: cos(π(abs(x + k sgn(y)/2) + abs(y))) = 0

k = 1, 2, 3, 4

Regular Polygon Spirals (spirals made of regular semi-polygons):

Equations: sin(π p(x + k sgn(y)/2, y)) = 0

k = 1, 2, 3, ..., 8

p(x,y) = sqrt(x² + y²) sec(π/n) cos(mod(arctan(y/x),2π/n) - π/n)

n = 6

Equations:cos(π p(x + k sgn(y)/2, y)) = 0

k = 1, 2, 3, ..., 8

p(x,y) = sqrt(x² + y²) sec(π/n) cos(mod(arctan(y/x),2π/n) - π/n)

n = 6

( Mathematical softwares used: Graph, gnuplot )

Hi Benice! I love this blog, the art here is amazing. I just recently built a polargraph style window plotter and I'm setting it up so that it uses gnuplot to do it's drawing.

ReplyDeleteI'm kind of a gnuplot newbie though and I'm having a little trouble translating your equations into gnuplot scripts. Would you mind sharing the full gnuplot script for one of these?

Hi,

ReplyDeleteHere are two scripts for the circle spirals:

script 1:

k = 2.0

# If k is even:

g(x,y) = cos(pi*sqrt((x + k*sgn(y)/2)**2 + y**2))

# If k is odd:

# g(x,y) = cos(pi*sqrt((x + k*sgn(y)/2)**2 + y**2)) / y

set xrange [-10:10]

set yrange [-10:10]

set samples 256

set isosamples 256

set contour base

set cntrparam levels discrete 0.0

unset surface

set table "g.dat"

splot g(x,y)

unset table

set size ratio -1

unset key

plot "g.dat" w l lw 1 lc rgb "red"

Note for script 1:

gnuplot gives wrong graph (on the x-axis) for the sin case.

script 2:

k = 1.0

f_upper(x,y) = sin(pi*sqrt((x + k/2)**2 + y**2))

f_lower(x,y) = sin(pi*sqrt((x - k/2)**2 + y**2))

set xrange [-10:10]

set samples 256

set isosamples 256

set contour base

set cntrparam levels discrete 0.0

unset surface

set yrange [0:10]

set table "f_upper.dat"

splot f_upper(x,y)

unset table

set yrange [-10:0]

set table "f_lower.dat"

splot f_lower(x,y)

unset table

set yrange [-10:10]

set size ratio -1

unset key

plot "f_upper.dat" w l lw 1 lc rgb "red", \

"f_lower.dat" w l lw 1 lc rgb "red"