NAME¶
Math::Polygon::Surface - Polygon with exclusions
SYNOPSIS¶
my $outer = Math::Polygon->new( [1,2], [2,4], [5,7], [1,2] );
my $surface = Math::Polygon::Surface->new($outer);
DESCRIPTION¶
A surface is one polygon which represents the outer bounds of an array, plus
optionally a list of polygons which represent exclusions from that outer
polygon.
METHODS¶
Constructors¶
- $obj->new([OPTIONS], [POLYGONS], [OPTIONS])
- Math::Polygon::Surface->new([OPTIONS],
[POLYGONS], [OPTIONS])
- You may add OPTIONS after and/or before the POLYGONS. You
may also use the "outer" and "inner" options. POLYGONS
are references to ARRAYs of points, each an ARRAY of X and Y, but better
instantiated Math::Polygon objects.
-Option--Default
inner []
outer undef
- inner => ARRAY-OF-POLYGONS
- The inner polygons, zero or more Math::Polygon
objects.
- outer => POLYGON
- The outer polygon, a Math::Polygon.
Attributes¶
- $obj->inner
- Returns a list (often empty) of inner polygons.
- $obj->outer
- Returns the outer polygon.
Simple calculations¶
- area
- Returns the area enclosed by the outer polygon, minus the
areas of the inner polygons. See method Math::Polygon::area().
- $obj->bbox
- Returns a list with four elements: (xmin, ymin, xmax,
ymax), which describe the bounding box of the surface, which is the bbox
of the outer polygon. See method Math::Polygon::bbox().
- $obj->perimeter
- The length of the border: sums outer and inner perimeters.
See method Math::Polygon::perimeter().
Clipping¶
- $obj->fillClip1(BOX)
- Clipping a polygon into rectangles can be done in various
ways. With this algorithm, the parts of the polygon which are outside the
BOX are mapped on the borders.
All polygons are treated separately.
- $obj->lineClip(BOX)
- Returned is a list of ARRAYS-OF-POINTS containing line
pieces from the input surface. Lines from outer and inner polygons are
undistinguishable. See method Math::Polygon::lineClip().
- $obj->string
- Translate the surface structure into some string. Use
Geo::WKT if you need a standardized format.
Returned is a single string possibly containing multiple lines. The first
line is the outer, the other lines represent the inner polygons.
DIAGNOSTICS¶
- Error: surface requires outer polygon
SEE ALSO¶
This module is part of Math-Polygon distribution version 1.02, built on
September 19, 2011. Website:
http://perl.overmeer.net/geo/
LICENSE¶
Copyrights 2004,2006-2011 by Mark Overmeer. For other contributors see
ChangeLog.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself. See
http://www.perl.com/perl/misc/Artistic.html