# Class Point3D

java.lang.Object
javafx.geometry.Point3D

All Implemented Interfaces:
  `Interpolatable<Point3D>`

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

Since:
  JavaFX 2.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Point3D`
  `ZERO`
  Point or vector with all three coordinates set to 0.

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Point3D`
  `add(double x, double y, double z)`
  Returns a point with the specified coordinates added to the coordinates of this point.
  `Point3D`
  `add(Point3D point)`
  Returns a point with the coordinates of the specified point added to the coordinates of this point.
  `double`
  `angle(double x, double y, double z)`
  Computes the angle (in degrees) between the vector represented by this point and the specified vector.
  `double`
  `angle(Point3D point)`
  Computes the angle (in degrees) between the vector represented by this point and the vector represented by the specified point.
  `double`
  `angle(Point3D p1, Point3D p2)`
  Computes the angle (in degrees) between the three points with this point as a vertex.
  `Point3D`
  `crossProduct(double x, double y, double z)`
  Computes cross product of the vector represented by this instance and the specified vector.
  `Point3D`
  `crossProduct(Point3D vector)`
  Computes cross product of the vector represented by this instance and the specified vector.
  `double`
  `distance(double x1, double y1, double z1)`
  Computes the distance between this point and point `(x1, y1, z1)`.
  `double`
  `distance(Point3D point)`
  Computes the distance between this point and the specified `point`.
  `double`
  `dotProduct(double x, double y, double z)`
  Computes dot (scalar) product of the vector represented by this instance and the specified vector.
  `double`
  `dotProduct(Point3D 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.
  `final double`
  `getZ()`
  The z coordinate.
  `int`
  `hashCode()`
  Returns a hash code for this `Point3D` object.
  `Point3D`
  `interpolate(Point3D 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.
  `Point3D`
  `midpoint(double x, double y, double z)`
  Returns a point which lies in the middle between this point and the specified coordinates.
  `Point3D`
  `midpoint(Point3D point)`
  Returns a point which lies in the middle between this point and the specified point.
  `Point3D`
  `multiply(double factor)`
  Returns a point with the coordinates of this point multiplied by the specified factor
  `Point3D`
  `normalize()`
  Normalizes the relative magnitude vector represented by this instance.
  `Point3D`
  `subtract(double x, double y, double z)`
  Returns a point with the specified coordinates subtracted from the coordinates of this point.
  `Point3D`
  `subtract(Point3D 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 `Point3D`.

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

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

- ## Field Details

  - ### ZERO

    public static final Point3D ZERO
    Point or vector with all three coordinates set to 0.

- ## Constructor Details

  - ### Point3D

    public Point3D(double x, double y, double z)
    Creates a new instance of `Point3D`.
    Parameters:
      `x` - The X coordinate of the `Point3D`
      `y` - The Y coordinate of the `Point3D`
      `z` - The Z coordinate of the `Point3D`

- ## 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

  - ### getZ

    public final double getZ()
    The z coordinate.
    Interpolation Type:
      linear
    Returns:
      the z coordinate

  - ### distance

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

  - ### distance

    public double distance(Point3D 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 Point3D add(double x, double y, double z)
    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
      `z` - the Z coordinate addition
    Returns:
      the point with added coordinates
    Since:
      JavaFX 8.0

  - ### add

    public Point3D add(Point3D 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 Point3D subtract(double x, double y, double z)
    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
      `z` - the Z coordinate subtraction
    Returns:
      the point with subtracted coordinates
    Since:
      JavaFX 8.0

  - ### subtract

    public Point3D subtract(Point3D 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

  - ### multiply

    public Point3D 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

  - ### normalize

    public Point3D 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 `Point3D` instance
    Since:
      JavaFX 8.0

  - ### midpoint

    public Point3D midpoint(double x, double y, double z)
    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
      `z` - the Z coordinate of the second endpoint
    Returns:
      the point in the middle
    Since:
      JavaFX 8.0

  - ### midpoint

    public Point3D midpoint(Point3D 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, double z)
    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
      `z` - the Z magnitude of the other vector
    Returns:
      the angle between the two vectors measured in degrees
    Since:
      JavaFX 8.0

  - ### angle

    public double angle(Point3D 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(Point3D p1, Point3D 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 the `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, double z)
    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
      `z` - the Z magnitude of the other vector
    Returns:
      the dot product of the two vectors
    Since:
      JavaFX 8.0

  - ### dotProduct

    public double dotProduct(Point3D 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, double z)
    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
      `z` - the Z magnitude of the other vector
    Returns:
      the cross product of the two vectors
    Since:
      JavaFX 8.0

  - ### crossProduct

    public Point3D crossProduct(Point3D 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 Point3D interpolate(Point3D 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<Point3D>`
    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. Two instances of `Point3D` are equal if the return values of their `getX`, `getY`, and `getZ` methods are equal.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the reference object with which to compare
    Returns:
      `true` if this `Point3D` is the same as the `obj` argument; `false` otherwise

  - ### hashCode

    public int hashCode()
    Returns a hash code for this `Point3D` object.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code for this `Point3D` object.

  - ### toString

    public String toString()
    Returns a string representation of this `Point3D`. 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`