%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MAURO.MF : (Version 1.03, mars 11, 2003) % by Paolo Mascellani (paolo@elabor.homelinux.org) % Laboratorio Informatico Consorzio Polis - Pisa, Italy % based on AstroSym (Version 1.00, May 1, 1992) % by Peter Schmitt (a8131dal@awiuni11.bitnet) % Institute of Mathematics, University of Vienna Vienna, Austria %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% mode_setup; font_size = .4cm; % scaling factor U = diameter of sun symbol font_identifier = "MauroSym"; font_coding_scheme = "special purpose: symbols for Maurolico"; %%%%%%%%%%% % font size ( U = diameter of sun symbol ) %%%%%%%%%%% U# := .4cm#; u# := (1/64)*U#; define_pixels(U,u); numeric r,R,D, a,b, s,t; %H,V, pair TL,Tl,TC,Tr,TR, tL,tl,tC,tr,tR, CL,Cl,CC,Cr,CR, bL,bl,bC,br,bR, BL,Bl,BC,Br,BR; pair BB,MM,TT, mm, LL,RR, ll,rr, HH,VV, vv,nn; pair vP,hP, vp,hp, vd,hd; %%%%%%%% macros def PEN = pickup pencircle scaled 2P enddef; def SPEN = pickup pensquare scaled 2P enddef; def RPEN = pickup penrazor scaled 2P enddef; def Pen = pickup pencircle scaled 2p; enddef; def pen = pickup pencircle scaled 4p; enddef; def corrections = vP:=(0,P); hP:=(P,0); vp:=(0,p); hp:=(p,0); vd:=vP-vp; hd:=hP-hp; enddef; def Corners (expr lft_corr, rt_corr, bot_corr, top_corr) = BL := (0+lft_corr,-d+bot_corr); BR := (w-rt_corr,-d+bot_corr); TL := (0+lft_corr, h-top_corr); TR := (w-rt_corr, h-top_corr); enddef; def corners = Corners (P,P,P,P); enddef; def Centers (expr x_ratio,y_ratio) = BC:=bot x_ratio[BL,BR]; TC:=top x_ratio[TL,TR]; CL:=lft y_ratio[BL,TL]; CR:= rt y_ratio[BR,TR]; CC:=y_ratio[BC,TC]; enddef; def Centers (expr x_ratio,y_ratio) = BC:=x_ratio[BL,BR]; TC:=x_ratio[TL,TR]; CL:=y_ratio[BL,TL]; CR:=y_ratio[BR,TR]; CC:=y_ratio[BC,TC]; enddef; def centers = Centers (1/2,1/2); enddef; def TOP (expr lft_ratio,rt_ratio) = Tl:=lft_ratio[TL,TR]; Tr:=rt_ratio[TL,TR]; enddef; def BOT (expr lft_ratio,rt_ratio) = Bl:=lft_ratio[BL,BR]; Br:=rt_ratio[BL,BR]; enddef; def HOR (expr lft_ratio,rt_ratio) = BOT(lft_ratio,rt_ratio); TOP(lft_ratio,rt_ratio); enddef; def Bot (expr ratio) = bl:=ratio[Bl,Tl]; bC:=ratio[BC,TC]; br:=ratio[Br,Tr]; enddef; def Top (expr ratio) = tl:=ratio[Bl,Tl]; tC:=ratio[BC,TC]; tr:=ratio[Br,Tr]; enddef; def LFT (expr bot_ratio,top_ratio) = bL:=bot_ratio[BL,TL]; tL:=top_ratio[BL,TL]; enddef; def RT (expr bot_ratio,top_ratio) = bR:=bot_ratio[BR,TR]; tR:=top_ratio[BR,TR]; enddef; def Fill (expr boundary) = fill boundary; draw boundary; enddef; def ARROW (expr base,top, breadth, lcorr,bcorr) = vv := top-base; nn := breadth*(vv rotated 90)/2; BB := base; TT := top; LL := base+nn-lcorr*vv; RR := base-nn-lcorr*vv; ll := .5[base,top]+(1-bcorr)*nn/2; rr := .5[base,top]-(1-bcorr)*nn/2; enddef; def arrow (expr base,top, breadth, lcorr,bcorr) = ARROW (base,top, breadth, lcorr,bcorr); Fill ( LL{dir angle(ll-LL)}..{dir angle(TT-ll)}TT & TT{dir angle(rr-TT)}..{dir angle(RR-rr)}RR & RR{dir angle(BB+lcorr*vv-RR)}..BB..{dir angle(LL-BB-lcorr*vv)}LL ..cycle ); enddef; def Arrow (expr base,top, breadth, lcorr,bcorr) = ARROW (base,top, breadth, lcorr,bcorr); draw LL{dir angle(ll-LL)}..{dir angle(TT-ll)}TT & TT{dir angle(rr-TT)}..{dir angle(RR-rr)}RR; draw BB--TT; enddef; def cross (expr base,top, breadth, base_corr) = vv := (top-base-(0,base_corr)); nn := breadth*(vv rotated 90)/2; BB := base; TT := top; MM := .5[base+(0,base_corr),top]; LL := MM-nn; RR := MM+nn; draw LL--RR; draw BB--TT; enddef; O := 0; % offset value for character position P# := 4u#; % width of thick strokes p# := .5u#; % width of thin strokes define_pixels(P,p); corrections; beginchar(O+2,52u#,80u#,0u#); "Venus"; corners; centers; VV:=(TC-TL) rotated -90; CL:=TL+VV; CR:=TR+VV; bC:=TC+2VV; PEN; draw TC..CR..bC..CL..TC..cycle; % top circle SPEN; cross (bC,BC, 4/3,-2P); % bottom cross endchar; beginchar(O+3,52u#,80u#,0u#); "Terra"; corners; centers; VV:=(BC-BL) rotated 90; CL:=BL+VV; CR:=BR+VV; tC:=BC+2VV; PEN; draw tC..CR..BC..CL..tC..cycle; % bottom circle SPEN; cross (tC,TC, 1,2P); % top cross endchar; beginchar(O+4,52u#,88u#,0u#); "Mars"; corners; centers; VV:=(BC-BL) rotated 90; CL:=BL+VV; CR:=BR+VV; tC:=BC+2VV; CC:=BC+VV; Cr:=(tC+2vP) rotatedaround (CC,-15); % temporary TR:=TR+vd+hd; % top arrow: top tr:=.45[Cr,TR]; % top arrow: base Cr:=Cr-(2hP rotated angle(TR-Cr)); % top arrow: stem base a:=angle(TR-tr); b:=cosd(a)/sind(a); % arrow: calculate breadth PEN; draw tC..CR..BC..CL..tC..cycle; % bottom circle PEN; draw Cr--tr; % top arrow: stem Pen; arrow (tr,TR, 2b, .1,.5); % top arrow endchar; beginchar(O+7,52u#,74u#,10u#); "Uranus"; corners; centers; VV:=(BC-BL) rotated 90; bL:=BL+VV; bR:=BR+VV; CC:=BC+2VV; bC:=BC+VV; TC:=TC+vd; tC:=.4[CC,TC]; PEN; draw CC..bR..BC..bL..CC..cycle; % bottom circle fill fullcircle scaled 2P shifted bC; % bottom circle: dot draw CC--tC; % top arrow: stem Pen; arrow (tC,TC, 1.2, .1,.5); % top arrow endchar; beginchar(O+8,88u#,80u#,0u#); "Neptunus"; Corners(p,p,P,p); Centers(.5,.2); HOR (9/88,79/88); Top(.725); Bot(.2); b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points SPEN; draw bl--br; % horizontal bar draw bC--BC; % vertical stem draw bl--tl; draw bC--tC; draw br--tr; % three arrows: arms Pen; arrow (tl,Tl, 2b, .2,.5); % three arrows: points arrow (tC,TC, 2b, .2,.5); arrow (tr,Tr, 2b, .2,.5); endchar; beginchar(O+9,52u#,80u#,0u#); "Pluto"; corners; centers; VV:=(TC-TL) rotated -90; bC:=TC+2VV; bL:=TL+2VV; BOT (0,2/3); % Br : bottom bar (right end) PEN; draw TL--TC{right}..{left}bC--bL; % top right arc SPEN; draw BL--TL; draw BL--Br; % left bar and bottom bar endchar; beginchar(O+21,76u#,58u#,-6u#); "Aquarius"; Corners(P,P,(h+d)/2+P,P); % upper strokes: centers; % CL and CR : left and right end BOT (3/12,11/12); BC:=.5[Bl,Br]; % Bl,BC,Br : upper endpoints TOP (1/12,9/12); TC:=.5[Tl,Tr]; % Tl,TC,Tr : lower endpoints % PEN yscaled (p/P) rotated (90-angle(Tl-CL)); PEN yscaled (p/P) rotated angle(Tl-CL); draw CL--Tl--Bl--TC--BC--Tr--Br--CR; picture upper; upper:= currentpicture; % lower strokes addto currentpicture also upper shifted (0,-(h+d)/2); endchar; beginchar(O+24,88u#,80u#,0u#); "Neptunus 2"; Corners(p,p,P,p); Centers(.5,.2); HOR (9/88,79/88); Top(.725); Bot(.2); b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points SPEN; draw bC--tC; % middle arm cross (BC,bC, 1, -P); % lower cross PEN; draw tl{down}..{up}tr; % arc from left to right arm Pen; arrow (tl,Tl, 2b, .2,.5); % three arrows: points arrow (tC,TC, 2b, .2,.5); arrow (tr,Tr, 2b, .2,.5); endchar; beginchar(O+25,68u#,80u#,0u#); "Pluto 2"; Corners(p,p,P,p); Centers(.5,.2); HOR (2/17,15/17); Top(.725); Bot(.2) b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points SPEN; draw bl--br; % horizontal bar draw bC--BC; % vertical stem draw bl--tl; draw br--tr; % two arrows: arms Pen; arrow (tl,Tl, 2b, .2,.5); % two arrows; points arrow (tr,Tr, 2b, .2,.5); endchar; beginchar(O+26,1U#,1U#,0); "Libra 2"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); PEN; draw CC{right}..TC..{right}CC; % top circle SPEN; draw bL--bR; draw CL--CR; % lower and upper bar endchar; beginchar(O+30,1U#,1U#,0); "Quadrato"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TL; endchar; beginchar(O+31,1U#,1U#,0); "Triangolo"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); pen; draw BL--BR; draw BR--TC; draw TC--BL; endchar; beginchar(O+32,1U#,1U#,0); "Rettangolo"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL-(0,4P); TR := TR-(0,4P); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TL; endchar; beginchar(O+33,1U#,1U#,0); "Parallelogramma"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL+(2P,-4P); TR := TR+(0,-4P); BR := BR+(-2P,0); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TL; endchar; beginchar(O+34,1U#,1U#,0); "Trapezio"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL+(2P,-4P); TR := TR+(-2P,-4P); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TL; endchar; beginchar(O+35,1U#,1U#,0); "Doppio rettangolo"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL-(0,4P); TR := TR-(0,4P); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TL; draw TL+(2P,2P)--BL+(2P,2P); draw BL+(2P,2P)--BR+(2P,2P); draw BR+(2P,2P)--TR+(2P,2P); draw TR+(2P,2P)--TL+(2P,2P); endchar; beginchar(O+0,U#,U#,0u#); "Sol"; D:=2P; % diameter of central circle corners; centers; PEN; draw BC..CL..TC..CR..BC..cycle; % main circle Pen; draw fullcircle scaled D shifted CC; % central circle Pen; draw fullcircle scaled P shifted CC; endchar; beginchar(O+1,46u#,80u#,16u#); "Mercurius"; corners; centers; VV:=(CC-CL) rotated 90; bC := CC-VV; VV:=2VV+vP/3; tL:=CL+VV; tC:=CC+VV; tR:=CR+VV; R:=length(tL-hd-tC); % upper circle: outer radius s:=length(TC+vd-tC); a:= angle(R+-+s,s); % upper partial sector: angle Tl:= (tL-hd) rotatedaround (tC,-a); % upper circle: outer endpoints Tr:= (tR+hd) rotatedaround (tC, a); tl:= (tL+hd) rotatedaround (tC,-a+10); % upper circle: inner endpoints tr:= (tR-hd) rotatedaround (tC, a-10); D:=length(CR-CL); % central circle: diameter SPEN; cross (bC,BC, 3/2,-2P); % bottom cross PEN; draw fullcircle scaled D shifted CC; % central circle Pen; Fill ( Tl..(tL-hd){down}..{up}(tR+hd)..Tr % upper circle: outside & Tr--tr & tr..(tR-hd){down}..{up}(tL+hd)..tl % upper circle: inside & tl--Tl--cycle ); endchar; beginchar(O+5,44u#,70u#,0u#); "Iuppiter"; Corners (P,0,0,P); Centers (2/3,2/7); Top (6/7); RPEN; draw tC--BC; % right vertical bar RPEN rotated 90; draw (CL+hd)--CR; % horizontal bar Pen; Fill % left vertical arc ( (CL-vd-hd){tC-CL}..{TL-CC}(TL+(1-sqrt2)*vP-hd) % - left & (TL+(1-sqrt2)*vP-hd)--(TL+vd-(1-sqrt2)*hP) % - top & (TL+vd-(1-sqrt2)*hP){CC-TL}..{CL-tC}(CL-vd+hd) % - right & (CL-vd+hd)--(CL-vd-hd) % - bottom & (CL-vd-hd)..cycle ); endchar; beginchar(O+6,44u#,72u#,12u#); "Saturnus"; Corners (P,P,d+P,P); Centers (1/6,5/9); % BC and TC : left vertical bar RT (1/2,1); % bR : right arc (right) HOR (0,1/3); Top (6/7); % tl and tr : upper horizontal bar BOT (2/3,7/9); Bl:=Bl-vd; % Bl Br:=Br-(0,d)+((P-(P*sqrt(2))*sind(45+20),0) rotated -70); % Br SPEN; draw tl--tr; draw BC--TC; % left cross PEN; draw CC{dir 20}..{down}bR..{dir250}Bl..{dir-70}Br; % right arc RPEN rotated 20; draw Br--(Br+(hP rotated -70)); % sharpen arc end endchar; beginchar(O+10,10/11U#,U#,0u#); "Luna"; Corners(p,p,p,p); Centers(4/11,1/2); b:=1; % reduction of stroke breadth % outer circumference: big circle VV:=(TL-BL)/2; HH:=VV rotated -90; BC:=BL+HH; TC:=TL+HH; % CL=BL+VV; MM:=CL+HH; % outer circumference: calculating small circle R:=length(HH); D:=length(BR-BL); s:=(R+-+(D-R)); t:=s/2R; CC:=CC+hP; D:=length(CR-CC); r := D/2 + s*s/2D; RT (1/2-t,1/2+t); mm:=CC+(r,0); % inner circumference: D:=length(mm-MM); R:=R-2(b*P-p); r:=r+2b*(P-p); a:=(R*R-r*r+D*D)/2D; tr:=MM+(a,R+-+a); br:=MM+(a,-(R+-+a)); Pen; Fill ( tR..CL..bR & bR..CC..tR & tR..cycle ); unfill tr..(CL+2b*hd)..br & br..(CC-2b*hd)..tr & tr..cycle; endchar; beginchar(O+11,1U#,72u#,2u#); "Aries"; Corners(p,p,p+d,p); BOT (1/2,1/2); % upper boundary : vv:=7vd; % estimated correction bl:=Bl+vv; br:=Br+vv; % bl = br : lower middle point TOP (1/6,5/6); % (temporary) Tl and Tr : upper arcs (tops) HH:= Tl-TL; VV:= HH rotated -90; tr:=Tr+VV; % tr : right upper halfcircle (centre) D:=length(tr-br); R:=length(HH); s:=D+-+R; % calculating direction of bar b:=angle(s,R); b:=b+angle(tr-br); Tr:=tr+(HH rotated (b+90)); % Tr : (left endpoint) tR:=tr+(HH rotated (b-90)); % tR : (right endpoint) tl:=Tl+VV; a:=180-b; % tl : left upper halfcircle (centre) Tl:=tl+(HH rotated (a-90)); % Tl : (right endpoint) tL:=tl+(HH rotated (a+90)); % tL : (left endpoint) % lower boundary : s:=2(P-p)/sind(90-b); % caculating |Bl-bl| Bl:= bl-(0,s); Br:=br-(0,s); t:=2(P-p)/length(HH); tl:=Tl-t*(HH rotated (a-90)); % left upper halfcircle: right endpoint tr:=Tr-t*(HH rotated (b+90)); % right upper halfcircle: left endpoint Pen; Fill ( bl--Tl{dir a}..{dir (a-180)}tL % left part: upper boundary & tL{dir (a-10)}..{dir (a-180)}tl--Bl % left part: lower boundary & Bl--bl..cycle ); Fill ( br--Tr{dir b}..{dir (b-180)}tR % right part: upper boundary & tR{dir (b+10)}..{dir (b-180)}tr--Br % right part: lower boundary & Br--br..cycle ); endchar; beginchar(O+12,1U#,72u#,8u#); "Taurus"; Corners(P,P,P,p); Centers (1/2,5/9); % BC and CC : lower circle (top and bottom) HOR (1/8,7/8); % Tl and Tr : upper arcs (tops) Bot (5/18); % bl and br : lower circle (left and right) LFT (0,4/5); RT (0,4/5); % tL and tR : upper arcs (left and right) Pen; Fill ( Tl{dir 223}..{down}(tL-hd)..(CC-vd) % left upper arc: outside ..(br-hd)..(BC+vd)..(bl+hd)..(CC-vd) % lower circle: inside ..{up}(tR+hd)..{dir 137}Tr % right upper arc: outside & Tr{dir -47}..{down}(tR-hd/2+vd/2)..(CC+vd) % right upper arc: inside ..(bl-hd)..(BC-vd)..(br+hd)..(CC+vd) % lower circle: outside ..{up}(tL+hd/2+vd/2)..{dir 47}Tl % left upper arc: inside & Tl..Tl..cycle ); endchar; beginchar(O+13,56u#,72u#,8u#); "Gemini"; Corners (p,p,p,p); HOR (2/7,5/7); Top (7/8); Bot (1/8); Pen; Fill ( BL..(bl-vd)..(br-vd)..BR % bottom arc: lower boundary & BR..(br+vd)..(bl+vd)..BL % bottom arc: upper boundary & BL--cycle ); Fill ( TL..(tl-vd)..(tr-vd)..TR % top arc: lower boundary & TR..(tr+vd)..(tl+vd)..TL % top arc: upper boundary & TL--cycle ); RPEN; draw tl--bl; draw tr--br; % left and right vertical bar endchar; beginchar(O+14,80u#,68u#,0u#); "Cancer"; corners; centers; Cl:=2/7[CL,CR]; RT (0,4/5); PEN; draw CL{up}..{down}Cl..{up}CL; % left circle Pen; Fill ( (CL-hd){up}..{right}(TC+vd)..tR % upper arc: upper boundary & tR..{left}(TC-vd/2)..{down}(CL+hd) % upper arc: lower boundary & (CL+hd)--(CL-hd)..cycle ); picture upper; upper := currentpicture; % adding rotated copy addto currentpicture also upper rotated 180 shifted 2CC; endchar; beginchar(O+15,68u#,80u#,10u#); "Leo"; Corners(P,p,d+P,P); centers; % TC HOR (1/6,17/20); Top (3/4); % tl and tr : main arc (left and right) BOT (1/3,2/3); rr:=(Bl-BL)/2; bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle Br:=BR+hd-(2d,0)-vP; BR:=BR-vP; % Br and BR : lower right arc PEN; draw bL{down}..{up}bl % lower left circle: lower arc ..{up}tl..{right}TC..{down}tr..{down}Br; % main arc Pen; Fill % lower right arc ( (Br-hd){down}..{up}BR % outside & BR{dir265}..{up}(Br+hd) % inside & (Br+hd)--(Br-hd)..cycle ); Fill ( (bL+hd){up}..bl % lower left circle: upper arc, ouside & bl{up}..{down}(bL-hd) % inside & (bL-hd)--(bL+hd)..cycle ); endchar; beginchar(O+16,100u#,68u#,10u#); "Virgo"; Corners (P,P,d,0); LFT (0,3/4); % tL : left upper arc (left end) HOR (1/3,2/3); Top (3/4); % tl and tr : upper arcs (endpoints) TOP (4/14,4/14+1/3); % Tl and Tr : upper arcs (tops) RT (1/5,3/4); % tR : right upper arc (right end) % bR and tR : right vertical bar (ends) TR:=(4/14+2/3)[TL,TR]; % TR : right upper arc (top) bC:=.5[Bl,Br]-(0,d/2); % bC : lower right stroke (endpoint) br:=Br-(0,d); % br : middle right bar (lower end) Br:=Br+vP; % Br : lower right vertical stroke (left) BR:=2/3[Br,BR+vP]; % BR : lower right vertical stroke (right) RPEN; draw TL--BL; draw tl--Bl; draw tr--br; draw tR--bR; % vertical bars Pen; Fill % left upper arc ( tL{dir 42}..{right}(Tl-4vp)..{down}(tl+hd) % upper boundary & (tl+hd)--(tl-hd) & (tl-hd){up}..(Tl-2vP-2vp)..{dir 215}tL..cycle % lower boundary ); Fill % middle upper arc ( tl{dir 42}..{right}(Tr-4vp)..{down}(tr+hd) % upper boundary & (tr+hd)--(tr-hd) & (tr-hd){up}..(Tr-2vP-2vp)..{dir 215}tl..cycle % lower boundary ); Fill % right upper arc ( tr{dir 45}..{right}(TR-1vp)..{down}(tR+hd) % upper boundary & (tR+hd)--(tR-hd) & (tR-hd){up}..(TR-2vd-0vp)..{dir 215}tr..cycle % lower boundary ); PEN; draw bR{dir250}..{dir190}BR--Br; % lower right stroke: right part Pen; Fill ( (Br+vd){left}..{dir 235}bC % lower right stroke: left part & bC{dir 50}..{right}(Br-vd) & (Br-vd)--(Br+vd)..cycle ); endchar; beginchar(O+17,64u#,56u#,-8u#); "Libra"; corners; Centers (1/2,7/15); % CL and CR : upper bars (outer ends) TOP (1/4,3/4); VV:=(TC-Tl) rotated -90; tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right) R:=length(VV); D:=length(TC-CC); % calculating intersection of t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:) Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends) % Cl:=bl+hP; Cr:=br-hP; % Cl and Cr : upper arc (inner ends) bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down % bL:=CL; bl:=Cl; br:=Cr; bR:=CR; % shift upper bars slightly down SPEN; draw BL--BR; % bottom bar SPEN; draw bL--bl; draw br--bR; % left and right upper bars Pen; Fill % left upper bar: left end ( CL{dir 170}..{dir 105}(CL+vd-hd) % inner boundary & (CL+vd-hd)--(CL-hd)--CL % left and lower boundary & CL.. cycle ); Pen; Fill % right upper bar: right end ( CR{dir 10}..{dir 75}(CR+vd+hd) % inner boundary & (CR+vd+hd)--(CR+hd)--CR % right and lower boundary & CR.. cycle ); PEN; draw Cl..{up}tl..{right}TC..{down}tr..Cr; % upper arc endchar; beginchar(O+18,(14/15)*100u#-(13/15)*P#+p#,68u#,10u#); "Scorpio"; Corners (P,p,d,0); LFT (0,3/4); % tL : left upper arc (left end) HOR (5/14,10/14); Top (3/4); % tl and tr : upper arcs (endpoints) TOP (4/14,9/14); % Tl and Tr : upper arcs (tops) RT (1/6,1); % bR : lower right arrow (point) br:=1/3[Br,BR]-(0,d)+vp; % br : lower right arc (bottom) BR:=2/3[Br,BR]+vp; % Br and BR : lower right arc (endpoints) RPEN; draw TL--BL; draw tl--Bl; draw tr--Br; % vertical bars Pen; Fill % left upper arc ( tL{dir 42}..{right}(Tl-4vp)..{down}(tl+hd) % upper boundary & (tl+hd)--(tl-hd) & (tl-hd){up}..(Tl-2vP-2vp)..{dir 215}tL..cycle % lower boundary ); Fill % right upper arc ( tl{dir 42}..{right}(Tr-4vp)..{down}(tr+hd) % upper boundary & (tr+hd)--(tr-hd) & (tr-hd){up}..(Tr-2vP-2vp)..{dir 215}tl..cycle % lower boundary ); Fill % lower right arc ( (Br+hd){down}..{right}(br+vd)..{dir angle((br-BR) rotated 0)}BR & BR{dir angle((BR-br) rotated 6)}..{left}br..{up}(Br-hd) & (Br-hd)--(Br+hd)..cycle ); arrow (BR+2hp,bR, 1, 1/4,1/2); % lower right arrow endchar; beginchar(O+19,56u#,80u#,8u#); "Sagittarius"; Corners(P*(h+d)/((h+d)++w),p,P*w/((h+d)++w),p); bl:=(1/5)[BL,TR]; tr:=(3/4)[BL,TR]; VV:=TR-BL; a:=angle(VV); HH:= VV/8 rotated 90; bL:= bl+HH; Bl:= bl-HH; RPEN rotated (a+90); draw BL--tr; % shaft RPEN rotated a; draw bL--Bl; % short bar Pen; arrow (tr,TR, 6/7, .3,.6); % point endchar; beginchar(O+20,56u#,1U#,0); "Capricornus"; Corners(p,p,p,p); % TR: top bar (right end) Centers (2/3,2/3); % BC and CC: loop (bottom and top) HOR (1/3,1); Bot (1/3); % bl and br: loop (left and right) TOP(1/4,1); Tl:=Tl-hd; % Tl: top bar (left end) LFT (.45,1); % bL: end of loop Pen; Fill ( Tl--TR % top bar: upper boundary & TR{dir225}..{down}(bl+hd)..{right}(BC+2vd) % loop from TR to bL ..{up}(br-2hd)..{left}(CC-.5vd-hd)..bL & bL..{right}(CC+.5vd)..{down}br..{left}BC % loop back from bL to TR ..{up}(bl-hd)..{dir45}(TR-2vd-3hd) & (TR-2vd-3hd)--(Tl-2vd)--Tl % top bar: lower boundary & Tl..Tl..cycle ); endchar; beginchar(O+22,56u#,72u#,8u#); "Pisces"; Corners(p,p,p,p); HOR (1/4,3/4); Top (1/2); Pen; Fill ( BL..(tl-hd)..TL % left arc: left boundary & TL..(tl+hd)..BL % left arc: right boundary & BL--cycle ); Fill ( BR..(tr-hd)..TR % right arc: left boundary & TR..(tr+hd)..BR % right arc: right boundary & BR--cycle ); PEN; draw tl--tr; % vertical bar endchar; beginchar(O+23,44u#,72u#,12u#); "Saturnus 2"; corners; Centers (4/9,8/11); HOR (0,8/9); Top (19/22); RT (6.3/11,1); % bR Bl:=2/9[BL,BR]; Bot(.8/12); % bl bC:=1/5[BC,TC]; % bC Bl:=Bl+((P-(P*sqrt(2))*sind(45+20),0) rotated -70); % Bl SPEN; draw tl--tr; draw CC--TC; % upper cross PEN; draw CC{right}..{down}bR..bC..{dir250}bl..{dir-70}Bl; % lower arc RPEN rotated 20; draw Bl--(Bl+(hP rotated -70)); % sharpen arc end endchar; beginchar(O+27,76u#,50u#,-22u#); "Aquarius 2"; Corners (p,p,p,p); % upper strokes: Centers (3/5,1/2); % CL and CC : left stroke (left end, right bottom) TOP (1/4,4/5); % Tl and Tr : left stroke (left top, right end) Pen; Fill ( (CL+vp)..{right}Tl..{right}(CC+vd)..(Tr-vP) % left stroke: upper & (Tr-vP)..{left}(CC+vp)..{left}(Tl-2vd)..(CL+vp) % left stroke: lower & (CL+vp)..cycle ); Fill ( (Tr+hP/2)..{right}(CR+2vd) % right stroke: upper & (CR+2vd){-hP/2-2vd}..{left}(CR-hP+vp) % right stroke: lower ..(Tr-2vd-hP/2) % ( from Tr to CR ) & (Tr-2vd-hP/2)--(Tr+hP/2) % right stroke: left end & (Tr+hP/2)..cycle ); picture upper; upper:= currentpicture; % lower strokes addto currentpicture also upper shifted (0,-(h+d)/2); endchar; beginchar(O+28,78u#,56u#,-9u#); "Aquarius 3"; Corners(p,p,(h+d)/2+P,P); % upper stroke : points on central line: centers; % CL and CR : ends HOR (1/5,3/5); Bot(1/2); % bl and br : down crossing HOR (2/5,4/5); Top(1/2); % tl and tr : up crossing PEN; draw bl{down}..tl{up}..br{down}..tr{up}; % middle part Pen; Fill ( CL{up}..{down}(bl+hd) % left end : upper boundary & (bl+hd)--(bl-hd) & (bl-hd){up}..{dir 225}CL % lower boundary & CL..cycle ); Fill ( CR{up}..{down}(tr-hd) % right end : upper boundary & (tr-hd)--(tr+hd) & (tr+hd){up}..{dir -45}CR % lower boundary & CR..cycle ); picture upper; upper:= currentpicture; % lower stroke addto currentpicture also upper shifted (0,-(h+d)/2); endchar; %beginchar(O+40,12.6u#,72u#,0); "Radix"; %italcorr .2h#*slant; %adjust_fit(4u#,0); %pickup cal.nib; %lft x1=lft x3=0; x4=1/4[x1,x5]; rt x5=.7w; %x6=.4[x1,x5]; rt x7=.8w; rt x8=w; %top y1=top y4=h; bot y3=bot y7=-o; y5=.55[y6,y4]; bot y6=.4h; y8=.15h; %z2=.5[z3,z1]+bend; %draw flex(z1,z2,z3); % stem %draw z1{left}...{down}z1-flourish_change; % swash %draw z1---z4....z5{down}...{left}z6; % lobe %draw z6{right}..tension atleast 1.5..z7{right}..z8; % tail %math_fit(.5u#-.8h#*slant,ic#); labels(1,2,3,4,5,6,7,8); %endchar; beginchar(O+40,1U#,72u#,8u#); "Radix"; Corners(P,P,P,P); Centers (1/2,5/9); % BC and CC : lower circle (top and bottom) HOR (1/8,7/8); % Tl and Tr : upper arcs (tops) Bot (5/18); % bl and br : lower circle (left and right) LFT (0,4/5); RT (0,4/5); % tL and tR : upper arcs (left and right) pair TCC,LCC,RCC; TCC:=1/2[TC,CC]; LCC:=1/2[CL,BL]; RCC:=1/2[CR,BR]; Pen; draw LCC---TL...TCC{down}...{left}CL & CL--BR; draw RCC--BC; endchar; beginchar(O+41,1U#,72u#,8u#); "radix"; Corners(P,P,P,P); Centers (1/2,5/9); % BC and CC : lower circle (top and bottom) HOR (1/8,7/8); % Tl and Tr : upper arcs (tops) Bot (5/18); % bl and br : lower circle (left and right) LFT (0,4/5); RT (0,4/5); % tL and tR : upper arcs (left and right) pair TCC,LCC,RCC; TCC:=1/2[TC,CC]; LCC:=1/2[CL,BL]; RCC:=1/2[CR,BR]; PEN; draw (LCC--TL & TL{right}..{down}TCC & TCC{down}..{left}CL & CL--BR ); draw (RCC--BC); endchar; beginchar(O+42,1U#,1U#,0); "Cubo"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TL; draw TL--TL+(4P,4P); draw TR--TR+(4P,4P); draw BR--BR+(4P,4P); draw BR+(4P,4P)--TR+(4P,4P); draw TR+(4P,4P)--TL+(4P,4P); endchar; beginchar(O+43,1U#,1U#,0); "Parallelepipedo"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL-(0,4P); TR := TR-(0,4P); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TL; draw TL--TL+(4P,4P); draw TR--TR+(4P,4P); draw BR--BR+(4P,4P); draw BR+(4P,4P)--TR+(4P,4P); draw TR+(4P,4P)--TL+(4P,4P); endchar; beginchar(O+44,1U#,1U#,0); "Pentagono"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL-(2P,2P); TR := TR+(2P,-2P); TC := TC+(0,4P); pen; draw TL--BL; draw BL--BR; draw BR--TR; draw TR--TC; draw TC--TL; endchar; beginchar(O+45,1U#,1U#,0); "Esagono"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL-(0,6P); TR := TR-(0,6P); TC := TC-(0,2P); BC := BC-(0,4P); pen; draw TL--BL; draw BL--BC; draw BC--BR; draw BR--TR; draw TR--TC; draw TC--TL; endchar; beginchar(O+46,1U#,1U#,0); "Piramide"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); pen; draw BL--BR; draw BR--TC; draw TC--BL; draw BR--BR+(4P,4P); draw BR+(4P,4P)--TC; endchar; beginchar(O+50,30u#,1U#,0); "barra doppia"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL+(6P,0); TR := TL+(3P,0); BL := BL-(0,4P); BR := BL+(3P,0); pickup pencircle scaled 6p; draw TL--BL; draw BR--TR; endchar; beginchar(O+51,24u#,1U#,0); "barra singola"; corners; Centers (1/2,2/3-1/12); LFT (1/3,1); RT (1/3,1); TL := TL+(6P,0); BL := BL-(0,4P); pickup pencircle scaled 6p; draw TL--BL; endchar; beginchar(O+52,80u#,68u#,0u#); "Congiunzione"; corners; centers; Cl:=2/7[CL,CR]; RT (0,4/5); PEN; draw CL{up}..{down}Cl..{up}CL; % left circle Pen; Fill ( (CL-hd){up}..{right}(TC+vd)..tR % upper arc: upper boundary & tR..{left}(TC-vd/2)..{down}(CL+hd) % upper arc: lower boundary & (CL+hd)--(CL-hd)..cycle ); picture upper; upper := currentpicture; % adding rotated copy addto currentpicture also upper rotated 180 shifted 2CC; endchar; beginchar(O+53,80u#,68u#,0u#); "Opposizione"; corners; centers; Cl:=2/7[CL,CR]; RT (0,4/5); PEN; draw CL{up}..{down}Cl..{up}CL; % left circle draw Cl--CC; picture upper; upper := currentpicture; % adding rotated copy addto currentpicture also upper rotated 180 shifted 2CC; endchar; bye