第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使相機適合對象

如何使相機適合對象

素胚勾勒不出你 2019-07-30 14:36:28
如何使相機適合對象使用three.js我有以下內(nèi)容。包含多個Object3D實例的場景幾個預定義的攝像頭Vector3位置如果屏幕調(diào)整大小,畫布的動態(tài)寬度/高度用戶可以選擇一個對象(從上面)用戶可以選擇攝像機位置(從上方)給定正在查看的對象和攝像機位置,他們選擇如何計算最終攝像機位置以“最佳地適應”屏幕上的對象?如果在某些屏幕上“按原樣”使用攝像機位置,則對象會在我的視口邊緣流血,而其他位置則顯得較小。我相信可以將物體安裝到相機平截頭體上,但卻找不到合適的物體。
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經(jīng)驗 獲得超4個贊

基于WestLangleys,這里的答案是如何使用固定的攝像機視野計算距離:

dist = height / 2 / Math.tan(Math.PI * fov / 360);


查看完整回答
反對 回復 2019-07-30
?
紫衣仙女

TA貢獻1839條經(jīng)驗 獲得超15個贊

要計算將相機放置到適合屏幕的對象的距離,您可以使用此公式(在Javascript中):


// Convert camera fov degrees to radians

var fov = camera.fov * ( Math.PI / 180 ); 


// Calculate the camera distance

var distance = Math.abs( objectSize / Math.sin( fov / 2 ) );

objectSize物體的高度或?qū)挾仍谀睦铩τ诹⒎襟w/球體對象,您可以使用高度或?qū)挾?。對于長度或?qū)挾容^大的非立方體/非球體對象,請使用var objectSize = Math.max( width, height )以獲得更大的值。


請注意,如果您的物體位置不在0, 0, 0,則需要調(diào)整相機位置以包含偏移。


這是一個CodePen,顯示了這一點。相關(guān)部分:


var fov = cameraFov * ( Math.PI / 180 );

var objectSize = 0.6 + ( 0.5 * Math.sin( Date.now() * 0.001 ) );


var cameraPosition = new THREE.Vector3(

    0,

    sphereMesh.position.y + Math.abs( objectSize / Math.sin( fov / 2 ) ),

    0

);

您可以看到,如果您抓住窗口手柄并調(diào)整其大小,則球體仍占據(jù)屏幕高度的100%。此外,對象以正弦波方式(0.6 + ( 0.5 * Math.sin( Date.now() * 0.001 ) ))向上和向下縮放,以顯示攝像機位置考慮對象的比例。


查看完整回答
反對 回復 2019-07-30
  • 3 回答
  • 0 關(guān)注
  • 394 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號