% drgen.mf % D. Roegel, 20 april 1996 % Adapted from rsym.mf and gen.mf cmchar "female"; beginchar(hex"19",x_height#+2u#,1.7x_height#-desc_depth#,desc_depth#); italcorr 1/2x_height#*slant; adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup rule.nib; autorounded; lft x6=hround u; x8=good.x (.5x_height + u); y6 = good.y (h-.5x_height); y8-y4=x2-x6; circle_points; x9 := x8; numeric a; a = round .5(h+d-x_height) + eps; x10=x8-a; x11=x8+a; y10 = y11; y11 = -d+a; y9 = -desc_depth; draw_circle; draw z10--z11; draw z4--z9; math_fit(0,ic#); labels(1,2,3,4,5,6,7,8,9,10,11); endchar; cmchar "male"; numeric this_size#; this_size# = x_height#*(1+0.9/sqrt2); beginchar(hex"1A",this_size#+1.7u#,this_size#,0); italcorr this_size#*slant; adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup rule.nib; autorounded; lft x6=hround u; x2=x_height+2u-x6; y2=.5x_height; bot y4=0; circle_points; z9 = 1.9[z5,z1]; draw_circle; x9 := good.x x9; y9 := good.y y9; x10 = x9; y11 = y9; y10 = y9-3.5u; x11 = x9-3.5u; draw z1--z9; draw z10--z9--z11; labels(1,2,3,4,5,6,7,8,9); endchar; cmchar "Cross (death symbol)"; beginchar("d",9u#,.65[x_height#,asc_height#],.1(asc_height#-x_height#)); adjust_fit(0,0); pickup tiny.nib; light_stem=Vround .5[vair,stem]; pos1(stem,0); pos2(.4[hair,stem],0); pos3(stem,0); %pos4(stem,90); pos5(.5[vair,stem],90); pos6(stem,90); pos4(light_stem,90); pos5(.5[vair,light_stem],90); pos6(light_stem,90); x1=x2=x3=.5w; top y1=h; bot y3=-d; y2=y4r; y4=y5=y6; y4l=good.y .6[-d,h]; x4=good.x u; x6=r-x4; x5=x2; filldraw z1l...z2l{down}...z3l--z3r...z2r{up}...z1r--cycle; % vertical stroke filldraw z4l...z5l...z6l--z6r...z5r...z4r--cycle; % horizontal stroke penlabels(1,2,3,4,5,6); endchar; cmchar "Rings (marriage symbol)"; beginchar("m",9u#,v_center(x_height#)); adjust_fit(0,0); pickup tiny.nib; numeric light_stem; light_stem=Vround .5[vair,stem]; pos1(light_stem,90); pos3(light_stem,-90); pos2(light_stem,180); pos4(.3[hair,light_stem],0); x1=x3=.5[x2,x4]; lft x2r=hround(-u-.5light_stem); rt x4r=hround(.6w+.5stem); %top y1r=vround(h+.5light_stem); y2=y4=.5[y1,y3]; %bot y3r=vround(-d-.5light_stem); top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-d; pos5(light_stem,90); pos7(light_stem,-90); pos6(.3[hair,light_stem],180); pos8(light_stem,0); x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+u+.5light_stem); y5-y1=y6-y2=y7-y3=y8-y4=0; filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4) &pulled_arc.e(4,1); % left ring filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8) &pulled_arc.e(8,5); % right ring penlabels(1,2,3,4,5,6,7,8); endchar; cmchar "Five-pointed star (birth symbol)"; beginchar("b",9u#,v_center(x_height#)); adjust_fit(0,0); pickup tiny.nib; numeric theta; theta=360/5; % degrees between points pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w; top y1r=vround(math_axis+.5x_height+.5rule_thickness); ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis; pos2(curve,theta); pos3(rule_thickness,90+theta); z2=z0; z3-z0=(z1-z0) rotated theta; z4=whatever[z0l,z1r]=whatever[z2r,z3r]; filldraw for n=0 upto 4: z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor cycle; % star penlabels(0,1,2,3,4); endchar; cmchar "Divided rings (divorce symbol)"; beginchar("1",9u#,v_center(x_height#)); adjust_fit(0,0); pickup tiny.nib; numeric light_stem; light_stem=Vround .5[vair,stem]; pos11(stem,0); pos12(.4[hair,stem],0); pos13(stem,0); x11=x12=x13=.5w; top y11=round 1.3h; bot y13=round(-d-.3h); y12=.6[y13,y11]; filldraw z11l...z12l{down}...z13l --z13r...z12r{up}...z11r--cycle; % vertical stroke pos1(light_stem,90); pos3(light_stem,-90); pos2(light_stem,180); pos4(.3[hair,light_stem],0); x1=x3=.5[x2,x4]; lft x2r=hround(-3u-.5light_stem); rt x4r=hround(.25w+.5stem); top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-d; pos5(light_stem,90); pos7(light_stem,-90); pos6(.3[hair,light_stem],180); pos8(light_stem,0); x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+3u+.5light_stem); y5-y1=y6-y2=y7-y3=y8-y4=0; filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4) &pulled_arc.e(4,1); % left ring filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8) &pulled_arc.e(8,5); % right ring penlabels(1,2,3,4,5,6,7,8,11,12,13); endchar; cmchar "Leaf"; beginchar("l",18u#,asc_height#,0); adjust_fit(0,0); pickup pencircle scaled .6rule_thickness; z1=(0,0); z2=(w,h); z3=.5[z1,z2]+.25((z2-z1)rotated 90); z4=.5[z1,z2]+.25((z2-z1)rotated-90); path p[]; p3=z1...z3{z2-z1}...z2; p4=z1...z4{z2-z1}...z2; draw p3; % upper edge draw p4; % lower edge draw z1 -- z2; % stem z5=1/4[z1,z2]; z6=.55[z1,z2]; z35=p3 intersectionpoint (z5--(x5,2h)); z36=p3 intersectionpoint (z6--(x6,2h)); z45=p4 intersectionpoint (z5--(2w,y5)); z46=p4 intersectionpoint (z6--(2w,y6)); draw z35--z5--z45; % vein draw z36--z6--z46; % vein labels(1,2,3,4,5,6,35,36,45,46); endchar;