在 Three.js 中,构造函数数学平面 http://threejs.org/docs/api/math/Plane.html需要 2 个输入:
法线 -- (Vector3) 定义指向原点的平面的法线向量
Constant -- (Float) 沿法向量从原点到平面的负距离
有人可以提供说明或解释其工作原理吗?我可以理解给定一个点和法线如何构造一个平面或 3 个共面点,但无法弄清楚如何使用法线向量和常数。
TL:DR?
数学与线性代数
所以 3 维空间中的平面可以定义为落在 3 个点上的 2 维无限矩形(你知道的)
它还可以由垂直(法向)向量和平面距原点多远的常数来定义。
Three.js 采用法线向量(垂直于所需平面的向量)并基本上应用线性代数来找到平面,然后将其移动到远离原点的恒定距离。
数学计算说明:
如果我们有一个正交(垂直)的向量 A 和 B,那么它们的点积为 0。因此,如果我们使用这个原理,我们实际上可以采用已知的向量 X 并找到 2 个共面的正交向量 Y 和 Z(由于正交性)通过向后求解 X(点)Y = 0 和 X(点)Z = 0
现在我们有 2 个共面向量来构成我们的平面,我们设置常数距原点的距离
(想想向量如何具有原点和端点。如果共面向量共享一个原点,那么我们就有 3 个点:2 个端点和 1 个原点,即 3 个点构成一个平面。)
数学理论解释为什么这会起作用:
我画得不太好(没有笔和纸来展示),但基本上,想想 3D 空间中的向量。现在考虑所有可以垂直于它的向量。基本上,这会创建无数个垂直于原始向量在圆中旋转的垂直向量,如果我们无限地跨越它们,我们就创建了一个平面。
如果您有机会参加线性代数课程,我强烈推荐它。它非常有趣,与计算机图形学非常相关,并解释了 THREEjs 使用的许多 3D 空间数学
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)