Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  MATH::POLYGON::CLIP (3)

.ds Aq ’

### NAME

Math::Polygon::Clip - frame a polygon in a square

### INHERITANCE

```

Math::Polygon::Clip
is a Exporter

```

### SYNOPSIS

```

my @poly  = ( [1,2], [2,4], [5,7], [1, 2] );
my @box   = ( \$xmin, \$ymin, \$xmax, \$ymax );

my \$boxed = polygon_clip \@box, @poly;

```

### DESCRIPTION

Cut-off all parts of the polygon which are outside the box

### FUNCTIONS

 polygon_fill_clip1B>(ARRAY-\$box, LIST-of-\$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_clip2B>(ARRAY-\$box, LIST-of-\$points) To be implementedB>. 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_clip3B>(ARRAY-\$box, \$out-\$poly, [\$in-\$polys]) To be implementedB>. A surrounding polygon, with possible inclussions. polygon_line_clipB>(ARRAY-\$box, LIST-of-\$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.03, built on January 21, 2014. Website: http://perl.overmeer.net/geo/