Rectangle.
You will find a general example for the use of rect here.
Rectangle. The module defines a rectangle object and some basic rectangle functions.
static Rect alloc()
Create a new rectangle object. Without any parameters, the empty rectangle (0.0, 0.0, 0.0, 0.0) is created.
Name | Type | Default | Description |
Return | Rect | new created Rect | |
⇨ Square | |||
s | float | - | Square size, result is (0.0, 0.0, s, s) |
⇨ Rectangle at (0.0, 0.0) | |||
w, h | float, float | - | Size of rectangle, result is (0.0, 0.0, w, h) |
⇨ Rectangle | |||
left, top, right, bottom | float, float, float, float | - | Co-ordinates of rectangle. The data are not normalized! |
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect intersect = rect::alloc (); Rect union_ = rect::alloc ();
rect::intersection (intersect, r1, r2); rect::union_ (union_, r1, r2);
wrect (r1, "R1"); wrect (r2, "R2"); wrect (intersect, "(-)"); wrect (union_, "(+)");
return 0; }
Clone an existing rectangle.
Name | Type | Default | Description |
Return | Rect | new created Rect | |
org | Rect | - | rectangle to clone |
static int release(Rect r)
Release a rectangle object from the stack.
Name | Type | Default | Description |
Return | int | always 0 | |
r | Rect | - | rectangle to clone |
static float left(Rect rect)
Get the rectangle's left component.
Name | Type | Default | Description |
Return | float | left component of rectangle | |
rect | Rect | - | rectangle |
static float top(Rect rect)
Get the rectangle's left component.
Name | Type | Default | Description |
Return | float | top component of rectangle | |
rect | Rect | - | rectangle |
static float right(Rect rect)
Get the rectangle's right component.
Name | Type | Default | Description |
Return | float | right component of rectangle | |
rect | Rect | - | rectangle |
static float bottom(Rect rect)
Get the rectangle's bottom component.
Name | Type | Default | Description |
Return | float | bottom component of rectangle | |
rect | Rect | - | rectangle |
static float width(Rect rect)
Get the rectangle's width.
Name | Type | Default | Description |
Return | float | width of rectangle | |
rect | Rect | - | rectangle |
static float height(Rect rect)
Get the rectangle's height.
Name | Type | Default | Description |
Return | float | height of rectangle | |
rect | Rect | - | rectangle |
static float xcenter(Rect rect)
Get the rectangle's center on the X axis.
Name | Type | Default | Description |
Return | float | rectangle's center on the X axis. | |
rect | Rect | - | rectangle |
static float ycenter(Rect rect)
Get the rectangle's center on the Y axis.
Name | Type | Default | Description |
Return | float | rectangle's center on the Y axis. | |
rect | Rect | - | rectangle |
static int set_left(Rect rect, float l)
The rectangle's new left component.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
l | float | - | The rectangle's new left component |
static int set_top(Rect rect, float t)
The rectangle's new top component.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
t | float | - | The rectangle's new top component |
static int set_right(Rect rect, float r)
The rectangle's new right component.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
r | float | - | The rectangle's new right component |
static int set_bottom(Rect rect, float b)
The rectangle's new bottom component.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
b | float | - | The rectangle's new bottom component |
static int set_width(Rect rect, float w)
Set the rectangle's width.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
w | float | - | The rectangle's new width |
static int set_height(Rect rect, float h)
Set the rectangle's height.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
h | float | - | The rectangle's new height |
static int move_rel(
Rect rect,
float x,
float y)
Move a rectangle relativ to its current position.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
x, y | float, float | - | Values for move |
static int move_to(
Rect rect,
float x,
float y)
Move a rectangle relativ to a new position.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
x, y | float, float | - | new position |
static int center_on(
Rect rect,
float x,
float y)
Center a rectangle at a given position.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
x, y | float, float | - | new center position |
static int inset(
Rect rect,
float dx,
float dy)
Contracts the rectangle by (dx, dy) on all sides. Positive values contract the rectangle, negative values enlarge it.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
rect | Rect | - | rectangle |
dx, dy | float, float | - | Contracts the rectangle by (dx, dy) on all sides. Positive values contract the rectangle, negative values enlarge it. |
static int intersect(Rect r1, Rect r2)
Determines if two rectangles intersect. True if rectangles intersect in both x and y directions, but false if only a side is shared (ie., rectangles must strictly intersect).
Name | Type | Default | Description |
Return | int | 0 : no intersection 1 : yes |
|
r1 | Rect | - | rectangle 1 |
r2 | Rect | - | rectangle 2 |
static int intersection(
Rect result,
Rect r1,
Rect r2)
Calculates the intersection of two rectangles. If the rectangles do not strictly intersect, the specified empty rectangle is returned.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
result | Rect | - | intersection of r1 and r2 (empty, if r1 and r2 do not intersect strictly) |
r1 | Rect | - | rectangle 1 |
r2 | Rect | - | rectangle 2 |
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect intersect = rect::alloc (); Rect union_ = rect::alloc ();
rect::intersection (intersect, r1, r2); rect::union_ (union_, r1, r2);
wrect (r1, "R1"); wrect (r2, "R2"); wrect (intersect, "(-)"); wrect (union_, "(+)");
return 0; }
static int union_(
Rect result,
Rect r1,
Rect r2)
Unions a rectangle with another.
Name | Type | Default | Description |
Return | int | 0 or ErrorCode | |
result | Rect | - | Bounding box of r1 and r2 |
r1 | Rect | - | rectangle 1 |
r2 | Rect | - | rectangle 2 |
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect intersect = rect::alloc (); Rect union_ = rect::alloc ();
rect::intersection (intersect, r1, r2); rect::union_ (union_, r1, r2);
wrect (r1, "R1"); wrect (r2, "R2"); wrect (intersect, "(-)"); wrect (union_, "(+)");
return 0; }
static int contains_point(
Rect rect,
float x,
float y)
Determines whether the specified point falls within a rectangle.
Name | Type | Default | Description |
Return | int | 0 : No 1 : Yes, the point falls into rect. |
|
rect | Rect | - | rectangle |
x, y | float, float | - | point |
static int contains(Rect r1, Rect r2)
Determines whether the specified rectangle is contained with a rectangle.
Name | Type | Default | Description |
Return | int | 0 : No, r1 does not contain r1 1 : Yes, r1 contains r2 |
|
r1 | Rect | - | rectangle |
r2 | Rect | - | rectangle |
static float aspect_ratio(Rect rect)
Calculates the aspect ratio for the rectangle. The aspect ratio is calculated as the ratio of the rectangle's height to its width. If the rectangle is empty, zero is returned.
Name | Type | Default | Description |
Return | float | aspcet ratio or 0.0 if the rectangle is empty | |
rect | Rect | - | rectangle |
static float area(Rect rect)
Area of a rectangle.
Name | Type | Default | Description |
Return | float | size of the rectangle | |
rect | Rect | - | rectangle |
static float is_equal(Rect r1, Rect r2)
Check whether to rectangles are equal.
int wrect (Rect r, char * trailer) { if (strlen (trailer)) wlog ("", "%s ", trailer);
wlog ("", "%f, %f, %f, %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
return 0; }
int main () { Rect r1 = rect::alloc (0.0, 0.0, 100.0, 200.0); Rect r2 = rect::alloc (80.0, 90.0, 110.0, 210.0); Rect intersect = rect::alloc (); Rect union_ = rect::alloc ();
rect::intersection (intersect, r1, r2); rect::union_ (union_, r1, r2);
wrect (r1, "R1"); wrect (r2, "R2"); wrect (intersect, "(-)"); wrect (union_, "(+)");
return 0; }
Alphabetic index HTML hierarchy of classes or Java