public class Vector2D extends Object implements Vector<Euclidean2D>
Instances of this class are guaranteed to be immutable.
Modifier and Type | Field and Description |
---|---|
static Vector2D |
NaN
A vector with all coordinates set to NaN.
|
static Vector2D |
NEGATIVE_INFINITY
A vector with all coordinates set to negative infinity.
|
static Vector2D |
POSITIVE_INFINITY
A vector with all coordinates set to positive infinity.
|
static Vector2D |
ZERO
Origin (coordinates: 0, 0).
|
Constructor and Description |
---|
Vector2D(double[] v)
Simple constructor.
|
Vector2D(double xIn,
double yIn)
Simple constructor.
|
Vector2D(double a,
Vector2D u)
Multiplicative constructor
Build a vector from another one and a scale factor.
|
Vector2D(double a1,
Vector2D u1,
double a2,
Vector2D u2)
Linear constructor
Build a vector from two other ones and corresponding scale factors.
|
Vector2D(double a1,
Vector2D u1,
double a2,
Vector2D u2,
double a3,
Vector2D u3)
Linear constructor
Build a vector from three other ones and corresponding scale factors.
|
Vector2D(double a1,
Vector2D u1,
double a2,
Vector2D u2,
double a3,
Vector2D u3,
double a4,
Vector2D u4)
Linear constructor
Build a vector from four other ones and corresponding scale factors.
|
Modifier and Type | Method and Description |
---|---|
Vector2D |
add(double factor,
Vector<Euclidean2D> v)
Add a scaled vector to the instance.
|
Vector2D |
add(Vector<Euclidean2D> v)
Add a vector to the instance.
|
double |
distance(Vector<Euclidean2D> p)
Compute the distance between the instance and another vector according to the L2 norm.
|
static double |
distance(Vector2D p1,
Vector2D p2)
Compute the distance between two vectors according to the L2 norm.
|
double |
distance1(Vector<Euclidean2D> p)
Compute the distance between the instance and another vector according to the L1 norm.
|
double |
distanceInf(Vector<Euclidean2D> p)
Compute the distance between the instance and another vector according to the L∞ norm.
|
static double |
distanceInf(Vector2D p1,
Vector2D p2)
Compute the distance between two vectors according to the L∞ norm.
|
double |
distanceSq(Vector<Euclidean2D> p)
Compute the square of the distance between the instance and another vector.
|
static double |
distanceSq(Vector2D p1,
Vector2D p2)
Compute the square of the distance between two vectors.
|
double |
dotProduct(Vector<Euclidean2D> v)
Compute the dot-product of the instance and another vector.
|
boolean |
equals(Object other)
Test for the equality of two 2D vectors.
|
double |
getNorm()
Get the L2 norm for the vector.
|
double |
getNorm1()
Get the L1 norm for the vector.
|
double |
getNormInf()
Get the L∞ norm for the vector.
|
double |
getNormSq()
Get the square of the norm for the vector.
|
RealVector |
getRealVector()
Get a RealVector with identical data.
|
Space |
getSpace()
Get the space to which the vector belongs.
|
double |
getX()
Get the abscissa of the vector.
|
double |
getY()
Get the ordinate of the vector.
|
Vector2D |
getZero()
Get the null vector of the vectorial space or origin point of the affine space.
|
int |
hashCode()
Get a hashCode for the 2D vector.
|
boolean |
isInfinite()
Returns true if any coordinate of this vector is infinite and none are NaN;
false otherwise
|
boolean |
isNaN()
Returns true if any coordinate of this vector is NaN; false otherwise
|
Vector2D |
negate()
Get the opposite of the instance.
|
Vector2D |
normalize()
Get a normalized vector aligned with the instance.
|
Vector2D |
scalarMultiply(double a)
Multiply the instance by a scalar.
|
Vector2D |
subtract(double factor,
Vector<Euclidean2D> v)
Subtract a scaled vector from the instance.
|
Vector2D |
subtract(Vector<Euclidean2D> p)
Subtract a vector from the instance.
|
double[] |
toArray()
Get the vector coordinates as a dimension 2 array.
|
String |
toString()
Get a string representation of this vector.
|
String |
toString(NumberFormat format)
Get a string representation of this vector.
|
public static final Vector2D ZERO
public static final Vector2D NaN
public static final Vector2D POSITIVE_INFINITY
public static final Vector2D NEGATIVE_INFINITY
public Vector2D(double xIn, double yIn)
public Vector2D(double[] v)
v
- coordinates arrayDimensionMismatchException
- if array does not have 2 elementstoArray()
public Vector2D(double a, Vector2D u)
a
- scale factoru
- base (unscaled) vectorpublic Vector2D(double a1, Vector2D u1, double a2, Vector2D u2)
a1
- first scale factoru1
- first base (unscaled) vectora2
- second scale factoru2
- second base (unscaled) vectorpublic Vector2D(double a1, Vector2D u1, double a2, Vector2D u2, double a3, Vector2D u3)
a1
- first scale factoru1
- first base (unscaled) vectora2
- second scale factoru2
- second base (unscaled) vectora3
- third scale factoru3
- third base (unscaled) vectorpublic Vector2D(double a1, Vector2D u1, double a2, Vector2D u2, double a3, Vector2D u3, double a4, Vector2D u4)
a1
- first scale factoru1
- first base (unscaled) vectora2
- second scale factoru2
- second base (unscaled) vectora3
- third scale factoru3
- third base (unscaled) vectora4
- fourth scale factoru4
- fourth base (unscaled) vectorpublic double getX()
Vector2D(double, double)
public double getY()
Vector2D(double, double)
public double[] toArray()
Vector2D(double[])
public Space getSpace()
getSpace
in interface Vector<Euclidean2D>
public Vector2D getZero()
getZero
in interface Vector<Euclidean2D>
public double getNorm1()
getNorm1
in interface Vector<Euclidean2D>
public double getNorm()
getNorm
in interface Vector<Euclidean2D>
public double getNormSq()
getNormSq
in interface Vector<Euclidean2D>
public double getNormInf()
getNormInf
in interface Vector<Euclidean2D>
public Vector2D add(Vector<Euclidean2D> v)
add
in interface Vector<Euclidean2D>
v
- vector to addpublic Vector2D add(double factor, Vector<Euclidean2D> v)
add
in interface Vector<Euclidean2D>
factor
- scale factor to apply to v before adding itv
- vector to addpublic Vector2D subtract(Vector<Euclidean2D> p)
subtract
in interface Vector<Euclidean2D>
p
- vector to subtractpublic Vector2D subtract(double factor, Vector<Euclidean2D> v)
subtract
in interface Vector<Euclidean2D>
factor
- scale factor to apply to v before subtracting itv
- vector to subtractpublic Vector2D normalize()
normalize
in interface Vector<Euclidean2D>
public Vector2D negate()
negate
in interface Vector<Euclidean2D>
public Vector2D scalarMultiply(double a)
scalarMultiply
in interface Vector<Euclidean2D>
a
- scalarpublic boolean isNaN()
isNaN
in interface Vector<Euclidean2D>
public boolean isInfinite()
isInfinite
in interface Vector<Euclidean2D>
public double distance1(Vector<Euclidean2D> p)
Calling this method is equivalent to calling: q.subtract(p).getNorm1()
except that no intermediate
vector is built
distance1
in interface Vector<Euclidean2D>
p
- second vectorpublic double distance(Vector<Euclidean2D> p)
Calling this method is equivalent to calling: q.subtract(p).getNorm()
except that no intermediate
vector is built
distance
in interface Vector<Euclidean2D>
p
- second vectorpublic double distanceInf(Vector<Euclidean2D> p)
Calling this method is equivalent to calling: q.subtract(p).getNormInf()
except that no intermediate
vector is built
distanceInf
in interface Vector<Euclidean2D>
p
- second vectorpublic double distanceSq(Vector<Euclidean2D> p)
Calling this method is equivalent to calling: q.subtract(p).getNormSq()
except that no intermediate
vector is built
distanceSq
in interface Vector<Euclidean2D>
p
- second vectorpublic double dotProduct(Vector<Euclidean2D> v)
dotProduct
in interface Vector<Euclidean2D>
v
- second vectorpublic static double distance(Vector2D p1, Vector2D p2)
Calling this method is equivalent to calling: p1.subtract(p2).getNorm()
except that no intermediate
vector is built
p1
- first vectorp2
- second vectorpublic static double distanceInf(Vector2D p1, Vector2D p2)
Calling this method is equivalent to calling: p1.subtract(p2).getNormInf()
except that no
intermediate vector is built
p1
- first vectorp2
- second vectorpublic static double distanceSq(Vector2D p1, Vector2D p2)
Calling this method is equivalent to calling: p1.subtract(p2).getNormSq()
except that no
intermediate vector is built
p1
- first vectorp2
- second vectorpublic boolean equals(Object other)
If all coordinates of two 2D vectors are exactly the same, and none are Double.NaN
, the two 2D
vectors are considered to be equal.
NaN
coordinates are considered to affect globally the vector and be equals to each other - i.e, if
either (or all) coordinates of the 2D vector are equal to Double.NaN
, the 2D vector is equal to
NaN
.
public int hashCode()
All NaN values have the same hash code.
public String toString()
public String toString(NumberFormat format)
toString
in interface Vector<Euclidean2D>
format
- the custom format for componentspublic RealVector getRealVector()
getRealVector
in interface Vector<Euclidean2D>
RealVector
Copyright © 2020 CNES. All rights reserved.