mode_setup; scale# := 0.25pt#; knotwid# = 8scale#; croswid# = 1.25knotwid#; thin# = 1scale#; thick# = 2scale#; sqwid# = 25scale#; sqht# = 25scale#; define_pixels(scale, thick, thin); define_blacker_pixels(knotwid, croswid); font_normal_space sqwid#; def --- = .. tension 2 .. enddef; numeric indist; numeric knotstyle.ll, knotstyle.rr, knotstyle.l, knotstyle.r, knotstyle.c; numeric knotstyle.solid; % A knotstroke is composed of up to five strokes: l ll c rr r % Each line can be drawn five ways. If knotstyle.x | | | | | % is 0 it is not drawn, if it is 1 it is drawn with | | | | | % the thin pen and if 2 it is drawn with the thick pen. | | | | | % -1 and -2 undraw it with the thin & thick pen | | | | | % respectively. knotstyle.solid can have four different | | | | | % values. If it is zero, no solid filling is done. If | | | | | % 1 then the stroke is filled from l to r. If it is |xxxxxxxxxxx| % 2 it is filled from ll to rr. Lastly if it is | |xxxxxxx| | % 3 it is filled from l to ll and rr to r. |x| | |x| indist := 1/4; knotstyle.l = 1; knotstyle.r = 1; knotstyle.ll = 0; knotstyle.rr = 0; knotstyle.c = 0; knotstyle.solid = 0; input do2knots end.