|
|
| |
Math::Polygon::Clip(3) |
User Contributed Perl Documentation |
Math::Polygon::Clip(3) |
Math::Polygon::Clip - frame a polygon in a square
Math::Polygon::Clip
is a Exporter
my @poly = ( [1,2], [2,4], [5,7], [1, 2] );
my @box = ( $xmin, $ymin, $xmax, $ymax );
my $boxed = polygon_clip \@box, @poly;
Cut-off all parts of the polygon which are outside the box
- 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 @box are 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 found
my @first = @{$l[0]}; # first is [2,0], [1,-1], [1,2]
This module is part of Math-Polygon distribution version 1.10, built on January
03, 2018. Website: http://perl.overmeer.net/CPAN/
Copyrights 2004-2018 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://dev.perl.org/licenses/
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |