Я думаю, вам нужна общая триангуляция в первую очередь, а затем исправить все, что не является Делоне-законным?
очень плохой алгоритм триангуляции (с плохим углом вектором) выходит что-то вроде этого:
(я) Получить выпуклую оболочку облака точек (б) Подключите случайную точку CH (это удобно использовать первый) с каждой другой точкой CH (кроме, конечно, следующей и предыдущей, с которой он уже образует ребро).
(iiiA) Для каждой другой точки плоскости, если точка лежит в треугольнике, выведите из нее три треугольника, соединяя точку с тремя вершинами треугольника, в котором она лежит. (iiiB) Если это лежит на ребре (немного маловероятно для 100 пунктов, я думаю, вы можете пропустить его), соедините его с двумя другими вершинами четырехстороннего, в котором он лежит.
Я думаю, вы могли бы начать с этого. Облако будет полностью триангулировано, но, возможно, более половины краев будет незаконным. Затем вы можете продолжить исправление (перевертывание) необходимых краев.
Если вы обнаружили проблемы с его реализацией, я мог бы предоставить несколько примеров кода, чтобы вы начали. Теперь имейте в виду, что возвращаемое значение алгоритма было бы удобным быть множеством/вектором треугольников; таким образом вы можете манипулировать ими и изменять свой цвет индивидуально.
Это не вопрос о кодировании, а о триангуляции. – Walter
, но меня интересуют как триангуляция, так и ее кодирование. –