Provided by: libmath-polygon-perl_1.02-1_all bug

NAME

       Math::Polygon::Calc - Simple polygon calculations

INHERITANCE

        Math::Polygon::Calc
          is a Exporter

SYNOPSIS

        my @poly = ( [1,2], [2,4], [5,7], [1, 2] );

        my ($xmin, $ymin, $xmax, $ymax) = polygon_bbox @poly;

        my $area = polygon_area @poly;
        MY $L    = polygon_perimeter @poly;
        if(polygon_is_clockwise @poly) { ... };

        my @rot  = polygon_start_minxy @poly;

DESCRIPTION

       This package contains a wide variaty of relatively easy polygon calculations.  More complex calculations
       are put in separate packages.

FUNCTIONS

       polygon_area(LIST-OF-POINTS)
           Returns  the  area enclosed by the polygon.  The last point of the list must be the same as the first
           to produce a correct result.

           The algorithm was found at <http://mathworld.wolfram.com/PolygonArea.html>, and sounds:

            A = abs( 1/2 * (x1y2-x2y1 + x2y3-x3y2 ...)

       polygon_bbox(LIST-OF-POINTS)
           Returns a list with four elements: (xmin, ymin, xmax, ymax), which describe the bounding box  of  the
           polygon (all points of the polygon are within that area.

       polygon_beautify([HASH], LIST-OF-POINTS)
           Polygons,  certainly  after some computations, can have a lot of horrible artifacts: points which are
           double, spikes, etc.  This functions provided by this module beautify The optional HASH contains  the
           OPTIONS:

            -Option        --Default
             remove_between  <false>
             remove_spikes   <false>

           remove_between => BOOLEAN
             Simple  points in-between are always removed, but more complex points are not: when the line is not
             parallel to one of the axes, more intensive calculations must take place.  This will only  be  done
             when this flags is set.  NOT IMPLEMENTED YET

           remove_spikes => BOOLEAN
       polygon_centroid(LIST-OF-POINTS)
           Returns  the  centroid  location  of the polygon.  The last point of the list must be the same as the
           first to produce a correct result.

           The algorithm was found at http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon

       polygon_clockwise(LIST-OF-POINTS)
           Be sure the polygon points are in clockwise order.

       polygon_contains_point(POINT, LIST-OF-POINTS)
           Returns true if the point is unside the closed polygon.

       polygon_counter_clockwise(LIST-OF-POINTS)
           Be sure the polygon points are in counter-clockwise order.

       polygon_equal(ARRAY-OF-POINTS, ARRAY-OF-POINTS, [TOLERANCE])
           Compare two polygons, on the level of points. When the polygons are the same but rotated,  this  will
           return false. See polygon_same().

       polygon_is_clockwise(LIST-OF-POINTS)
       polygon_is_closed(POINTS)
       polygon_perimeter(LIST-OF-POINTS)
           The  length  of the line of the polygon.  This can also be used to compute the length of any line: of
           the last point is not equal to the first, then a line is presumed; for a polygon they must match.

           This is simply Pythagoras.

            $l = sqrt((x1-x0)^2 + (y1-y0)^2) + sqrt((x2-x1)^2+(y2-y1)^2) + ...

       polygon_same(ARRAY-OF-POINTS, ARRAY-OF-POINTS, [TOLERANCE])
           Compare two polygons, where the polygons may be rotated wrt each other. This is  (much)  slower  than
           polygon_equal(), but some algorithms will cause un unpredictable rotation in the result.

       polygon_start_minxy(LIST-OF-POINTS)
           Returns  the  polygon, where the point which is closest to the left-bottom corner of the bounding box
           is made first.

       polygon_string(LIST-OF-POINTS)

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

perl v5.12.4                                       2011-09-19                           Math::Polygon::Calc(3pm)