1 cfa37a7b 2004-04-10 devnull .TH ADDPT 3
3 cfa37a7b 2004-04-10 devnull addpt, subpt, mulpt, divpt, rectaddpt, rectsubpt, insetrect, canonrect, eqpt, eqrect, ptinrect, rectinrect, rectXrect, rectclip, combinerect, Dx, Dy, Pt, Rect, Rpt \- arithmetic on points and rectangles
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B #include <u.h>
7 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
9 cfa37a7b 2004-04-10 devnull .B #include <draw.h>
12 cfa37a7b 2004-04-10 devnull Point addpt(Point p, Point q)
15 cfa37a7b 2004-04-10 devnull Point subpt(Point p, Point q)
18 cfa37a7b 2004-04-10 devnull Point mulpt(Point p, int a)
21 cfa37a7b 2004-04-10 devnull Point divpt(Point p, int a)
24 cfa37a7b 2004-04-10 devnull Rectangle rectaddpt(Rectangle r, Point p)
27 cfa37a7b 2004-04-10 devnull Rectangle rectsubpt(Rectangle r, Point p)
30 cfa37a7b 2004-04-10 devnull Rectangle insetrect(Rectangle r, int n)
33 cfa37a7b 2004-04-10 devnull Rectangle canonrect(Rectangle r)
36 cfa37a7b 2004-04-10 devnull int eqpt(Point p, Point q)
39 cfa37a7b 2004-04-10 devnull int eqrect(Rectangle r, Rectangle s)
42 cfa37a7b 2004-04-10 devnull int ptinrect(Point p, Rectangle r)
45 cfa37a7b 2004-04-10 devnull int rectinrect(Rectangle r, Rectangle s)
48 cfa37a7b 2004-04-10 devnull int rectXrect(Rectangle r, Rectangle s)
51 cfa37a7b 2004-04-10 devnull int rectclip(Rectangle *rp, Rectangle b)
54 cfa37a7b 2004-04-10 devnull void combinerect(Rectangle *rp, Rectangle b)
57 cfa37a7b 2004-04-10 devnull int Dx(Rectangle r)
60 cfa37a7b 2004-04-10 devnull int Dy(Rectangle r)
63 cfa37a7b 2004-04-10 devnull Point Pt(int x, int y)
66 cfa37a7b 2004-04-10 devnull Rectangle Rect(int x0, int y0, int x1, int y1)
69 cfa37a7b 2004-04-10 devnull Rectangle Rpt(Point p, Point q)
70 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
71 cfa37a7b 2004-04-10 devnull The functions
76 cfa37a7b 2004-04-10 devnull construct geometrical data types from their components.
79 cfa37a7b 2004-04-10 devnull returns the Point
80 cfa37a7b 2004-04-10 devnull sum of its arguments:
81 cfa37a7b 2004-04-10 devnull .BI Pt( p .x+ q .x,
82 cfa37a7b 2004-04-10 devnull .IB p .y+ q .y) \f1.
84 cfa37a7b 2004-04-10 devnull returns the Point
85 cfa37a7b 2004-04-10 devnull difference of its arguments:
86 cfa37a7b 2004-04-10 devnull .BI Pt( p .x- q .x,
87 cfa37a7b 2004-04-10 devnull .IB p .y- q .y) \f1.
89 cfa37a7b 2004-04-10 devnull returns the Point
90 cfa37a7b 2004-04-10 devnull .BI Pt( p .x* a ,
91 cfa37a7b 2004-04-10 devnull .IB p .y* a ) \f1.
93 cfa37a7b 2004-04-10 devnull returns the Point
94 cfa37a7b 2004-04-10 devnull .BI Pt( p .x/ a ,
95 cfa37a7b 2004-04-10 devnull .IB p .y/ a ) \f1.
97 cfa37a7b 2004-04-10 devnull .I Rectaddpt
98 cfa37a7b 2004-04-10 devnull returns the Rectangle
99 cfa37a7b 2004-04-10 devnull .BI Rect(add( r .min,
100 cfa37a7b 2004-04-10 devnull .IB p ) \f1,
101 cfa37a7b 2004-04-10 devnull .BI add( r .max,
102 cfa37a7b 2004-04-10 devnull .IB p )) \f1;
103 cfa37a7b 2004-04-10 devnull .I rectsubpt
104 cfa37a7b 2004-04-10 devnull returns the Rectangle
105 cfa37a7b 2004-04-10 devnull .BI Rpt(sub( r .min,
106 cfa37a7b 2004-04-10 devnull .IB p ),
107 cfa37a7b 2004-04-10 devnull .BI sub( r .max,
108 cfa37a7b 2004-04-10 devnull .IB p ))\fR.
110 cfa37a7b 2004-04-10 devnull .I Insetrect
111 cfa37a7b 2004-04-10 devnull returns the Rectangle
112 cfa37a7b 2004-04-10 devnull .BI Rect( r .min.x+ n \f1,
113 cfa37a7b 2004-04-10 devnull .IB r .min.y+ n \f1,
114 cfa37a7b 2004-04-10 devnull .IB r .max.x- n \f1,
115 cfa37a7b 2004-04-10 devnull .IB r .max.y- n ) \f1.
117 cfa37a7b 2004-04-10 devnull .I Canonrect
118 cfa37a7b 2004-04-10 devnull returns a rectangle with the same extent as
120 cfa37a7b 2004-04-10 devnull canonicalized so that
121 cfa37a7b 2004-04-10 devnull .B min.x
123 cfa37a7b 2004-04-10 devnull .BR max.x ,
125 cfa37a7b 2004-04-10 devnull .B min.y
127 cfa37a7b 2004-04-10 devnull .BR max.y .
130 cfa37a7b 2004-04-10 devnull compares its argument Points and returns
131 cfa37a7b 2004-04-10 devnull 0 if unequal,
132 cfa37a7b 2004-04-10 devnull 1 if equal.
133 cfa37a7b 2004-04-10 devnull .I Eqrect
134 cfa37a7b 2004-04-10 devnull does the same for its argument Rectangles.
136 cfa37a7b 2004-04-10 devnull .I Ptinrect
137 cfa37a7b 2004-04-10 devnull returns 1 if
139 cfa37a7b 2004-04-10 devnull is a point within
141 cfa37a7b 2004-04-10 devnull and 0 otherwise.
143 cfa37a7b 2004-04-10 devnull .I Rectinrect
144 cfa37a7b 2004-04-10 devnull returns 1 if all the pixels in
146 cfa37a7b 2004-04-10 devnull are also in
148 cfa37a7b 2004-04-10 devnull and 0 otherwise.
150 cfa37a7b 2004-04-10 devnull .I RectXrect
151 cfa37a7b 2004-04-10 devnull returns 1 if
155 cfa37a7b 2004-04-10 devnull share any point, and 0 otherwise.
157 cfa37a7b 2004-04-10 devnull .I Rectclip
158 cfa37a7b 2004-04-10 devnull clips in place
159 cfa37a7b 2004-04-10 devnull the Rectangle pointed to by
161 cfa37a7b 2004-04-10 devnull so that it is completely contained within
163 cfa37a7b 2004-04-10 devnull The return value is 1 if any part of
164 cfa37a7b 2004-04-10 devnull .RI * rp
165 cfa37a7b 2004-04-10 devnull is within
167 cfa37a7b 2004-04-10 devnull Otherwise, the return value is 0 and
168 cfa37a7b 2004-04-10 devnull .RI * rp
169 cfa37a7b 2004-04-10 devnull is unchanged.
171 cfa37a7b 2004-04-10 devnull .I Combinerect
172 cfa37a7b 2004-04-10 devnull overwrites
174 cfa37a7b 2004-04-10 devnull with the smallest rectangle sufficient to cover all the pixels of
179 cfa37a7b 2004-04-10 devnull The functions
183 cfa37a7b 2004-04-10 devnull give the width (Δx) and height (Δy) of a Rectangle.
184 cfa37a7b 2004-04-10 devnull They are implemented as macros.
185 cfa37a7b 2004-04-10 devnull .SH SOURCE
186 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/libdraw
187 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
188 bf8a59fa 2004-04-11 devnull .IR graphics (3)