math.geom3d
Class Vector3D

Package class diagram package Vector3D
java.lang.Object
  extended by math.geom3d.Vector3D

public class Vector3D
extends Object

Define a vector in 3 Dimensions. Provides methods to compute cross product and dot product, addition and subtraction of vectors.


Field Summary
protected  double x
           
protected  double y
           
protected  double z
           
 
Constructor Summary
Vector3D()
          Constructs a new Vector3D initialized with x=1, y=0 and z=0.
Vector3D(double x, double y, double z)
          Base constructor, using coordinates in each direction.
Vector3D(Point3D point)
          Construct a new vector between origin and a 3D point.
Vector3D(Point3D point1, Point3D point2)
          construct a new vector between two points, the vector is leading from the 'point1' to 'point2'.
 
Method Summary
static Vector3D crossProduct(Vector3D v1, Vector3D v2)
          Computes the cross product of the two vectors.
static double dotProduct(Vector3D v1, Vector3D v2)
          Computes the dot product of the two vectors, defined by :
 boolean equals(Object obj)
           
 double getLength()
          Alias for getNorm().
 double getNorm()
          Computes the norm of the vector
 Vector3D getNormalizedVector()
          Returns the vector with same direction as this one, but with norm equal to 1.
 double getNormSq()
          Computes the square of the norm of the vector.
 Vector3D getOpposite()
          Returns the opposite vector v2 of this, such that the sum of this and v2 equals the null vector.
 double getX()
           
 double getY()
           
 double getZ()
           
static boolean isColinear(Vector3D v1, Vector3D v2)
          test if the two vectors are colinear
static boolean isOrthogonal(Vector3D v1, Vector3D v2)
          test if the two vectors are orthogonal
 Vector3D minus(Vector3D v)
          Return the subtraction of current vector with vector given as parameter.
 void normalize()
          Normalizes the vector, such that its norms becomes 1.
 Vector3D plus(Vector3D v)
          Return the sum of current vector with vector given as parameter.
 void setVector(double x, double y, double z)
           
 void setX(double x)
           
 void setY(double y)
           
 void setZ(double z)
           
 Vector3D times(double k)
          Multiplies this vector by a constant.
 Vector3D transform(AffineTransform3D trans)
          Transform the vector, by using only the first 4 parameters of the transform.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

x

protected double x

y

protected double y

z

protected double z
Constructor Detail

Vector3D

public Vector3D()
Constructs a new Vector3D initialized with x=1, y=0 and z=0.


Vector3D

public Vector3D(double x,
                double y,
                double z)
Base constructor, using coordinates in each direction.


Vector3D

public Vector3D(Point3D point)
Construct a new vector between origin and a 3D point.


Vector3D

public Vector3D(Point3D point1,
                Point3D point2)
construct a new vector between two points, the vector is leading from the 'point1' to 'point2'.

Method Detail

dotProduct

public static final double dotProduct(Vector3D v1,
                                      Vector3D v2)
Computes the dot product of the two vectors, defined by :

x1*x2 + y1*y2 + z1*z2

Dot product is zero if the vectors defined by the 2 vectors are orthogonal. It is positive if vectors are in the same direction, and negative if they are in opposite direction.


crossProduct

public static final Vector3D crossProduct(Vector3D v1,
                                          Vector3D v2)
Computes the cross product of the two vectors. Cross product is zero for colinear vectors. It is positive if angle between vector 1 and vector 2 is comprised between 0 and PI, and negative otherwise.


isColinear

public static final boolean isColinear(Vector3D v1,
                                       Vector3D v2)
test if the two vectors are colinear

Returns:
true if the vectors are colinear

isOrthogonal

public static final boolean isOrthogonal(Vector3D v1,
                                         Vector3D v2)
test if the two vectors are orthogonal

Returns:
true if the vectors are orthogonal

getX

public double getX()

setX

public void setX(double x)

getY

public double getY()

setY

public void setY(double y)

getZ

public double getZ()

setZ

public void setZ(double z)

setVector

public void setVector(double x,
                      double y,
                      double z)

plus

public Vector3D plus(Vector3D v)
Return the sum of current vector with vector given as parameter. Inner fields are not modified.


minus

public Vector3D minus(Vector3D v)
Return the subtraction of current vector with vector given as parameter. Inner fields are not modified.


times

public Vector3D times(double k)
Multiplies this vector by a constant.


getOpposite

public Vector3D getOpposite()
Returns the opposite vector v2 of this, such that the sum of this and v2 equals the null vector.

Returns:
the vector opposite to this.

getNorm

public double getNorm()
Computes the norm of the vector

Returns:
the euclidean norm of the vector

getLength

public double getLength()
Alias for getNorm().

Returns:

getNormSq

public double getNormSq()
Computes the square of the norm of the vector. This avoids to compute the square root.

Returns:
the euclidean norm of the vector

normalize

public void normalize()
Normalizes the vector, such that its norms becomes 1.


getNormalizedVector

public Vector3D getNormalizedVector()
Returns the vector with same direction as this one, but with norm equal to 1.


transform

public Vector3D transform(AffineTransform3D trans)
Transform the vector, by using only the first 4 parameters of the transform. Translation of a vector returns the same vector.

Parameters:
trans - an affine transform
Returns:
the transformed vector.

equals

public boolean equals(Object obj)
Overrides:
equals in class Object


Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.