Class Vector2D


  • public class Vector2D
    extends java.lang.Object
    A 2-dimensional mathematical vector represented by double-precision X and Y components.
    Author:
    mbdavis
    • Constructor Detail

      • Vector2D

        public Vector2D()
      • Vector2D

        public Vector2D​(double x,
                        double y)
      • Vector2D

        public Vector2D​(Vector2D 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 component
        y - 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 a Coordinate.
        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 from Coordinates.
        Parameters:
        from - the origin Coordinate
        to - 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
      • 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 sum
        frac - 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)
      • clone

        public java.lang.Object clone()
        Creates a copy of this vector
        Returns:
        a copy of this vector
      • toString

        public java.lang.String toString()
        Gets a string representation of this vector
        Overrides:
        toString in class java.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:
        equals in class java.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:
        hashCode in class java.lang.Object
        Returns:
        a hashcode for this vector