メインメニューを開く

差分

General Polygon Clipper

2,196 バイト追加, 2022年9月16日 (金) 01:56
ページの作成:「'''General Polygon Clipper''' (GPC)とは、2Dの多角形のクリッピング演算(差分、交差、排他的論理和、和など)を行えるC言語で書かれ…」
'''General Polygon Clipper''' (GPC)とは、2Dの多角形のクリッピング演算(差分、交差、排他的論理和、和など)を行えるC言語で書かれたライブラリである。[[多角形の三角形分割]]も行える。

GPCは[[C言語]]で書かれているが、他のいくつかの言語でも動作するように移植されているので詳細は[[ググれ]]。

== 概要 ==
似たような[[アルゴリズム]]は他にも数多くあるが、どれも机上の空論では最強だが「[[プログラミング言語]]で実装」すると[[浮動小数点]]の[[丸め誤差]]の蓄積などが原因で破綻するもの多い。そのような中でGPCは「安定性」に関しては最強だと言われている。

GPCの最初のリリースは、1997年にAlan Murta氏によって設計・実装された。GPCの最終リリースはバージョン2.32となっている。2020年8月以降、GPCは作者による公式配布を終了している。2021年12月、Alan Murta氏と[[Paint.NET]]作者のRick Brewster氏の話し合いの末、GPCの[[コード]]のコピー(v2.32)がによってMITライセンスの下で[[GitHub]]に置かれている。

== 特徴 ==

* 差分、交差、排他的論理和、和のクリップ演算ができる。
* 輪郭の頂点は時計回り、反時計回りで指定できるのでどちらでもよい。
* 輪郭は、凸、凹、自己交差のいずれでもよい。
* 輪郭は入れ子になっていてもよい。つまり「穴」を持つことができる。以外とこれができないものが多い。

これらの機能を使えば[[アドビ]]の[[イラストレーター]]のような[[2Dドローソフト]]をサクッと実装できる。

[[多角形の三角形分割]]にも使える。

ただGPCでの[[多角形の三角形分割]]は「勝手に[[頂点]]が追加されて[[三角形]]が多めになる傾向がある」という欠点もある。[[ローポリゴン]]を期待する人には「[[poly2tri]]」などの方が良いかもしれない。

== 移植 ==
<br />

== 外部リンク ==

* https://github.com/rickbrew/GeneralPolygonClipper

<br />