我been told在three.js中几何的标准法线向量是(0, 0, 1)
。
但是,当我创建GridHelper构造函数的实例时,它将创建一个由X和Z轴跨越的平面。这样的平面的法向矢量为(0, 1, 0)
。
可以从此屏幕快照中看到,该屏幕显示了GridHelper的几何形状的顶点:
并通过目视检查确认:
这就是我实例化GridHelper的方法:
var myGridHelper = new THREE.GridHelper(10, 20);
为什么GridHelper不符合标准法线向量?
如果此功能/错误不会改变:
我是否可以通过始终使用以下代码启动GridHelper实例来解决此问题:
var standardPlaneNormal = new THREE.Vector3(0, 0, 1);
var GridHelperPlaneNormal = new THREE.Vector3(0, 1, 0);
var quaternion = new THREE.Quaternion();
quaternion.setFromUnitVectors(standardPlaneNormal, GridHelperPlaneNormal);
var myGridHelper = new THREE.GridHelper(10, 20);
myGridHelper.rotation.setFromQuaternion(quaternion);
?
最佳答案
如果要将lookAt()
方法与GridHelper
一起使用,则需要旋转网格几何形状,以便网格位于XY平面而不是XZ平面中。完成后,lookAt()
将按预期工作。
var grid = new THREE.GridHelper( 10, 2 );
grid.geometry.rotateX( Math.PI / 2 );
var vector = new THREE.Vector3( 1, 1, 1 );
grid.lookAt( vector );
scene.add( grid );
three.js r.76
关于javascript - three.js:GridHelper使非标准网格吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37083229/