diff options
Diffstat (limited to 'troff/troff.d/postscript/draw.ps')
| -rw-r--r-- | troff/troff.d/postscript/draw.ps | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/troff/troff.d/postscript/draw.ps b/troff/troff.d/postscript/draw.ps new file mode 100644 index 0000000000000..4dc98194690b2 --- /dev/null +++ b/troff/troff.d/postscript/draw.ps @@ -0,0 +1,124 @@ +%%BeginResource: procset dpost_draw 1.5 0 +% from OpenSolaris "lp:filter/postscript/postscript/draw.ps 1.1" +% +% CDDL HEADER START +% +% The contents of this file are subject to the terms of the +% Common Development and Distribution License, Version 1.0 only +% (the "License"). You may not use this file except in compliance +% with the License. +% +% You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +% or http://www.opensolaris.org/os/licensing. +% See the License for the specific language governing permissions +% and limitations under the License. +% +% When distributing Covered Code, include this CDDL HEADER in each +% file and include the License file at usr/src/OPENSOLARIS.LICENSE. +% If applicable, add the following below this CDDL HEADER, with the +% fields enclosed by brackets "[]" replaced with your own identifying +% information: Portions Copyright [yyyy] [name of copyright owner] +% +% CDDL HEADER END +% +% Portions Copyright 2005 Gunnar Ritter, Freiburg i. Br, Germany +% +% Sccsid @(#)draw.ps 1.5 (gritter) 2/9/06 +% +% Drawing procedures for dpost. Automatically pulled in, but only +% when needed. +% + +/Dsetup { + /inpath false def + /savematrix matrix currentmatrix def +} bind def + +/Dl { + inpath + { + /Dlny exch def + /Dlnx exch def + currentpoint + neg round /Dlcy exch def + round /Dlcx exch def + Dlnx Dlcx ne Dlny Dlcy ne or {Dlnx Dlny neg moveto} if + neg lineto + } + {newpath neg moveto neg lineto stroke} + ifelse +} bind def + +/De { + /y1 exch 2 div def + /x1 exch 2 div def + neg exch x1 add exch translate + x1 y1 scale + 0 0 1 0 360 + inpath + {1 0 moveto arc savematrix setmatrix} + {newpath arc savematrix setmatrix stroke} + ifelse +} bind def + +/DE { + /y1 exch 2 div def + /x1 exch 2 div def + neg exch x1 add exch translate + x1 y1 scale + 0 0 1 0 360 + inpath + {1 0 moveto arc savematrix setmatrix} + {newpath arc savematrix setmatrix fill} + ifelse +} bind def + +/Da { + /dy2 exch def + /dx2 exch def + /dy1 exch def + /dx1 exch def + dy1 add neg exch dx1 add exch + dx1 dx1 mul dy1 dy1 mul add sqrt + dy1 dx1 neg atan + dy2 neg dx2 atan + inpath + {arc} + {newpath arc stroke} + ifelse +} bind def + +/DA { + /dy2 exch def + /dx2 exch def + /dy1 exch def + /dx1 exch def + dy1 add neg exch dx1 add exch + dx1 dx1 mul dy1 dy1 mul add sqrt + dy1 dx1 neg atan + dy2 neg dx2 atan + inpath + {arcn} + {newpath arcn stroke} + ifelse +} bind def + +/Ds { + /y2 exch def + /x2 exch def + /y1 exch def + /x1 exch def + /y0 exch def + /x0 exch def + x0 5 x1 mul add 6 div + y0 5 y1 mul add -6 div + x2 5 x1 mul add 6 div + y2 5 y1 mul add -6 div + x1 x2 add 2 div + y1 y2 add -2 div + inpath + {curveto} + {newpath x0 x1 add 2 div y0 y1 add -2 div moveto curveto stroke} + ifelse +} bind def +%%EndResource |
