Imager::Matrix2d - simple wrapper for matrix construction
use Imager::Matrix2d; $m1 = Imager::Matrix2d->identity; $m2 = Imager::Matrix2d->rotate(radians=>$angle, x=>$cx, y=>$cy); $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()
[ 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.
You can also specify a center for the scaling with the cx and cy parameters.
Currently both the left and right-hand sides of the operator must be an Imager::Matrix2d.
Currently both the left and right sides of the operator must be Imager::Matrix2d objects.
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';