Package org.meteoinfo.jts.math
Class Vector2D
- java.lang.Object
-
- org.meteoinfo.jts.math.Vector2D
-
public class Vector2D extends java.lang.ObjectA 2-dimensional mathematical vector represented by double-precision X and Y components.
-
-
Constructor Summary
Constructors Constructor Description Vector2D()Vector2D(double x, double y)Vector2D(Coordinate v)Vector2D(Coordinate from, Coordinate to)Vector2D(Vector2D v)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Vector2Dadd(Vector2D v)doubleangle()doubleangle(Vector2D v)doubleangleTo(Vector2D v)Vector2Daverage(Vector2D v)java.lang.Objectclone()Creates a copy of this vectorstatic Vector2Dcreate(double x, double y)Creates a new vector with given X and Y components.static Vector2Dcreate(Coordinate coord)Creates a vector from aCoordinate.static Vector2Dcreate(Coordinate from, Coordinate to)Creates a vector with the direction and magnitude of the difference between the to and fromCoordinates.static Vector2Dcreate(Vector2D v)Creates a new vector from an existing one.doubledistance(Vector2D v)Computes the distance between this vector and another one.Vector2Ddivide(double d)Divides the vector by a scalar value.doubledot(Vector2D v)Computes the dot-product of two vectorsbooleanequals(java.lang.Object o)Tests if a vector o has the same values for the x and y components.doublegetComponent(int index)doublegetX()doublegetY()inthashCode()Gets a hashcode for this vector.booleanisParallel(Vector2D v)doublelength()doublelengthSquared()Vector2Dmultiply(double d)Multiplies the vector by a scalar value.Vector2Dnegate()Vector2Dnormalize()Vector2Drotate(double angle)Vector2DrotateByQuarterCircle(int numQuarters)Rotates a vector by a given number of quarter-circles (i.e.Vector2Dsubtract(Vector2D v)CoordinatetoCoordinate()java.lang.StringtoString()Gets a string representation of this vectorCoordinatetranslate(Coordinate coord)Vector2DweightedSum(Vector2D v, double frac)Computes the weighted sum of this vector with another vector, with this vector contributing a fraction of frac to the total.
-
-
-
Constructor Detail
-
Vector2D
public Vector2D()
-
Vector2D
public Vector2D(double x, double y)
-
Vector2D
public Vector2D(Vector2D v)
-
Vector2D
public Vector2D(Coordinate from, Coordinate to)
-
Vector2D
public Vector2D(Coordinate v)
-
-
Method Detail
-
create
public static Vector2D create(double x, double y)
Creates a new vector with given X and Y components.- Parameters:
x- the x componenty- the y component- Returns:
- a new vector
-
create
public static Vector2D create(Vector2D v)
Creates a new vector from an existing one.- Parameters:
v- the vector to copy- Returns:
- a new vector
-
create
public static Vector2D create(Coordinate coord)
Creates a vector from aCoordinate.- Parameters:
coord- the Coordinate to copy- Returns:
- a new vector
-
create
public static Vector2D create(Coordinate from, Coordinate to)
Creates a vector with the direction and magnitude of the difference between the to and fromCoordinates.- Parameters:
from- the origin Coordinateto- the destination Coordinate- Returns:
- a new vector
-
getX
public double getX()
-
getY
public double getY()
-
getComponent
public double getComponent(int index)
-
multiply
public Vector2D multiply(double d)
Multiplies the vector by a scalar value.- Parameters:
d- the value to multiply by- Returns:
- a new vector with the value v * d
-
divide
public Vector2D divide(double d)
Divides the vector by a scalar value.- Parameters:
d- the value to divide by- Returns:
- a new vector with the value v / d
-
negate
public Vector2D negate()
-
length
public double length()
-
lengthSquared
public double lengthSquared()
-
normalize
public Vector2D normalize()
-
weightedSum
public Vector2D weightedSum(Vector2D v, double frac)
Computes the weighted sum of this vector with another vector, with this vector contributing a fraction of frac to the total.In other words,
sum = frac * this + (1 - frac) * v
- Parameters:
v- the vector to sumfrac- the fraction of the total contributed by this vector- Returns:
- the weighted sum of the two vectors
-
distance
public double distance(Vector2D v)
Computes the distance between this vector and another one.- Parameters:
v- a vector- Returns:
- the distance between the vectors
-
dot
public double dot(Vector2D v)
Computes the dot-product of two vectors- Parameters:
v- a vector- Returns:
- the dot product of the vectors
-
angle
public double angle()
-
angle
public double angle(Vector2D v)
-
angleTo
public double angleTo(Vector2D v)
-
rotate
public Vector2D rotate(double angle)
-
rotateByQuarterCircle
public Vector2D rotateByQuarterCircle(int numQuarters)
Rotates a vector by a given number of quarter-circles (i.e. multiples of 90 degrees or Pi/2 radians). A positive number rotates counter-clockwise, a negative number rotates clockwise. Under this operation the magnitude of the vector and the absolute values of the ordinates do not change, only their sign and ordinate index.- Parameters:
numQuarters- the number of quarter-circles to rotate by- Returns:
- the rotated vector.
-
isParallel
public boolean isParallel(Vector2D v)
-
translate
public Coordinate translate(Coordinate coord)
-
toCoordinate
public Coordinate toCoordinate()
-
clone
public java.lang.Object clone()
Creates a copy of this vector- Overrides:
clonein classjava.lang.Object- Returns:
- a copy of this vector
-
toString
public java.lang.String toString()
Gets a string representation of this vector- Overrides:
toStringin classjava.lang.Object- Returns:
- a string representing this vector
-
equals
public boolean equals(java.lang.Object o)
Tests if a vector o has the same values for the x and y components.- Overrides:
equalsin classjava.lang.Object- Parameters:
o- a Vector2D with which to do the comparison.- Returns:
- true if other is a Vector2D with the same values for the x and y components.
-
hashCode
public int hashCode()
Gets a hashcode for this vector.- Overrides:
hashCodein classjava.lang.Object- Returns:
- a hashcode for this vector
-
-