三.js使用矩阵旋转时对象位置问题

Three.js issue with object position when using matrix make rotation

本文关键字:对象 位置 问题 旋转 js      更新时间:2023-09-26

我试图旋转一个我称之为"moon"(它是一个球体)的对象,试图以这种方式使用矩阵而不是moon.rotation.y:

moon.applyMatrix(new THREE.Matrix4().makeRotationY(Math.PI/100));

好消息是物体旋转得很好,但我不知道为什么物体改变了他的初始位置:

moon.position.set(30,1,30);

到 (0,0,0)

你能告诉我为什么,如果我执行第一行,对象被放置在 0,0,0 中,如果不保持在正确的位置 (30,1,30)?

谢谢。

问候。

何塞。

applyMatrix() 直接修改矩阵。设置位置时,矩阵仅在渲染循环中更新,或者调用 updateMatrix()。因此,根据您的操作顺序,调用applyMatrix()肯定会破坏您的仓位设置。

关于矩阵转换的三个.js文档页面很有帮助:https://threejs.org/docs/#manual/introduction/Matrix-transformations。

此外,我还为自己编写了一系列测试用例,以了解应用网格和几何体的旋转和变换的各种方法。可能会有所帮助:http://rwoodley.org/?p=1073