# Class Point2D

java.lang.Object
javafx.geometry.Point2D

All Implemented Interfaces:
  `Interpolatable<Point2D>`

public class Point2D extends Object implements Interpolatable<Point2D>
A 2D geometric point that usually represents the x, y coordinates. It can also represent a relative magnitude vector's x, y magnitudes.

Since:
  JavaFX 2.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Point2D`
  `ZERO`
  Point or vector with both coordinates set to 0.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Point2D(double x, double y)`
  Creates a new instance of `Point2D`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Point2D`
  `add(double x, double y)`
  Returns a point with the specified coordinates added to the coordinates of this point.
  `Point2D`
  `add(Point2D point)`
  Returns a point with the coordinates of the specified point added to the coordinates of this point.
  `double`
  `angle(double x, double y)`
  Computes the angle (in degrees) between the vector represented by this point and the specified vector.
  `double`
  `angle(Point2D point)`
  Computes the angle (in degrees) between the vector represented by this point and the vector represented by the specified point.
  `double`
  `angle(Point2D p1, Point2D p2)`
  Computes the angle (in degrees) between the three points with this point as a vertex.
  `Point3D`
  `crossProduct(double x, double y)`
  Computes cross product of the vector represented by this instance and the specified vector.
  `Point3D`
  `crossProduct(Point2D vector)`
  Computes cross product of the vector represented by this instance and the specified vector.
  `double`
  `distance(double x1, double y1)`
  Computes the distance between this point and point `(x1, y1)`.
  `double`
  `distance(Point2D point)`
  Computes the distance between this point and the specified `point`.
  `double`
  `dotProduct(double x, double y)`
  Computes dot (scalar) product of the vector represented by this instance and the specified vector.
  `double`
  `dotProduct(Point2D vector)`
  Computes dot (scalar) product of the vector represented by this instance and the specified vector.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `final double`
  `getX()`
  The x coordinate.
  `final double`
  `getY()`
  The y coordinate.
  `int`
  `hashCode()`
  Returns a hash code value for the point.
  `Point2D`
  `interpolate(Point2D endValue, double t)`
  Returns an intermediate value between the value of this `Interpolatable` and the specified `endValue` using the linear interpolation factor `t`, ranging from 0 (inclusive) to 1 (inclusive).
  `double`
  `magnitude()`
  Computes magnitude (length) of the relative magnitude vector represented by this instance.
  `Point2D`
  `midpoint(double x, double y)`
  Returns a point which lies in the middle between this point and the specified coordinates.
  `Point2D`
  `midpoint(Point2D point)`
  Returns a point which lies in the middle between this point and the specified point.
  `Point2D`
  `multiply(double factor)`
  Returns a point with the coordinates of this point multiplied by the specified factor
  `Point2D`
  `normalize()`
  Normalizes the relative magnitude vector represented by this instance.
  `Point2D`
  `subtract(double x, double y)`
  Returns a point with the specified coordinates subtracted from the coordinates of this point.
  `Point2D`
  `subtract(Point2D point)`
  Returns a point with the coordinates of the specified point subtracted from the coordinates of this point.
  `String`
  `toString()`
  Returns a string representation of this `Point2D`.

  ### Methods declared in class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### ZERO

    public static final Point2D ZERO
    Point or vector with both coordinates set to 0.

- ## Constructor Details

  - ### Point2D

    public Point2D(double x, double y)
    Creates a new instance of `Point2D`.
    Parameters:
      `x` - the x coordinate of the point
      `y` - the y coordinate of the point

- ## Method Details

  - ### getX

    public final double getX()
    The x coordinate.
    Interpolation Type:
      linear
    Returns:
      the x coordinate

  - ### getY

    public final double getY()
    The y coordinate.
    Interpolation Type:
      linear
    Returns:
      the y coordinate

  - ### distance

    public double distance(double x1, double y1)
    Computes the distance between this point and point `(x1, y1)`.
    Parameters:
      `x1` - the x coordinate of other point
      `y1` - the y coordinate of other point
    Returns:
      the distance between this point and point `(x1, y1)`.

  - ### distance

    public double distance(Point2D point)
    Computes the distance between this point and the specified `point`.
    Parameters:
      `point` - the other point
    Returns:
      the distance between this point and the specified `point`.
    Throws:
      `NullPointerException` - if the specified `point` is null

  - ### add

    public Point2D add(double x, double y)
    Returns a point with the specified coordinates added to the coordinates of this point.
    Parameters:
      `x` - the X coordinate addition
      `y` - the Y coordinate addition
    Returns:
      the point with added coordinates
    Since:
      JavaFX 8.0

  - ### add

    public Point2D add(Point2D point)
    Returns a point with the coordinates of the specified point added to the coordinates of this point.
    Parameters:
      `point` - the point whose coordinates are to be added
    Returns:
      the point with added coordinates
    Throws:
      `NullPointerException` - if the specified `point` is null
    Since:
      JavaFX 8.0

  - ### subtract

    public Point2D subtract(double x, double y)
    Returns a point with the specified coordinates subtracted from the coordinates of this point.
    Parameters:
      `x` - the X coordinate subtraction
      `y` - the Y coordinate subtraction
    Returns:
      the point with subtracted coordinates
    Since:
      JavaFX 8.0

  - ### multiply

    public Point2D multiply(double factor)
    Returns a point with the coordinates of this point multiplied by the specified factor
    Parameters:
      `factor` - the factor multiplying the coordinates
    Returns:
      the point with multiplied coordinates
    Since:
      JavaFX 8.0

  - ### subtract

    public Point2D subtract(Point2D point)
    Returns a point with the coordinates of the specified point subtracted from the coordinates of this point.
    Parameters:
      `point` - the point whose coordinates are to be subtracted
    Returns:
      the point with subtracted coordinates
    Throws:
      `NullPointerException` - if the specified `point` is null
    Since:
      JavaFX 8.0

  - ### normalize

    public Point2D normalize()
    Normalizes the relative magnitude vector represented by this instance. Returns a vector with the same direction and magnitude equal to 1. If this is a zero vector, a zero vector is returned.
    Returns:
      the normalized vector represented by a `Point2D` instance
    Since:
      JavaFX 8.0

  - ### midpoint

    public Point2D midpoint(double x, double y)
    Returns a point which lies in the middle between this point and the specified coordinates.
    Parameters:
      `x` - the X coordinate of the second endpoint
      `y` - the Y coordinate of the second endpoint
    Returns:
      the point in the middle
    Since:
      JavaFX 8.0

  - ### midpoint

    public Point2D midpoint(Point2D point)
    Returns a point which lies in the middle between this point and the specified point.
    Parameters:
      `point` - the other endpoint
    Returns:
      the point in the middle
    Throws:
      `NullPointerException` - if the specified `point` is null
    Since:
      JavaFX 8.0

  - ### angle

    public double angle(double x, double y)
    Computes the angle (in degrees) between the vector represented by this point and the specified vector.
    Parameters:
      `x` - the X magnitude of the other vector
      `y` - the Y magnitude of the other vector
    Returns:
      the angle between the two vectors measured in degrees
    Since:
      JavaFX 8.0

  - ### angle

    public double angle(Point2D point)
    Computes the angle (in degrees) between the vector represented by this point and the vector represented by the specified point.
    Parameters:
      `point` - the other vector
    Returns:
      the angle between the two vectors measured in degrees, `NaN` if any of the two vectors is a zero vector
    Throws:
      `NullPointerException` - if the specified `point` is null
    Since:
      JavaFX 8.0

  - ### angle

    public double angle(Point2D p1, Point2D p2)
    Computes the angle (in degrees) between the three points with this point as a vertex.
    Parameters:
      `p1` - one point
      `p2` - other point
    Returns:
      angle between the vectors (this, p1) and (this, p2) measured in degrees, `NaN` if the three points are not different from one another
    Throws:
      `NullPointerException` - if `p1` or `p2` is null
    Since:
      JavaFX 8.0

  - ### magnitude

    public double magnitude()
    Computes magnitude (length) of the relative magnitude vector represented by this instance.
    Returns:
      magnitude of the vector
    Since:
      JavaFX 8.0

  - ### dotProduct

    public double dotProduct(double x, double y)
    Computes dot (scalar) product of the vector represented by this instance and the specified vector.
    Parameters:
      `x` - the X magnitude of the other vector
      `y` - the Y magnitude of the other vector
    Returns:
      the dot product of the two vectors
    Since:
      JavaFX 8.0

  - ### dotProduct

    public double dotProduct(Point2D vector)
    Computes dot (scalar) product of the vector represented by this instance and the specified vector.
    Parameters:
      `vector` - the other vector
    Returns:
      the dot product of the two vectors
    Throws:
      `NullPointerException` - if the specified `vector` is null
    Since:
      JavaFX 8.0

  - ### crossProduct

    public Point3D crossProduct(double x, double y)
    Computes cross product of the vector represented by this instance and the specified vector.
    Parameters:
      `x` - the X magnitude of the other vector
      `y` - the Y magnitude of the other vector
    Returns:
      the cross product of the two vectors
    Since:
      JavaFX 8.0

  - ### crossProduct

    public Point3D crossProduct(Point2D vector)
    Computes cross product of the vector represented by this instance and the specified vector.
    Parameters:
      `vector` - the other vector
    Returns:
      the cross product of the two vectors
    Throws:
      `NullPointerException` - if the specified `vector` is null
    Since:
      JavaFX 8.0

  - ### interpolate

    public Point2D interpolate(Point2D endValue, double t)
    Returns an intermediate value between the value of this `Interpolatable` and the specified `endValue` using the linear interpolation factor `t`, ranging from 0 (inclusive) to 1 (inclusive).

    The returned value might not be a new instance; the implementation might also return one of the two existing instances if the intermediate value would be equal to one of the existing values. However, this is an optimization and applications should not assume any particular identity of the returned value.

    Specified by:
      `interpolate` in interface `Interpolatable<Point2D>`
    Parameters:
      `endValue` - the target value
      `t` - the interpolation factor
    Returns:
      the intermediate value
    Throws:
      `NullPointerException` - if `endValue` is `null`
    Since:
      13

  - ### equals

    public boolean equals(Object obj)
    Indicates whether some other object is "equal to" this one.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the reference object with which to compare
    Returns:
      true if this point is the same as the obj argument; false otherwise

  - ### hashCode

    public int hashCode()
    Returns a hash code value for the point.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code value for the point.

  - ### toString

    public String toString()
    Returns a string representation of this `Point2D`. This method is intended to be used only for informational purposes. The content and format of the returned string might vary between implementations. The returned string might be empty but cannot be `null`.
    Overrides:
      `toString` in class `Object`