跳到主要内容

居中&包围球

居中

要获取几何体的中心,我们可以使用 getCenter 方法:

const center = duckGeometry.getCenter(new THREE.Vector3())

Get the center of the geometry

如果需要把几何体居中,我们可以使用 center 方法:

duckGeometry.center()

Center the geometry

这样几何体就会移动到 (0, 0, 0) 位置。

包围球

拿到中心点之后,就可以设置包围球:

// 获取包围球
const duckSphere = duckGeometry.boundingSphere as THREE.Sphere
duckSphere.applyMatrix4(duckMesh.matrixWorld)
// 创建包围球
const duckSphereGeometry = new THREE.SphereGeometry(duckSphere.radius, 16, 16)
const duckSphereMaterial = new THREE.MeshBasicMaterial({
color: 0xff0000,
wireframe: true,
})
const duckSphereMesh = new THREE.Mesh(duckSphereGeometry, duckSphereMaterial)
duckSphereMesh.position.copy(center)
scene.add(duckSphereMesh)

Bounding sphere

本节示例代码:https://github.com/wukaipeng-dev/threejs-demo/blob/main/03-geometry/src/main-sphere.ts