Как бы вы вычислили функцию расстояния со знаком для многоугольника, описанного произвольным набором точек. Многоугольник может быть вогнутым или выпуклым. Предположим, что точки хранятся в std::vector
с обмоткой против часовой стрелки.
Обновить
Позвольте мне быть более конкретным. Это не выборочная функция на сетке. Мне нужно иметь возможность обнаруживать изменение знака вдоль произвольного отрезка линии, проведенного через (не обязательно пересекающий) многоугольник, без проверки отдельных пересечений с каждым отрезком линии. Проблема в том, что у меня могут быть тысячи отрезков.
Может ли кто-нибудь придумать эффективный способ сделать это?
Если я могу параметрически выразить SDF, я могу вычислить для этого производную.
min
max
операций. Может быть, я мог бы описать границу как плавно интерполированный безье или что-то в этом роде. - person Jacques Nel   schedule 23.01.2017