%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % A font of the border-project % % This file has version number 1.2. % % 19.06.1993 % % (c) by Andreas Schrell, Wuppertal % % and Andreas H"orstemeier, Hemer % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% input umrand def wood(expr W) = beginchar(incr nextchar,charsize#,charsize#,0cm#); pickup pencircle scaled penwid; xscal:=1; u:=w/10; v:=h/20; x0=x1=0; x2=x3=x4=x5=x6=u; x7=x8=x9=x10=x11=x12=2u; x13=x14=x15=3u; x16=x17=x18=x19=4u; x20=x21=x22=5u; x23=x24=x25=6u; x26=7u; x27=8u; x28=x29=10u; y2=20v; y0=19v; y3=16v; y7=y16=15v; y13=y20=14v; y8=13v; y21=12v; y9=y17=y23=y27=y28=11v; y4=y14=y26=10v; y18=y24=y29=9v; y5=8v; y10=y19=y25=7v; y15=y22=6v; y11=5v; y12=3v; y1=v; y6=0v; CenterRot(W); if abs(abs(sind(W))-abs(cosd(W))) < eps: currenttransform := identity shifted(2u,0) transformed (currenttransform); fi draw z2--z0--z1--z6--z5--z15; draw z10--z12--z22--z19--z11; draw z0--z16--z8--z7--z13; draw z7--z3--z4--z9--z8; draw z4--z19--z18--z9--z20--z21--z14; draw z17--z18; draw z21--z22--z25--z24--z23--z21; draw z23--z26--z24; draw z20--z27--z26; draw z2--z28--z25; draw z28--z29--z6; endchar; enddef; def yingyang(expr W) = beginchar(incr nextchar,charsize#,charsize#,0cm#); pickup pencircle scaled penwid; xscal:=1; CenterRot(W); x1=w-x2=0; y1=y2=y5=0.5h; y3=h-y4=0; x3=x4=x5=0.5w; x8=y8=w-x7=w-y7=w/4; draw (z1{down}..z3{right}..z2{up}..z4{left}..z1{down}--cycle); turningcheck:=0; fill (z3{right}..z2{up}..z7{left}..z5{down} ..z8{left}..z1{up}--z1{down}..z3{right}--cycle); turningcheck:=2; cullit; fill (fullcircle scaled (w/6) shifted (w/4,h/2)); unfill (fullcircle scaled (w/6) shifted (w-w/4,h/2)); endchar; enddef; % nach Apollonio: Dynamische circulaire 5 H def dynacirc(expr W,Lines) = beginchar(incr nextchar,charsize#,charsize#,0cm#); pw# := charsize#/(2.3*(Lines)); define_blacker_pixels(pw); pickup pencircle scaled pw; xscal:=1; CenterRot(W); for i=0 upto Lines: penpos[i](pw,90); x[i]=0.5w; y[i]=i*h/Lines; endfor; penpos100(1,-40); penpos101(1,-40); x100=x101=0.5w; top y100=y0; bot y101=y[Lines]; for i=0 upto Lines: penstroke ( z[100].e{left}..z[i].e{right}..z[101].e{left}); endfor; endchar; enddef; % nach Ludwig: Kinematische Scheibe def kinemat(expr W,Lines) = beginchar(incr nextchar,charsize#,charsize#,0cm#); pa# := charsize#*3.14/3.5*2/Lines; pi# := charsize#/7*3.14/3.5*2/Lines; define_blacker_pixels(pa,pi); xscal:=1; CenterRot(W); penpos0(pa,90); penpos1(pi,90); z0=(w,0.5h); z1=(0.5w+0.06w,0.5h+0.08h); for i=0 upto Lines: penstroke CenterRotation(i*360/Lines, z0e--z1e); endfor; endchar; enddef; def saw(expr W,Lines) = beginchar(incr nextchar,charsize#,charsize#,0cm#); pa# := charsize#*3.14/3*2/Lines; pi# := charsize#/4*3.14/3*2/Lines; define_blacker_pixels(pa,pi); xscal:=1; CenterRot(W); penpos0(pi,90); penpos1(pa,90); z0=(w,0.5h); z1=(0.5w+0.4w,0.5h+0.4h); for i=0 upto Lines: penstroke CenterRotation(i*360/Lines, z0e--z1e); endfor; endchar; enddef; def opta(expr W) = beginchar(incr nextchar,charsize#,charsize#,0cm#); xscal:=1; a := hround(w/8); pickup pencircle scaled penwi; for i=0 upto 5: draw fullcircle scaled (w-i*a) shifted (0.5w,0.5h); endfor; pickup pencircle scaled penwid; draw (w,h/2)--(w/2,h)--(0,h/2)--(w/2,0)--cycle; endchar; enddef; def optb(expr W) = beginchar(incr nextchar,charsize#,charsize#,0cm#); xscal:=1; a := hround(w/8); pickup pencircle scaled penwi; for i=0 upto 5: draw quartercircle scaled (w-i*a) rotated 0 shifted (0,0); draw quartercircle scaled (w-i*a) rotated 90 shifted (w,0); draw quartercircle scaled (w-i*a) rotated 180 shifted (w,h); draw quartercircle scaled (w-i*a) rotated 270 shifted (0,h); endfor; pickup pencircle scaled penwid; draw (w,h/2)--(w/2,h)--(0,h/2)--(w/2,0)--cycle; endchar; enddef; def kassette(expr W) = if abs(abs(sind(W))-abs(cosd(W)))