Three.js 中 Object3D 提供的成员函数只能让模型绕起点为(0,0,0)的轴旋转,但在实际应用过程中有时会需要模型绕任意轴做旋转。笔者查找了很多博客没有找到比较好的解决方案,最后通过直接对模型应用4x4旋转矩阵实现了这个需求(也是在这个过程中发现,Three.js 中在对三维对象应用矩阵变换时是右乘)。
- 根据任意轴求解旋转矩阵可以参考这篇文章。
function rotateObjModel (rotateMatrix, rotate_obj) {
// console.log("rotateMatrix", rotateMatrix);
var find_obj = scene.getObjectByName(rotate_obj);
find_obj.applyMatrix4(rotateMatrix);
}