64 lines
1.6 KiB
PostScript
64 lines
1.6 KiB
PostScript
%!
|
|
% Example of rotation... draws 36 lines in a circular pattern
|
|
|
|
0 10 360 { % Go from 0 to 360 degrees in 10 degree steps
|
|
newpath % Start a new path
|
|
|
|
gsave % Keep rotations temporary
|
|
144 144 moveto
|
|
rotate % Rotate by degrees on stack from 'for'
|
|
72 0 rlineto
|
|
stroke
|
|
grestore % Get back the unrotated state
|
|
|
|
} for % Iterate over angles
|
|
|
|
showpage
|
|
|
|
/box {
|
|
newpath
|
|
moveto
|
|
72 0 rlineto
|
|
0 72 rlineto
|
|
-72 0 rlineto
|
|
closepath
|
|
} def
|
|
|
|
% Specify font for text labels
|
|
/Helvetica findfont 40 scalefont setfont
|
|
|
|
gsave
|
|
40 40 translate % Set origin to (40, 40)
|
|
0 0 box stroke % Draw box at new origin...
|
|
77 0 moveto
|
|
(Translated) show % and label
|
|
grestore
|
|
|
|
gsave
|
|
100 150 translate % Translate origin to (100, 150)
|
|
30 rotate % Rotate counter-clockwise by 30 degrees
|
|
0 0 box stroke % Draw box...
|
|
75 0 moveto
|
|
(Translated & Rotated) show % and label
|
|
grestore
|
|
|
|
gsave
|
|
40 300 translate % Translate to (40, 300)
|
|
0.5 1 scale % Reduce x coord by 1/2, y coord left alone
|
|
0 0 box stroke % Draw box...
|
|
75 0 moveto
|
|
(Translated & Squished) show % and label
|
|
grestore
|
|
|
|
gsave
|
|
100 450 translate % Set origin to (300, 300)
|
|
45 rotate % Rotate coordinates by 45 degrees
|
|
0.5 1 scale % Scale coordinates
|
|
0 0 box stroke % Draw box
|
|
75 0 moveto
|
|
(Everything) show
|
|
grestore
|
|
|
|
showpage
|
|
|
|
|