166 lines
3.8 KiB
PostScript
166 lines
3.8 KiB
PostScript
%!
|
|
% Copyright (C) 1989, 1990, 1992, 1994, 1996 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: lines.ps,v 1.4 2002/02/21 21:49:28 giles Exp $
|
|
% Test line rendering (stroke).
|
|
|
|
% Exercise the miter limit. The left column of lines should bevel at
|
|
% 90 degrees, the right column at 60 degrees.
|
|
|
|
gsave
|
|
1.8 setlinewidth
|
|
0 setgray
|
|
15 15 scale
|
|
-5 5 translate
|
|
[1.415 2.0]
|
|
{ setmiterlimit 12 0 translate 0 0 moveto
|
|
10 30 360
|
|
{ gsave 5 0 rlineto rotate 2.5 0 rlineto
|
|
gsave 0 setlinewidth 1 0 0 setrgbcolor stroke grestore
|
|
strokepath 0 setlinewidth stroke
|
|
grestore
|
|
0 4 rmoveto
|
|
} for
|
|
} forall
|
|
|
|
showpage
|
|
grestore
|
|
|
|
% Exercise all the combinations of cap and join styles
|
|
% for one-line, two-line, and closed paths.
|
|
|
|
gsave
|
|
|
|
/drawlines {
|
|
gsave
|
|
2.0 setmiterlimit
|
|
2.0 setlinewidth
|
|
6 6 scale
|
|
5 20 translate
|
|
{0 1 2} % line cap
|
|
{ setlinecap gsave
|
|
{0 1 2} % line join
|
|
{ setlinejoin gsave
|
|
{ {currentpoint lineto}
|
|
{3 7 lineto}
|
|
{3 7 lineto 5 1 lineto}
|
|
{3 7 lineto 6 3 lineto closepath}
|
|
}
|
|
{ gsave 0 0 moveto exec
|
|
gsave stroke grestore
|
|
0.5 setlinewidth 1 0 0 setrgbcolor stroke
|
|
grestore 8 0 translate
|
|
} forall
|
|
grestore 35 0 translate
|
|
} forall
|
|
grestore 0 20 translate
|
|
} forall
|
|
grestore
|
|
} def
|
|
/xflip
|
|
{ 8.5 72 mul 0 translate -1 1 scale
|
|
} def
|
|
/rot90
|
|
{ 90 rotate 0 -9.75 72 mul translate
|
|
} def
|
|
/rot180
|
|
{ rot90 rot90
|
|
} def
|
|
/rot270
|
|
{ rot180 rot90
|
|
} def
|
|
|
|
drawlines showpage
|
|
gsave xflip drawlines grestore showpage
|
|
gsave rot90 drawlines grestore showpage
|
|
gsave rot90 xflip drawlines grestore showpage
|
|
gsave drawlines rot180 showpage
|
|
gsave rot180 xflip drawlines grestore showpage
|
|
gsave rot270 drawlines grestore showpage
|
|
gsave rot270 xflip drawlines grestore showpage
|
|
grestore
|
|
|
|
% Here are some boundary conditions, contributed by Mark Rawling.
|
|
|
|
gsave
|
|
1 setlinecap
|
|
2.6 setmiterlimit
|
|
3.0 setlinewidth
|
|
|
|
5 5 scale
|
|
10 20 translate
|
|
|
|
% [ 0.5 sqrt dup dup dup neg exch 0 0 ] concat % 45 rotate
|
|
|
|
{0 1 2} % line join
|
|
{
|
|
setlinejoin gsave
|
|
0 0 moveto 0 10 lineto 10 0 lineto gsave stroke grestore
|
|
15 0 translate
|
|
0 0 moveto 0 10 lineto 10 20 lineto gsave stroke grestore
|
|
15 0 translate
|
|
10 0 moveto 10 10 lineto 0 20 lineto gsave stroke grestore
|
|
15 0 translate
|
|
10 0 moveto 10 10 lineto 0 0 lineto gsave stroke grestore
|
|
grestore
|
|
gsave
|
|
0 20 translate
|
|
0 20 moveto 0 10 lineto 10 20 lineto gsave stroke grestore
|
|
15 0 translate
|
|
0 20 moveto 0 10 lineto 10 0 lineto gsave stroke grestore
|
|
15 0 translate
|
|
10 20 moveto 10 10 lineto 0 0 lineto gsave stroke grestore
|
|
15 0 translate
|
|
10 20 moveto 10 10 lineto 0 20 lineto gsave stroke grestore
|
|
grestore 60 0 translate
|
|
} forall
|
|
|
|
showpage
|
|
grestore
|
|
|
|
% Test narrow lines at a variety of angles.
|
|
|
|
gsave
|
|
|
|
/rad 120 def
|
|
/ray { gsave rotate 0 0 moveto rad 0 rlineto stroke grestore } def
|
|
/star
|
|
{ newpath gsave
|
|
gsave 0.5 setgray 0 0 rad 0 360 arc stroke grestore
|
|
0 90 359
|
|
{ rotate
|
|
0 3 14 { ray } for
|
|
15 15 89 { ray } for
|
|
} for
|
|
grestore
|
|
} def
|
|
|
|
0 setgray
|
|
150 150 translate
|
|
[ [ 0 0.5 1 ] [ 1.5 2 2.5 ] [ 3 3.5 4 ] ]
|
|
{ gsave
|
|
{ setlinewidth star
|
|
250 0 translate
|
|
} forall
|
|
grestore 0 250 translate
|
|
} forall
|
|
|
|
grestore showpage
|
|
|
|
% End
|
|
|
|
quit
|