Я пытаюсь создать полигон в three.js. Я использовал этот код.
function DeployZone(coordinatesList) {
// Create the polygon Shape
{
var material = new THREE.MeshLambertMaterial({ color: 0x00ffcc });
var faces = [0, 1, 2, 3, 4];
var geometry = new THREE.Geometry();
for (var i = 0; i < coordinatesList.length; i++) {
geometry.vertices.push(new THREE.Vector3(
coordinatesList[i].x,
coordinatesList[i].z,
coordinatesList[i].y
));
}
for (var i = 0; i<faces.length; i++) {
for (var j = 1; j < faces.length - 1; j++) {
geometry.faces.push(new THREE.Face3(faces[0], faces[j], faces[j + 1]));
}
}
geometry.computeFaceNormals();
var zone = new THREE.Mesh(geometry, material);
scene.add(zone);
}
}
Вот координаты, которые я передаю:
var coordinatesList = new List<Coordinates>() {
new Coordinates(X:0,Y:0,Z:0),
new Coordinates(X:0,Y:10,Z:0),
new Coordinates(X:5,Y:10,Z:0),
new Coordinates(X:2,Y:8,Z:0),
new Coordinates(X:5,Y:5,Z:0)
};
Хотяон создает многоугольник, но не создает желаемый многоугольник. Вершина в (x: 2, y: 8, z: 0) не находится в положении. Проблема в том, что треугольные грани не определены должным образом. Пожалуйста, помогите с этим, чтобы грани и вершины могли быть динамическими, а сгенерированная геометрия подходящей.
Спасибо за тонну.
PS Я пытался работать с формой, но это не похоже на работудля меня тоже. Я использовал этот в коде.