getSpacedPoints()
方法用于获取路径上等距离的离散点集合,默认情况下离散点之间的距离为路径长度的 0.1 倍。
CurvePath.getSpacedPoints(divisions)
divisions
:可选参数,表示路径分段的数量,默认值为 40
。返回一个存储 Vector3
类型点集合的数组,表示路径上均匀分布的点。
// 创建路径
const path = new THREE.CurvePath();
path.add(new THREE.LineCurve3(
new THREE.Vector3(-10, 0, 0),
new THREE.Vector3(0, 10, 0),
new THREE.Vector3(10, 0, 0)
));
// 获取路径上等距的点集合
const spacedPoints = path.getSpacedPoints(10);
// 循环遍历点集合
for (let i = 0; i < spacedPoints.length; i++) {
// 在该点创建一个小球表示
const ball = new THREE.Mesh(
new THREE.SphereGeometry(0.2, 16, 16),
new THREE.MeshBasicMaterial({ color: 'blue' })
);
ball.position.copy(spacedPoints[i]);
scene.add(ball);
}
LineCurve
和 CubicBezierCurve
组成的路径,以保证等距性更加准确。getSpacedPoints()
方法返回的点集合可以用于创建 TubeGeometry
类型的几何体,用于沿着路径建立管道或轨道等形状。