JSRUN 用代码说话

平面(Plane)

编辑教程

平面(Plane)

在三维空间中无限延伸的二维平面,平面方程用单位长度的法向量和常数表示为海塞法向量Hessian normal form形式。

构造器(Constructor)

Plane( normal : Vector3, constant : Float )
  • normal - (可选参数) 定义单位长度的平面法向量Vector3。默认值为 (1, 0, 0)。
  • constant - (可选参数) 从原点到平面的有符号距离。 默认值为 0.

属性(Properties)

.normal : Vector3

.constant : Float

方法(Methods)

.applyMatrix4 ( matrix : Matrix4, optionalNormalMatrix : Matrix3 ) : Plane

matrix - 要应用的四位矩阵(Matrix4)。

optionalNormalMatrix - (可选参数) 预先计算好的上述Matrix4参数的法线矩阵 Matrix3。

在平面上应用矩阵。矩阵必须是仿射齐次变换。

如果提供一个optionalNormalMatrix,可以这样创建:

var optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );

.clone () : Plane

返回一个与当前平面有相同法线 normal,常量 constant 距离的平面。

.coplanarPoint ( target : Vector3 ) : Vector3

target — 结果会拷贝到该向量中。

返回一个共面点,通过原点的法向量在平面上投影算得。

.copy ( plane : Plane ) : Plane

拷贝给定平面,将其中的法线 normal,距离常量 constant属性拷贝给该对象。

.distanceToPoint ( point : Vector3 ) : Float

返回点point到平面的有符号距离。

.distanceToSphere ( sphere : Sphere ) : Float

返回球面 sphere 的边缘到平面的最短距离。

.equals ( plane : Plane ) : Boolean

检查两个平面是否相等。(法线 normal 以及常量 constant 都相同)。

.intersectLine ( line : Line3, target : Vector3 ) : Vector3

  • line - 检测是否相交的三维几何线段 Line3。
  • target — 结果将会写入该向量中。

返回给定线段和平面的交点。如果不相交则返回undefined。如果线与平面共面,则返回该线段的起始点。

.intersectsBox ( box : Box3 ) : Boolean

box - 检查是否相交的包围盒 Box3。

确定该平面是否与给定3d包围盒Box3相交。

.intersectsLine ( line : Line3 ) : Boolean

line - 检查是否相交的三维线段 Line3。

测试线段是否与平面相交。

.intersectsSphere ( sphere : Sphere ) : Boolean

sphere - 检查是否相交的球体 Sphere。

确定该平面是否与给定球体 Sphere 相交。

.negate () : Plane

将法向量与常量求反(乘以-1)。

.normalize () : Plane

归一化法向量 normal ,并相应的调整常量 constant数值。

.projectPoint ( point : Vector3, target : Vector3 ) : Vector3

  • point - 需要投射到该平面的点。
  • target — 在该平面上离投射点最近的点。

将一个点point投射到该平面上。

.set ( normal : Vector3, constant : Float ) : Plane

  • normal - 单位长度的向量表示平面的法向量。
  • constant - 原点到平面有符号距离。默认值为 0。

设置平面 normal 的法线和常量 constant 属性值。

.setComponents ( x : Float, y : Float, z : Float, w : Float ) : Plane

  • x - 单位长度法向量的x值。
  • y - 单位长度法向量的y值。
  • z - 单位长度法向量的z值。
  • w - 原点沿法向量到平面常量 constant 距离。

设置定义平面的各个变量。

.setFromCoplanarPoints ( a : Vector3, b : Vector3, c : Vector3 ) : Plane

  • a - 用于确定平面的第一个点。
  • b - 用于确定平面的第二个点。 c - 用于确定平面的第三个点。

根据给定的三个点确定平面。如果三个点共线将会抛出错误。通过右手螺旋规则确定(向量叉乘)法向量 normal。

.setFromNormalAndCoplanarPoint ( normal : Vector3, point : Vector3 ) : Plane this : Vector3

  • normal - 平面单位法向量
  • point - 平面上的点

通过平面上的一点以及法线确定原点到平面的最短距离(常量)。

.translate ( offset : Vector3 ) : Plane

  • offset - 平移量

将平面平移给定向量大小,注意:这只会影响平面的常量不会影响平面的法向量。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟