Получить края между вершинами (внешний многоугольник) - PullRequest
0 голосов
/ 15 октября 2019

Я использую THREE.JS и у меня есть этот меш с разными поверхностями. Из каждой поверхности я получил свои вершины. Теперь я хочу создать ребра (соединить вершины линиями). Вершины расположены в произвольном порядке, поэтому я не могу просто соединить v1 с v2, v2 с v3 и так далее. Я думаю, что мне нужно пройти через них лучом по часовой стрелке или против часовой стрелки и как-то расположить их в правильном порядке, и мне нужно как-то проверить их расстояния, чтобы горизонтальная линия между внутренними вершинами не появлялась, скорее она должна идтипрямо вдоль реальных краев, но я не знаю, как ... Любая идея?

(сферы - это вершины, которые являются реальными углами поверхности, оранжевые линии - это неправильные края, которые должныисправить, а синие линии - это края каждой отдельной грани) enter image description here

Мне нужно создать эти 8 граней (красный) enter image description here

1 Ответ

0 голосов
/ 25 октября 2019

Предполагая, что вы можете присвоить вершинам уникальный номер и однозначно связать каждый треугольник с гранью, а триангуляция водонепроницаема, ребра грани - это те ребра, которые являются общими для треугольника этой грани. и треугольник другого. Когда у вас есть все грани грани, очень просто связать их в многоугольник.

...