Three.js - 整个场景显示的设置摄像机的算法?

时间:2012-11-26 20:04:45

标签: javascript 3d three.js

当我设置场景,添加几何图形等时,如何设置相机以便能够看到整个场景?我正在尝试使用边界框来实现算法,但我有点卡住了。

1 个答案:

答案 0 :(得分:0)

您只需要使用Math.abs(number)找到所有变量之间的最大绝对值,一旦找到最大值,就可以将摄像机的深度(position.z)设置为该数字。我做了一个简单的函数,它接收2个数字并返回最大的数字。

function findGreatestAbsolute( firstNumber, secondNumber ) {
    if( Math.abs( firstNumber ) > Math.abs( secondNumber )) {
        return Math.abs( firstNumber );
    } else { return Math.abs( secondNumber ); }
}

如果数字太多,您也可以使用数组。 找到您的号码后,您可以:

    camera = new THREE.PerspectiveCamera( cameraFov, windowHalfX / windowHalfY , 1, someDepth );
    camera.position.z(greatestNumber);

    camera.position.set(yourX, yourY, greatestNumber);

嗯,我希望它有所帮助。