GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MATH::POLYGON::CALC (3)

.ds Aq ’

NAME

Math::Polygon::Calc - Simple polygon calculations

CONTENTS

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

<B>polygon_areaB>(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 ...)



<B>polygon_bboxB>(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.
<B>polygon_beautifyB>([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
<B>polygon_centroidB>(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

<B>polygon_clockwiseB>(LIST-of-$points) Be sure the polygon points are in clockwise order.
<B>polygon_contains_pointB>($point, LIST-of-$points) Returns true if the point is unside the closed polygon.
<B>polygon_counter_clockwiseB>(LIST-of-$points) Be sure the polygon points are in counter-clockwise order.
<B>polygon_equalB>(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().
<B>polygon_is_clockwiseB>(LIST-of-$points)
<B>polygon_is_closedB>($points)
<B>polygon_perimeterB>(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) + ...



<B>polygon_sameB>(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.
<B>polygon_start_minxyB>(LIST-of-$points) Returns the polygon, where the point which is closest to the left-bottom corner of the bounding box is made first.
<B>polygon_stringB>(LIST-of-$points)

SEE ALSO

This module is part of Math-Polygon distribution version 1.03, built on January 21, 2014. Website: http://perl.overmeer.net/geo/

LICENSE

Copyrights 2004,2006-2014 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

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MATH::POLYGON::CALC (3) 2014-01-21

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.