2017-10-10 15 views
0

さまざまな幅、高さ、深さのキューブを配置するスクリプトがあり、xAxis、yAxis、zAxis(これも異なる)に基づいて正確に整列するのに苦労しています。サイズのキューブを変化させるため、この問題を解決するだろう - 私はキューブがそれの中心部に基づいて配置されているためであると考えていthree.js - ジオメトリの翻訳方法

var geometry = new THREE.BoxGeometry(width, height, depth); 
var cube = new THREE.Mesh(geometry, material); 
cube.position.set(xAxis, yAxis, -zAxis); 
scene.add(cube); 

は、しかし、左コーナー手前に基づいて、それを配置する方法は、ありますか?

+0

こんにちは、jsfiddleの例ですか? –

+0

または、少なくとも私にとって、理解しにくいように、希望の結果を持つ写真が、「正面、左隅」_です。 – prisoner849

+0

* "xAxis、yAxis、zAxisに基づいて正確に整列するのに苦労しています" * - 正確な問題は何ですか?たぶん画像が参考になるかもしれません。 –

答えて

2

ボックスの一角が原点に位置していますので、あなたは、あなたのジオメトリを変換することができます。

var geometry = new THREE.BoxGeometry(width, height, depth); 
geometry.translate(width/2, height/2, depth/2); 

を使用すると、異なるサイズの多くのキューブインスタンスがある場合、このパターンを使用することをお勧めします:

var geometry = new THREE.BoxGeometry(1, 1, 1); // create once and reuse 
geometry.translate(0.5, 0.5, 0.5); 

var cube_1 = new THREE.Mesh(geometry, material); 
cube_1.scale.set(width, height, depth); 

three.js r.87

+0

ありがとう@WestLangley - 完璧に働いた! – wrdevelop

関連する問題