1Math::Polygon::Surface(U3s)er Contributed Perl DocumentatMiaotnh::Polygon::Surface(3)
2
3
4
6 Math::Polygon::Surface - Polygon with exclusions
7
9 my $outer = Math::Polygon->new( [1,2], [2,4], [5,7], [1,2] );
10 my $surface = Math::Polygon::Surface->new($outer);
11
13 A surface is one polygon which represents the outer bounds of an array,
14 plus optionally a list of polygons which represent exclusions from that
15 outer polygon.
16
18 Constructors
19 $obj->new( [%options], [@polygons], %options )
20 Math::Polygon::Surface->new( [%options], [@polygons], %options )
21 You may merge %options with @polygons. You may also use the
22 "outer" and "inner" options.
23
24 Each polygon is a references to an ARRAY of points, each an ARRAY
25 of X and Y, but better pass Math::Polygon objects.
26
27 -Option--Default
28 inner []
29 outer undef
30
31 inner => \@polygons
32 The inner polygons, zero or more Math::Polygon objects.
33
34 outer => $polygon
35 The outer polygon, a Math::Polygon.
36
37 Attributes
38 $obj->inner()
39 Returns a list (often empty) of inner polygons.
40
41 $obj->outer()
42 Returns the outer polygon.
43
44 Simple calculations
45 area()
46 Returns the area enclosed by the outer polygon, minus the areas of
47 the inner polygons. See method Math::Polygon::area().
48
49 $obj->bbox()
50 Returns a list with four elements: (xmin, ymin, xmax, ymax), which
51 describe the bounding box of the surface, which is the bbox of the
52 outer polygon. See method Math::Polygon::bbox().
53
54 $obj->perimeter()
55 The length of the border: sums outer and inner perimeters. See
56 method Math::Polygon::perimeter().
57
58 Clipping
59 $obj->fillClip1($box)
60 Clipping a polygon into rectangles can be done in various ways.
61 With this algorithm, the parts of the polygon which are outside the
62 $box are mapped on the borders.
63
64 All polygons are treated separately.
65
66 $obj->lineClip($box)
67 Returned is a list of ARRAYS-OF-POINTS containing line pieces from
68 the input surface. Lines from outer and inner polygons are
69 undistinguishable. See method Math::Polygon::lineClip().
70
71 $obj->string()
72 Translate the surface structure into some string. Use Geo::WKT if
73 you need a standardized format.
74
75 Returned is a single string possibly containing multiple lines.
76 The first line is the outer, the other lines represent the inner
77 polygons.
78
80 Error: surface requires outer polygon
81
83 This module is part of Math-Polygon distribution version 1.10, built on
84 January 03, 2018. Website: http://perl.overmeer.net/CPAN/
85
87 Copyrights 2004-2018 by [Mark Overmeer]. For other contributors see
88 ChangeLog.
89
90 This program is free software; you can redistribute it and/or modify it
91 under the same terms as Perl itself. See http://dev.perl.org/licenses/
92
93
94
95perl v5.38.0 2023-07-20 Math::Polygon::Surface(3)