summaryrefslogtreecommitdiff
path: root/fonts/astro/astrosym.cal
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/astro/astrosym.cal
Initial commit
Diffstat (limited to 'fonts/astro/astrosym.cal')
-rw-r--r--fonts/astro/astrosym.cal491
1 files changed, 491 insertions, 0 deletions
diff --git a/fonts/astro/astrosym.cal b/fonts/astro/astrosym.cal
new file mode 100644
index 0000000000..bf259b7ed0
--- /dev/null
+++ b/fonts/astro/astrosym.cal
@@ -0,0 +1,491 @@
+% ASTROSYM.CAL : AstroSym (Version 2.20, Aug. 10, 2002) - file 5 of 8
+% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at
+% Institute of Mathematics, University of Vienna Vienna, Austria
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+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
+ 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+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..(tL+(1,0)) % avoiding strange path
+ {dir (a-6)}..{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..(tR-(1,0)) % avoiding strange path
+ {dir (b+6)}..{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+29,U#,U#,0u#); "Terra 2"; % for smaller circle : 52u#,U#,0#
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ TC:=CC+VV; BC:=CC-VV;
+ PEN; draw TC..CR..BC..CL..TC..cycle; % circle
+ draw BC--TC; draw CL--CR; % cross in circle
+ s:=1+1/2;
+ CL:=CL+s*hP; CR:=CR-s*hP;
+ BC:=BC+s*vP; TC:=TC-s*vP;
+ PEN scaled 1/2; undraw TC..CR..BC..CL..TC..cycle;
+ endchar;
+
+beginchar(O+32,88u#,56u#,0); "Libra 3"; % larger variant
+ 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)
+ bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down
+%% CL:=CL+8u;CR:=CR+8u; % left and right points
+ CL:=1/3[bL,TL];CR:=1/3[bR,TR]; % left and right points
+ 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
+ ( bl{dir 175}..{dir 100}(CL+vd-hd) % inner boundary
+ & (CL+vd-hd)--(bL-hd)--bl % left and lower boundary
+ & bl.. cycle
+ );
+ Pen; Fill % right upper bar: right end
+ ( br{dir 5}..{dir 80}(CR+vd+hd) % inner boundary
+ & (CR+vd+hd)--(bR+hd)--br % right and lower boundary
+ & br.. cycle
+ );
+ PEN; draw Cl..{up}tl..{right}TC..{down}tr..Cr; % upper arc
+ endchar;
+
+beginchar(O+42,10/11U#,U#,0u#); "(moon) last quarter - inverse";
+ 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));
+Fill ( tR..CL..bR
+ & bR..CC..tR
+ & tR..cycle
+ );
+% unfill tr..(CL+2b*hd)..br % for standard variant \char10
+% & br..(CC-2b*hd)..tr
+% & tr..cycle;
+endchar;
+
+ temp := currentpicture;
+beginchar(O+43,10/11U#,U#,0u#); "(moon) first quarter - inverse";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+10,10/11U#,U#,0u#); "Luna = (moon) last quarter";
+currentpicture := temp;
+unfill tr..(CL+2b*hd)..br
+ & br..(CC-2b*hd)..tr
+ & tr..cycle;
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+41,10/11U#,U#,0u#); "(moon) first quarter";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+52,1.4U#,1.05U#,.35U#); "Pallas";
+ Corners (p,p,P,p); Centers (.5,.4);
+ numeric aa[]; pair Cl,Cr,tC;
+ RR:= 2(vP-vp);
+ Cl = aa1[CL,TC] + ( RR rotated -120 ) = aa2[CL,CR] + RR;
+ Cr = aa3[CR,TC] + ( RR rotated 120 ) = aa4[CL,CR] + RR;
+ tC = aa5[CR,TC] + ( RR rotated 120 ) = aa6[CL,TC] + ( RR rotated -120 );
+ Pen; Fill (
+ TC--CL--CR--TC & TC--tC % top triangle : outside
+ & tC--Cr--Cl--tC & tC--TC & cycle % top triangle : inside
+ ) ;
+ SPEN; cross (CC,BC, 1,-P); % bottom cross
+ endchar;
+
+a:=(sqrt3)/2; % ratio (equilateral triangle)
+ % used chars ( 58 60 ) 61 ( 63 )
+beginchar(O+61,(U#+2P#)/a+2P#,U#+2a*P#,2P#); "Trigon";
+ Corners (p,p,p,p); centers;
+ numeric aa[]; pair Bl,Br,tC;
+ RR:= 2(vP-vp);
+ Bl = aa1[BL,TC] + ( RR rotated -120 ) = aa2[BL,BR] + RR;
+ Br = aa3[BR,TC] + ( RR rotated 120 ) = aa4[BL,BR] + RR;
+ tC = aa5[BR,TC] + ( RR rotated 120 ) = aa6[BL,TC] + ( RR rotated -120 );
+ Pen; Fill (
+ TC--BL--BR--TC & TC--tC % triangle : outside
+ & tC--Br--Bl--tC & tC--TC & cycle % triangle : inside
+ ) ;
+ endchar;
+
+beginchar(O+64,68u#,80u#,0); "ascending node of moon";
+ Corners(P,P,P,P); centers; % TC
+ HOR (1/6,5/6); 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+(rr rotated 90); br:=bR-2rr; % bR and br : lower right circle
+ PEN; draw bL{down}..{up}bl % lower left half circle
+ ..{up}tl..{right}TC..{down}tr % main arc
+ ..{down}br..{up}bR; % lower right half circle
+ Pen;
+ Fill ( (bL+hd){up}..bl-(1,0)--bl % lower left circle: upper arc, outside
+ & bl{up}..{down}(bL-hd) % inside
+ & (bL-hd)--(bL+hd)..cycle
+ );
+ Fill ( (bR-hd){up}..br+(1,0)--br % lower right circle: upper arc, outside
+ & br{up}..{down}(bR+hd) % inside
+ & (bR+hd)--(bR-hd)..cycle
+ );
+ endchar;
+
+temp := currentpicture;
+beginchar(O+65,68u#,80u#,0); "descending node of moon";
+ currentpicture := ( temp yscaled -1 ) shifted ( 0,h );
+ endchar;
+
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of ASTROSYM.CAL %%%