我想在相机的右下角显示指示世界坐标方向(x,y,z)的箭头,就像在 Maya 中所做的那样,这样当围绕对象旋转相机或在场景中移动时,您仍然可以识别世界坐标的方向。
我尝试使用两种不同的方法来完成此任务,但到目前为止都没有奏效。
我有一个带有三个箭头的物体,作为孩子使用THREE.ArrowHelper
类,我们称之为XYZ
暂时。第一种方法是使XYZ
场景的子级,并为它提供一个根据相机当前位置加上相机指向方向的偏移计算的位置,并进行调整,使其出现在我希望它出现的角落而不是屏幕的中心。我几乎已经完成了这项工作,因为箭头保持了正确的旋转,但位置有点有趣,我停止沿着这条路线走,因为移动相机时真的很“紧张”。我不确定这是性能问题还是其他问题。
第二种方法是制作XYZ
具有本地位置偏移的相机的子级,然后反转相机的旋转并将反转的旋转应用到XYZ
所以它匹配世界坐标。我似乎很接近使用这种方法,但我要么可以得到正确的位置,要么得到正确的旋转,但不能两者兼而有之。
我目前正在使用代码XYZ.matrix.extractRotation( camera.matrixWorldInverse );
为我提供正确的方向XYZ
,但它的定位已关闭。如果我使用XYZ.matrixWorld.extractRotation( camera.matrixWorldInverse );
那么位置保持不变(连接到相机),但方向不会改变。
如果有人能快速实现此功能,我们将不胜感激。如果您有比我正在追求的方法更好的方法,那也会有所帮助。
与新three.js
您可以使用的版本:
var axesHelper = new THREE.AxesHelper( 5 );
scene.add( axesHelper );
参考:坐标轴助手 https://threejs.org/docs/#api/helpers/AxesHelper
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)