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

beginchar(O+0,U#,U#,0u#); "(moon face) 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
   Pen; draw CC--(CC-vv);                                          % nose
        filldraw fullcircle scaled D shifted (CC-hh+vv/2);         % left eye
        filldraw fullcircle scaled D shifted (CC+hh+vv/2);         % right eye
        draw (CC-vv-hh)..(CC-1.8vv)..(CC-vv+hh);                   % mouth
        draw (CC-vv+hh)..(CC-1.5vv)..(CC-vv-hh);
   endchar;

beginchar(O+1,U#,U#,0u#); "(moon face) new moon";
   PEN; fill TC..CR..BC..CL..TC..cycle;                            % circle
   Pen; undraw CC--(CC-vv);                                        % nose
        unfilldraw fullcircle scaled D shifted (CC-hh+vv/2);       % left eye
        unfilldraw fullcircle scaled D shifted (CC+hh+vv/2);       % right eye
        undraw (CC-vv-hh)..(CC-1.8vv)..(CC-vv+hh);                 % mouth
        undraw (CC-vv+hh)..(CC-1.5vv)..(CC-vv-hh);
   endchar;

  path moon;
beginchar(O+2,2/3U#,U#,0u#); "(moon face) 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);
  rr:=(2u,2u); ll:=(-5u,-3u); mm:=(0,-5u);
  moon := bR..BC..CL..TC..tR                                     % outer circle
          & tR..{dir -45}(CC+rr)                                 % forehead
          & {dir 180}(CC+rr)..(CC+ll)..(CC+2ll){dir 180}         % nose
          & (CC+2ll){dir -10}..(CC+mm)
          & (CC+mm){dir -135}..bR                                % mouth
          & bR--cycle;                                           % chin
  D:=U/9; filldraw fullcircle scaled D shifted (CC-hh+vv/2);     % eye
  Pen; draw moon;
  endchar;

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

beginchar(O+4,2/3U#,U#,0u#); "(moon face) last quarter - inverse";
  fill moon;
  D:=U/9; unfilldraw fullcircle scaled D shifted (CC-hh+vv/2);    % eye
  endchar;

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

endinput;

beginchar(O+6,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+7,U#,U#,0u#); "new moon";
   fill TC..CR..BC..CL..TC..cycle;                        % disk
   shade (CL,CR, BC,TC);
   Pen; draw TC..CR..BC..CL..TC..cycle;                   % circle
   endchar;

  temp:=currentpicture;
beginchar(O+8,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);
  currentpicture := temp;
  Pen; unfilldraw tR..TC..CL..BC..bR                  % outer circle
                & bR..CC..tR                          % inner arc
                & tR--cycle;
  cullit;
  Pen; draw tR..TC..CL..BC..bR;                  % outer circle
       draw tR..CC..bR;                          % inner arc
  endchar;

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

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

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

endinput;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% end of ASTROSYM.XTR %%%
