Math::Polygon::Clip3pm
Frame a polygon in a square
Usage
my @poly = ( [1,2], [2,4], [5,7], [1, 2] );my @box = ( $xmin, $ymin, $xmax, $ymax );my $boxed = polygon_clip \@box, @poly;
Inheritance
Math::Polygon::Clipis an Exporter
Overview
Cut-off all parts of the polygon which are outside the box
Functions
polygon_fill_clip1(\@box, @points)-
Clipping a polygon into rectangles can be done in various ways. With this algorithm (which I designed myself, but may not be new), the parts of the polygon which are outside the
@boxare mapped on the borders. The polygon stays in one piece.Returned is one list of points, which is cleaned from double points, spikes and superfluous intermediate points.
polygon_fill_clip2(\@box, @points)-
To be implemented. The polygon falls apart in fragments, which are not connected: paths which are followed in two directions are removed. This is required by some applications, like polygons used in geographical context (country contours and such).
polygon_fill_clip3( \@box, $out-$poly, [$in-$polys] )-
To be implemented. A surrounding polygon, with possible inclussions.
polygon_line_clip(\@box, @points)-
Returned is a list of ARRAYS (possibly 0 long) containing line pieces from the input polygon (or line).
example:
my @points = ( [1,2], [2,3], [2,0], [1,-1], [1,2] );my @bbox = ( 0, -2, 2, 2 );my @l = polygon_line_clip \@bbox, @points;print scalar @l; # 1, only one piece foundmy @first = @{$l[0]}; # first is [2,0], [1,-1], [1,2]
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 6 times.