Там действительно нет простого решения вашей проблемы, особенно с кривыми (Безье и сплайны). Помимо сложностей обрезки полигонов, существует значительная проблема реконструкции обрезанных кривых (при условии, что вы хотите, чтобы результат обрезки оставался в виде линеек и сплайнов, а не только в виде «плоских» приближений линий).
Недавно я выпустил бета-обновление * для моей библиотеки обрезки полигонов 'Clipper', которая выполняет обрезку линий-полигонов и линий-линий (где линии также могут быть кривыми). Однако, хотя основная библиотека написана на Delphi, C ++ & C #, новый бета-код пока только на Delphi, который может вам не помочь. Тем не менее, если вы посмотрите на код, вы поймете, почему я утверждаю, что нет «простого» решения.
- Изменить 15 июля 2011 г .:
Это «обновление» никогда не выходило за рамки этой бета-версии и теперь является просто «проверкой концепции». Теперь она основана на старой версии моей библиотеки Clipper, и для ее поддержки и расширения потребуется серьезная перезапись. (На каком-то этапе я могу вернуться к нему, но в настоящее время я намерен продолжать улучшать базовую библиотеку.) Тем не менее, этот «проверенный концепцией» код Delphi можно загрузить здесь