Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 如何从向量和常数得到平面?_Three.js_Plane - Fatal编程技术网

Three.js 如何从向量和常数得到平面?

Three.js 如何从向量和常数得到平面?,three.js,plane,Three.js,Plane,在three.js中,的构造函数接受2个输入: 法线--(向量3)定义指向原点的平面的法线向量 常量--(浮动)沿法向量从原点到平面的负距离 有人能提供一个例子或解释这是如何工作的吗?我能理解给定一个点和法线如何构造一个平面,或3个共面点,但无法理解如何使用法向量和常数。TL:DR? 数学性与线性代数 所以三维空间中的平面可以定义为一个落在3个点上的二维无限矩形(你知道的) 它也可以由垂直(法线)向量和平面距原点多远的常数定义 Three.js取法向量(垂直于所需平面的向量),基本上应用线性代数

在three.js中,的构造函数接受2个输入:

法线--(向量3)定义指向原点的平面的法线向量

常量--(浮动)沿法向量从原点到平面的负距离

有人能提供一个例子或解释这是如何工作的吗?我能理解给定一个点和法线如何构造一个平面,或3个共面点,但无法理解如何使用法向量和常数。

TL:DR?
数学性与线性代数

所以三维空间中的平面可以定义为一个落在3个点上的二维无限矩形(你知道的)

它也可以由垂直(法线)向量和平面距原点多远的常数定义

Three.js取法向量(垂直于所需平面的向量),基本上应用线性代数来查找平面,然后将其移动到距离原点恒定的距离处

数学计算说明: 如果向量a和B是正交的,那么它们的点积是0。所以如果我们使用这个原理,我们实际上可以取一个已知的向量X,通过向后解X(点)Y=0和X(点)Z=0,找到两个正交向量Y和Z,它们将是共面的(由于正交性) 现在我们有两个共面向量,使我们的平面,我们设定常数离原点的距离

(想想向量如何有一个原点和一个端点。如果共面向量共享一个原点,那么我们有3个点:2个端点和1个原点,也就是3个点组成一个平面。)

数学理论解释这一点的原因:
我不能画得很好(没有纸和笔),但基本上,想想三维空间中的向量。现在想想所有垂直于它的向量。基本上,这会创建无限多的垂直向量,这些向量垂直于原始向量旋转成一个圆圈,如果我们无限地跨越它们,我们就创建了一个平面


如果你有机会上线性代数课,我强烈推荐你。它非常有趣,与计算机图形学非常相关,并解释了THREEjs使用的许多3D空间数学

这已经非常有用了,谢谢。所以常数是距离原点的距离,但是在给定向量的方向上,垂直于被计算的平面?我相信文档中说的是负距离,但这是一个简单的检查,只需将法向量取+y(0,1,0),然后将常数取为5。还可以在原点@(0,0,0)中添加一些内容,以查看平面是否位于上方或下方