ブーリアン演算
ブーリアン演算(ブーリアンえんざん)または集合演算(しゅうごうえんざん)とは、3次元コンピュータグラフィックスやCADにおいて、体積を持った形状同士の和、差、積の集合演算により造形する方法である。ソリッドモデリングの1手法であるCSG表現においては根幹的な技術となる。サーフェスモデラにおいても形状をソリッドモデルと仮定できる状況であれば使用できる場合がある。
例
和() | 差() | 積() |
---|---|---|
他の形状と一体化するように働く。 | 他の形状を削るように働く。 | 他の形状と重なる部分を残すように働く。 |
多角形
本節は多角形に対するブーリアン演算について記載する。
アルゴリズム
- Vattiクリッピング法
- Sutherland–Hodgman法 (特殊ケースのアルゴリズム)
- Weiler–Athertonクリッピング法 (特殊ケースのアルゴリズム)
ソフトウェアでの利用
初期の多角形に対するブーリアン演算は頂点を使うのではなくビットマップをそのまま使用していた。多角形を扱うのにビットマップをそのまま使用するのは欠点がたくさんある。欠点の一つは、多角形を表現する際のピクセル数に比例して必要な計算量・メモリ量が増える。
近年の多角形に対するブーリアン演算は頂点を使った走査アルゴリズム[1]を使用する。凸多角形に対するブーリアン演算は線形時間で計算可能[2]。
関連項目
参照
- ^ T. コルメン、R. リベスト、C. シュタイン、C. ライザーソン『アルゴリズムイントロダクション』(第3版)近代科学社、2013年12月17日(原著2009-7-31)。ISBN 476490408X。
- ^ Katz, Matthew J.; Overmars, Mark H.; Sharir, Micha (1992), “Efficient hidden surface removal for objects with small union size”, Computational Geometry: Theory and Applications 2 (4): 223–234, doi:10.1016/0925-7721(92)90024-M