【Threejs】详解模型居中的各种实现方法

  1. // const p0 = obj.position.clone();
    // var box = new THREE.Box3().setFromObject( obj );
    // // box.getCenter( obj.position ); // this re-sets the obj position
    // box.getCenter( p0 );
    // obj.geometry.center();
    
    // let center = new THREE.Vector3();
    // obj.geometry.computeBoundingBox();
    // obj.geometry.boundingBox.getCenter(center);
    // obj.geometry.center();
    // obj.position.copy(center);
    
    const p1 = modelObj.position.clone();
    // const p2 = obj.position.clone();
    
    scene.updateMatrixWorld(true);
    
    // var v2 = new THREE.Vector3().copy(p2);
    // obj.localToWorld(v2);
    
    
// 声明一个三维向量用来保存网格模型的世界坐标
var worldPosition = new THREE.Vector3();
// 获得世界坐标,执行getWorldPosition方法,提取网格模型的世界坐标结果保存到参数worldPosition中
obj.getWorldPosition(worldPosition)
console.log('查看网格模型世界坐标',worldPosition);
console.log('查看网格模型本地坐标',obj.position);


modelObj.position.set(p1.x - worldPosition.x, p1.y - worldPosition.y, p1.z - worldPosition.z);


Donate
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Peng Xiang
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信