glenda.party
term% ls -F
term% pwd
$home/manuals/9front/2/addpt
term% cat index.txt
ADDPT(2)                      System Calls Manual                     ADDPT(2)



NAME
       addpt, subpt, mulpt, divpt, rectaddpt, rectsubpt, insetrect, canonrect,
       eqpt, eqrect, ptinrect, rectinrect, rectXrect,  rectclip,  combinerect,
       badrect, Dx, Dy, Pt, Rect, Rpt - arithmetic on points and rectangles

SYNOPSIS
       #include <u.h>
       #include <libc.h>
       #include <draw.h>

       Point     addpt(Point p, Point q)

       Point     subpt(Point p, Point q)

       Point     mulpt(Point p, int a)

       Point     divpt(Point p, int a)

       Rectangle rectaddpt(Rectangle r, Point p)

       Rectangle rectsubpt(Rectangle r, Point p)

       Rectangle insetrect(Rectangle r, int n)

       Rectangle canonrect(Rectangle r)

       int       eqpt(Point p, Point q)

       int       eqrect(Rectangle r, Rectangle s)

       int       ptinrect(Point p, Rectangle r)

       int       rectinrect(Rectangle r, Rectangle s)

       int       rectXrect(Rectangle r, Rectangle s)

       int       rectclip(Rectangle *rp, Rectangle b)

       void      combinerect(Rectangle *rp, Rectangle b)

       int       badrect(Rectangle r)

       int       Dx(Rectangle r)

       int       Dy(Rectangle r)

       Point     Pt(int x, int y)

       Rectangle Rect(int x0, int y0, int x1, int y1)

       Rectangle Rpt(Point p, Point q)

DESCRIPTION
       The  functions  Pt,  Rect and Rpt construct geometrical data types from
       their components.

       Addpt returns the Point sum of  its  arguments:  Pt(p.x+q.x,  p.y+q.y).
       Subpt  returns  the Point difference of its arguments: Pt(p.x-q.x, p.y-
       q.y).  Mulpt returns the Point Pt(p.x*a,  p.y*a).   Divpt  returns  the
       Point Pt(p.x/a, p.y/a).

       Rectaddpt  returns  the  Rectangle  Rect(add(r.min, p), add(r.max, p));
       rectsubpt returns the Rectangle Rpt(sub(r.min, p), sub(r.max, p)).

       Insetrect returns the Rectangle Rect(r.min.x+n,  r.min.y+n,  r.max.x-n,
       r.max.y-n).

       Canonrect  returns a rectangle with the same extent as r, canonicalized
       so that min.x ⤠max.x, and min.y ⤠max.y.

       Eqpt compares its argument Points and returns 0 if unequal, 1 if equal.
       Eqrect does the same for its argument Rectangles.

       Ptinrect returns 1 if p is a point within r, and 0 otherwise.

       Rectinrect returns 1 if all the pixels in r are also in s, and 0 other‐
       wise.

       RectXrect returns 1 if r and s share any point, and 0 otherwise.

       Rectclip clips in place the Rectangle pointed to by rp so  that  it  is
       completely  contained  within  b.  The return value is 1 if any part of
       *rp is within b.  Otherwise, the return value  is  0  and  *rp  is  un‐
       changed.

       Combinerect  overwrites  *rp  with the smallest rectangle sufficient to
       cover all the pixels of *rp and b.

       Badrect returns 1 if r is zero, negative size or insanely huge  rectan‐
       gle.  It returns 0 otherwise.

       The  functions  Dx and Dy give the width (Îx) and height (Îy) of a Rec‐
       tangle.  They are implemented as macros.

SOURCE
       /sys/src/libdraw

SEE ALSO
       graphics(2)



                                                                      ADDPT(2)