java.lang.Object
org.hipparchus.geometry.spherical.twod.Circle
所有已实现的接口:
Embedding<Sphere2D,Sphere1D>, Hyperplane<Sphere2D>

public class Circle extends Object implements Hyperplane<Sphere2D>, Embedding<Sphere2D,Sphere1D>
该类表示二维球面上的定向大圆。

一个定向圆可以由一个中心点定义。该圆是在其法平面上的中心点的点集。

由于它是定向的,其两侧的两个球冠被明确定义为左球冠和右球冠。当使用一部分线来定义球面多边形边界的一部分时,可以仅通过局部属性简单地识别内部和外部。

  • 构造器详细资料

    • Circle

      public Circle(Vector3D pole, double tolerance) throws MathIllegalArgumentException
      从其极点构建一个大圆。

      该圆沿极点的三角方向定向。

      参数:
      pole - 圆极点
      tolerance - 小于此值的接近子弧将合并在一起
      抛出:
      MathIllegalArgumentException - 如果容差小于Sphere1D.SMALLEST_TOLERANCE
    • Circle

      public Circle(S2Point first, S2Point second, double tolerance) throws MathIllegalArgumentException
      从两个非对齐点构建一个大圆。

      该圆从第一个点到第二个点的路径上的方向小于\( \pi \)。

      参数:
      first - 包含在大圆中的第一个点
      second - 包含在大圆中的第二个点
      tolerance - 小于此值的接近子弧将合并在一起
      抛出:
      MathIllegalArgumentException - 如果容差小于Sphere1D.SMALLEST_TOLERANCE
    • Circle

      public Circle(Circle circle)
      复制构造函数。

      创建的实例与原始实例完全独立,是深度复制。

      参数:
      circle - 要复制的圆
  • 方法详细资料

    • copySelf

      public Circle copySelf()
      复制该实例。

      创建的实例与原始实例完全独立。使用深度复制,不共享任何基础对象(除了不可变对象)。

      指定者:
      copySelf 在接口中 Hyperplane<Sphere2D>
      返回:
      一个新的超平面,是实例的副本
    • reset

      public void reset(Vector3D newPole)
      将实例重置为从极点构建。

      该圆沿极点的三角方向定向。

      参数:
      newPole - 圆极点
    • revertSelf

      public void revertSelf()
      恢复实例。
    • getReverse

      public Circle getReverse()
      获取该实例的反向。

      获取方向与实例方向相反的圆。构建一个新对象,实例不受影响。

      返回:
      一个新的圆,方向与实例方向相反
    • project

      public Point<Sphere2D> project(Point<Sphere2D> point)
      将点投影到超平面。
      指定者:
      project 在接口中 Hyperplane<Sphere2D>
      参数:
      point - 要投影的点
      返回:
      投影点
    • getTolerance

      public double getTolerance()
      获取被认为属于超平面的点的容差下限。
      指定者:
      getTolerance 在接口中 Hyperplane<Sphere2D>
      返回:
      被认为属于超平面的点的容差下限
    • toSubSpace

      public S1Point toSubSpace(Point<Sphere2D> point)
      将空间点转换为子空间点。
      指定者:
      toSubSpace 在接口中 Embedding<Sphere2D,Sphere1D>
      参数:
      point - 空间的n维点
      返回:
      对应于指定空间点的子空间的(n-1)维点
      另请参阅:
    • getPhase

      public double getPhase(Vector3D direction)
      获取方向的相位角。

      方向可能不属于圆,因为相位是针对圆极点和方向之间的子午面计算的。

      参数:
      direction - 请求相位的方向
      返回:
      围绕圆的方向的相位角
      另请参阅:
    • toSpace

      public S2Point toSpace(Point<Sphere1D> point)
      将子空间点转换为空间点。
      指定者:
      toSpace 在接口中 Embedding<Sphere2D,Sphere1D>
      参数:
      point - 子空间的(n-1)维点
      返回:
      对应于指定子空间点的n维空间点
      另请参阅:
    • getPointAt

      public Vector3D getPointAt(double alpha)
      从其围绕圆圈的相位获取圆点。
      参数:
      alpha - 围绕圆圈的相位
      返回:
      球面上的圆点
      另请参阅:
    • getXAxis

      public Vector3D getXAxis()
      获取圆圈的X轴。

      此方法返回与getPointAt(0.0)相同的值,但不执行任何计算并始终返回相同的实例。

      返回:
      圆圈上的任意x轴
      另请参阅:
    • getYAxis

      public Vector3D getYAxis()
      获取圆圈的Y轴。

      此方法返回与getPointAt(0.5 * FastMath.PI)相同的值,但不执行任何计算并始终返回相同的实例。

      返回:
      圆圈上的任意y轴点
      另请参阅:
    • getPole

      public Vector3D getPole()
      获取圆圈的极点。

      由于圆圈是一个大圆,极点不属于它。

      返回:
      圆圈的极点
      另请参阅:
    • getInsideArc

      public Arc getInsideArc(Circle other)
      获取实例在另一个圆圈内的弧。
      参数:
      other - 另一个圆圈
      返回:
      实例在另一个圆圈内的弧
    • wholeHyperplane

      public SubCircle wholeHyperplane()
      构建覆盖整个超平面的子超平面。
      指定者:
      wholeHyperplane 在接口中 Hyperplane<Sphere2D>
      返回:
      覆盖整个超平面的子超平面
    • emptyHyperplane

      public SubCircle emptyHyperplane()
      构建不覆盖任何内容的子超平面。
      指定者:
      emptyHyperplane 在接口中 Hyperplane<Sphere2D>
      返回:
      不覆盖任何内容的子超平面
    • wholeSpace

      public SphericalPolygonsSet wholeSpace()
      构建覆盖整个空间的区域。
      指定者:
      wholeSpace 在接口中 Hyperplane<Sphere2D>
      返回:
      包含实例的区域(实际上是一个SphericalPolygonsSet实例)
    • getOffset

      public double getOffset(Point<Sphere2D> point)
      获取点的偏移(有向距离)。

      如果点在基础超平面上,则偏移为0,如果点在超平面的一侧,则为正,如果点在另一侧,则为负,根据超平面的自然方向。

      指定者:
      getOffset 在接口中 Hyperplane<Sphere2D>
      参数:
      point - 要检查的点
      返回:
      点的偏移
      另请参阅:
    • getOffset

      public double getOffset(Vector3D direction)
      获取方向的偏移(有向距离)。

      偏移定义为圆心和方向之间的角距离减去圆的半径。因此,在圆上为0,在由圆限定的锥体外的方向为正,在锥体内为负。

      参数:
      direction - 要检查的方向
      返回:
      方向的偏移
      另请参阅:
    • sameOrientationAs

      public boolean sameOrientationAs(Hyperplane<Sphere2D> other)
      检查实例是否与另一个超平面具有相同的方向。

      预计在平行超平面上调用此方法。该方法不应重新检查平行性,仅应检查方向,通常通过测试法线的点积的符号等方式。

      指定者:
      sameOrientationAs 在接口中 Hyperplane<Sphere2D>
      参数:
      other - 要与实例比较方向的另一个超平面
      返回:
      如果实例和另一个超平面具有相同的方向,则为true
    • getArc

      public Arc getArc(S2Point a, S2Point b)
      获取此圆圈上两个定义点之间的弧。只有点在圆上的投影才重要,这是使用getPhase(Vector3D)计算的。
      参数:
      a - 第一个点。
      b - 第二个点。
      返回:
      圆的弧。
    • getTransform

      public static Transform<Sphere2D,Sphere1D> getTransform(Rotation rotation)
      获取嵌入3D旋转的Transform
      参数:
      rotation - 要使用的旋转
      返回:
      可应用于PointLineSubHyperplane实例的新变换