javascript - 在 THREE.JS 中手动对 Matrix4 应用旋转和平移

标签 javascript matrix three.js

我正在尝试理解three.js的坐标空间,我理解有object.matrix和object.matrixWorld。

在偶然发现这篇博文后 Matrix Basics. How to step away from storing an orientation as ’3 angles’ ,我决定尝试学习如何手动操作 Matrix4 的属性,从而避免使用欧拉旋转。

我要做的就是将我的立方体从原点 0,0,0 移开,然后在世界空间中旋转它。在我看来,结果是立方体首先在 y 轴上平移,然后旋转将它以大弧线带回平面,但实际发生的是它只是回到原点而忽略了平移。

我已经阅读了大量有关向量和矩阵的资料,我相信我现在已经充分理解了它们背后的理论。我真正不明白的是 three.js 如何处理 matrixWorld 和矩阵。我都试过了!

这里有一个 fiddle 来演示:http://jsfiddle.net/SCXNQ/151/

只需查看 render() 函数即可了解我正在尝试做什么!

编辑 - [已解决] 工作版本 14/09/12 的更新 JS FIDDLE

在下面的答案的帮助下,我想我会发布我更新的 fiddle 来展示我想要实现的目标 - http://jsfiddle.net/SCXNQ/363/

最佳答案

看看this ,这就是我认为您想要的。

编辑: 哎呀,矩阵顺序错了(另一件你需要牢牢掌握的事情)->试试this还有。

关于javascript - 在 THREE.JS 中手动对 Matrix4 应用旋转和平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11118126/

相关文章:

JavaScript - 同步等待异步操作(休眠)

c++ - 透视矩阵似乎不对

c++ - 包含二维数组的类的运算符重载

javascript - 添加纹理到 ExtrudeGeometry

javascript - 在 JavaScript 中创建元素

javascript - 使用javascript正则表达式提取图像路径

javascript - HTML5 Canvas 的多点触控

matlab - 如何逐行比较矩阵与指定条件

css - ThreeJS Size Canvas 填充空间

javascript - Three.js:表面是片面的