threejs改变模型的旋转中心

前言

  • 模型是一个引入模型,而且是非常多的不固定那种

  • 引起原因,模型中心(模型原点)不是几何中心,要手动调整

  • 只改变模型的position位置无法改变旋转中心问题

解决方案

  • 算出模型的几何中心,算出模型相对模型原点的偏移

  • 重点建立一个Group组,并对模型偏移

    ...
    let mesh = 模型
    let group = new THREE.Object3D();
    group.position.set(0, 0, 0); //世界原点坐标
    group.add(mesh);
    mesh.position.set(偏移X,偏移Y, 偏移Z);
    ...
image.png
  • 旋转
...
   mesh.rotateZ(0.01);
 ...
image.png

ps

  • 以下是未进行偏移的模型


    image.png
  • 本质上是未改变模型旋转中心的,但是可以拉进一个组,对组内模型进行组原点旋转

  • 偏移算法

const box = new THREE.Box3().setFromObject(mesh) //获取模型几何数据
...  //通过几何数据,算其他偏移
如 偏移X = -(box.min.x+ box.max.x) / 2

你可能感兴趣的:(threejs改变模型的旋转中心)