% Qef, 2000 May. mode_setup; font_size 48pt#; sz# := 48pt#; gap# := 2pt#; lt# := 2pt#; define_pixels (sz, gap, lt); numeric startang; startang=90; % Loops spreading out from a center point. for i=1 upto 11: beginchar (i, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: draw z0..z0+radius*dir(startang+(j-1/2)*ang)..z0; endfor endchar; endfor % Loops spreading out from a center point, with lines thinner in middle. for i=6 upto 11: beginchar (i-6+34, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; pickup pencircle scaled 1/4lt; for j=1 upto i: penpos[j*3](1/3lt, startang+(j-1)*ang); z[j*3]=z0; penpos[j*3+1](lt, startang+(j-1/2)*ang+180); z[j*3+1]=z0+radius*dir(startang+(j-1/2)*ang); penpos[j*3+2](1/3lt, startang+j*ang); z[j*3+2]=z0; fill z[j*3]l..z[j*3+1]l..z[j*3+2]l--cycle; unfill z[j*3+2]r..z[j*3+1]r..z[j*3]r--cycle; endfor endchar; endfor % This produces lots of strange path errors, but an interesting effect. %for i=6 upto 11: % beginchar (i-6+40, sz#+2gap#, 1/2sz#, 1/2sz#); % z0=(1/2*w, 0); % center point. % numeric temp, radius; % lft temp=gap; % radius=x0-temp; % numeric ang; ang=360/i; % for j=1 upto i: % penpos[j*3](lt, startang+(j-1)*ang); z[j*3]=z0; % penpos[j*3+1](lt, startang+(j-1)*ang+90); % z[j*3+1]=z0+radius*dir(startang+(j-1/2)*ang); % penpos[j*3+2](lt, startang+j*ang+180); z[j*3+2]=z0; % penstroke z[j*3]e..z[j*3+1]e..z[j*3+2]e; % endfor % endchar; %endfor % Two strange interesting squiggles. % The second one could be made better if done by hand. for i=3 upto 4: beginchar (i-3+18, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: draw z0{dir(startang+(j-1/2)*ang)}.. z0+radius*dir(startang+j*ang)..{dir(startang+(j+1/2)*ang)}z0; endfor endchar; endfor % Multiple lobes around a center point. for i=1 upto 11: beginchar (i+20, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: draw z0{dir((startang+(j-1/2)*ang) mod 360)}... z0+radius*dir(startang+j*ang)...{dir((startang+(j+1/2)*ang+180) mod 360)}z0; endfor endchar; endfor % Solid black pointy stars. for i=5 upto 10: beginchar (i-5+42, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: z[j]=z0+radius*dir(startang+(j-1)*ang); endfor for j=1 upto i: z[i+j]=(z[j]--z[((j+1) mod i)+1]) intersectionpoint (z[((j-2) mod i)+1]--z[(j mod i)+1]); endfor fill for j=1 upto i: z[j]--z[i+j]-- endfor cycle; endchar; endfor % Hollow black pointy stars. for i=5 upto 10: beginchar (i-5+60, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: z[j]=z0+radius*dir(startang+(j-1)*ang); endfor for j=1 upto i: z[i+j]=(z[j]--z[((j+1) mod i)+1]) intersectionpoint (z[((j-2) mod i)+1]--z[(j mod i)+1]); endfor for j=1 upto i: fill z[j]--z[i+j]--z[i+((j-2) mod i)+1]--cycle; endfor endchar; endfor % Black pointy stars with triangles in. for i=5 upto 10: beginchar (i-5+69, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: z[j]=z0+radius*dir(startang+(j-1)*ang); endfor for j=1 upto i: z[i+j]=(z[j]--z[((j+1) mod i)+1]) intersectionpoint (z[((j-2) mod i)+1]--z[(j mod i)+1]); endfor for j=1 upto i: fill z[j]--z[i+j]--(1/2[((z[j]--z0) intersectionpoint (z[i+j]--z[i+((j-2) mod i)+1])),z0])--z[i+((j-2) mod i)+1]--cycle; endfor endchar; endfor % White stars in black polygons. for i=5 upto 10: beginchar (i-5+54, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: z[j]=z0+radius*dir(startang+(j-1)*ang); endfor for j=1 upto i: z[i+j]=(z[j]--z[((j+1) mod i)+1]) intersectionpoint (z[((j-2) mod i)+1]--z[(j mod i)+1]); endfor for j=1 upto i: fill z[j]--z[i+j]--z[(j mod i)+1]--cycle; endfor endchar; endfor for i=5 upto 10: beginchar (i-5+48, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; z0=(1/2*w, 0); % center point. numeric temp, radius; lft temp=gap; radius=x0-temp; numeric ang; ang=360/i; for j=1 upto i: z[j]=z0+radius*dir(startang+(j-1)*ang); endfor for j=1 upto i: z[i+j]=(z[j]--z[((j+1) mod i)+1]) intersectionpoint (z[((j-2) mod i)+1]--z[(j mod i)+1]); endfor for j=1 upto i: draw z[j]--z[i+j]--z[((j-2) mod i)+1]--cycle; endfor endchar; endfor % Simple angle brackets. beginchar (66, 1/4sz#+2gap#, 1/2sz#, 1/2sz#); % Opening bracet. pickup pencircle scaled lt; top rt z1=(w-gap, h); lft z2=(gap, 0); bot rt z3=(w-gap, -d); draw z1--z2--z3; endchar; beginchar (67, 1/4sz#+2gap#, 1/2sz#, 1/2sz#); % Closing bracet. pickup pencircle scaled lt; top lft z1=(gap, h); rt z2=(w-gap, 0); bot lft z3=(gap, -d); draw z1--z2--z3; endchar; % A deliberate attempt to recreate an accidental squiggle, but better. % Its not properly bounded by its box. beginchar (68, sz#+2gap#, 1/2sz#, 1/2sz#); pickup pencircle scaled lt; numeric boxrad, ind, sang; boxrad=1/3sz; ind=0.1; sang=45+13; z0=(1/2*w, 0); for i=0 upto 3: z[i+1]=z0+boxrad*dir(sang+90*i); z[i+5]=ind[z[i+1], z0+boxrad*dir(sang+90*((i-1) mod 4))]; endfor draw z1--z2{z2-z1}...z6..z8...{z3-z4}z4--z3; endchar; end