three.js中讓模型自動居中的代碼如下:


//load_Model為需要居中的3D模型
//原理是通過boundingBoxHelper 來計算模型的大小范圍

var hex  = 0xff0000;     
var MD_Length,MD_Width,MD_height;//記錄長寬高
var BaxH = new THREE.BoundingBoxHelper(Load_Model,hex);//創建BoundingBoxHelper
BaxH.update();//更新
scene.add( BaxH ); //添加到場景中
MD_Length=BaxH.box.max.x-BaxH.box.min.x; //
MD_Width=BaxH.box.max.z-BaxH.box.min.z;//
MD_height=BaxH.box.max.y-BaxH.box.min.y;////計算模型中心位置
var Cx,Cy,Cz;
Cx=BaxH.box.min.x+MD_Length/2;
Cz=BaxH.box.min.z+MD_Width/2;
Cy=BaxH.box.min.y+MD_height/2;

//添加並設置group坐標位置
var group=new THREE.Group();
scene.add(group);
group.position.set(0,0,0);
group.add(Load_Model);//將模型加入到group中
            
//計算新模型新位置 根據模型中心位置設置偏移方向
var NewX,NewY,NewZ;
if(Cx>=0){
    NewX=-Cx;               
}else{
    NewX=Cx;
}

if(Cy>=0){
    NewY=-Cy;
}else{
    NewY=Cy;
}

if(Cz>=0){
    NewZ=-Cz;
}else{
    NewZ=Cz;
}

Load_Model.position.set(NewX,NewY,NewZ);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM