Three.js 使用矩阵旋转时对象位置问题
Three.js issue with object position when using matrix make rotation
我正在尝试旋转一个我称为 "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() 肯定会破坏您的位置设置。
关于矩阵转换的 three.js 文档页面很有帮助:https://threejs.org/docs/#manual/introduction/Matrix-transformations。
此外,我为自己编写了一系列测试用例,以了解应用网格和几何体的旋转和变换的各种方法。可能有帮助:http://rwoodley.org/?p=1073
我正在尝试旋转一个我称为 "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() 肯定会破坏您的位置设置。
关于矩阵转换的 three.js 文档页面很有帮助:https://threejs.org/docs/#manual/introduction/Matrix-transformations。
此外,我为自己编写了一系列测试用例,以了解应用网格和几何体的旋转和变换的各种方法。可能有帮助:http://rwoodley.org/?p=1073