Math::Polygon::Surface3pm
Polygon with exclusions
Usage
my $outer = Math::Polygon->new( [1,2], [2,4], [5,7], [1,2] );my $surface = Math::Polygon::Surface->new($outer);
Overview
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 merge
%optionswith@polygons. You may also use the "outer" and "inner" options.Each polygon is a references to an ARRAY of points, each an ARRAY of X and Y, but better pass Math::Polygon objects.
-Option--Defaultinner []outer undef- inner => \@polygons
-
The inner polygons, zero or more Math::Polygon objects.
- outer => $polygon
-
The outer polygon, a Math::Polygon.
Attributes
$obj->
|
Returns a list (often empty) of inner polygons. |
|---|---|
$obj->
|
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
$boxare 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
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 6 times.