类 SphericalCoordinates

java.lang.Object
org.hipparchus.geometry.euclidean.threed.SphericalCoordinates
所有已实现的接口:
Serializable

public class SphericalCoordinates extends Object implements Serializable
This class provides conversions related to 球坐标.

这里使用的约定是数学约定,即球坐标与笛卡尔坐标的关系如下:

  • x = r cos(θ) sin(Φ)
  • y = r sin(θ) sin(Φ)
  • z = r cos(Φ)
  • r = √(x2+y2+z2)
  • θ = atan2(y, x)
  • Φ = acos(z/r)

r是半径,θ是x-y平面上的方位角,Φ是极角(共纬度)角度。这些约定与物理学中使用的约定(特别是球谐函数中)不同,其中θ和Φ的含义被颠倒。

这个类提供了球坐标和笛卡尔坐标之间的坐标、梯度和Hessian的转换。

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

    • SphericalCoordinates

      public SphericalCoordinates(Vector3D v)
      从笛卡尔坐标构建球坐标转换器。
      参数:
      v - 笛卡尔坐标
    • SphericalCoordinates

      public SphericalCoordinates(double r, double theta, double phi)
      从球坐标构建球坐标转换器。
      参数:
      r - 半径
      theta - x-y平面上的方位角
      phi - 极角(共纬度)角度
  • 方法详细资料

    • getCartesian

      public Vector3D getCartesian()
      获取笛卡尔坐标。
      返回:
      笛卡尔坐标
    • getR

      public double getR()
      获取半径。
      返回:
      半径r
      另请参阅:
    • getTheta

      public double getTheta()
      获取x-y平面上的方位角。
      返回:
      x-y平面上的方位角θ
      另请参阅:
    • getPhi

      public double getPhi()
      获取极角(共纬度)角度。
      返回:
      极角(共纬度)角度Φ
      另请参阅:
    • toCartesianGradient

      public double[] toCartesianGradient(double[] sGradient)
      将相对于球坐标的梯度转换为相对于笛卡尔坐标的梯度。
      参数:
      sGradient - 相对于球坐标的梯度 {df/dr, df/dθ, df/dΦ}
      返回:
      相对于笛卡尔坐标的梯度 {df/dx, df/dy, df/dz}
    • toCartesianHessian

      public double[][] toCartesianHessian(double[][] sHessian, double[] sGradient)
      将相对于球坐标的Hessian转换为相对于笛卡尔坐标的Hessian。

      由于Hessian始终对称,我们只使用所提供球坐标Hessian的左下部分,因此上部分可能未初始化。但是,我们仍然填充我们创建的完整数组,保证对称性。

      参数:
      sHessian - 相对于球坐标的Hessian {{d2f/dr2, d2f/drdθ, d2f/drdΦ}, {d2f/drdθ, d2f/dθ2, d2f/dθdΦ}, {d2f/drdΦ, d2f/dθdΦ, d2f/dΦ2}
      sGradient - 相对于球坐标的梯度 {df/dr, df/dθ, df/dΦ}
      返回:
      相对于笛卡尔坐标的Hessian {{d2f/dx2, d2f/dxdy, d2f/dxdz}, {d2f/dxdy, d2f/dy2, d2f/dydz}, {d2f/dxdz, d2f/dydz, d2f/dz2}}