Это то, что я хотел бы получить (модифицируемый многоугольник, где красные круги - это вершины), и я хотел бы построить многоугольник динамически.
При запуске геометрии как
var geometry = new THREE.Geometry();
geometry.vertices.push(point);
geometry.vertices.push(point);
var line = new THREE.Line(geometry, new THREE.LineBasicMaterial({}));
он работает хорошо до второго щелчка, он строит прямую линию между 1 и 2, но не добавляет третью строку, когда она помещается в массив. WebGL, похоже, требует буферизованных точек.
Когда я предопределяю такие вершины, я могу нарисовать две строки (третий клик)
var geometry = new THREE.Geometry();
for (var i = 0; i < 4; i++) {
geometry.vertices.push(point);
}
var line = new THREE.Line(geometry, new THREE.LineBasicMaterial({}));
но это нехорошее решение, поскольку я не знаю, сколько вершин хочет добавить пользователь, и бессмысленно назначать ему большое число, поскольку я должен его цикл несколько раз.
Есть ли способ обойти это?