// 创建已经挖好洞的shape 完整形状的数组点位(一维数组) 洞的形状的数组点位(二维数组)
createShape(pointsArray3D:{ x: number; y: number }[],holePoints:{ x: number; y: number }[][]) {
// 先创建一块大的形状
const shape = this.addShape(pointsArray3D);
// 再挖洞
for (let index = 0; index < holePoints.length; index++) {
const hole = this.addShape(holePoints[index]);
shape.holes.push(hole);
}
return shape;
}
// 创建shape(各类形状都可以)
addShape(shapeArr: { x: number; y: number }[]) {
let shape = new THREE.Shape();
let flag = true;
for (let index = 0; index < shapeArr.length; index++) {
if (flag) {
shape.moveTo(shapeArr[index].x, shapeArr[index].y);
flag = false;
} else {
shape.lineTo(shapeArr[index].x, shapeArr[index].y);
}
}
return shape;
}
该代码段展示了如何在JavaScript中使用THREE.js库创建一个带有孔洞的形状。首先,通过`addShape`函数创建基础形状,然后遍历一个二维数组来挖洞,将每个洞的形状添加到基础形状的孔洞列表中。
1360

被折叠的 条评论
为什么被折叠?



