Я не проверял код, который вы разместили, но проблема кажется тривиальной.
В вашей функции main
после того, как вы нарисовали все треугольники / точки, получите список всех треугольников из subdiv
с:
vector<Vec6f> triangleList;
subdiv.getTriangleList(triangleList);
(как в функции draw_delaunay(...)
)
Теперь вы просто перебираете треугольники и сравниваете каждую точку каждого треугольника с вашей вершиной.
- Если это та же точка, что и у вас, то вы рассчитываете длину ребер с двумя другими точками треугольника.
Длина здесь = L2 норма вектора
v = point - your_vertex
= Sqrt(v.x^2 + v.y^2)
.
Там могут быть дубликаты некоторых ребер, поэтому, если вы хотите избежать этого, просто создайте набор и добавьте туда все точки и вычислите нормы позже.