私は球のグループをレンダリングするためにThree.js(r86)を使用しています。私は外部のライブラリからcreateSphereGroup
関数を呼び出すことにより、これをやっている:子の幅に基づいてTHREE.Groupを中央に揃えるにはどうすればいいですか?
// External library code.
function createSphereGroup(sphereCount) [
var group = new THREE.Group();
for (var i = 0; i < sphereCount; i++) {
var geometry = new THREE.SphereGeometry(50);
var material = new THREE.MeshPhongMaterial({ color: 0xFF0000 });
var sphere = new THREE.Mesh(geometry, material);
sphere.position.x = i * 150;
group.add(sphere);
}
return group;
}
(外部ライブラリが不透明であると私はそれで任意のコードを変更することはできませんと仮定します。)
// My code.
var group = createSphereGroup(5);
scene.add(group);
...
ご覧のとおり、球のグループは中心から外れています。グループを中心にして、3つ目の球が2つの線が交差する点にあるようにしたい(x=0
)。
私はグループを中心にすることができる方法はありますか?多分、グループの幅を計算してから、それをx=-width/2
に置くことによって?ジオメトリ上でcomputeBoundingBox
と呼んでその幅を調べることができますが、THREE.Group
にはジオメトリがないので、これを行う方法がわかりません。
を!あまりにも遅くハハを見た。 ただし、頂点ごとにボックスの頂点を拡大するので、一度呼び出すほうがよい。 – neeh