Jump to content

Общий клипер полигонов

General Polygon Clipper ( GPC ) — это программная библиотека, позволяющая вычислять результаты операций обрезки наборов полигонов . компьютерной графики Он обобщает проблему отсечения пересечения многоугольников с многоугольниками. Первая версия GPC была разработана и реализована в 1997 году Аланом Муртой. По состоянию на август 2009 г. последней версией GPC была версия 2.32. Основная библиотека GPC написана на языке программирования C , но библиотека также была портирована для работы с несколькими другими языками.

Доступность

[ редактировать ]

С августа 2020 года GPC больше не распространяется автором официально.

В декабре 2021 года копия кода GPC (v2.32) была размещена на GitHub под лицензией MIT автором Paint.NET Риком Брюстером. [1]

Лицензирование

[ редактировать ]

Разработчики могут использовать GPC для любых целей без платных лицензионных ограничений.

Особенности ГПК

[ редактировать ]

Ниже кратко описаны функции и операции с полигонами, поддерживаемые GPC.

GPC может вычислять следующие операции обрезки: разница , пересечение , исключающее ИЛИ и объединение .

Полигоны могут содержать несколько непересекающихся контуров. Вершины контура могут быть указаны как по часовой стрелке, так и против часовой стрелки. Контуры могут быть выпуклыми, вогнутыми или самопересекающимися. Контуры могут быть вложенными. Другими словами, в многоугольниках могут быть дыры.

Выходные данные операции обрезки из GPC представляют собой набор полигональных контуров или триполосок. В выходных данных GPC различаются отверстия и внешние контуры. Совпадающие ребра и вырожденные области обрабатываются корректно.

Примеры операций GPC над множествами полигонов

[ редактировать ]

Следующие четыре изображения показывают примеры вычислительных операций GPC между двумя наборами полигонов. Первый набор полигонов содержит контуры Соединенного Королевства и Ирландии. Второй набор многоугольников состоит из четырех больших стрелок, направленных внутрь. В каждом примере области, полученные в результате операции GPC между двумя наборами полигонов, отображаются в цвете.

В этом примере показана разница между двумя наборами:

Пример разницы GPC
Example of GPC Difference

В этом примере показано пересечение двух наборов:

Пример пересечения GPC
Example of GPC Intersection

В этом примере показано объединение двух наборов:

Пример Союза GPC
Example of GPC Union

В этом примере показано исключающее ИЛИ между двумя наборами:

Пример GPC Exclusive-или
Example of GPC Exclusive-or

Порты и языковые привязки

[ редактировать ]

Основной код GPC написан на C , но сообщество пользователей GPC внесло ряд портов и привязок (или оболочек) для различных других языков ( ActionScript 3 , Borland Delphi , C# , GNU Octave , Haxe , Haskell , Java , Lua , Паскаль , Perl , Python , VB.Net ). Все эти порты и привязки находятся в свободном доступе.

  1. ^ «ОбщийПолигонКлиппер» . GeneralPolygonClipper на GitHub . Проверено 22 декабря 2021 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c7dd547ba76062ffe0d33c1fa5d7cfe8__1695816480
URL1:https://arc.ask3.ru/arc/aa/c7/e8/c7dd547ba76062ffe0d33c1fa5d7cfe8.html
Заголовок, (Title) документа по адресу, URL1:
General Polygon Clipper - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)