2013-05-09 75 views
1

我有一組塊對象,並且我想設置透視攝像頭以使它們的整個寬度完全可見(高度將會太大 - 沒關係,我們會上下平移)。Three.js放大以適應對象的寬度(忽略高度)

我已經看到有一些問題接近這一點,如:

Adjusting camera for visible Three.js shape

Three.js - Width of view

THREE.JS: Get object size with respect to camera and object position on screen

How to Fit Camera to Object

ThreeJS. How to implement ZoomALL and make sure a given box fills the canvas area?

然而,沒有人似乎相當面面俱到我在尋找:

  • 我不感興趣的高度,只有寬度(他們不會是相同的 - 規模將是動態的,但我可以假設高度會大於寬度)

  • camera.position.z(或我猜的FOV)是未知的,所以我試圖讓方程繞正確的方向解決這個問題

(我不太好3D數學。在此先感謝!)

回答

-1

我能夠簡化這個問題有很多,在我的情況...

因爲我知道對象的總體大小,我能簡單地拿出一個合適的距離通過改變相機的z位置幾次,並看到最好的。

我真正的問題是,由於不同的長寬比,相同的z位置在不同尺寸的屏幕上給出了與屏幕寬度不同的寬度。

所以我所做的只是通過camera.aspect來劃分我的距離值。現在,塊在所有屏幕尺寸上都佔用相同比例的屏幕寬度:-)