类 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获取平行平面的偏移量(有向距离)。doublegetOffset(Point<Euclidean3D> point) 获取点的偏移量(有向距离)。doublegetOffset(Vector<Euclidean3D, Vector3D> vector) 获取向量的偏移量(有向距离)。获取平面框架的原点。getPointAt(Vector2D inPlane, double offset) 从三维空间中获取一个点。double获取被认为属于超平面的点的容差。getU()获取平面的第一个规范向量。getV()获取平面的第二个规范向量。intersection(Line line) 获取与实例相交的直线。intersection(Plane other) 构建实例和另一个平面共享的线。static Vector3Dintersection(Plane plane1, Plane plane2, Plane plane3) 获取三个平面的交点。booleanisSimilarTo(Plane plane) 检查实例是否与另一个平面相似。project(Point<Euclidean3D> point) 将点投影到超平面上。void从另一个实例重置实例。void重置实例,就像是从一个点和一个法线构建的一样。void反转平面。将平面围绕指定点旋转。booleansameOrientationAs(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
-