类 Plane
java.lang.Object
org.hipparchus.geometry.euclidean.threed.Plane
- 所有已实现的接口:
-
Embedding<Euclidean3D,
,Euclidean2D> Hyperplane<Euclidean3D>
public class Plane extends Object implements Hyperplane<Euclidean3D>, Embedding<Euclidean3D,Euclidean2D>
该类表示三维空间中的平面。
-
构造器概要
-
方法概要
修饰符和类型方法说明boolean
检查实例是否包含一个点。copySelf()
复制实例。构建一个不覆盖任何内容的子超平面。获取归一化的法线向量。double
获取平行平面的偏移量(有向距离)。double
getOffset
(Point<Euclidean3D> point) 获取点的偏移量(有向距离)。double
getOffset
(Vector<Euclidean3D, Vector3D> vector) 获取向量的偏移量(有向距离)。获取平面框架的原点。getPointAt
(Vector2D inPlane, double offset) 从三维空间中获取一个点。double
获取被认为属于超平面的点的容差。getU()
获取平面的第一个规范向量。getV()
获取平面的第二个规范向量。intersection
(Line line) 获取与实例相交的直线。intersection
(Plane other) 构建实例和另一个平面共享的线。static Vector3D
intersection
(Plane plane1, Plane plane2, Plane plane3) 获取三个平面的交点。boolean
isSimilarTo
(Plane plane) 检查实例是否与另一个平面相似。project
(Point<Euclidean3D> point) 将点投影到超平面上。void
从另一个实例重置实例。void
重置实例,就像是从一个点和一个法线构建的一样。void
反转平面。将平面围绕指定点旋转。boolean
sameOrientationAs
(Hyperplane<Euclidean3D> other) 检查实例是否与另一个超平面具有相同的方向。toSpace
(Point<Euclidean2D> point) 将平面内的点转换为三维空间点。toSpace
(Vector<Euclidean2D, Vector2D> vector) 将子空间点转换为空间点。toSubSpace
(Point<Euclidean3D> point) 将三维空间点转换为平面内点。toSubSpace
(Vector<Euclidean3D, Vector3D> vector) 将空间点转换为子空间点。将平面按指定量平移。构建覆盖整个超平面的区域。构建覆盖整个空间的区域。
-
构造器详细资料
-
Plane
构建一个垂直于给定方向且包含原点的平面。- 参数:
-
normal
- 平面的法线方向 -
tolerance
- 被视为相同的点的容差 - 抛出:
-
MathRuntimeException
- 如果法线的范数太小
-
Plane
从一个点和一个法线构建平面。- 参数:
-
p
- 属于平面的点 -
normal
- 平面的法线方向 -
tolerance
- 被视为相同的点的容差 - 抛出:
-
MathRuntimeException
- 如果法线的范数太小
-
Plane
从三个点构建平面。平面沿着
(p2-p1) ^ (p3-p1)
方向定向。- 参数:
-
p1
- 属于平面的第一个点 -
p2
- 属于平面的第二个点 -
p3
- 属于平面的第三个点 -
tolerance
- 被视为相同的点的容差 - 抛出:
-
MathRuntimeException
- 如果点不构成平面
-
Plane
复制构造函数。创建的实例与原始实例完全独立。使用深度复制,底层对象均不共享。
- 参数:
-
plane
- 要复制的平面
-
-
方法详细资料
-
copySelf
复制实例。创建的实例与原始实例完全独立。使用深度复制,底层对象均不共享(对于不可变对象除外)。
- 指定者:
-
copySelf
在接口中Hyperplane<Euclidean3D>
- 返回:
- 一个新的超平面,与实例相同
-
reset
重置实例,就像是从一个点和一个法线构建的一样。- 参数:
-
p
- 属于平面的点 -
normal
- 平面的法线方向 - 抛出:
-
MathRuntimeException
- 如果法线的范数太小
-
reset
从另一个实例重置实例。更新后的实例与原始实例完全独立。使用深度重置,底层对象均不共享。
- 参数:
-
original
- 要从中重置的平面
-
getOrigin
获取平面框架的原点。返回的点是平面中3D空间原点的正交投影。
- 返回:
- 平面框架的原点(距离3D空间原点最近的点)
-
getNormal
- 返回:
- 归一化的法线向量
- 另请参阅:
-
getU
- 返回:
- 归一化的第一个规范向量
- 另请参阅:
-
getV
- 返回:
- 归一化的第二个规范向量
- 另请参阅:
-
project
将点投影到超平面上。- 指定者:
-
project
在接口中Hyperplane<Euclidean3D>
- 参数:
-
point
- 要投影的点 - 返回:
- 投影的点
-
getTolerance
public double getTolerance()获取被认为属于超平面的点的容差。- 指定者:
-
getTolerance
在接口中Hyperplane<Euclidean3D>
- 返回:
- 被认为属于超平面的点的容差下限
-
revertSelf
public void revertSelf()反转平面。用方向相反的类似平面替换实例。
新平面框架的选择方式是,一个在平面坐标中具有(x, y)和相对于平面的z偏移的3D点,不受更改的影响,将具有(y, x)和相对于新平面的-z偏移。这意味着由
getU()
和getV()
方法返回的和向量被交换,由 getNormal()
方法返回的向量被反转。 -
toSubSpace
将空间点转换为子空间点。- 参数:
-
vector
- 空间的n维点 - 返回:
- 对应于指定空间点的(n-1)维子空间点
-
toSpace
将子空间点转换为空间点。- 参数:
-
vector
- 子空间的(n-1)维点 - 返回:
- 对应于指定子空间点的n维空间点
-
toSubSpace
将3D空间点转换为平面点。- 指定者:
-
toSubSpace
在接口中Embedding<Euclidean3D,
Euclidean2D> - 参数:
-
point
- 空间点(必须是Vector3D
实例) - 返回:
-
平面点(实际上是
Vector2D
实例) - 另请参阅:
-
toSpace
将平面点转换为3D空间点。- 指定者:
-
toSpace
在接口中Embedding<Euclidean3D,
Euclidean2D> - 参数:
-
point
- 平面点(必须是Vector2D
实例) - 返回:
-
3D空间点(实际上是
Vector3D
实例) - 另请参阅:
-
getPointAt
从3D空间中获取一个点。- 参数:
-
inPlane
- 平面中点的期望坐标 -
offset
- 点的期望偏移量 - 返回:
- 3D空间中的一个点,具有给定坐标和相对于平面的偏移量
-
isSimilarTo
检查实例是否类似于另一个平面。如果它们包含相同的点,则认为平面是相似的。这并不意味着它们相等,因为它们可以具有相反的法线。
- 参数:
-
plane
- 与实例进行比较的平面 - 返回:
- 如果平面相似则为true
-
rotate
围绕指定点旋转平面。实例不会被修改,而是创建一个新实例。
- 参数:
-
center
- 旋转中心 -
rotation
- 矢量旋转运算符 - 返回:
- 一个新平面
-
translate
通过指定的量平移平面。实例不会被修改,而是创建一个新实例。
- 参数:
-
translation
- 要应用的平移 - 返回:
- 一个新平面
-
intersection
获取与实例的线相交。- 参数:
-
line
- 与实例相交的线 - 返回:
- 线与实例之间的交点(如果线与实例平行则为null)
-
intersection
构建实例和另一个平面共享的线。- 参数:
-
other
- 另一个平面 - 返回:
-
实例和另一个平面的交点线(实际上是一个
Line
实例)
-
intersection
获取三个平面的交点。- 参数:
-
plane1
- 第一个平面 -
plane2
- 第二个平面 -
plane3
- 第三个平面 - 返回:
- 三个平面的交点,如果某些平面平行则为null
-
wholeHyperplane
构建覆盖整个超平面的区域。- 指定者:
-
wholeHyperplane
在接口中Hyperplane<Euclidean3D>
- 返回:
- 覆盖整个超平面的区域
-
emptyHyperplane
构建覆盖空集的子超平面。- 指定者:
-
emptyHyperplane
在接口中Hyperplane<Euclidean3D>
- 返回:
- 覆盖空集的子超平面
-
wholeSpace
构建覆盖整个空间的区域。- 指定者:
-
wholeSpace
在接口中Hyperplane<Euclidean3D>
- 返回:
-
包含实例的区域(实际上是一个
PolyhedronsSet
实例)
-
contains
检查实例是否包含一个点。- 参数:
-
p
- 要检查的点 - 返回:
- 如果p属于平面则为true
-
getOffset
获取平行平面的偏移(有向距离)。仅当平行平面调用此方法,否则结果没有意义。
如果两个平面相同,则偏移为0,如果平面在实例的正侧则为正,如果在负侧则为负,根据其自然方向。
- 参数:
-
plane
- 要检查的平面 - 返回:
- 平面的偏移
-
getOffset
获取向量的偏移(有向距离)。- 参数:
-
vector
- 要检查的向量 - 返回:
- 向量的偏移
-
getOffset
获取点的偏移(有向距离)。如果点在基础超平面上,则偏移为0,如果点在超平面的一侧,则为正,如果点在另一侧,则为负,根据超平面的自然方向。
- 指定者:
-
getOffset
在接口中Hyperplane<Euclidean3D>
- 参数:
-
point
- 要检查的点 - 返回:
- 点的偏移
-
sameOrientationAs
检查实例是否与另一个超平面具有相同的方向。- 指定者:
-
sameOrientationAs
在接口中Hyperplane<Euclidean3D>
- 参数:
-
other
- 要与实例比较方向的另一个超平面 - 返回:
- 如果实例和另一个超平面具有相同的方向则为true
-