100 lines · 2.4 KB · Text
RawDownload
%!%    Copyright (C) 1994 Aladdin Enterprises.  All rights reserved.% % This software is provided AS-IS with no warranty, either express or% implied.% % This software is distributed under license and may not be copied,% modified or distributed except as expressly authorized under the terms% of the license contained in the file LICENSE in this distribution.% % For more information about licensing, please refer to% http://www.ghostscript.com/licensing/. For information on% commercial licensing, go to http://www.artifex.com/licensing/ or% contact Artifex Software, Inc., 101 Lucas Valley Road #110,% San Rafael, CA  94903, U.S.A., +1(415)492-9861. % $Id: zeroline.ps,v 1.4 2002/02/21 21:49:28 giles Exp $% zeroline.ps% Test file to determine how other PostScript implementations handle% filling zero-width lines under a variety of conditions. % Add a small "fan" of zero-width lines at different angles to the path./fan { currentpoint 100 0 rlineto   2 copy moveto 100 20 rlineto   2 copy moveto 100 100 rlineto   2 copy moveto 20 100 rlineto   moveto 0 100 rlineto } def % Append a rectangle to the current path./rectappend { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto   neg 0 rlineto closepath } def% Fill a rectangle./rectfill { gsave newpath rectappend fill grestore } def% Stroke a rectangle./rectstroke { gsave newpath rectappend stroke grestore } def% Clip to a rectangle.  Unlike the real rectclip,% this clear the current path./rectclip { newpath rectappend clip newpath } def 40 40 translate % Display fans of different colors on different backgrounds.gsave0 setgray0 0 120 120 rectstroke10 10 moveto fan fill140 0 translate0 setgray0 0 120 120 rectstroke0.8 setgray10 10 moveto fan fill140 0 translate0 setgray0 0 120 120 rectfill1 setgray10 10 moveto fan fillgrestore0 140 translate % Display rectangles with two edges coincident.gsavenewpath0 setgray0 0 40 40 rectappend0 0 20 20 rectappendeofill60 0 translate0 0 40 40 rectappend40 0 -20 20 rectappendfillgrestore0 60 translate % Display superimposed lines.gsave/super { currentpoint fan   2 copy moveto 20 0 rmoveto 50 0 rlineto   2 copy moveto 20 4 rmoveto 50 10 rlineto   2 copy moveto 20 20 rmoveto 50 50 rlineto   2 copy moveto 4 20 rmoveto 10 50 rlineto   moveto 0 20 rmoveto 0 50 rlineto } def0 setgray0 0 moveto super fill140 0 translate 0 0 moveto super eofillgrestore0 140 translate showpage