65 lines
1.6 KiB
PostScript
65 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
|
||
|
|
||
|
|