(stpt) ([ 0 0 ] .astore .store).cvx .def
(ldpt) (().cvx .arrayforall).cvx .def

(cx) ((b0) .touch dot stpt
(vertex) .touch stpt
b0 ldpt .moveto vertex ldpt .drawto
(b3) .touch stpt b3 ldpt .drawto
(midpt) vertex ldpt .moveto b0 ldpt b3 ldpt .cadd 2 0 .cdiv stpt
midpt ldpt .drawto
(alpha) .touch midpt ldpt .csub .cabs
        midpt ldpt vertex ldpt .csub .cabs
       .div .store
(beta) alpha 4 .mul 3 .div .store
(b1) vertex ldpt b0 ldpt .csub beta 0 .cmul b0 ldpt .cadd stpt
(b2) vertex ldpt b3 ldpt .csub beta 0 .cmul b3 ldpt .cadd stpt
b0 ldpt .moveto b1 ldpt b2 ldpt b3 ldpt .curveto 0 .drawpath
).cvx .def

(again) (
(alpha) .touch midpt ldpt .csub .cabs
        midpt ldpt vertex ldpt .csub .cabs
       .div .store
(beta) alpha 4 .mul 3 .div .store
(b1) vertex ldpt b0 ldpt .csub beta 0 .cmul b0 ldpt .cadd stpt
(b2) vertex ldpt b3 ldpt .csub beta 0 .cmul b3 ldpt .cadd stpt
b0 ldpt .moveto b1 ldpt b2 ldpt b3 ldpt .curveto 0 .drawpath
).cvx .def

(track) ((
(alpha) .touch midpt ldpt .csub .cabs
        midpt ldpt vertex ldpt .csub .cabs
       .div .store
(beta) alpha 4 .mul 3 .div .store
(b1) vertex ldpt b0 ldpt .csub beta 0 .cmul b0 ldpt .cadd stpt
(b2) vertex ldpt b3 ldpt .csub beta 0 .cmul b3 ldpt .cadd stpt
b0 ldpt .moveto b1 ldpt b2 ldpt b3 ldpt .curveto 0 .drawpath
).cvx .loop).cvx .def