2017-12-18 10 views
1

私のプロジェクトでは、さまざまな種類のモデルを動的にロードしています。ロードされたオブジェクトを特定のバウンディングボックス内に完全に収まるようにスケールする方法特定のバウンディングボックスに収まるようにスケールするオブジェクトthree.js

状況を明確にするために、私は読み込まれたオブジェクトを自分のFOVに収める必要はありません。私はすでに私のシーンにロードされている家を持っています。私は新しいロードされたオブジェクトを私の家の中に収めたい。

答えて

2

あなたが家のバウンディングボックス(boxHそれを呼び出す)とオブジェクトのバウンディングボックスを(boxOそれを呼び出す)持っているので、バウンディングボックスの比を取ることが

var sizeH = boxH.getSize(); // get the size of the bounding box of the house 
var sizeO = boxO.getSize(); // get the size of the bounding box of the obj 

var ratio = sizeH.divide(sizeO); // get the ratio of the sizes 

のサイズ今scale()あなたオブジェクトをratio変数の逆最大値で除算します。

+0

'ratio'変数の値に応じて縮尺を調整する方法を詳しく教えてください。 'ratio'変数の最大値が' maxVal'であるとします。どうすればいいですか?私は '1/maxVal'をとり、それをオブジェクトのスケール値として設定するか、またはそれをオブジェクトの現在のスケール値に掛けるべきですか? –

+0

オブジェクトの現在の縮尺に '1/maxVal'を掛けなければなりません – gaitat

関連する問題