|
|
1.1 root 1: .ds ZZ DEVELOPMENT PACKAGE
2: .TH PTINRECT 3R "630 MTG"
3: .SH NAME
4: ptinrect \- check for Point inclusion in a Rectangle
5: .SH SYNOPSIS
6: .ft B
7: # include <dmd.h>
8: .sp
9: int ptinrect (p, r)
10: .br
11: Point p;
12: .br
13: Rectangle r;
14: .SH DESCRIPTION
15: The
16: .I ptinrect
17: function
18: returns 1 if
19: .I p
20: is a Point within Rectangle
21: .I r ;
22: and 0, otherwise.
23: .SH EXAMPLE
24: The following routine will draw a box in the middle of a window.
25: Then when button 1 is depressed within the box,
26: the bell will ring.
27: The routine returns when a key is typed.
28: .PP
29: .RS 3
30: .nf
31: .ft CM
32: #include <dmd.h>
33: Point add();
34: Point sub();
35: Point div();
36:
37: ringbox()
38: {
39: Point center, offset;
40: Rectangle midbox;
41:
42: offset = div (sub (Drect.corner,
43: Drect.origin), 2);
44: center = add (Drect.origin, offset);
45: midbox.origin = sub (center, Pt (16, 16));
46: midbox.corner = add (center, Pt (16, 16));
47: box (&display, midbox, F_XOR);
48: request (MOUSE|KBD);
49: while (kbdchar () == -1){
50: wait (MOUSE);
51: if (ptinrect (mouse.xy, midbox) &&
52: button1()) ringbell();
53: }
54: }
55: \fR
56: .fi
57: .RE
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.