The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Wx::Polygon - Draw and manipulate polygons for wxPerl

ABSTRACT

This module provides functions for manipulating polygons in wxPerl.

Description

new( POLYGON = \(Wx::Point,...) | ELLIPSE => \(x_offset,y_offset,width,heigth) ) --> Wx::Polygon>

Instantiates a new Wx::Polygon with an array of Wx::Points for a given POLYGON or an ellipse with given parameters.

add_point(x,y,recalc=1) --> void

Adds a point to the polygon. If scale and rotation have been used, rescales and rerotates the polygon after adding the point. If recalc is set to 0, this will not be done, which is better when a lot of points need added.

recalc() --> void

Rescales and rerotates the polygon. This method should be used when a lot of points need to be added. Recalculation can than be done after adding the points.

set_color(r,g,b) --> void

Sets the fill color to wxSOLID with the given r, g and b values.

mid() --> (midx:integer,midy:integer)

Calculates the middle of the polygon (not point 'z') and returns a list with x and y position.

in(x,y) --> boolean

Calculates if (x,y) falls within the edges of the polygon. Returns true if so. Uses algorithm of Randolph Franklin, http://astronomy.swin.edu.au/~pbourke/geometry/insidepoly.

draw( dc:Wx::DC ) --> void

Draws the polygon at given offsets and with given colour(s) to the current DC.

copy() --> Wx::Polygon

Returns a copy of the object.

scale(scale-factor) --> void

Scales the polygon with scale-factor.

rotate(degrees) --> void

Rotates the polygon by degrees degrees (0-360).

offset(x,y) --> void

Sets the offset for drawing. This can be used to transpose the polygon.

AUTHOR

Hans Oesterholt-Dijkema <oesterhol@cpan.org>

COPYRIGHT & LICENSE

(c)2004 Hans Oesterholt-Dijkema. This module can be redistributed under artistic license.