类 FieldVector3D<T extends CalculusFieldElement<T>>

java.lang.Object
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T>
类型参数:
T - 字段元素的类型
所有已实现的接口:
Serializable, FieldBlendable<FieldVector3D<T>,T>

public class FieldVector3D<T extends CalculusFieldElement<T>> extends Object implements FieldBlendable<FieldVector3D<T>,T>, Serializable
这个类是使用CalculusFieldElement重新实现的Vector3D

此类的实例保证是不可变的。

另请参阅:
  • 构造器详细资料

    • FieldVector3D

      public FieldVector3D(T x, T y, T z)
      简单构造器。根据坐标构建一个向量
      参数:
      x - 横坐标
      y - 纵坐标
      z - 高度
      另请参阅:
    • FieldVector3D

      public FieldVector3D(T[] v) throws MathIllegalArgumentException
      简单构造器。根据坐标构建一个向量
      参数:
      v - coordinates array
      抛出:
      MathIllegalArgumentException - if array does not have 3 elements
      另请参阅:
    • FieldVector3D

      public FieldVector3D(T alpha, T delta)
      Simple constructor. Build a vector from its azimuthal coordinates
      参数:
      alpha - azimuth (α) around Z (0 is +X, π/2 is +Y, π is -X and 3π/2 is -Y)
      delta - elevation (δ) above (XY) plane, from -π/2 to +π/2
      另请参阅:
    • FieldVector3D

      public FieldVector3D(T a, FieldVector3D<T> u)
      Multiplicative constructor. Build a vector from another one and a scale factor. The vector built will be a * u
      参数:
      a - scale factor
      u - base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(T a, Vector3D u)
      Multiplicative constructor. Build a vector from another one and a scale factor. The vector built will be a * u
      参数:
      a - scale factor
      u - base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(double a, FieldVector3D<T> u)
      Multiplicative constructor. Build a vector from another one and a scale factor. The vector built will be a * u
      参数:
      a - scale factor
      u - base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(T a1, FieldVector3D<T> u1, T a2, FieldVector3D<T> u2)
      Linear constructor. Build a vector from two other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(T a1, Vector3D u1, T a2, Vector3D u2)
      Linear constructor. Build a vector from two other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(double a1, FieldVector3D<T> u1, double a2, FieldVector3D<T> u2)
      Linear constructor. Build a vector from two other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(T a1, FieldVector3D<T> u1, T a2, FieldVector3D<T> u2, T a3, FieldVector3D<T> u3)
      Linear constructor. Build a vector from three other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2 + a3 * u3
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
      a3 - third scale factor
      u3 - third base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(T a1, Vector3D u1, T a2, Vector3D u2, T a3, Vector3D u3)
      Linear constructor. Build a vector from three other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2 + a3 * u3
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
      a3 - third scale factor
      u3 - third base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(double a1, FieldVector3D<T> u1, double a2, FieldVector3D<T> u2, double a3, FieldVector3D<T> u3)
      Linear constructor. Build a vector from three other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2 + a3 * u3
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
      a3 - third scale factor
      u3 - third base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(T a1, FieldVector3D<T> u1, T a2, FieldVector3D<T> u2, T a3, FieldVector3D<T> u3, T a4, FieldVector3D<T> u4)
      Linear constructor. Build a vector from four other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
      a3 - third scale factor
      u3 - third base (unscaled) vector
      a4 - fourth scale factor
      u4 - fourth base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(T a1, Vector3D u1, T a2, Vector3D u2, T a3, Vector3D u3, T a4, Vector3D u4)
      Linear constructor. Build a vector from four other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
      a3 - third scale factor
      u3 - third base (unscaled) vector
      a4 - fourth scale factor
      u4 - fourth base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(double a1, FieldVector3D<T> u1, double a2, FieldVector3D<T> u2, double a3, FieldVector3D<T> u3, double a4, FieldVector3D<T> u4)
      Linear constructor. Build a vector from four other ones and corresponding scale factors. The vector built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
      参数:
      a1 - first scale factor
      u1 - first base (unscaled) vector
      a2 - second scale factor
      u2 - second base (unscaled) vector
      a3 - third scale factor
      u3 - third base (unscaled) vector
      a4 - fourth scale factor
      u4 - fourth base (unscaled) vector
    • FieldVector3D

      public FieldVector3D(Field<T> field, Vector3D v)
      Build a FieldVector3D from a Vector3D.
      参数:
      field - field for the components
      v - vector to convert
  • 方法详细资料

    • getZero

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getZero(Field<T> field)
      Get null vector (coordinates: 0, 0, 0).
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getPlusI

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getPlusI(Field<T> field)
      Get first canonical vector (coordinates: 1, 0, 0).
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getMinusI

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getMinusI(Field<T> field)
      Get opposite of the first canonical vector (coordinates: -1, 0, 0).
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getPlusJ

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getPlusJ(Field<T> field)
      Get second canonical vector (coordinates: 0, 1, 0).
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getMinusJ

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getMinusJ(Field<T> field)
      Get opposite of the second canonical vector (coordinates: 0, -1, 0).
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getPlusK

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getPlusK(Field<T> field)
      Get third canonical vector (coordinates: 0, 0, 1).
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getMinusK

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getMinusK(Field<T> field)
      Get opposite of the third canonical vector (coordinates: 0, 0, -1).
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getNaN

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getNaN(Field<T> field)
      Get a vector with all coordinates set to NaN.
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getPositiveInfinity

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getPositiveInfinity(Field<T> field)
      Get a vector with all coordinates set to positive infinity.
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getNegativeInfinity

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> getNegativeInfinity(Field<T> field)
      Get a vector with all coordinates set to negative infinity.
      类型参数:
      T - the type of the field elements
      参数:
      field - field for the components
      返回:
      a new vector
    • getX

      public T getX()
      Get the abscissa of the vector.
      返回:
      abscissa of the vector
      另请参阅:
    • getY

      public T getY()
      Get the ordinate of the vector.
      返回:
      ordinate of the vector
      另请参阅:
    • getZ

      public T getZ()
      Get the height of the vector.
      返回:
      height of the vector
      另请参阅:
    • toArray

      public T[] toArray()
      Get the vector coordinates as a dimension 3 array.
      返回:
      vector coordinates
      另请参阅:
    • toVector3D

      public Vector3D toVector3D()
      将向量转换为不带额外字段部分的常量向量。
      返回:
      一个常量向量
    • getNorm1

      public T getNorm1()
      获取向量的L1范数。
      返回:
      向量的L1范数
    • getNorm

      public T getNorm()
      获取向量的L2范数。
      返回:
      向量的欧几里德范数
    • getNormSq

      public T getNormSq()
      获取向量的范数的平方。
      返回:
      向量的欧几里德范数的平方
    • getNormInf

      public T getNormInf()
      获取向量的L范数。
      返回:
      向量的L范数
    • getAlpha

      public T getAlpha()
      获取向量的方位角。
      返回:
      向量的方位角(α),介于-π和+π之间
      另请参阅:
    • getDelta

      public T getDelta()
      获取向量的仰角。
      返回:
      向量的仰角(δ),介于-π/2和+π/2之间
      另请参阅:
    • add

      public FieldVector3D<T> add(FieldVector3D<T> v)
      将一个向量添加到实例。
      参数:
      v - 要添加的向量
      返回:
      一个新向量
    • add

      public FieldVector3D<T> add(Vector3D v)
      将一个向量添加到实例。
      参数:
      v - 要添加的向量
      返回:
      一个新向量
    • add

      public FieldVector3D<T> add(T factor, FieldVector3D<T> v)
      将一个缩放的向量添加到实例。
      参数:
      factor - 添加到v之前应用的比例因子
      v - 要添加的向量
      返回:
      一个新向量
    • add

      public FieldVector3D<T> add(T factor, Vector3D v)
      将一个缩放的向量添加到实例。
      参数:
      factor - 添加到v之前应用的比例因子
      v - 要添加的向量
      返回:
      一个新向量
    • add

      public FieldVector3D<T> add(double factor, FieldVector3D<T> v)
      将一个缩放的向量添加到实例。
      参数:
      factor - 添加到v之前应用的比例因子
      v - 要添加的向量
      返回:
      一个新向量
    • add

      public FieldVector3D<T> add(double factor, Vector3D v)
      将一个缩放的向量添加到实例。
      参数:
      factor - 添加到v之前应用的比例因子
      v - 要添加的向量
      返回:
      一个新向量
    • subtract

      public FieldVector3D<T> subtract(FieldVector3D<T> v)
      从实例中减去一个向量。
      参数:
      v - 要减去的向量
      返回:
      一个新向量
    • subtract

      public FieldVector3D<T> subtract(Vector3D v)
      从实例中减去一个向量。
      参数:
      v - 要减去的向量
      返回:
      一个新向量
    • subtract

      public FieldVector3D<T> subtract(T factor, FieldVector3D<T> v)
      从实例中减去一个缩放的向量。
      参数:
      factor - 减去v之前应用的比例因子
      v - 要减去的向量
      返回:
      一个新向量
    • subtract

      public FieldVector3D<T> subtract(T factor, Vector3D v)
      从实例中减去一个缩放的向量。
      参数:
      factor - 减去v之前应用的比例因子
      v - 要减去的向量
      返回:
      一个新向量
    • subtract

      public FieldVector3D<T> subtract(double factor, FieldVector3D<T> v)
      从实例中减去一个缩放的向量。
      参数:
      factor - 减去v之前应用的比例因子
      v - 要减去的向量
      返回:
      一个新向量
    • subtract

      public FieldVector3D<T> subtract(double factor, Vector3D v)
      从实例中减去一个缩放的向量。
      参数:
      factor - 减去v之前应用的比例因子
      v - 要减去的向量
      返回:
      一个新向量
    • normalize

      public FieldVector3D<T> normalize() throws MathRuntimeException
      获取与实例对齐的归一化向量。
      返回:
      一个新的归一化向量
      抛出:
      MathRuntimeException - 如果范数为零
    • orthogonal

      public FieldVector3D<T> orthogonal() throws MathRuntimeException
      获取与实例正交的向量。

      有无限多个与实例正交的归一化向量。该方法几乎是任意选择的。当需要计算一个其中一个轴方向预定义的参考框架时,这是有用的。以下示例显示了如何构建一个具有k轴与已知向量u对齐的参考框架:

      
         Vector3D k = u.normalize();
         Vector3D i = k.orthogonal();
         Vector3D j = Vector3D.crossProduct(k, i);
       
      返回:
      一个新的与实例正交的归一化向量
      抛出:
      MathRuntimeException - 如果实例的范数为null
    • angle

      public static <T extends CalculusFieldElement<T>> T angle(FieldVector3D<T> v1, FieldVector3D<T> v2) throws MathRuntimeException
      计算两个向量之间的角分离。

      该方法使用点积计算两个向量之间的角分离,对于相距较远的向量使用叉积,对于几乎对齐的向量使用叉积。这样可以在所有情况下都获得很好的精度,即使对于非常接近的向量也是如此。

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      v1和v2之间的角分离
      抛出:
      MathRuntimeException - 如果任一向量的范数为null
    • angle

      public static <T extends CalculusFieldElement<T>> T angle(FieldVector3D<T> v1, Vector3D v2) throws MathRuntimeException
      计算两个向量之间的角分离。

      该方法使用点积计算两个向量之间的角分离,对于相距较远的向量使用叉积,对于几乎对齐的向量使用叉积。这样可以在所有情况下都获得很好的精度,即使对于非常接近的向量也是如此。

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      v1和v2之间的角分离
      抛出:
      MathRuntimeException - 如果任一向量的范数为null
    • angle

      public static <T extends CalculusFieldElement<T>> T angle(Vector3D v1, FieldVector3D<T> v2) throws MathRuntimeException
      计算两个向量之间的角分离。

      该方法使用点积计算两个向量之间的角分离,对于相距较远的向量使用叉积,对于几乎对齐的向量使用叉积。这样可以在所有情况下都获得很好的精度,即使对于非常接近的向量也是如此。

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      v1和v2之间的角分离
      抛出:
      MathRuntimeException - 如果任一向量的范数为null
    • negate

      public FieldVector3D<T> negate()
      获取实例的相反向量。
      返回:
      一个与实例相反的新向量
    • scalarMultiply

      public FieldVector3D<T> scalarMultiply(T a)
      将实例乘以一个标量。
      参数:
      a - 标量
      返回:
      一个新向量
    • scalarMultiply

      public FieldVector3D<T> scalarMultiply(double a)
      将实例乘以一个标量。
      参数:
      a - 标量
      返回:
      一个新向量
    • isNaN

      public boolean isNaN()
      如果这个向量的任何坐标是NaN,则返回true;否则返回false
      返回:
      如果这个向量的任何坐标是NaN,则返回true;否则返回false
    • isInfinite

      public boolean isInfinite()
      如果这个向量的任何坐标是无穷大且没有NaN,则返回true;否则返回false
      返回:
      如果这个向量的任何坐标是无穷大且没有NaN,则返回true;否则返回false
    • equals

      public boolean equals(Object other)
      测试两个3D向量是否相等。

      如果两个3D向量的所有坐标完全相同,并且它们的任何一个实部都不是NaN,则认为这两个3D向量是相等的。

      NaN坐标被认为全局影响向量并彼此相等 - 即,如果3D向量的任一(或所有)坐标的实部是NaN,则3D向量是NaN

      覆盖:
      equals 在类中 Object
      参数:
      other - 要测试是否与此相等的对象
      返回:
      如果两个3D向量对象相等,则返回true;如果对象为null、不是FieldVector3D的实例或不等于此FieldVector3D实例,则返回false
    • hashCode

      public int hashCode()
      获取3D向量的哈希码。

      所有NaN值具有相同的哈希码。

      覆盖:
    • dotProduct

      public T dotProduct(FieldVector3D<T> v)
      Compute the dot-product of the instance and another vector.

      The implementation uses specific multiplication and addition algorithms to preserve accuracy and reduce cancellation effects. It should be very accurate even for nearly orthogonal vectors.

      参数:
      v - 第二个向量
      返回:
      点积 this.v
      另请参阅:
    • dotProduct

      public T dotProduct(Vector3D v)
      计算该向量与另一个向量的点积。

      该实现使用特定的乘法和加法算法来保持精度并减少抵消效应。即使对于几乎正交的向量,它也应该非常精确。

      参数:
      v - 第二个向量
      返回:
      点积 this.v
      另请参阅:
    • crossProduct

      public FieldVector3D<T> crossProduct(FieldVector3D<T> v)
      计算该向量与另一个向量的叉积。
      参数:
      v - 另一个向量
      返回:
      叉积 this ^ v 作为新的Vector3D
    • crossProduct

      public FieldVector3D<T> crossProduct(Vector3D v)
      计算该向量与另一个向量的叉积。
      参数:
      v - 另一个向量
      返回:
      叉积 this ^ v 作为新的Vector3D
    • distance1

      public T distance1(FieldVector3D<T> v)
      计算根据L1范数计算的该向量与另一个向量之间的距离。

      调用此方法等效于调用:q.subtract(p).getNorm1(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      根据L1范数计算的该向量与p之间的距离
    • distance1

      public T distance1(Vector3D v)
      计算根据L1范数计算的该向量与另一个向量之间的距离。

      调用此方法等效于调用:q.subtract(p).getNorm1(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      根据L1范数计算的该向量与p之间的距离
    • distance

      public T distance(FieldVector3D<T> v)
      计算根据L2范数计算的该向量与另一个向量之间的距离。

      调用此方法等效于调用:q.subtract(p).getNorm(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      根据L2范数计算的该向量与p之间的距离
    • distance

      public T distance(Vector3D v)
      计算根据L2范数计算的该向量与另一个向量之间的距离。

      调用此方法等效于调用:q.subtract(p).getNorm(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      根据L2范数计算的该向量与p之间的距离
    • distanceInf

      public T distanceInf(FieldVector3D<T> v)
      计算根据L范数计算的该向量与另一个向量之间的距离。

      调用此方法等效于调用:q.subtract(p).getNormInf(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      根据L范数计算的该向量与p之间的距离
    • distanceInf

      public T distanceInf(Vector3D v)
      计算根据L范数计算的该向量与另一个向量之间的距离。

      调用此方法等效于调用:q.subtract(p).getNormInf(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      根据L范数计算的该向量与p之间的距离
    • distanceSq

      public T distanceSq(FieldVector3D<T> v)
      计算该向量与另一个向量之间的距离的平方。

      调用此方法等效于调用:q.subtract(p).getNormSq(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      该向量与p之间距离的平方
    • distanceSq

      public T distanceSq(Vector3D v)
      计算该向量与另一个向量之间的距离的平方。

      调用此方法等效于调用:q.subtract(p).getNormSq(),只是不会构建中间向量

      参数:
      v - 第二个向量
      返回:
      该向量与p之间距离的平方
    • dotProduct

      public static <T extends CalculusFieldElement<T>> T dotProduct(FieldVector3D<T> v1, FieldVector3D<T> v2)
      计算两个向量的点积。
      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      点积 v1.v2
    • dotProduct

      public static <T extends CalculusFieldElement<T>> T dotProduct(FieldVector3D<T> v1, Vector3D v2)
      计算两个向量的点积。
      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      点积 v1.v2
    • dotProduct

      public static <T extends CalculusFieldElement<T>> T dotProduct(Vector3D v1, FieldVector3D<T> v2)
      计算两个向量的点积。
      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      点积 v1.v2
    • crossProduct

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> crossProduct(FieldVector3D<T> v1, FieldVector3D<T> v2)
      计算两个向量的叉积。
      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      叉积 v1 ^ v2 作为新的Vector
    • crossProduct

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> crossProduct(FieldVector3D<T> v1, Vector3D v2)
      计算两个向量的叉积。
      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      叉积 v1 ^ v2 作为新的Vector
    • crossProduct

      public static <T extends CalculusFieldElement<T>> FieldVector3D<T> crossProduct(Vector3D v1, FieldVector3D<T> v2)
      计算两个向量的叉积。
      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      叉积 v1 ^ v2 作为新的Vector
    • distance1

      public static <T extends CalculusFieldElement<T>> T distance1(FieldVector3D<T> v1, FieldVector3D<T> v2)
      计算根据L1范数计算的两个向量之间的距离。

      调用此方法等效于调用:v1.subtract(v2).getNorm1(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L1范数计算的v1和v2之间的距离
    • distance1

      public static <T extends CalculusFieldElement<T>> T distance1(FieldVector3D<T> v1, Vector3D v2)
      计算根据L1范数计算的两个向量之间的距离。

      调用此方法等效于调用:v1.subtract(v2).getNorm1(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L1范数计算的v1和v2之间的距离
    • distance1

      public static <T extends CalculusFieldElement<T>> T distance1(Vector3D v1, FieldVector3D<T> v2)
      计算根据L1范数计算的两个向量之间的距离。

      调用此方法等效于调用:v1.subtract(v2).getNorm1(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L1范数计算的v1和v2之间的距离
    • distance

      public static <T extends CalculusFieldElement<T>> T distance(FieldVector3D<T> v1, FieldVector3D<T> v2)
      计算根据L2范数计算的两个向量之间的距离。

      调用此方法等效于调用:v1.subtract(v2).getNorm(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L2范数计算的v1和v2之间的距离
    • distance

      public static <T extends CalculusFieldElement<T>> T distance(FieldVector3D<T> v1, Vector3D v2)
      计算根据L2范数计算的两个向量之间的距离。

      调用此方法等效于调用:v1.subtract(v2).getNorm(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L2范数计算的v1和v2之间的距离
    • distance

      public static <T extends CalculusFieldElement<T>> T distance(Vector3D v1, FieldVector3D<T> v2)
      计算根据L2范数计算的两个向量之间的距离。

      调用此方法等效于调用:v1.subtract(v2).getNorm(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L2范数计算的v1和v2之间的距离
    • distanceInf

      public static <T extends CalculusFieldElement<T>> T distanceInf(FieldVector3D<T> v1, FieldVector3D<T> v2)
      计算根据L范数计算的两个
      类型参数:
      T - the type of the field elements
      参数:
      v1 - first vector
      v2 - second vector
      返回:
      the distance between v1 and v2 according to the L norm
    • distanceInf

      public static <T extends CalculusFieldElement<T>> T distanceInf(FieldVector3D<T> v1, Vector3D v2)
      Compute the distance between two vectors according to the L norm.

      Calling this method is equivalent to calling: v1.subtract(v2).getNormInf() except that no intermediate vector is built

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L范数计算v1和v2之间的距离
    • distanceInf

      public static <T extends CalculusFieldElement<T>> T distanceInf(Vector3D v1, FieldVector3D<T> v2)
      计算两个向量根据L范数的距离。

      调用此方法等同于调用:v1.subtract(v2).getNormInf(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      根据L范数计算v1和v2之间的距离
    • distanceSq

      public static <T extends CalculusFieldElement<T>> T distanceSq(FieldVector3D<T> v1, FieldVector3D<T> v2)
      计算两个向量之间的距离的平方。

      调用此方法等同于调用:v1.subtract(v2).getNormSq(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      v1和v2之间距离的平方
    • distanceSq

      public static <T extends CalculusFieldElement<T>> T distanceSq(FieldVector3D<T> v1, Vector3D v2)
      计算两个向量之间的距离的平方。

      调用此方法等同于调用:v1.subtract(v2).getNormSq(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      v1和v2之间距离的平方
    • distanceSq

      public static <T extends CalculusFieldElement<T>> T distanceSq(Vector3D v1, FieldVector3D<T> v2)
      计算两个向量之间的距离的平方。

      调用此方法等同于调用:v1.subtract(v2).getNormSq(),只是不会构建中间向量

      类型参数:
      T - 字段元素的类型
      参数:
      v1 - 第一个向量
      v2 - 第二个向量
      返回:
      v1和v2之间距离的平方
    • toString

      public String toString()
      获取此向量的字符串表示形式。
      覆盖:
      toString 在类中 Object
      返回:
      此向量的字符串表示形式
    • toString

      public String toString(NumberFormat format)
      获取此向量的字符串表示形式。
      参数:
      format - 组件的自定义格式
      返回:
      此向量的字符串表示形式
    • blendArithmeticallyWith

      public FieldVector3D<T> blendArithmeticallyWith(FieldVector3D<T> other, T blendingValue) throws MathIllegalArgumentException
      与另一个实例进行算术混合。
      指定者:
      blendArithmeticallyWith 在接口中 FieldBlendable<FieldVector3D<T extends CalculusFieldElement<T>>,T extends CalculusFieldElement<T>>
      参数:
      other - 与之进行算术混合的另一个实例
      blendingValue - 来自smoothstep函数B(x)的值。预期在[0:1]之间,否则将抛出异常。
      返回:
      this * (1 - B(x)) + other * B(x)
      抛出:
      MathIllegalArgumentException - 如果混合值不在[0:1]之间