// Create a "target" shape as a Complex Connected Shape // Using Bezier Curves // note - these are not perfect circles, but they are close. Graph equalscales, height=4,width=4,noaxes,nogrid hcenter=60:vcenter=40 ctl=.552194122531950379 // gives pretty good circle shape beginpath size=100 while size > 10 rc = right_circle (size) shape closefigure size = size - 10 if size <= 10 then break rc = left_circle (size) shape closefigure size = size - 10 wend shape endpath shape filltype=solid,fillcolor=(255,0,0),linecolor=(0,0,0) shape strokefill end def right_circle(size)=gosub 2000 2000 shape linestart = (hcenter, vcenter+size) shape ctlpt1 = (hcenter + size*ctl, vcenter+size) shape ctlpt2 = (hcenter+size, vcenter+size*ctl) shape lineend = (hcenter+size, vcenter) shape bezier shape linestart = (hcenter+size, vcenter) shape ctlpt1 = (hcenter+size, vcenter-size*ctl) shape ctlpt2 = (hcenter+size*ctl, vcenter-size) shape lineend = (hcenter, vcenter-size) shape bezier shape linestart = (hcenter, vcenter-size) shape ctlpt1 = (hcenter - size*ctl, vcenter-size) shape ctlpt2 = (hcenter-size, vcenter-size*ctl) shape lineend = (hcenter-size, vcenter) shape bezier shape linestart = (hcenter-size, vcenter) shape ctlpt1 = (hcenter-size, vcenter+size*ctl) shape ctlpt2 = (hcenter-size*ctl, vcenter+size) shape lineend = (hcenter, vcenter+size) shape bezier return def left_circle (size) = gosub 3000 3000 shape linestart = (hcenter, vcenter+size) shape ctlpt1 = (hcenter-size*ctl, vcenter+size) shape ctlpt2 = (hcenter-size, vcenter+size*ctl) shape lineend = (hcenter-size, vcenter) shape bezier shape linestart = (hcenter-size, vcenter) shape ctlpt1 = (hcenter-size, vcenter-size*ctl) shape ctlpt2 = (hcenter-size*ctl, vcenter-size) shape lineend = (hcenter, vcenter-size) shape bezier shape linestart = (hcenter, vcenter-size) shape ctlpt1 = (hcenter+size*ctl, vcenter-size) shape ctlpt2 = (hcenter+size, vcenter-size*ctl) shape lineend = (hcenter+size, vcenter) shape bezier shape linestart = (hcenter+size, vcenter) shape ctlpt1 = (hcenter+size, vcenter+size*ctl) shape ctlpt2 = (hcenter+size*ctl, vcenter+size) shape lineend = (hcenter, vcenter+size) shape bezier return