ThreeJS triangulateShape возвращает ноль - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь создать пользовательскую фигуру, используя 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, но не могу понять. Спасибо

1 Ответ

0 голосов
/ 28 апреля 2018

ShapeUtils.triangulateShape принимает только двухмерный контур в качестве первого параметра. Вы применяете данные 3D.

...