search.cpan.org is shutting down
Arnar Mar Hrafnkelsson > Imager-0.43 > Imager::Matrix2d

Imager-0.43.tar.gz

Dependencies

Annotate this POD

# CPAN RT

 New 39 Open 23
View/Report Bugs
Source   Latest Release: Imager-1.006

# NAME

`  Imager::Matrix2d - simple wrapper for matrix construction`

# SYNOPSIS

```  use Imager::Matrix2d;
\$m1 = Imager::Matrix2d->identity;
\$m3 = Imager::Matrix2d->translate(x=>\$dx, y=>\$dy);
\$m4 = Imager::Matrix2d->shear(x=>\$sx, y=>\$sy);
\$m5 = Imager::Matrix2d->reflect(axis=>\$axis);
\$m6 = Imager::Matrix2d->scale(x=>\$xratio, y=>\$yratio);
\$m6 = \$m1 * \$m2;
\$m7 = \$m1 + \$m2;
use Imager::Matrix2d qw(:handy);
# various m2d_* functions imported
# where m2d_(.*) calls Imager::Matrix2d->\$1()```

# DESCRIPTION

This class provides a simple wrapper around a reference to an array of 9 co-efficients, treated as a matrix:

``` [ 0, 1, 2,
3, 4, 5,
6, 7, 8 ]```

Most of the methods in this class are constructors. The others are overloaded operators.

Note that since Imager represents images with y increasing from top to bottom, rotation angles are clockwise, rather than counter-clockwise.

identity()

Returns the identity matrix.

rotate(degrees=>\$angle)

Creates a matrix that rotates around the origin, or around the point (x,y) if the 'x' and 'y' parameters are provided.

translate(x=>\$dx, y=>\$dy)

Translates by the specify amounts.

shear(x=>\$sx, y=>\$sy)

Shear by the given amounts.

reflect(axis=>\$axis)

Reflect around the given axis, either 'x' or 'y'.

reflect(degrees=>\$angle)

Reflect around a line drawn at the given angle from the origin.

scale(x=>\$xratio, y=>\$yratio)

Scales at the given ratios.

You can also specify a center for the scaling with the cx and cy parameters.

_mult()

Implements the overloaded '*' operator. Internal use.

Currently both the left and right-hand sides of the operator must be an Imager::Matrix2d.

Implements the overloaded binary '+' operator.

Currently both the left and right sides of the operator must be Imager::Matrix2d objects.

_string()

This returns a string containing 3 lines of text with no terminating newline.

I tried to make it fairly nicely formatted. You might disagree :)

The following functions are shortcuts to the various constructors.

These are not methods.

You can import these methods with:

`  use Imager::Matrix2d ':handy';`
m2d_identity
m2d_rotate()
m2d_translate()
m2d_shear()
m2d_reflect()

# AUTHOR

Tony Cook <tony@develop-help.com>

# BUGS

Needs a way to invert matrixes.