类 Line
- 所有已实现的接口:
-
Embedding<Euclidean2D,
,Euclidean1D> Hyperplane<Euclidean2D>
有向直线可以通过延长两点之间的线段过这些点来定义,也可以通过一个点和一个角度(按三角法方向)来定义。
由于它是有向的,其两侧的两个半平面可以明确定义为左半平面和右半平面。当使用直线的一部分来定义多边形边界的一部分时,可以通过仅使用局部属性来简单地识别内部和外部。
直线还可以用来完全定义平面中的参考框架。只需选择直线上的一个特定点(原始参考框架在直线上的正交投影)并使用沿着直线方向的单位向量和从左半平面到右半平面定向的正交向量。我们通过这个过程定义了两个坐标,沿着直线的横坐标和横跨直线的偏移量。平面上的所有点都可以通过这两个坐标唯一标识。直线是偏移量为零的点集,左半平面是偏移量为负的点集,右半平面是偏移量为正的点集。
-
构造器概要
-
方法概要
修饰符和类型方法说明boolean
检查直线是否包含一个点。copySelf()
复制实例。double
计算实例与一个点之间的距离。构建覆盖空集的子超平面。double
getAngle()
获取直线的角度。double
获取平行线的偏移(定向距离)。double
getOffset
(Point<Euclidean2D> point) 获取点的偏移(定向距离)。double
getOffset
(Vector<Euclidean2D, Vector2D> vector) 获取向量的偏移(定向距离)。double
获取原点的偏移。getPointAt
(Vector1D abscissa, double offset) 从平面获取一个点。获取实例的反向。double
获取被认为属于超平面的点的容差下限。static Transform
<Euclidean2D, Euclidean1D> getTransform
(double cXX, double cYX, double cXY, double cYY, double cX1, double cY1) 获取嵌入仿射变换的Transform
。intersection
(Line other) 获取实例与另一条直线的交点。boolean
isParallelTo
(Line line) 检查实例是否与另一条直线平行。project
(Point<Euclidean2D> point) 将点投影到超平面。void
将实例重置为从直线和角度构建。void
将实例重置为从两点构建。void
恢复实例。boolean
sameOrientationAs
(Hyperplane<Euclidean2D> other) 检查实例是否与另一个超平面具有相同的方向。void
setAngle
(double angle) 设置直线的角度。void
setOriginOffset
(double offset) 设置原点的偏移。toSpace
(Point<Euclidean1D> point) 将子空间点转换为空间点。toSpace
(Vector<Euclidean1D, Vector1D> vector) 将子空间点转换为空间点。toSubSpace
(Point<Euclidean2D> point) 将空间点转换为子空间点。toSubSpace
(Vector<Euclidean2D, Vector2D> vector) 将空间点转换为子空间点。void
将直线平移以使其经过一个点。构建覆盖整个超平面的子超平面。构建覆盖整个空间的区域。
-
构造器详细资料
-
Line
从两点构建直线。该直线从p1到p2定向
- 参数:
-
p1
- 第一个点 -
p2
- 第二个点 -
tolerance
- 被视为相同的点的容差下限
-
Line
从点和角度构建直线。- 参数:
-
p
- 属于直线的点 -
angle
- 相对于横坐标轴的直线角度 -
tolerance
- 被视为相同的点的容差下限
-
Line
复制构造函数。创建的实例与原始实例完全独立,是深度复制。
- 参数:
-
line
- 要复制的直线
-
-
方法详细资料
-
copySelf
复制实例。创建的实例与原始实例完全独立。使用深度复制,没有共享任何底层对象(除了不可变对象)。
- 指定者:
-
copySelf
在接口中Hyperplane<Euclidean2D>
- 返回:
- 一个新的超平面,是实例的副本
-
reset
将实例重置为从两点构建。该直线从p1到p2定向
- 参数:
-
p1
- 第一个点 -
p2
- 第二个点
-
reset
将实例重置为从点和角度构建。- 参数:
-
p
- 属于直线的点 -
alpha
- 相对于横坐标轴的直线角度
-
revertSelf
public void revertSelf()恢复实例。 -
getReverse
获取实例的反向。获取方向与实例方向相反的直线。
只要实例或其反向都没有被修改(即在调用任何
reset(Vector2D, Vector2D)
、reset(Vector2D, double)
、revertSelf()
、setAngle(double)
或setOriginOffset(double)
方法之前),那么直线及其反向保持链接在一起,使得line.getReverse().getReverse() == line
。当其中一条直线被修改时,链接将被删除,因为两个实例变得独立。- 返回:
- 一个新的直线,方向与实例方向相反
-
toSubSpace
将空间点转换为子空间点。- 参数:
-
vector
- 空间中的n维点 - 返回:
- 对应于指定空间点的(n-1)维子空间点
-
toSpace
将子空间点转换为空间点。- 参数:
-
vector
- 子空间中的(n-1)维点 - 返回:
- 对应于指定子空间点的n维空间点
-
toSubSpace
将空间点转换为子空间点。- 指定者:
-
toSubSpace
在接口中Embedding<Euclidean2D,
Euclidean1D> - 参数:
-
point
- 空间中的n维点 - 返回:
- 对应于指定空间点的(n-1)维子空间点
- 另请参阅:
-
toSpace
将子空间点转换为空间点。- 指定者:
-
toSpace
在接口中Embedding<Euclidean2D,
Euclidean1D> - 参数:
-
point
- 子空间的(n-1)维点 - 返回:
- 对应于指定子空间点的n维空间点
- 另请参阅:
-
intersection
获取实例和另一条线的交点。- 参数:
-
other
- 另一条线 - 返回:
- 实例和另一条线的交点,如果没有交点则返回null
-
project
将点投影到超平面上。- 指定者:
-
project
在接口中Hyperplane<Euclidean2D>
- 参数:
-
point
- 要投影的点 - 返回:
- 投影后的点
-
getTolerance
public double getTolerance()获取被视为属于超平面的点的容差下限。- 指定者:
-
getTolerance
在接口中Hyperplane<Euclidean2D>
- 返回:
- 被视为属于超平面的点的容差下限
-
wholeHyperplane
构建覆盖整个超平面的子超平面。- 指定者:
-
wholeHyperplane
在接口中Hyperplane<Euclidean2D>
- 返回:
- 覆盖整个超平面的子超平面
-
emptyHyperplane
构建一个不覆盖任何内容的子超平面。- 指定者:
-
emptyHyperplane
在接口中Hyperplane<Euclidean2D>
- 返回:
- 不覆盖任何内容的子超平面
-
wholeSpace
构建覆盖整个空间的区域。- 指定者:
-
wholeSpace
在接口中Hyperplane<Euclidean2D>
- 返回:
-
包含实例的区域(实际上是一个
PolygonsSet
实例)
-
getOffset
获取平行线的偏移(有向距离)。仅应在平行线上调用此方法,否则结果没有意义。
如果两条线相同,则偏移为0,如果线在实例的右侧,则为正,如果在左侧,则为负,根据其自然方向。
- 参数:
-
line
- 要检查的线 - 返回:
- 线的偏移
-
getOffset
获取向量的偏移(有向距离)。- 参数:
-
vector
- 要检查的向量 - 返回:
- 向量的偏移
-
getOffset
获取点的偏移(有向距离)。如果点在基础超平面上,则偏移为0,如果点在超平面的一侧,则为正,如果点在另一侧,则为负,根据超平面的自然方向。
- 指定者:
-
getOffset
在接口中Hyperplane<Euclidean2D>
- 参数:
-
point
- 要检查的点 - 返回:
- 点的偏移
-
sameOrientationAs
检查实例是否与另一个超平面具有相同的方向。预计在平行超平面上调用此方法。该方法不应重新检查平行性,只应检查方向,通常通过测试法线的点积的符号等方式。
- 指定者:
-
sameOrientationAs
在接口中Hyperplane<Euclidean2D>
- 参数:
-
other
- 要与实例比较的另一个超平面 - 返回:
- 如果实例和另一个超平面具有相同的方向,则为true
-
getPointAt
从平面获取一个点。- 参数:
-
abscissa
- 点的期望横坐标 -
offset
- 点的期望偏移量 - 返回:
- 平面中的一个点,具有给定的横坐标和相对于线的偏移量
-
contains
检查线是否包含一个点。- 参数:
-
p
- 要检查的点 - 返回:
- 如果p属于线,则为true
-
distance
计算实例和一个点之间的距离。这是调用FastMath.abs(getOffset(p))的快捷方式,并提供与org.hipparchus.geometry.euclidean.threed.Line类中的内容一致性。
- 参数:
-
p
- 要检查的点 - 返回:
- 实例和点之间的距离
-
isParallelTo
检查实例是否与另一条线平行。- 参数:
-
line
- 要检查的另一条线 - 返回:
- 如果实例与另一条线平行(它们可以具有相同或相反的方向),则为true
-
translateToPoint
将线段平移以使其通过一个点。- 参数:
-
p
- 线应通过的点
-
getAngle
public double getAngle()获取线的角度。- 返回:
- 相对于横坐标轴的线的角度
-
setAngle
public void setAngle(double angle) 设置线的角度。- 参数:
-
angle
- 相对于横坐标轴的线的新角度
-
getOriginOffset
public double getOriginOffset()获取原点的偏移量。- 返回:
- 原点的偏移量
-
setOriginOffset
public void setOriginOffset(double offset) 设置原点的偏移量。- 参数:
-
offset
- 原点的偏移量
-
getTransform
public static Transform<Euclidean2D,Euclidean1D> getTransform(double cXX, double cYX, double cXY, double cYY, double cX1, double cY1) throws MathIllegalArgumentException 获取嵌入仿射变换的Transform
。- 参数:
-
cXX
- 输入横坐标和输出横坐标之间的变换因子 -
cYX
- 输入横坐标和输出纵坐标之间的变换因子 -
cXY
- 输入纵坐标和输出横坐标之间的变换因子 -
cYY
- 输入纵坐标和输出纵坐标之间的变换因子 -
cX1
- 输出横坐标的变换增量 -
cY1
- 输出纵坐标的变换增量 - 返回:
-
可应用于
Vector2D
、Line
或SubHyperplane
实例的新变换 - 抛出:
-
MathIllegalArgumentException
- 如果变换不可逆
-