我正在使用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);
...这看起来是这样的:
正如你所看到的那样,这组球体是偏离中心的。我希望组居中,第三个球体位于两条线相交处(x=0
)。
那么有什么方法可以让我的小组居中?也许通过计算组的宽度,然后将其定位在x=-width/2
?我知道你可以在几何呼吁computeBoundingBox
以确定其宽度,但THREE.Group
不具有几何形状,所以我不知道如何做到这一点?
好!看到它太晚哈哈。 但是,最好只调用一次,因为它会扩展每个顶点的框顶点。 – neeh