この項目では、形状モデリングのブーリアン演算について説明しています。ブール代数の演算については「ブール論理」をご覧ください。
ブーリアン演算
ブーリアン演算(ブーリアンえんざん)または集合演算(しゅうごうえんざん)とは、3次元コンピュータグラフィックスやCAD等の形状モデリングにおいて、体積を持った形状(3次元の場合)を集合とみなし、複数の形状を和、差、積といった集合演算により組み合わせ、合成された形状を作る演算である。ソリッドモデリングの1手法であるCSG表現においては根幹的な技術となる。サーフェスモデラにおいても形状をソリッドモデルと仮定できる状況であれば使用できる場合がある。 ブーリアン演算の例(青い球が右オペランドである)和( ∪ {\displaystyle \cup } )差( − {\displaystyle -\!} )積( ∩ {\displaystyle \cap } ) 2次元(平面)の多角形に対するブーリアン演算に関する話題。 初期の多角形に対するブーリアン演算は頂点を使うのではなくビットマップをそのまま使用していた。多角形を扱うのにビットマップをそのまま使用するのは欠点がたくさんある。欠点の一つは、多角形を表現する際のピクセル数に比例して必要な計算量・メモリ量が増える。 近年の多角形に対するブーリアン演算は頂点を使った走査アルゴリズム[1]を使用する。凸多角形に対するブーリアン演算は線形時間で計算可能[2]である。
例
他の形状と一体化するように働く。他の形状を削るように働く。他の形状と重なる部分を残すように働く。
2次元
アルゴリズム
Vattiクリッピング法
Sutherland?Hodgman法
Weiler?Athertonクリッピング法
ソフトウェアでの利用
関連項目
Constructive Solid Geometry
論理演算
ベン図
参照^ T. コルメン、R. リベスト、C. シュタイン、C. ライザーソン『アルゴリズムイントロダクション』(第3版)近代科学社、2013年12月17日(原著2009-7-31)。.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}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
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}
この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正
などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。