Class Coord3d

java.lang.Object
org.jzy3d.maths.Coord3d
All Implemented Interfaces:
Serializable

public class Coord3d extends Object implements Serializable
A Coord3d stores a 3 dimensional coordinate for cartesian or polar mode, and provide few operators. Operators allow adding, substracting, multiplying and divising coordinate values, as well as computing the distance between two points, and converting polar and cartesian coordinates.
Author:
Martin Pernollet
See Also:
  • Field Details

    • x

      public float x
    • y

      public float y
    • z

      public float z
    • ORIGIN

      public static final Coord3d ORIGIN
      The origin is a Coord3d having value 0 for each dimension.
    • IDENTITY

      public static final Coord3d IDENTITY
      The origin is a Coord3d having value 1 for each dimension.
    • INVALID

      public static final Coord3d INVALID
      An invalid Coord2d has value NaN for each dimension.
  • Constructor Details

    • Coord3d

      public Coord3d()
      Create a 3d coordinate with value 0 for each dimension.
    • Coord3d

      public Coord3d(float xi, float yi, float zi)
      Create a 3d coordinate. When using polar mode, x represents azimuth, y represents elevation, and z represents range.
    • Coord3d

      public Coord3d(float xi, float yi)
    • Coord3d

      public Coord3d(Coord3d c)
    • Coord3d

      public Coord3d(Coord2d c, float zi)
    • Coord3d

      public Coord3d(Coord2d c, double zi)
    • Coord3d

      public Coord3d(Coord2d c)
    • Coord3d

      public Coord3d(float[] c)
    • Coord3d

      public Coord3d(double[] c)
    • Coord3d

      public Coord3d(double xi, double yi, double zi)
      Create a 3d coordinate. When using polar mode, x is azimuth, y is elevation, and z is range.
    • Coord3d

      public Coord3d(double xi, double yi)
  • Method Details

    • list

      public static List<Coord3d> list(int size)
    • list

      public static List<Coord3d> list(Coord3d... coords)
    • array

      public static Coord3d[] array(Set<Coord3d> coords)
    • getZRange

      public static Range getZRange(List<Coord3d> coords)
    • set

      public Coord3d set(Coord3d c2)
    • set

      public Coord3d set(float x, float y, float z)
    • clone

      public Coord3d clone()
      Return a duplicate of this 3d coordinate.
      Overrides:
      clone in class Object
    • getXY

      public Coord2d getXY()
      Return the x and y component as a 2d coordinate.
    • add

      public Coord3d add(Coord3d c2)
      Add a Coord3d to the current one and return the result in a new Coord3d.
      Parameters:
      c2 -
      Returns:
      the result Coord3d
    • add

      public Coord3d add(float x, float y, float z)
    • add

      public Coord3d add(double x, double y, double z)
    • addSelf

      public Coord3d addSelf(Coord3d c2)
    • addSelf

      public Coord3d addSelf(float x, float y, float z)
    • add

      public Coord3d add(float value)
      Add a value to all components of the current Coord and return the result in a new Coord3d.
      Parameters:
      value -
      Returns:
      the result Coord3d
    • addSelf

      public Coord3d addSelf(float value)
    • sub

      public Coord3d sub(Coord3d c2)
      Substract a Coord3d to the current one and return the result in a new Coord3d.
      Parameters:
      c2 -
      Returns:
      the result Coord3d
    • sub

      public Coord3d sub(float x2, float y2, float z2)
    • subSelf

      public Coord3d subSelf(Coord3d c2)
    • sub

      public Coord3d sub(float value)
      Substract a value to all components of the current Coord and return the result in a new Coord3d.
      Parameters:
      value -
      Returns:
      the result Coord3d
    • subSelf

      public Coord3d subSelf(float value)
    • mul

      public Coord3d mul(Coord3d c2)
      Multiply a Coord3d to the current one and return the result in a new Coord3d.
      Parameters:
      c2 -
      Returns:
      the result Coord3d
    • mul

      public Coord3d mul(float x, float y, float z)
    • mul

      public Coord3d mul(float value)
      Multiply all components of the current Coord and return the result in a new Coord3d.
      Parameters:
      value -
      Returns:
      the result Coord3d
    • mul

      public Coord3d mul(double value)
    • mulSelf

      public void mulSelf(Coord3d c2)
    • mulSelf

      public void mulSelf(float x, float y, float z)
    • mulSelf

      public void mulSelf(float value)
    • div

      public Coord3d div(Coord3d c2)
      Divise a Coord3d to the current one and return the result in a new Coord3d.
      Parameters:
      c2 -
      Returns:
      the result Coord3d
    • divSelf

      public void divSelf(Coord3d c2)
    • divSelf

      public void divSelf(float value)
    • divSelf

      public void divSelf(double value)
    • div

      public Coord3d div(float value)
      Divise all components of the current Coord by the same value and return the result in a new Coord3d.
      Parameters:
      value -
      Returns:
      the result Coord3d
    • negative

      public Coord3d negative()
    • cartesian

      public Coord3d cartesian()
      Converts the current Coord3d into cartesian coordinates and return the result in a new Coord3d. Assume that
      • X represent azimuth
      • Y represent elevation
      • Z represent distance
      Returns:
      the result Coord3d
    • cartesianSelf

      public Coord3d cartesianSelf()
    • polar

      public Coord3d polar()
      Converts the current Coord3d into polar coordinates and return the result in a new Coord3d.
      Returns:
      the result Coord3d
    • polarSelf

      public Coord3d polarSelf()
    • distance

      public double distance(Coord3d c)
      Compute the distance between two coordinates.
    • distanceSq

      public double distanceSq(Coord3d c)
      Compute the square distance between two coordinates.
    • magSquared

      public float magSquared()
    • getNormalizedTo

      public Coord3d getNormalizedTo(float len)
    • normalizeTo

      public Coord3d normalizeTo(float len)
    • dot

      public final float dot(Coord3d v)
      Compute the dot product (a.k.a scalar product) between the current and given vector. Remind that the dot product is 0 if vectors are perpendicular
      Parameters:
      v - input vector
    • cross

      public final Coord3d cross(Coord3d v)
      Computes the vectorial product of the current and the given vector. The result is a vector defined as a Coord3d, that is perpendicular to the plan induced by current vector and vector V.
      Parameters:
      v - input vector
    • rotate

      public final Coord3d rotate(float angleDeg, Coord3d axis)
      Applies a rotation represented by the AxisAngle notation using the Rodrigues' rotation formula.

      math implemented using http://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula

      Parameters:
      angleDeg - angle of rotation about the given axis [deg]
      axis - unit vector describing an axis of rotation
      Returns:
      rotated copy of the original vector
    • interpolateTo

      public final Coord3d interpolateTo(Coord3d v, float f)
    • toString

      public String toString()
      Return a string representation of this coordinate.
      Overrides:
      toString in class Object
    • toArray

      public float[] toArray()
      Return an array representation of this coordinate.
    • toArray

      public void toArray(float[] array, int offset)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

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

      public static Coord3d min(List<Coord3d> coords)
      Compute the component-wise minimum values of a set of coordinates.
      Parameters:
      coords -
      Returns:
      minimum value on each dimension
    • max

      public static Coord3d max(List<Coord3d> coords)
      Compute the component-wise minimum values of a set of coordinates.
      Parameters:
      coords -
      Returns:
      maximum value on each dimension
    • minMax

      public static Pair<Coord3d,Coord3d> minMax(List<Coord3d> coords)
      Compute the component-wise minimum and maximum values of a set of coordinates.
      Parameters:
      coords -
      Returns:
      maximum value on each dimension
    • add

      public static void add(List<Coord3d> coords, float x, float y, float z)
    • add

      public static void add(List<Coord3d> coords, Coord3d add)
    • sub

      public static void sub(List<Coord3d> coords, float x, float y, float z)
    • sub

      public static void sub(List<Coord3d> coords, Coord3d add)
    • mul

      public static void mul(List<Coord3d> coords, float x, float y, float z)
    • mul

      public static void mul(List<Coord3d> coords, Coord3d multiplier)
    • div

      public static void div(List<Coord3d> coords, float x, float y, float z)
    • div

      public static void div(List<Coord3d> coords, Coord3d div)
    • clone

      public static List<Coord3d> clone(List<Coord3d> coords)
    • getCoords

      public static List<Coord3d> getCoords(double[] array)
    • getCoordAt

      public static Coord3d getCoordAt(double[] array, int i)
    • getCoords

      public static List<Coord3d> getCoords(float[] array)
    • getCoordAt

      public static Coord3d getCoordAt(float[] array, int i)
    • isValid

      public boolean isValid()