Эффективный клип многоугольника между значениями z

В настоящее время я использую алгоритм Сазерленда-Ходжмана для обрезки полигонов, который отлично работает для случая 2 (см. Изображение ниже). Проблема в том, когда есть больше решений (см. Случай 1).

Производительность также кажется проблемой, так как мне не нужно использовать какие-либо сложные полигоны для отсечения. Я использую прямоугольник, скажем, X от -1000 до 1000, чтобы имитировать отсечение между значениями Z.

Мне любопытно, есть ли какие-либо алгоритмы отсечения, которые могут иметь дело с несколькими решениями и имеют более простую сложность, чем Сазерленд-Ходжман. Мне просто нужно быстро обрезать определенные значения Z.

Обрезка полигонов

Спасибо за любые идеи.

PS: язык PHP, в настоящее время используется модифицированный алгоритм отсюда https://rosettacode.org/wiki/Sutherland-Hodgman_polygon_clipping#PHP

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …