ThreeJS triangulateShape 返回 null

ThreeJS triangulateShape returning null

我正在尝试使用 ThreeJS triangulateShape 创建自定义形状。

例如:如果点是:["-1 0 1", "-1 0 -1", "1 0 -1", "1 0 1"] 一个简单的正方形,它应该自动创建由三角形形成的面:["0 1 2", "0 2 3"].

我正在尝试使用 shapeUtils.triangulateShape 函数,但它失败了。代码如下所示:

var geometry = new THREE.Geometry();
var points = data.vertices.map(function (vertex) {
    return vertex.split(' ').map(function(x){return parseFloat(x);});
});
for(var i =0; i < points.length; i++) {
  geometry.vertices.push(new THREE.Vector3(points[i][0], points[i][1], points[i][2]));
}
var holes =[];
var triangles = THREE.ShapeUtils.triangulateShape( geometry.vertices, holes );

它创建了一个空数组。我猜想将参数传递给 triangulateShape 是有问题的,但无法弄清楚。谢谢

ShapeUtils.triangulateShape 只接受二维轮廓作为第一个参数。您正在应用 3D 数据。