所以我已经尝试了几个小时来解决这个问题,但无法让它工作。
我创建了一个网格并在正交视图中从上方查看。
网格的尺寸是:400 * 500 高度(需要吗?)是 300
它位于点 0, 0, 0
相机位于 0, 5000, 0 上 正面朝下 0, 0, 0
现在我唯一需要知道的是如何计算 fov
_CoreManager.GetCamera().setFov(X);
这样相机就可以从上方看到整个网格 + 每侧 100 个单位,因此用户可以看到网格的边界位置。
试过这个,要么我做错了,要么它不适用于 Ortho, https://github.com/mrdoob/three.js/issues/1239
谢谢 :)
更新:
我尝试了一种我认为有意义的新方法,但不...
http://forums.cgsociety.org/archive/index.php/t-725538.html
var dist = _Camera.position.y - _mesh.position.y;
var width = _mesh.geometry.parameters.width;
var halfHorizontalFOV = Math.atan((width / 2) / dist);
halfHorizontalFOV = Algorithms.ConvertRadiansToDegrees(halfHorizontalFOV);
给我的学位与应有的水平相去甚远。