裤兜响当当
2016-04-05 08:19
采纳率: 100%
浏览 9.1k

three.js中如何旋转物体position坐标系

在three.js中导入了外部创建的几何体,我想使物体本身的坐标系围绕Y轴旋转45度:

object.rotation.y=Math.PI/4;

object.position.x=1;

但是旋转后物体的坐标并没有变化,即物体的世界坐标还是(1,0,0)。请问我改如何实现这种想法,以上程序错误在哪里?谢谢大家的解答。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 裤兜响当当 2016-04-06 11:38
    已采纳

    我找到解决方案了,分享给大家,rotation改变的是子对象的坐标系,但是不改变本身的坐标系角度,所以想要改变其自身的坐标系方向,可以为其添加父对象,然后改变父对象的rotation。
    temp=new THREE.Object3D();
    temp.add(object);
    temp.rotation.y=Math.PI/4;
    此时object的XZ坐标系就旋转了45度。

    点赞 3 评论
  • 裤兜响当当 2016-04-06 11:39

    我找到解决方案了,分享给大家,rotation改变的是子对象的坐标系,但是不改变本身的坐标系角度,所以想要改变其自身的坐标系方向,可以为其添加父对象,然后改变父对象的rotation。
    temp=new THREE.Object3D();
    temp.add(object);
    temp.rotation.y=Math.PI/4;
    此时object的XZ坐标系就旋转了45度。

    点赞 1 评论
  • freedamjustice 2016-04-06 06:26

    rotation是绕物体本身中心点旋转。要绕坐标Y轴旋转需要自行计算其旋转后坐标,再设置。 像你的代码object.rotation.y=Math.PI/4;如果加上贴图
    和定时旋转,你就会发现物体其实是在做自转。

    点赞 评论

相关推荐 更多相似问题