;spirograph, by Foxy (uses default line size and color) ;Usage: "spiro" ;uses ipt-1 SINE and COSINE { "" CHATSTR = "$1" GREPSUB ATOI ring = "$2" GREPSUB ATOI wheel = "$3" GREPSUB ATOI hole = MOUSEPOS cy = cx = ring wheel - wr = ring -360 * wheel / 360 + ws = 0 ra = 0 ld = 1 rnd = { dv = { dv rnd *= } { ring rnd / dv % NOT wheel rnd / dv % NOT AND } WHILE } [ 2 3 5 7 11 13 ] FOREACH wheel rnd / 360 * rnd = { ra ws * 360 / wa = cx ra SINE wr * 1000 / + wa SINE hole * 1000 / + cy ra COSINE wr * 1000 / + wa COSINE hole * 1000 / + } spt DEF { spt EXEC 12 ra += spt EXEC LINE ld ++ { BREAK } ld 128 == IF } { ra rnd < } WHILE } CHATSTR "^spiro ([0-9]+) ([0-9]+) ([0-9]+)" GREPSTR IF