public class Vector
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable
The internal fields are immutable - they are set once at the construction of the vector. All methods returning a vector construct a new vector.
The vector can be treated both in Cartesian and in polar form. Like below:
Constructor and Description |
---|
Vector()
Constructs the zero vector.
|
Vector(Angle angle,
double length)
Constructs a vector by polar coordinates.
|
Vector(double length,
Angle angle)
Constructs a vector by polar coordinates.
|
Vector(double x,
double y)
Constructs a vector by Cartesian coordinates (x,y).
|
Modifier and Type | Method and Description |
---|---|
Vector |
add(Vector v)
Addition of two vectors.
|
Vector |
clone() |
double |
distanceTo(Vector b)
Calculates the distance between two vectors.
|
boolean |
equals(java.lang.Object obj) |
Angle |
getAngle()
Gets the polar angle of this vector.
|
double |
getLength()
Returns the length of this vector
|
Vector |
getNegative()
The inverse vector has same length and opposite direction.
|
Vector |
getNormal()
Scales this vector to a length of 1.
|
double |
getX()
Returns the Cartesian x component.
|
double |
getY()
Returns the Cartesian y component.
|
int |
hashCode() |
Vector |
mult(double factor)
Scales this vector by a given factor.
|
double |
projection(Angle angle)
Projects the vector onto a given Angle.
|
Vector |
rotate(Angle angle)
Rotates a vector in clockwise direction.
|
Vector |
sub(Vector v)
Subtracts a given vector from this vector.
|
java.lang.String |
toString() |
double |
vectorProduct(Vector b)
The vector product in the two dimensional space results in a scalar value.
|
public static final Vector ZERO
public Vector()
public Vector(Angle angle, double length)
angle
- length
- public Vector(double length, Angle angle)
length
- angle
- public Vector(double x, double y)
x
- doubley
- doublepublic Vector add(Vector v)
v
- Summandpublic Vector clone()
clone
in class java.lang.Object
public double distanceTo(Vector b)
Note that the vectors must share the same reference system.
b
- Vectorpublic boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public Angle getAngle()
public double getLength()
public Vector getNegative()
public Vector getNormal()
public double getX()
public double getY()
public int hashCode()
hashCode
in class java.lang.Object
public Vector mult(double factor)
factor
- public double projection(Angle angle)
angle
- - projection anglepublic Vector rotate(Angle angle)
angle
- rotation angle (>0 for clockwise rotation)public Vector sub(Vector v)
v
- Subtrahendpublic java.lang.String toString()
toString
in class java.lang.Object
public double vectorProduct(Vector b)
b
- - second parameter of the vector product