接口 Hyperplane<S extends Space>

类型参数:
S - 空间的类型。
所有已知实现类:
Circle, LimitAngle, Line, OrientedPoint, Plane

public interface Hyperplane<S extends Space>
该接口表示空间的超平面。

超平面在空间分割中最常见的地方是作为切割器。在BSP树中,每个分区节点都有一个切割子超平面,它可以是一个超平面或超平面的一部分。在n维欧几里德空间中,超平面是一个(n-1)维的超平面(例如在3D欧几里德空间中的传统平面)。在特定领域中可能是更奇特的对象,例如单位球表面上的圆。

请注意,此接口不打算由Hipparchus用户实现,它只打算在库内部实现。即使是对于次要版本,也可能添加新方法,这会破坏外部实现的兼容性。

  • 方法详细资料

    • copySelf

      Hyperplane<S> copySelf()
      复制实例。

      创建的实例与原始实例完全独立。使用深度复制,没有共享底层对象(除了不可变对象)。

      返回:
      一个新的超平面,是实例的副本
    • getOffset

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

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

      参数:
      point - 要检查的点
      返回:
      点的偏移
    • project

      Point<S> project(Point<S> point)
      将点投影到超平面上。
      参数:
      point - 要投影的点
      返回:
      投影点
    • getTolerance

      double getTolerance()
      获取被认为属于超平面的点的容差。
      返回:
      被认为属于超平面的点的容差
    • sameOrientationAs

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

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

      参数:
      other - 要与实例比较的另一个超平面
      返回:
      如果实例和另一个超平面具有相同的方向,则为true
    • wholeHyperplane

      SubHyperplane<S> wholeHyperplane()
      构建一个覆盖整个超平面的子超平面。
      返回:
      一个覆盖整个超平面的子超平面
    • emptyHyperplane

      SubHyperplane<S> emptyHyperplane()
      构建一个不覆盖任何内容的子超平面。
      返回:
      一个不覆盖任何内容的子超平面
      从以下版本开始:
      1.4
    • wholeSpace

      Region<S> wholeSpace()
      构建一个覆盖整个空间的区域。
      返回:
      包含实例的区域