diff options
Diffstat (limited to 'man/man3/addpt.3')
-rw-r--r-- | man/man3/addpt.3 | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/man/man3/addpt.3 b/man/man3/addpt.3 new file mode 100644 index 00000000..81476f43 --- /dev/null +++ b/man/man3/addpt.3 @@ -0,0 +1,188 @@ +.TH ADDPT 3 +.SH NAME +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 +.SH SYNOPSIS +.B #include <u.h> +.br +.B #include <libc.h> +.br +.B #include <draw.h> +.PP +.B +Point addpt(Point p, Point q) +.PP +.B +Point subpt(Point p, Point q) +.PP +.B +Point mulpt(Point p, int a) +.PP +.B +Point divpt(Point p, int a) +.PP +.B +Rectangle rectaddpt(Rectangle r, Point p) +.PP +.B +Rectangle rectsubpt(Rectangle r, Point p) +.PP +.B +Rectangle insetrect(Rectangle r, int n) +.PP +.B +Rectangle canonrect(Rectangle r) +.PP +.B +int eqpt(Point p, Point q) +.PP +.B +int eqrect(Rectangle r, Rectangle s) +.PP +.B +int ptinrect(Point p, Rectangle r) +.PP +.B +int rectinrect(Rectangle r, Rectangle s) +.PP +.B +int rectXrect(Rectangle r, Rectangle s) +.PP +.B +int rectclip(Rectangle *rp, Rectangle b) +.PP +.B +void combinerect(Rectangle *rp, Rectangle b) +.PP +.B +int Dx(Rectangle r) +.PP +.B +int Dy(Rectangle r) +.PP +.B +Point Pt(int x, int y) +.PP +.B +Rectangle Rect(int x0, int y0, int x1, int y1) +.PP +.B +Rectangle Rpt(Point p, Point q) +.SH DESCRIPTION +The functions +.IR Pt , +.I Rect +and +.I Rpt +construct geometrical data types from their components. +.PP +.I Addpt +returns the Point +sum of its arguments: +.BI Pt( p .x+ q .x, +.IB p .y+ q .y) \f1. +.I Subpt +returns the Point +difference of its arguments: +.BI Pt( p .x- q .x, +.IB p .y- q .y) \f1. +.I Mulpt +returns the Point +.BI Pt( p .x* a , +.IB p .y* a ) \f1. +.I Divpt +returns the Point +.BI Pt( p .x/ a , +.IB p .y/ a ) \f1. +.PP +.I Rectaddpt +returns the Rectangle +.BI Rect(add( r .min, +.IB p ) \f1, +.BI add( r .max, +.IB p )) \f1; +.I rectsubpt +returns the Rectangle +.BI Rpt(sub( r .min, +.IB p ), +.BI sub( r .max, +.IB p ))\fR. +.PP +.I Insetrect +returns the Rectangle +.BI Rect( r .min.x+ n \f1, +.IB r .min.y+ n \f1, +.IB r .max.x- n \f1, +.IB r .max.y- n ) \f1. +.PP +.I Canonrect +returns a rectangle with the same extent as +.IR r , +canonicalized so that +.B min.x +≤ +.BR max.x , +and +.B min.y +≤ +.BR max.y . +.PP +.I Eqpt +compares its argument Points and returns +0 if unequal, +1 if equal. +.I Eqrect +does the same for its argument Rectangles. +.PP +.I Ptinrect +returns 1 if +.I p +is a point within +.IR r , +and 0 otherwise. +.PP +.I Rectinrect +returns 1 if all the pixels in +.I r +are also in +.IR s , +and 0 otherwise. +.PP +.I RectXrect +returns 1 if +.I r +and +.I s +share any point, and 0 otherwise. +.PP +.I Rectclip +clips in place +the Rectangle pointed to by +.I rp +so that it is completely contained within +.IR b . +The return value is 1 if any part of +.RI * rp +is within +.IR b . +Otherwise, the return value is 0 and +.RI * rp +is unchanged. +.PP +.I Combinerect +overwrites +.B *rp +with the smallest rectangle sufficient to cover all the pixels of +.B *rp +and +.BR b . +.PP +The functions +.I Dx +and +.I Dy +give the width (Δx) and height (Δy) of a Rectangle. +They are implemented as macros. +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2) |