three.js中的Matrix4对坐标为何不起作用?
var mirrorMatrix = new THREE.Matrix4();
mirrorMatrix.set(
3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 20, 4, 2, 1
);
sphere.applyMatrix(mirrorMatrix);
scene.add(sphere);
console.log(sphere);
camera.position.x = -30;
camera.position.y = 40;
camera.position.z = 30;
camera.lookAt(scene.position);
document.getElementById("WebGL-output").appendChild(renderer.domElement);
renderer.render(scene, camera);
发现scale没有问题,但是坐标20,4,2不起作用,仍然在原点位置,这是为什么呢?谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Update1:
因为使用数组来存储矩阵,矩阵是二维的,如果用一维数组存储的话,肯定会涉及一个顺序问题,即一行行的存储还是一列列的存储;
官网的说明是set方法使用的是
行主序
,元素中的矩阵是列主序
,举例如下:矩阵
如果使用
行主序
存储在数组中,那么这个数组是[3, 0, 0, 20, 0, 3, 0, 4, 0, 0, 3, 2, 0, 0, 0, 1]如果使用
列主序
存储在数组中,那么这个数组是[3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 20, 4, 2, 1]