NAME

Math::Vec2 - Perl class to represent 2d vectors

TREE

-+- Math::Vector -+- Math::Vec2

SEE ALSO

PDL for scientific and bulk numeric data processing and display

Math

Math::Vectors

Math::Color, Math::ColorRGBA, Math::Image, Math::Vec2, Math::Vec3, Math::Rotation

SYNOPSIS

        use Math::Vec2;
        my $v = new Math::Vec2;  # Make a new Vec2

        my $v1 = new Math::Vec2(0,1);

DESCRIPTION

Default value

        0 0

OPERATORS

Summary

        '!'             =>   Returns true if the length of this vector is 0
        
        '<'             =>   Numerical gt. Compares the length of this vector with a vector or a scalar value.
        '<='            =>   Numerical le. Compares the length of this vector with a vector or a scalar value.
        '>'             =>   Numerical lt. Compares the length of this vector with a vector or a scalar value.
        '>='            =>   Numerical ge. Compares the length of this vector with a vector or a scalar value.
        '<=>'           =>   Numerical cmp. Compares the length of this vector with a vector or a scalar value.
        '=='            =>   Numerical eq. Performs a componentwise equation.
        '!='            =>   Numerical ne. Performs a componentwise equation.
        
        'lt'            =>   Stringwise lt
        'le'            =>   Stringwise le
        'gt'            =>   Stringwise gt
        'ge'            =>   Stringwise ge
        'cmp'           =>   Stringwise cmp
        'eq'            =>   Stringwise eq
        'ne'            =>   Stringwise ne
        
        'bool'          =>   Returns true if the length of this vector is not 0
        '0+'            =>   Numeric conversion operator. Returns the length of this vector.
        
        'abs'           =>   Performs a componentwise abs.
        'neg'           =>   Performs a componentwise negation.  
        
        '++'            =>   Increment components     
        '--'            =>   Decrement components     
        '+='            =>   Add a vector
        '-='            =>   Subtract a vector
        '*='            =>   Multiply with a vector or a scalar value.
        '/='            =>   Divide with a vector or a scalar value.
        '**='           =>   Power
        '%='            =>   Modulo fmod
        
        '+'             =>   Add two vectors
        '-'             =>   Subtract vectors
        '*'             =>   Multiply this vector with a vector or a scalar value.
        '/'             =>   Divide this vector with a vector or a scalar value.
        '**'            =>   Returns a power of this vector.
        '%'             =>   Modulo fmod
        '.'             =>   Returns the dot product of two vectors.
        
        '""'            =>   Returns a string representation of the vector.

METHODS

getDefaultValue

Get the default value as array ref

        $default = $v1->getDefaultValue;
        @default = @{ Math::Vec2->getDefaultValue };

        $n = @{ Math::Vec2->getDefaultValue };

setX(x)

Sets the first value of the vector

        $v1->setX(1);

        $v1->[0] = 1;

setY(y)

Sets the second value of the vector

        $v1->setY(2);

        $v1->[1] = 2;

getX

Returns the first value of the vector.

        $x = $v1->getX;
        $x = $v1->[0];

getY

Returns the second value of the vector.

        $y = $v1->getY;
        $y = $v1->[1];

negate

This is used to overload the 'neg' operator.

        $v = $v1->negate;
        $v = -$v1;

add(vec2)

This is used to overload the '+' operator.

        $v = $v1->add($v2);
        $v = $v1 + $v2;
        $v = [8, 2] + $v1;
        $v1 += $v2;

subtract(vec2)

This is used to overload the '-' operator.

        $v = $v1->subtract($v2);
        $v = $v1 - $v2;
        $v = [8, 2] - $v1;
        $v1 -= $v2;

multiply(vec2 or scalar)

This is used to overload the '*' operator.

        $v = $v1 * 2;
        $v = $v1 * [3, 5];
        $v = [8, 2] * $v1;
        $v = $v1 * $v1;
        $v1 *= 2;
        
        $v = $v1->multiply(2);

divide(vec2 or scalar)

This is used to overload the '/' operator.

        $v = $v1 / 2;
        $v1 /= 2;
        $v = $v1 / [3, 7];
        $v = [8, 2] / $v1;
        $v = $v1 / $v1; # unit vector
        
        $v = $v1->divide(2);

dot(vec2)

This is used to overload the '.' operator.

        $s = $v1->dot($v2);
        $s = $v1 . $v2;
        $s = $v1 . [ 2, 3 ];

length

Returns the length of the vector This is used to overload the '+0' operator.

        $l = $v1->length;

normalize

        $v = $v1->normalize;

SEE ALSO

PDL for scientific and bulk numeric data processing and display

Math

Math::Vectors

Math::Color, Math::ColorRGBA, Math::Image, Math::Vec2, Math::Vec3, Math::Rotation

BUGS & SUGGESTIONS

If you run into a miscalculation please drop the author a note.

ARRANGED BY

Holger Seelig holger.seelig@yahoo.de

COPYRIGHT

This is free software; you can redistribute it and/or modify it under the same terms as Perl itself.