Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  ADDPT (3)

### 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

Synopsis
Description
Source

### SYNOPSIS

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

Point   subpt(Point p, Point q)

Point   mulpt(Point p, int a)

Point   divpt(Point p, int a)

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             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).

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 otherwise.

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 unchanged.

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

The functions Dx and Dy give the width (Δx) and height (Δy) of a Rectangle. They are implemented as macros.

### SOURCE

/usr/local/plan9/src/libdraw