ThreeJSは、オブジェクトのバウンディングボックスのサイズを計算します

グラフの境界ボックスのサイズを計算します。

 
function computeScale(geometry) {
    geometry.computeBoundingBox();
    var maxX = geometry.boundingBox.max.x;
    var minX = geometry.boundingBox.min.x;
    var maxY = geometry.boundingBox.max.y;
    var minY = geometry.boundingBox.min.y;
    var maxZ = geometry.boundingBox.max.z;
    var minZ = geometry.boundingBox.min.z;
    var maxDis = Math.sqrt((maxX - minX) * (maxX - minX) + (maxY - minY) * (maxY - minY) + (maxZ - minZ) * (maxZ - minZ)) / 2;
    var scale = 1.0 / maxDis;
    return scale;
}
 
然后在模型的loader写
    geometry.computeVertexNormals();
    geometry.center();
    material = new THREE.MeshPhongMaterial({color: 0xffff00, shading: THREE.SmoothShading});
    mesh = new THREE.Mesh(geometry, material);
    var scale = computeScale(geometry);
    mesh.scale.multiplyScalar(scale);
    mesh.position.set(0, 0, 0);
    scene.add(mesh);

 

おすすめ

転載: blog.csdn.net/sichuanpb/article/details/111308370