Three.js 3th.js中的平面常数定义
的文档说明,Three.js 3th.js中的平面常数定义,three.js,Three.js,的文档说明,常量是从原点到平面的有符号距离。但是,如果我在XZ平面下方构造一个简单的“地板”,如下所示: var plane = new THREE.Plane(); plane.setFromCoplanarPoints( new THREE.Vector3(0, -10, 0), new THREE.Vector3(0, -10, 1), new THREE.Vector3(1, -10, 0) ); console.log(plane); 我得到以下输出: Plane {n
常量
是从原点到平面的有符号距离。但是,如果我在XZ平面下方构造一个简单的“地板”,如下所示:
var plane = new THREE.Plane();
plane.setFromCoplanarPoints(
new THREE.Vector3(0, -10, 0),
new THREE.Vector3(0, -10, 1),
new THREE.Vector3(1, -10, 0)
);
console.log(plane);
我得到以下输出:
Plane {normal: Vector3, constant: 10, constructor: Object}
normal: Vector3
x: 0
y: 1
z: 0
<constructor>: "Vector3"
constant: 10
<constructor>: "Plane"
Plane{normal:Vector3,常量:10,构造函数:Object}
正常:矢量3
x:0
y:1
z:0
:“矢量3”
常数:10
:“飞机”
我的问题是:为什么是常量+10而不是-10?Y轴指向上,地板法线指向上,所以从原点到Y=-10平面的运动应该是负的,不是吗
类似于Plane.distanceToPoint的函数给出了正确答案,因此我怀疑我没有正确阅读文档
原点位于平面正方向,为其法线的10倍。为什么错了?这个问题已经在github上讨论过了,请参阅three.js
根据Hessian标准形式实现three.Plane
(请参阅)。它是有符号的(如果将-10改为10,则得到常数-10),正好相反。这只是一个惯例,让你感到困惑:)