手册
- 起步
- 进阶
- 构建工具
参考
- 动画
- 动画 / 轨道
- 音频
- 摄像机
- 常量
- 核心
- 核心 / BufferAttributes
- 附件
- 附件 / 核心
- 附件 / 曲线
- 附件 / 物体
- 几何体
- 立方缓冲几何体(BoxGeometry)
- 圆形缓冲几何体(CircleGeometry)
- 圆锥缓冲几何体(ConeGeometry)
- 圆柱缓冲几何体(CylinderGeometry)
- 十二面缓冲几何体(DodecahedronGeometry)
- 边缘几何体(EdgesGeometry)
- 挤压缓冲几何体(ExtrudeGeometry)
- 二十面缓冲几何体(IcosahedronGeometry)
- 车削缓冲几何体(LatheGeometry)
- 八面缓冲几何体(OctahedronGeometry)
- 参数化缓冲几何体(ParametricGeometry)
- 平面缓冲几何体(PlaneGeometry)
- 多面缓冲几何体(PolyhedronGeometry)
- 圆环缓冲几何体(RingGeometry)
- 形状缓冲几何体(ShapeGeometry)
- 球缓冲几何体(SphereGeometry)
- 四面缓冲几何体(TetrahedronGeometry)
- 文本缓冲几何体(TextGeometry)
- 圆环缓冲几何体(TorusGeometry)
- 圆环缓冲扭结几何体(TorusKnotGeometry)
- 管道缓冲几何体(TubeGeometry)
- 网格几何体(WireframeGeometry)
- 辅助对象
- 灯光
- 灯光 / 阴影
- 加载器
- 加载器 / 管理器
- 材质
- 基础线条材质(LineBasicMaterial)
- 虚线材质(LineDashedMaterial)
- 材质(Material)
- 基础网格材质(MeshBasicMaterial)
- 深度网格材质(MeshDepthMaterial)
- MeshDistanceMaterial
- Lambert网格材质(MeshLambertMaterial)
- MeshMatcapMaterial
- 法线网格材质(MeshNormalMaterial)
- Phong网格材质(MeshPhongMaterial)
- 物理网格材质(MeshPhysicalMaterial)
- 标准网格材质(MeshStandardMaterial)
- MeshToonMaterial
- 点材质(PointsMaterial)
- 原始着色器材质(RawShaderMaterial)
- 着色器材质(ShaderMaterial)
- 阴影材质(ShadowMaterial)
- 点精灵材质(SpriteMaterial)
- 数学库
- 数学库 / 插值
- 物体
- 渲染器
- 渲染器 / 着色器
- 渲染器 / WebXR
- 场景
- 纹理贴图
示例
- 动画
- 控制
- 几何体
- 辅助对象
- 灯光
- 加载器
- 物体
- 后期处理
- 导出器
- 数学库
- QuickHull
- 渲染器
- 实用工具
开发者参考
- 差异化支持
- WebGL 渲染器
平面(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,可以这样创建:
const 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 — 结果将会写入该向量中。
返回给定线段和平面的交点。如果不相交则返回null。如果线与平面共面,则返回该线段的起始点。
.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 属性值 by copying the values from the given normal。
.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 - 平移量
将平面平移给定向量大小,注意:这只会影响平面的常量不会影响平面的法向量。
Source
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论