В настоящее время я использую алгоритм Сазерленда-Ходжмана для обрезки полигонов, который отлично работает для случая 2 (см. Изображение ниже). Проблема в том, когда есть больше решений (см. Случай 1).
Производительность также кажется проблемой, так как мне не нужно использовать какие-либо сложные полигоны для отсечения. Я использую прямоугольник, скажем, X от -1000 до 1000, чтобы имитировать отсечение между значениями Z.
Мне любопытно, есть ли какие-либо алгоритмы отсечения, которые могут иметь дело с несколькими решениями и имеют более простую сложность, чем Сазерленд-Ходжман. Мне просто нужно быстро обрезать определенные значения Z.
Спасибо за любые идеи.
PS: язык PHP, в настоящее время используется модифицированный алгоритм отсюда https://rosettacode.org/wiki/Sutherland-Hodgman_polygon_clipping#PHP
Задача ещё не решена.
Других решений пока нет …