java.lang.Object
org.hipparchus.geometry.euclidean.threed.Line
所有已实现的接口:
Embedding<Euclidean3D,Euclidean1D>

public class Line extends Object implements Embedding<Euclidean3D,Euclidean1D>
该类表示三维空间中的直线。

每条定向直线与一个坐标轴相关联,该坐标轴是直线上的一个坐标。坐标为0的点是原点在直线上的正交投影,另一种等效的表达方式是说它是距离原点最近的直线上的点。坐标沿着直线方向增加。

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

  • 方法详细资料

    • fromDirection

      public static Line fromDirection(Vector3D point, Vector3D direction, double tolerance)
      从一个点和一个方向创建一条直线。直线 = point + t * direction,其中t是任意实数。
      参数:
      point - 在直线上。可以是任意点。
      direction - 直线的方向。不能是零向量。
      tolerance - 被视为相同的点的容差。
      返回:
      具有给定点和方向的新直线。
      抛出:
      MathIllegalArgumentException - 如果direction是零向量。
      另请参阅:
    • reset

      public void reset(Vector3D p1, Vector3D p2) throws MathIllegalArgumentException
      将实例重置为从两个点构建的状态。
      参数:
      p1 - 属于直线的第一个点(可以是任意点)
      p2 - 属于直线的第二个点(可以是任意点,与p1不同)
      抛出:
      MathIllegalArgumentException - 如果点相等
    • getTolerance

      public double getTolerance()
      获取被视为相同的点的容差。
      返回:
      被视为相同的点的容差
    • revert

      public Line revert()
      获取一个方向相反的直线。
      返回:
      具有相反方向的新实例
    • getDirection

      public Vector3D getDirection()
      获取归一化的方向向量。
      返回:
      归一化的方向向量
    • getOrigin

      public Vector3D getOrigin()
      获取最靠近原点的直线点。
      返回:
      最靠近原点的直线点
    • getAbscissa

      public double getAbscissa(Vector3D point)
      获取点相对于直线的坐标。

      如果点的投影和框架原点的投影是同一点,则坐标为0。

      参数:
      point - 要检查的点
      返回:
      点的坐标
    • pointAt

      public Vector3D pointAt(double abscissa)
      从直线获取一个点。
      参数:
      abscissa - 点的期望坐标
      返回:
      属于直线的一个点,在指定的坐标处
    • toSubSpace

      public Vector1D toSubSpace(Vector<Euclidean3D,Vector3D> vector)
      将空间点转换为子空间点。
      参数:
      vector - 空间中的n维点
      返回:
      对应于指定空间点的(n-1)维子空间点
    • toSpace

      public Vector3D toSpace(Vector<Euclidean1D,Vector1D> vector)
      将子空间点转换为空间点。
      参数:
      vector - 子空间的(n-1)维点
      返回:
      对应于指定子空间点的n维空间点
    • toSubSpace

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

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

      public boolean isSimilarTo(Line line)
      检查实例是否与另一条线相似。

      如果它们包含相同的点,则认为线条相似。这并不意味着它们相等,因为它们可能具有相反的方向。

      参数:
      line - 用于比较实例的线
      返回:
      如果线条相似则返回true
    • contains

      public boolean contains(Vector3D p)
      检查实例是否包含一个点。
      参数:
      p - 要检查的点
      返回:
      如果p属于该线则返回true
    • distance

      public double distance(Vector3D p)
      计算实例与一个点之间的距离。
      参数:
      p - 要检查的点
      返回:
      实例与该点之间的距离
    • distance

      public double distance(Line line)
      计算实例与另一条线之间的最短距离。
      参数:
      line - 用于与实例比较的线
      返回:
      实例与该线之间的最短距离
    • closestPoint

      public Vector3D closestPoint(Line line)
      计算实例最靠近另一条线的点。
      参数:
      line - 用于与实例比较的线
      返回:
      实例最靠近另一条线的点
    • intersection

      public Vector3D intersection(Line line)
      获取实例与另一条线的交点。
      参数:
      line - 另一条线
      返回:
      实例与另一条线的交点,如果没有交点则返回null
    • wholeLine

      public SubLine wholeLine()
      构建覆盖整条线的子线。
      返回:
      覆盖整条线的子线