我想旋转X轴和Y轴,如下图所示:
情景是这样的:
!!在这种情况下,Z轴是3D上下轴,并没有服务任何重要性!!
在场景开始时,您是一个看着Y的3D角色。您可以使用以下代码沿X轴向左和向右移动:
camera.position.x += 1; OR camera.position.x -= 1;
您也可以转动相机并朝另一个方向看。这将是图2中的Y1点。我通过以下代码旋转相机对象:
camera.rotation.z += 1; OR camera.rotation.z -= 1; //Normally Z is Y.
现在,当您尝试沿X轴移动时,您仍将沿原始X1轴而不是新X2轴移动。
我的问题是,如何让对象沿着新的X2轴而不是旧的原始X1轴移动?
答案 0 :(得分:2)
建议您了解对象空间和世界空间,您可以查看此书3D Math Primer for Graphics and Game Developmen
实际上,camera.position.x += 1
使摄像机沿着世界空间X轴进行平移,在开始时,世界空间与对象空间相同,当您旋转时相机camera.rotation.z += 1
,对象空间已更改,您想要沿着对象空间轴进行转换,您应该使用camera.translateX(0.1)
。相机将在对象空间中进行翻译。