% ASTROSYM.CMN : AstroSym (Version 2.20,  Aug. 10, 2002) - file 4 of 8
% Peter Schmitt                      eMail: Peter.Schmitt@univie.ac.at
% Institute of Mathematics, University of Vienna       Vienna, Austria
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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,74u#,88u#,0u#); "Mars 2";
   corners; Centers (1/2,11/40);
   VV:=(CL-BL); HH := VV rotated -90;
   BC:=BL+HH; CR:=CL+2HH; tC:=BC+2VV;
   CC:=BC+VV;
   TR:=TR+vd+hd;                                    % top arrow: top
   Cr:=(tC+2vP) rotatedaround (CC,angle(TR-CC)-90); % temporary
   tr:=.45[Cr,TR];                                  % top arrow: base
   Cr:=Cr-(2hP rotated angle(TR-Cr));               % top arrow: stem base
   a:=angle((TR-tr) rotated .5(90-angle(TR-(CR+hd))));
           b:=cosd(a)/sind(a);             % arrow: calculate breadth
   PEN; draw tC..CR..BC..CL..cycle;                 % bottom circle
   PEN; draw Cr--tr;                                % top arrow: stem
   Pen; arrow (tr,TR, 2b, .1,.5);                   % top arrow
   endchar;

beginchar(O+31,52u#,80u#,0u#); "Pluto 3"; % variation of Pluto (1)
   corners; centers;
   VV:=(TC-TL) rotated -90;
   bC:=TC+2VV; bL:=TL+2VV;
   HOR (2/5,1);                                  % Bl : bottom bar (left end)
       Cl := Tl+VV;                              % Cl : vertical bar (top end)
    PEN; draw TL--TC{right}..{left}bC--bL;       % letter P : top right arc
   SPEN; draw BL--TL;                            % letter P : left bar
   SPEN; draw Bl--Cl; draw Bl--BR;        % letter L : left bar and bottom bar
   endchar;

beginchar(O+33,U#,U#,0u#); "Star";
   corners; centers;
   RR:=length(BC-CC)*(1,sind15/cosd15);
   for i:= 0 upto 5 : SPEN rotated (60i+45);
                      draw CC--(CC+(RR rotated 60i)); endfor;
   endchar;

beginchar(O+34,88u#,88u#,0u#); "Comet";
   corners;
   BOT (11/40,2/3);
   HH:=(Bl-BL); VV:=HH rotated 90;
   CC:=Bl+VV;
   TOP (1/3,2/3); RT (1/3,2/3);
   PEN; Circle ( CC, HH,VV );                         % bottom circle
   a := angle (Tr-CC);
        RPEN rotated (a+90); draw ( CC + ( HH rotated a ) ) -- Tr;
   a := angle (TR-CC);
        SPEN rotated (a+90);
        draw ( CC + ( HH rotated a ) ) -- ( TR - ( HH rotated a )/4 );
   a := angle (tR-CC);
        RPEN rotated (a+90); draw ( CC + ( HH rotated a ) ) -- tR;
   endchar;

beginchar(O+35,74u#,88u#,0u#); "Meteor";
   corners; Centers (4/5,2/3);
   BL:=BL-vd-hd;                                    % bot arrow: top
CC:=CR;             % better?
   bl:=1/5[BL,CC];                                  % bot arrow: base
   a:=angle((BL-bl) rotated .5(90-angle(BL-(CL-hd))));
            b:=cosd(a)/sind(a);             % arrow: calculate breadth
   SPEN; drawdot TR; PEN; draw TR--CC--bl;         % bot arrow: stem
   Pen; arrow (bl,BL, 2b, .1,.5);                   % bot arrow
   endchar;

beginchar(O+36,74u#,88u#,0u#); "Conjunction";
   corners; Centers (1/2,11/40);
   VV:=(CL-BL); HH := VV rotated -90;
   BC:=BL+HH; CR:=CL+2HH; tC:=BC+2VV;
   CC:=BC+VV;
   Cr:=(tC+vP/2) rotatedaround (CC,angle(TR-CC)-90); % temporary
   PEN; draw tC..CR..BC..CL..cycle;                 % bottom circle
   RPEN rotated (90+angle(TR-Cr)); draw Cr--TR;         % top arrow: stem
   endchar;

beginchar(O+37,72u#,72u#,0u#); "Opposition";
   corners;
   HH:=(BR-BL)/6; VV:=HH rotated 90;
   HH:=(BR-BL)/5; VV:=HH rotated 90;
   TT:=HH rotated 45;
   bC:=BL+HH+VV; tC:=TR-HH-VV;
   PEN; Circle (bC,HH,VV);
        Circle (tC,HH,VV);
        draw (bC+TT)--(tC-TT);
   endchar;

beginchar(O+38,U#,U#,0u#); "Quadrature";
   corners;
   SPEN; draw TL--TR--BR--BL--TL ;                        % square
   endchar;

beginchar(O+39,U#,U#,0u#); "full moon";
   corners; centers;
   VV:=(BC-BL) rotated 90;
   TC:=CC+VV; BC:=CC-VV; D:=U/9;
   hh:=(U/6,0); vv:=(0,U/6);
   PEN; draw TC..CR..BC..CL..TC..cycle;                   % circle
   endchar;

beginchar(O+40,U#,U#,0u#); "new moon";
   fill TC..CR..BC..CL..TC..cycle;                   % circle
   endchar;

beginchar(O+44,2/3U#,U#,0u#); "Luna 2 = (moon 2) last quarter";
  corners; Centers(3/4,1/2);
  VV:=(TL-BL)/2; HH:=VV rotated -90;
  BC:=BL+HH; TC:=TL+HH; % CL=BL+VV;
  R:=length(HH); D:=length(BR-BL);
  t:=(R+-+(D-R))/2R;
  RT (1/2-t,1/2+t);
  PEN; draw tR..TC..CL..BC..bR;                  % outer circle
  Pen; draw tR..CC..bR;                          % inner arc
  endchar;

  temp := currentpicture;
beginchar(O+45,2/3U#,U#,0u#); "(moon 2) first quarter";
  currentpicture := temp xscaled -1 shifted (w,0);
  endchar;

beginchar(O+46,2/3U#,U#,0u#); "(moon 2) last quarter - inverse";
  Pen; filldraw tR..TC..CL..BC..bR                   % big circle
              & bR..CC..tR -- cycle;               % small circle
  endchar;

  temp := currentpicture;
beginchar(O+47,2/3U#,U#,0u#); "(moon 2) first quarter - inverse";
  currentpicture := temp xscaled -1 shifted (w,0);
  endchar;

beginchar(O+48,U#,78u#,16u#); "Ceres";
   corners; Centers (2/5,1/4);
    Tl := (TL+TC)/2 - vP;                           %  arc : upper end
    tR := (CR+TR)/2;                                %  arc : midpoint (right)
    Cl := (CL+CC)/2 + vP;                           %  arc : lower end
    Bl := (BL+BC)/2;                                %  cross : base
    bL := .4[BL,CL]; bC := .4[BC,CC];               %  for bar of cross
    PEN; draw Tl..TC..tR..CC..Cl;                   %  (inverted) C shape
         REND ( Tl, 2 angle ( TC-Tl ) + 180 );
   SPEN; draw Cl--Bl;                               %  cross : vertical stem
         draw bL--bC;                               %  cross : horizontal bar
   endchar;

beginchar(O+49,U#,68u#,20u#); "Ceres 2";
   corners; centers;
   HOR (3/8,3/4);                                   % Tl Br
   LFT (1/4,3/4); RT (1/4,3/4);                     % tL ; bR
   Bot (1/4); Top (3/4);                            % bC ; tr
   Cl := .5[Bl,Tl];                                 % C shape : bottom point
    PEN; draw Tl{left}..tL..Cl..tr;                 % C shaped arc
         REND ( Tl,0 );
   SPEN; draw tr--Br;                               %  cross : vertical stem
         draw bC--bR;                               %  cross : horizontal bar
   endchar;

beginchar(O+50,40u#,80u#,16u#); "Juno";
   corners; centers;
   RR:=(TC-TL); VV:=RR rotated -90;
   CC:=TC+VV;                                           % center top star
   bL := BL-VV; bR := BR-VV;                            % for lower bar
                          % or : LFT (1/6,1); RT (1/6,1)  % or 1/5
   for i:= 0 upto 6 : SPEN rotated (45i+45);                        % top star
                      draw CC--(CC+(RR rotated (45i-45))); endfor;
   SPEN; draw CC--BC;                                   % stem
         draw bL--bR;                                   % lower horizontal bar
   endchar;

beginchar(O+51,56u#,80u#,24u#); "Juno 2";
   corners; centers;
   HOR (1/5,4/5); Bot (1/5)                             % or : 1/3 3/4 ; 1/4
   LFT (1/4,7/8); RT (1/4,7/8);
   SPEN rotated angle(tR-CL) ; draw tR--CL;             % upper cross ( X )
   SPEN rotated angle(tL-CR) ; draw tL--CR;             % upper cross ( X )
   SPEN; draw TC--BC;                                   % stem
         draw bl--br;                                   % bottom horizontal bar
   endchar;

beginchar(O+53,52u#,80u#,0u#); "Vesta";
   corners; centers;
   VV:=(BR-BL) rotated 90;
   CL:=BL+VV; CR:=BR+VV; CC:=BC+VV;                  % vertices of square
   TOP (.2,.8);                                      % endpoints of upper V
   SPEN; draw CL--CR--BR--BL--CL;                           % bottom square
    PEN; draw Tl--CC--Tr;                                   % upper V
   endchar;

beginchar(O+54,U#,U#,0#); "Vesta 2";
   Corners (P,P,P,p); centers;
   HOR (1/5,4/5); Top (5/8); Cl := tl; Cr := tr;
   HOR (3/8,5/8); Bot (1/2); Top (7/8);
   TOP (1/5,4/5);
   RPEN rotated  20;                                            %  left horn
        draw (bl+(vP-vp)/2+hP){left}..Cl..tl..{dir 200}Tl;
   RPEN rotated -20;                                            % right horn
        draw (br+(vP-vp)/2-hP){right}..Cr..tr..{dir -20}Tr;
   SPEN; draw CL--CR;                                           % middle bar
         draw bl--Bl;                                           %  left foot
         draw br--Br;                                           % right foot
   endchar;

beginchar(O+55,52u#,96u#,0u#); "Chiron";
   corners; centers;
   RR:=(BC-BL) rotated 90;
   bL:=BL+RR; bR:=BR+RR; bC:=BC+2RR;
   CC := bC+vP;
   TOP (1/6,5/6); rr := (Tr-TC) rotated 90;
   tC := TC-rr; tr := Tr-2rr;
    PEN; draw bC..bR..BC..bL..bC..cycle;                     % bottom circle
   SPEN; draw CC--TC;                                        % top stem
    PEN; draw Tr--tC--tr;                                    % top arms
   endchar;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% reset O if 200 + char number > 255  ( uniform (thin) )
if O = 200 : O := 122 fi ;

beginchar(O+56,U#,80u#,16u#); "Pluto 4 (tree)";
   corners; Centers (1/2,1/3);
   HOR (1/4,3/4); Bot (1/6);
   bC := CC-vP;
   PEN; draw TL{right}..{down}CC; draw TR{left}..{down}CC;   % top arcs
        REND (TL,180); REND (TR,0);                          %
   SPEN; draw bC--BC; draw bl--br;                           % bottom cross
   endchar;

beginchar(O+57,2U#,U#+P#,0); "Pluto 5 (cup)";
% beginchar(O+57,2U#,U#,0); "Pluto 5 (cup)";
   corners; centers;
   aa := (2-sqrt3)/4;
   Cl := aa[CL,CR]; Cr := aa[CR,CL];
%  TC := TC-vP;                   % potential correction : lowered contents
   PEN; draw TL{down}..Cl..BC..Cr..{up}TR;            % half circle : "cup"
        draw Cl..TC..Cr;                              % "contents"
   REND (TL,90); REND (TR,90);
   endchar;

a:=(sqrt3)/2;                                % ratio (equilateral triangle)
                                             % used chars  58 60 ( 61 ) 63
beginchar(O+58,U#/a+2*(P#-(1-a)*Pp),U#+2*P#-Pp,P#-Pp); "Semi-sextile";
   Corners (P-(1-a)*Pp,P-(1-a)*Pp,P,P-Pp/2); centers;
   RLine ( BL,BR );                              % base
   RLine ( TL,BC );                              % left  stroke (down)
   RLine ( TR,BC );                              % right stroke (up)
   endchar;

beginchar(O+59,U#,U#,0u#); "Semi-quadrature";
   corners;
   SPEN; draw TL--BL--BR;                           % L shape ( of square )
   endchar;

beginchar(O+60,a*U#+2*P#-Pp,U#+P#-Pp,P#-Pp); "Sextile";
   Corners (P-Pp/2,P-Pp/2,P-Pp,P-Pp); centers;
   LFT (1/4,3/4); RT (1/4,3/4);
   RPEN; draw TC--BC;                               % stem
        RLine (bL,tR);                              % stem turned  60
        RLine (tL,bR);                              % stem turned -60
   endchar;

beginchar(O+62,U#,U#,U#/2); "one and a half quadrature";
   corners; Centers (1/2,1/3);
   tC := (TC+CC)/2;
   SPEN; draw TL--CL--CR--TR--TL;                           % square
         draw tC--BC--BR;                                   % L shaped cedilla
   endchar;

beginchar(O+63,U#/a+2*(P#-(1-a)*Pp),U#+2*P#-Pp,P#-Pp); "Quincunx";
   Corners (P-(1-a)*Pp,P-(1-a)*Pp,P-Pp/2,P); centers;
   RLine ( TL,TR );                              % top
   RLine ( BL,TC );                              % left  stroke (up)
   RLine ( BR,TC );                              % right stroke (down)
   endchar;              % horizontal mirror image of semi-sextile

beginchar(O+66,52u#,96u#,0u#); "Chiron 2";
   corners; centers;
   BC := BC-hP/3 ;                          % bottom circle slightly off centre
   rr := (BC-BL) ; RR := rr rotated 90 ;      % radii of circle
   bL := BL+RR; bR := bL+2rr; bC := BC+2RR;   % points on circle
   TC := TL+rr;                               % top of stem
   CC := bC+vP;                               % base of stem
   tR := (CR+TR)/2; rr := (TR-tR) rotated -90 ;
   tC := tR-rr ;                              % base of arms (right angle)
   % calligraphic style : fit arms into corner
     a := (sqrt2-1); mm := Pp*(a,a) ; nn := Pp*(a,-a) ;
    PEN; draw bC..bR..BC..bL..bC..cycle;                     % bottom circle
   SPEN; draw CC--TC;                                        % top stem
   RLine ( TR+mm,tC ); RLine ( tC,CR+nn );                   % top arms
   endchar;

beginchar(O+67,U#,56u#,8u#); "Lilith";
   Corners (P,P,p,p); centers;
   LFT (1/8,2/3) ; RT (1/8,2/3) ;  % bL bR : for bottom stroke
   HOR (1/4,3/4); Bot (1/8);       % bC : for bottom stroke
                  br := Br;        % br : lowest point on bottom stroke (saved!)
   HOR (2/5,7/8); Top (2/3);       % tl tr : for top stroke
   TOP (0,8/12);                   % Tr : highest point on top stroke
   pickup pencircle xscaled 2P yscaled 2p ;                 % special pen
   draw bL{dir 70}..bC..br{dir 0}..bR ;                     % bottom stroke
   draw bL{dir 0}..tl..Tr{dir 0}..tr..{dir 180}(CC+hP) ;    % top stroke
   endchar;

beginchar(O+68,U#,U#,22u#); "Pluto 6";
   corners; centers;
   LFT (1/4,4/5); RT (1/4,4/5);              % tL tR : for cup
   HOR (1/6 , 5/6 ); Bot (1/4) ;             % bl br : )
   HOR (5/16,11/16); Top (4/5) ;             % tl tr : circle (left,right)
   rr := tr-tC ; TC := tC+(rr rotated  90) ; % TC : circle (top) [ centre tC ]
                 tC := tC+(rr rotated -90) ; % tC : circle (bot)
   SPEN; draw TL; draw TR;                           % endpoints of cup
    PEN; draw TL--tL{dir -90}..CC..{dir 90}tR--TR;   % cup
         draw tC..tr..TC..tl..tC..cycle ;            % circle
   SPEN; draw bl--br;                                % cross: horizontal bar
         draw (CC-vP)--BC;                           % cross: vertical bar
   endchar;


beginchar(O+69,U#,U#,0u#); "Sextile 2";
   corners; centers;
   RR:=(CR-CC) rotated 45;
   tr:=CC+RR; tl:=CC+(RR rotated  90);
   bl:=CC-RR; br:=CC+(RR rotated -90);
   SPEN; draw CL--CR; draw TC--BC;                          % horizontal cross
   DPEN; draw bl--tr; draw tl--br;                          % diagonal cross
   endchar;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% reset O back to 200 if 122  ( uniform (thin) )
if O = 122 : O := 200 fi ;

endinput;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% end of ASTROSYM.CMN %%%
