NAME
Math::GMatrix - Extension of Math::Matrix for (2D graphics-)vector manipulation
SYNOPSIS
use Math::GMatrix;
DESCRIPTION
The following methods are available:
new
Constructor arguments are a list of references to arrays of the same length. The arrays are copied. The method returns undef in case of error.
$a = new Math::Matrix ([rand,rand,rand],
[rand,rand,rand],
[rand,rand,rand]);
As s special case you can pass a single argument 'I' for getting an identity matrix.
If you call new
as method, a zero filled matrix with identical deminsions is returned.
xform
You can transform one or more vectors by calling:
@V1=(1.5,3.7);
@V2 = $M->xform(@V1);
@L1=( [1.5,3.7], [4.6,6.8], [5.1,-0.7] );
@L2 = $M->xform(@L1);
translate
You can pan (move by x and y offset) your graphics by calling:
$M2 = $M->translate(2.5,10.2);
rotate
You can rotate your graphics by calling:
$M2 = $M->rotate(-90);
scale
You can scale (factor_x and factor_y) your graphics by calling:
$M2 = $M->rotate(2,2);
EXAMPLE
@ListOfVectors = [
[0,1],
[3,5],
[2,7],
[8,-1],
];
$paperwidth = 21; # DIN A4 is 21x29.7 cm
$M = new Math::Matrix('I'); # get an identity matrix
$M = $M->translate(-1,-1)->rotate(90)->translate($paperwidth-1,1);
@Result = $M->xform(@ListOfVectors);
AUTHOR
A. Cester, <albert.cester@web.de>