NAME
Math::Shape::Vector - A 2d vector object in cartesian space
VERSION
version 0.04
SYNOPSIS
use Math::Shape::Vector;
my $v1 = Math::Shape::Vector->new(3, 5);
my $v2 = Math::Shape::Vector->new(1, 17);
$v1->add_vector($v2);
$v1->negate;
$v1->multiply(5);
$v1->is_equal($v2);
METHODS
new
Create a new vector. Requires two numerical arguments for the origin and magnitude.
my $vector = Math::Shape::Vector->new(3, 5);
add_vector
Adds a vector to the vector object, updating its x & y values.
$vector->add_vector($vector_2);
subtract_vector
Subtracts a vector from the vector object, updating its x & y values.
$vector->subtract_vector($vector_2);
negate
Negates the vector's values e.g. (1,3) becomes (-1, -3).
$vector->negate();
is_equal
Compares a vector to the vector object, returning 1 if they are the same or 0 if they are different.
$vector->is_equal($vector_2);
multiply
Multiplies the vector's x and y values by a number.
$vector->multiply(3);
divide
Divides the vector's x and y values by a number.
$vector->divide(2);
rotate
Rotates the vector in radians.
use Math::Trig ':pi';
$vector->rotate(pi);
get_dot_product
Returns the dot product. Requires another Math::Shape::Vector object as an argument.
get_length
Returns the vector length.
$vector->get_length;
convert_to_unit_vector
Converts the vector to have a length of 1.
$vector->convert_to_unit_vector;
project
Maps the vector to another vector. Requires a Math::Shape::Vector object as an argument.
$vector->project($vector_2);
REPOSITORY
https://github.com/sillymoose/Math-Shape-Vector.git
THANKS
The source code for this object was inspired by the code in Thomas Schwarzl's 2d collision detection book http://www.collisiondetection2d.net.
AUTHOR
David Farrell <sillymoos@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by David Farrell.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.