Arjen Markus (28 march 2013) Spirographs and related curves have remarkable esthetic qualities. Here is a simple program to create one type of Guilloche patterns. It is little more than a transcription of a Mathematica program, but still. Play around with the parameters to see what variations are possible.
The program belows produces this picture:
# guilloche.tcl --
# Sample program to draw a Guilloche pattern
# - inspired by Mathworld, sample program in Mathematica
# found at www.maa.org/editorial/mathgames/mathgames_02_09_04.html
#
package require Plotchart
proc guilloche {widget a b c d e f} {
set p [::Plotchart::createPolarplot $widget {20 10}]
$widget delete all
set pi [expr {acos(-1.0)}]
for {set phase 0} {$phase < 20} {incr phase} {
for {set m 0} {$m <= 200} {incr m} {
set x [expr {$m * 2.0 * $pi / 200.0}]
set y [expr {($c + sin($a*$x+$d)) + (($b + sin($b*$x + $e)) - ($c + sin($a*$x+$d))) * ($f + sin($a*$x + $phase/$pi))/2.0}]
$p plot data$phase $y [expr {$x * 180.0 / $pi}]
}
}
}
pack [canvas .c -width 500 -height 500]
guilloche .c 4.0 8.0 30.0 4.7 1.8 1.0