居中&包围球
居中
要获取几何体的中心,我们可以使用 getCenter
方法:
const center = duckGeometry.getCenter(new THREE.Vector3())
如果需要把几何体居中,我们可以使用 center
方法:
duckGeometry.center()
这样几何体就会移动到 (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)
本节示例 代码:https://github.com/wukaipeng-dev/threejs-demo/blob/main/03-geometry/src/main-sphere.ts