In article <S274.749d@looking.on.ca> gest_ss@uhura.cc.rochester.edu (Gavin Stark) writes:
>
>How many lines of sed code does it take to change a lightbulb?
>
>I don't know... but its only 74 in Postscript.
>--
>Edited by Brad Templeton. MAIL your jokes (jokes ONLY) to funny@looking.ON.CA
%!
/bulb % draw a light-bulb with text `ID' in it
{gsave % called as:
translate rotate % <orientation> <x-place> <y-place> bulb
0.5 0.5 scale %
/alfa 41.40962211 def % some angle that puts the centers of
/sina alfa sin -2 mul def % the necessary arcs at coordinates
% (0,0) (-1.5, -2*sine of alfa) (or:
newpath % -1.5, sina) and (1.5, sina)
0.4 sina 0.1 270 360 arc % rounded left-bottom corner
1.5 sina 1 180 180 alfa sub arcn % outline of buld
0 0 1 alfa neg 180 alfa add arc % in three consecutive
-1.5 sina 1 alfa 0 arcn % ...outline of bulb in three consec. arc
-0.4 sina 0.1 180 270 arc % rounded right-bottom corner
closepath 0.925 setgray fill % draw it in `almost-white'
%
newpath %
-0.4 sina 0.1 sub moveto % and this draws the `fitting'
0 -0.45 rlineto
-0.35 sina 0.55 sub 0.05 180 270 arc
0.7 0 rlineto
0.35 sina 0.55 sub 0.05 270 360 arc
0 0.45 rlineto
closepath 0.5 setgray fill % ...partly in half-gray
%
newpath %
-0.3 sina 0.6 sub moveto %
0.1 -0.1 rlineto 0.4 0 rlineto
0.3 sina 0.6 sub lineto %
closepath 0 setgray fill % ...and partly in black
%
newpath 0.9775 setgray % ...plus some `light rays'
0.025 setlinewidth
-45 rotate 1 1 7 {1.1 0 moveto
1.6 0 lineto 45 rotate pop} for
90 rotate stroke
newpath % this is the text `ID'
/Helvetica-Bold findfont %
1 scalefont setfont % ...set in the center
0 0 moveto (ID) dup %
stringwidth pop 2 div neg -0.5 rmoveto
0.5 1 1 sethsbcolor show grestore } def % ...also in black
300 425 translate 150 150 scale
0 0 0 bulb % an example of a call
showpage
(From the "Rest" of RHF)