所有已实现的接口:
SubHyperplane<Euclidean2D>

public class SubLine extends AbstractSubHyperplane<Euclidean2D,Euclidean1D>
该类表示Line的子超平面。
  • 构造器详细资料

    • SubLine

      public SubLine(Hyperplane<Euclidean2D> hyperplane, Region<Euclidean1D> remainingRegion)
      简单构造函数。
      参数:
      hyperplane - 基础超平面
      remainingRegion - 超平面的剩余区域
    • SubLine

      public SubLine(Vector2D start, Vector2D end, double tolerance)
      从两个端点创建子线。
      参数:
      start - 起点
      end - 终点
      tolerance - 被视为相同的点的容差
    • SubLine

      public SubLine(Segment segment)
      从线段创建子线。
      参数:
      segment - 形成子线的单个线段
  • 方法详细资料

    • getSegments

      public List<Segment> getSegments()
      获取子线的端点。

      子线可以是任意数量的不相交线段,因此端点以端点对的列表形式提供。列表的每个元素表示一个线段,每个线段包含索引0处的起点和索引1处的终点。如果子线在负无穷方向上无界,则第一个线段的起点将具有无限坐标。如果子线在正无穷方向上无界,则最后一个线段的终点将具有无限坐标。因此,覆盖整条线的子线将只包含一行,此行的两个元素都将具有无限坐标。如果子线为空,则返回的列表将包含0个线段。

      返回:
      线段端点列表
    • intersection

      public Vector2D intersection(SubLine subLine, boolean includeEndPoints)
      获取实例与另一个子线的交点。

      此方法与Line类中的intersection方法相关,但除了计算无限线上的点外,还检查点是否位于两个子线范围内。

      参数:
      subLine - 可能与实例相交的另一个子线
      includeEndPoints - 如果为true,则认为端点属于实例(即它们是封闭集),可能会返回,否则认为端点不属于实例(即它们是开放集),在端点上发生的交点将导致返回null
      返回:
      如果存在交点,则返回交点,如果子线不相交,则返回null
    • buildNew

      protected AbstractSubHyperplane<Euclidean2D,Euclidean1D> buildNew(Hyperplane<Euclidean2D> hyperplane, Region<Euclidean1D> remainingRegion)
      从超平面和区域构建子超平面。
      指定者:
      buildNew 在类中 AbstractSubHyperplane<Euclidean2D,Euclidean1D>
      参数:
      hyperplane - 基础超平面
      remainingRegion - 超平面的剩余区域
      返回:
      一个新的子超平面
    • split

      通过超平面将实例分为两部分。
      指定者:
      split 在接口中 SubHyperplane<Euclidean2D>
      指定者:
      split 在类中 AbstractSubHyperplane<Euclidean2D,Euclidean1D>
      参数:
      hyperplane - 分割超平面
      返回:
      包含实例在超平面正侧部分和实例在超平面负侧部分的对象