The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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>