思路,通过BoundingBoxHelper取模型的中心位置坐标,然后根据坐标设置偏移量,设置偏移方向即可。
<div><img src="file:///C:\Users\sbtr\Documents\Tencent Files\451677917\Image\Group\Image1\%)DKD{~ILKI6NRIY07OP)MU.png" alt="" /></div>
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);