[comp.lang.postscript] It's Halloween Time

joeg@polygen.uucp (Joe Gaudreau) (10/13/89)

In the spirit of the Great Pumpkin, it's time for some bats.
If anyone comes up with a clever use for this (besides wallpaper),
let me know.  The hours I slaved away over a hot cauldron...

%!
% "Bat" for All-Hallows-Eve (Halloween).

% Created by Joe Gaudreau.
% 30-Apr-1989.
% Entered into the Public Domain.

% Ellipse routine :
% <rad sclx scly centx centy> Open_Ellipse
% where: rad   -> max(x_width, y_width)
%        sclx  -> (rad==x_width) ? 1 : x_width / y_width
%        scly  -> (rad==x_width) ? y_width / x_width : 1
%        centx -> x_center
%        centy -> y_center

/Open_Ellipse  { gsave newpath /cmtx matrix currentmatrix def
                translate scale 0 0 3 -1 roll 0 360 arc } bind def

/Close_Ellipse { cmtx setmatrix grestore } bind def

% Width X Y DrawBat
% Draw a Bat that is Width pts wide and about (Width * .6363) pts high at (X,Y):
/DrawBat {
   /Y exch def
   /X exch def
   /Width exch 2.0 div def
   /ScVal Width 140.0 div def

   % Draw background ellipse, 50% gray
   Width 1.0 0.6363 X Y Open_Ellipse
   0.5 setgray
   fill
   Close_Ellipse

   % Black inner border of logo
   Width 0.9214 mul 1.0 0.6363 X Y Open_Ellipse
   0 setgray
   15 ScVal mul setlinewidth
   stroke
   Close_Ellipse

   % Bat ellipse
   Width 0.8071 mul 1.0 0.6363 X Y Open_Ellipse
   0.0 setgray
   fill
   Close_Ellipse

   % Take chunk out of head
   gsave
   X Y     moveto
   ScVal ScVal scale
   19 73   rmoveto
   -12 -18 rlineto
   -14 0   rlineto
   -12 18  rlineto
   closepath
   0.5 setgray
   fill
   grestore   

   % Take upper-right curve chunk out
   gsave
   X Y   moveto
   ScVal ScVal scale
   19 73 rmoveto
   -4 -73  56 -53  31 -7 rcurveto
   closepath
   0.5 setgray
   fill
   grestore

   % Take upper-left curve chunk out
   gsave
   X Y    moveto
   ScVal ScVal scale
   -19 73 rmoveto
   4 -73  -56 -53  -31 -7 rcurveto
   closepath
   0.5 setgray
   fill
   grestore

   % Take lower-right chunks out
   gsave
   X Y moveto
   ScVal ScVal scale
   43 -38 rmoveto
   18 38  53 28  27 -22 rcurveto
   -35 -10 rlineto
   -35 -3  rlineto
   10 53  30 53  43 35 rcurveto
   closepath
   0.5 setgray
   fill
   grestore

   % Take lower-left chunks out
   gsave
   X Y moveto
   ScVal ScVal scale
   -43 -38 rmoveto
   -18 38  -53 28  -27 -22 rcurveto
   35 -10 rlineto
   35 -3  rlineto
   -10 53  -30 53  -43 35 rcurveto
   closepath
   0.5 setgray
   fill
   grestore
} bind def

280 300 400 DrawBat     % 280 pts wide, at (300,400) bat bat bat bat...

%90 rotate               % full page landscape bat
%0 -612 translate
%770 396 306 DrawBat

showpage

%EndOfFile

---
Joe Gaudreau @ Polygen Corporation, Waltham, MA 02254  (617)890-2888
UUCP: {princeton,mit-eddie,buita,sunne}!polygen!joeg
Sing to the tune, 'London Bridge is Falling Down':
"19 more days to Halloween, Halloween, Halloween,
 19 more days to Halloween, Silver Shamrock..."