JP2800404B2 - 多角形分割方法およびその装置 - Google Patents
多角形分割方法およびその装置Info
- Publication number
- JP2800404B2 JP2800404B2 JP2317138A JP31713890A JP2800404B2 JP 2800404 B2 JP2800404 B2 JP 2800404B2 JP 2317138 A JP2317138 A JP 2317138A JP 31713890 A JP31713890 A JP 31713890A JP 2800404 B2 JP2800404 B2 JP 2800404B2
- Authority
- JP
- Japan
- Prior art keywords
- vertex
- polygon
- vertices
- triangle
- convex
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Description
【発明の詳細な説明】 <産業上の利用分野> この発明は多角形分割方法およびその装置に関し、さ
らに詳細にいえば、任意の形状の多角形を、最も簡単な
構成の凸多角形である三角形に分割する方法およびその
装置に関する。
らに詳細にいえば、任意の形状の多角形を、最も簡単な
構成の凸多角形である三角形に分割する方法およびその
装置に関する。
<従来の技術、および発明が解決しようとする課題> 従来からグラフィックス表示装置においては任意の形
状の多角形のぬりつぶし表示の高速化が強く要求されて
おり、この要求を満足するために、ぬりつぶし表示の前
処理として凹多角形(内角が180゜よりも大きい頂点を
少なくとも1つ有している多角形)を最も簡単な構成の
凸多角形(内角が180゜よりも大きい頂点を全く有して
いない多角形)である三角形に分割する多角形分割方法
が種々提案されている。
状の多角形のぬりつぶし表示の高速化が強く要求されて
おり、この要求を満足するために、ぬりつぶし表示の前
処理として凹多角形(内角が180゜よりも大きい頂点を
少なくとも1つ有している多角形)を最も簡単な構成の
凸多角形(内角が180゜よりも大きい頂点を全く有して
いない多角形)である三角形に分割する多角形分割方法
が種々提案されている。
従来から提案されている多角形分割方法としては、 凹頂点(内角が180゜よりも大きい頂点)の部分か
ら三角形を切り取っていく方法、 三角形切り取りと多角形の2分割とを併用する方
法、 台形分割法、および 台形分割を利用して頂点分割を行なう方法がよく知
られている。
ら三角形を切り取っていく方法、 三角形切り取りと多角形の2分割とを併用する方
法、 台形分割法、および 台形分割を利用して頂点分割を行なう方法がよく知
られている。
上記の方法は、第12図のフローチャートに示すよう
に、多角形の各頂点のなかから凹頂点を抽出して凹頂点
リストを作成し、凹頂点リストを検索して凹頂点の有無
を判別する。そして、凹頂点が存在していなければ、あ
る凸頂点を基準として順次三角形を切り取り、多角形の
分割を終了する。逆に、凹頂点が存在していれば、凹頂
点リストからある凹頂点を取り出し、基準頂点P0とす
る。そして、基準頂点P0から所定方向(例えば、反時計
回り方向)に2つの頂点P1,P2を取り出し、頂点P1が凸
頂点であるか否かを判別する。ここで頂点P1が凸頂点で
あれば、3つの頂点P0,P1,P2により形成される三角形の
内部に他の頂点が存在するか否かを判別する。そして、
内部に他の頂点が存在していなければ該当する三角形を
切り取り、三角形の切り取りに伴なって凹頂点が凸頂点
に変化したか否かを判別する。そして、凸頂点に変化し
ていなければ、基準頂点P0を変化させることなく上記所
定方向の2つの頂点の取り出しを反復する。逆に、凸頂
点に変化していれば、凹頂点リストから次の凹頂点を取
り出し、この凹頂点を基準頂点として上記処理を反復す
る。また、頂点P1が凹頂点である場合、または頂点P1は
凸頂点であるが、三角形の内部に他の頂点が存在してい
る場合には、基準頂点P0から逆方向(例えば、時計回り
方向)に2つの頂点を新たな頂点P1,P2として取り出
し、上記頂点P1が凸頂点であるか否かの判別を行なう。
そして、逆方向に取り出した頂点P1が凹頂点である場
合、または逆方向に取り出した頂点により形成される三
角形の内部に他の頂点が存在する場合には、上記基準頂
点P0を凹頂点リストの最後に戻し、凹頂点リストから次
の凹頂点を取り出し、この凹頂点を基準頂点として上記
処理を反復する。
に、多角形の各頂点のなかから凹頂点を抽出して凹頂点
リストを作成し、凹頂点リストを検索して凹頂点の有無
を判別する。そして、凹頂点が存在していなければ、あ
る凸頂点を基準として順次三角形を切り取り、多角形の
分割を終了する。逆に、凹頂点が存在していれば、凹頂
点リストからある凹頂点を取り出し、基準頂点P0とす
る。そして、基準頂点P0から所定方向(例えば、反時計
回り方向)に2つの頂点P1,P2を取り出し、頂点P1が凸
頂点であるか否かを判別する。ここで頂点P1が凸頂点で
あれば、3つの頂点P0,P1,P2により形成される三角形の
内部に他の頂点が存在するか否かを判別する。そして、
内部に他の頂点が存在していなければ該当する三角形を
切り取り、三角形の切り取りに伴なって凹頂点が凸頂点
に変化したか否かを判別する。そして、凸頂点に変化し
ていなければ、基準頂点P0を変化させることなく上記所
定方向の2つの頂点の取り出しを反復する。逆に、凸頂
点に変化していれば、凹頂点リストから次の凹頂点を取
り出し、この凹頂点を基準頂点として上記処理を反復す
る。また、頂点P1が凹頂点である場合、または頂点P1は
凸頂点であるが、三角形の内部に他の頂点が存在してい
る場合には、基準頂点P0から逆方向(例えば、時計回り
方向)に2つの頂点を新たな頂点P1,P2として取り出
し、上記頂点P1が凸頂点であるか否かの判別を行なう。
そして、逆方向に取り出した頂点P1が凹頂点である場
合、または逆方向に取り出した頂点により形成される三
角形の内部に他の頂点が存在する場合には、上記基準頂
点P0を凹頂点リストの最後に戻し、凹頂点リストから次
の凹頂点を取り出し、この凹頂点を基準頂点として上記
処理を反復する。
したがって、第13図(A)に示す凹多角形であれば、
1つだけ存在する凹頂点を基準として反時計回り方向に
三角形を切り取ることができる。また、同図(B)に示
す凹多角形であれば、時計回り方向に三角形を切り取る
ことができる。さらに、同図(C)に示す凹多角形であ
っても、時計回り方向に三角形を切り取ることができ
る。
1つだけ存在する凹頂点を基準として反時計回り方向に
三角形を切り取ることができる。また、同図(B)に示
す凹多角形であれば、時計回り方向に三角形を切り取る
ことができる。さらに、同図(C)に示す凹多角形であ
っても、時計回り方向に三角形を切り取ることができ
る。
上記の方法は、第14図のフローチャートに示すよう
に、多角形の各頂点に対して所定方向(例えば、X方
向)にソートを行ない、最も端の頂点を共有する2辺で
形成される三角形の内部に他の頂点が存在するか否かを
判別する。そして、内部に他の頂点が存在しなければ該
当する三角形を切り取り、残った頂点に対して上記処理
を反復する。逆に、内部に他の頂点が存在すれば、上記
端の頂点および内部の頂点のうち最も上記端の頂点寄り
の頂点により多角形を2分割し、分割された各多角形に
ついて上記処理を反復する。
に、多角形の各頂点に対して所定方向(例えば、X方
向)にソートを行ない、最も端の頂点を共有する2辺で
形成される三角形の内部に他の頂点が存在するか否かを
判別する。そして、内部に他の頂点が存在しなければ該
当する三角形を切り取り、残った頂点に対して上記処理
を反復する。逆に、内部に他の頂点が存在すれば、上記
端の頂点および内部の頂点のうち最も上記端の頂点寄り
の頂点により多角形を2分割し、分割された各多角形に
ついて上記処理を反復する。
したがって、第15図(A)に示す多角形であれば、多
角形を2分割することなく三角形の切り取りを行なうこ
とができ、同図(B)に示す多角形であれば、多角形を
2分割することにより、その後、同図(A)の多角形と
同様に三角形の切り取りを行なうことができる。
角形を2分割することなく三角形の切り取りを行なうこ
とができ、同図(B)に示す多角形であれば、多角形を
2分割することにより、その後、同図(A)の多角形と
同様に三角形の切り取りを行なうことができる。
上記の方法は、第16図のフローチャートに示すよう
に、多角形の各頂点に対して所定方向(例えば、Y方
向)にソートを行ない、上辺および側辺のみが定まり、
下辺が定まっていない疑似台形のリストを作成し、各頂
点をタイプ分けする。そして、ソート順に頂点を抽出
し、頂点のタイプを識別して該当する疑似台形を抽出
し、抽出された頂点を通るスキャン・ラインを下辺とし
て台形を完成させ、完成した台形を対角点で2分割して
2つの三角形を得る。そして、台形が分割されることに
より新たに形成される疑似台形を上記リストに登録し、
上記処理を反復する。
に、多角形の各頂点に対して所定方向(例えば、Y方
向)にソートを行ない、上辺および側辺のみが定まり、
下辺が定まっていない疑似台形のリストを作成し、各頂
点をタイプ分けする。そして、ソート順に頂点を抽出
し、頂点のタイプを識別して該当する疑似台形を抽出
し、抽出された頂点を通るスキャン・ラインを下辺とし
て台形を完成させ、完成した台形を対角点で2分割して
2つの三角形を得る。そして、台形が分割されることに
より新たに形成される疑似台形を上記リストに登録し、
上記処理を反復する。
したがって、第17図に示す多角形であれば、各頂点を
通るスキャン・ラインにより複数の台形に分割でき、各
台形を対角点でそれぞれ2分割することにより、三角形
への分割を達成できる。
通るスキャン・ラインにより複数の台形に分割でき、各
台形を対角点でそれぞれ2分割することにより、三角形
への分割を達成できる。
上記の方法は、第18図のフローチャートに示すよう
に、台形分割法と同様に各頂点毎に分割される台形を捜
し、台形の上下の辺を発生させる頂点のリストを作成す
る。そして、多角形の頂点に対して、所定方向(例え
ば、時計回り方向)に頂点毎に台形のリストを検索し
て、上の辺を構成する頂点と現在の頂点が一致する台形
を捜し、該当する頂点に対応する下側の点が対角頂点
(上の辺を発生させた頂点と下の辺を発生された頂点と
が同一稜線にない場合におけるこれら頂点の関係を対角
頂点と称する)であるか否かを判別し、対角頂点である
場合に対角頂点間で多角形を2分割し、対角頂点でない
場合に次の台形リストの検索を行なう。そして、分割さ
れた多角形を含む全ての多角形が分割不可能か否かを判
別し、分割可能な間は上記処理を反復する。逆に、全て
の多角形が分割不可能であれば、分割された多角形は、
Y座標の最高点から最下点まで単調に下り、かつ最高点
と最下点とが隣合う多角形(以下、ユニモノトーン・ポ
リゴンと称する)であるから、最高点と最下点とで形成
される辺が左右何れの側に存在するかに基づいて最高点
または最下点を基準点とし、所定方向(例えば、時計回
り方向)に3つの頂点を抽出し、3つの頂点で構成され
る角が凸角か否かを判別する。そして、凸角である場合
に3つの頂点で構成される三角形を切り取り、凹角であ
る場合には、次の頂点を基準点として3つの頂点の抽出
を行なう。
に、台形分割法と同様に各頂点毎に分割される台形を捜
し、台形の上下の辺を発生させる頂点のリストを作成す
る。そして、多角形の頂点に対して、所定方向(例え
ば、時計回り方向)に頂点毎に台形のリストを検索し
て、上の辺を構成する頂点と現在の頂点が一致する台形
を捜し、該当する頂点に対応する下側の点が対角頂点
(上の辺を発生させた頂点と下の辺を発生された頂点と
が同一稜線にない場合におけるこれら頂点の関係を対角
頂点と称する)であるか否かを判別し、対角頂点である
場合に対角頂点間で多角形を2分割し、対角頂点でない
場合に次の台形リストの検索を行なう。そして、分割さ
れた多角形を含む全ての多角形が分割不可能か否かを判
別し、分割可能な間は上記処理を反復する。逆に、全て
の多角形が分割不可能であれば、分割された多角形は、
Y座標の最高点から最下点まで単調に下り、かつ最高点
と最下点とが隣合う多角形(以下、ユニモノトーン・ポ
リゴンと称する)であるから、最高点と最下点とで形成
される辺が左右何れの側に存在するかに基づいて最高点
または最下点を基準点とし、所定方向(例えば、時計回
り方向)に3つの頂点を抽出し、3つの頂点で構成され
る角が凸角か否かを判別する。そして、凸角である場合
に3つの頂点で構成される三角形を切り取り、凹角であ
る場合には、次の頂点を基準点として3つの頂点の抽出
を行なう。
したがって、第19図(A)(C)にそれぞれ一部を示
す多角形であれば、同図(B)(D)に示すように対角
頂点で分割され、複数個のユニモノトーン・ポリゴンが
得られる。そして、ユニモノトーン・ポリゴンは簡単に
三角形に分割できる。
す多角形であれば、同図(B)(D)に示すように対角
頂点で分割され、複数個のユニモノトーン・ポリゴンが
得られる。そして、ユニモノトーン・ポリゴンは簡単に
三角形に分割できる。
第20図は上記各方法による三角形分割結果を示す図で
あり、同図(A)が元の多角形を、同図(B)がの方
法による分割結果を、同図(C)がの方法による分割
結果を、同図(D)がの方法による分割結果を、同図
(E)がの方法による分割結果をそれぞれ示してい
る。
あり、同図(A)が元の多角形を、同図(B)がの方
法による分割結果を、同図(C)がの方法による分割
結果を、同図(D)がの方法による分割結果を、同図
(E)がの方法による分割結果をそれぞれ示してい
る。
上記の方法は、頂点を通るスキャンラインに基づい
て台形を発生させ、発生させた台形を2分割するように
しているので、新たな頂点の発生を伴なうことになる。
したがって、新たな頂点を発生させる場合の計算精度を
十分に高めなければ得られる三角形の形が歪になってし
まうおそれがある。また、三角形同士の突合せ部分で奥
行き値、およびカラー値に誤差を生じ、三角形同士の間
に穴が発生するおそれもある。
て台形を発生させ、発生させた台形を2分割するように
しているので、新たな頂点の発生を伴なうことになる。
したがって、新たな頂点を発生させる場合の計算精度を
十分に高めなければ得られる三角形の形が歪になってし
まうおそれがある。また、三角形同士の突合せ部分で奥
行き値、およびカラー値に誤差を生じ、三角形同士の間
に穴が発生するおそれもある。
上記の方法においては、新たな頂点を発生させ
ないので、このような不都合は生じない。
ないので、このような不都合は生じない。
しかし、これらの方法は処理が複雑でプログラム容量
が多く、しかも三角形分割に必要な情報量が多くデータ
容量が多くなってしまうという不都合がある。また、辺
同士が交差した多角形(以下、自己干渉ポリゴンと称す
る)、複数の頂点が1点に重なった多角形(以下、縮退
したポリゴンと称する)については正常に三角形に分割
できるという保障がない。
が多く、しかも三角形分割に必要な情報量が多くデータ
容量が多くなってしまうという不都合がある。また、辺
同士が交差した多角形(以下、自己干渉ポリゴンと称す
る)、複数の頂点が1点に重なった多角形(以下、縮退
したポリゴンと称する)については正常に三角形に分割
できるという保障がない。
即ち、上記の方法は、x座標またはy座標に関し
て頂点をソートし、最小の頂点を起点として処理を行な
うようにしている。これは、最小点が必ず凸頂点である
ことを前提にしているからである。しかし、例えば、第
21図(A)に示す自己干渉ポリゴンの場合には、最小点
が凹頂点であり、上記前提が満足されないので、上記方
法を適用することはできない。また、同図(B)に示す
縮退したポリゴンの場合には、最小点において凸頂点と
凹頂点とが重なっているのであるから、ソートを行なっ
た結果、同図(C)に示すように最小点が凸頂点として
認識される可能性があるのみならず、同図(D)に示す
ように最小点が凹頂点として認識される可能性もある。
そして、このような不都合は、頂点間の相互関係を示す
情報がないのであるから本質的に解決することは不可能
である。
て頂点をソートし、最小の頂点を起点として処理を行な
うようにしている。これは、最小点が必ず凸頂点である
ことを前提にしているからである。しかし、例えば、第
21図(A)に示す自己干渉ポリゴンの場合には、最小点
が凹頂点であり、上記前提が満足されないので、上記方
法を適用することはできない。また、同図(B)に示す
縮退したポリゴンの場合には、最小点において凸頂点と
凹頂点とが重なっているのであるから、ソートを行なっ
た結果、同図(C)に示すように最小点が凸頂点として
認識される可能性があるのみならず、同図(D)に示す
ように最小点が凹頂点として認識される可能性もある。
そして、このような不都合は、頂点間の相互関係を示す
情報がないのであるから本質的に解決することは不可能
である。
上記の方法は、例えば、第22図(A)に示す自己干
渉ポリゴンの場合に、三角形の切り取りが不可能になっ
てしまう。また、同図(B)に示す縮退したポリゴンの
場合に、重なっている頂点が切り取ろうとする三角形の
内部にあると認識されれば三角形の切り取りが不可能に
なってしまう。勿論、この場合には、外部にあると認識
されれば切り取りが可能である。しかし、同図(C)に
示す縮退したポリゴンの場合には、重なっている頂点が
切り取ろうとする三角形の外部にあると認識されても、
同図中破線で示す三角形の切り取りになってしまい、正
常な三角形の切り取りを行なえなくなってしまう。
渉ポリゴンの場合に、三角形の切り取りが不可能になっ
てしまう。また、同図(B)に示す縮退したポリゴンの
場合に、重なっている頂点が切り取ろうとする三角形の
内部にあると認識されれば三角形の切り取りが不可能に
なってしまう。勿論、この場合には、外部にあると認識
されれば切り取りが可能である。しかし、同図(C)に
示す縮退したポリゴンの場合には、重なっている頂点が
切り取ろうとする三角形の外部にあると認識されても、
同図中破線で示す三角形の切り取りになってしまい、正
常な三角形の切り取りを行なえなくなってしまう。
<発明の目的> この発明は上記の問題点に鑑みてなされたものであ
り、少ないデータ量で簡単に多角形を三角形に分割で
き、しかも自己干渉ポリゴン、縮退したポリゴンにも簡
単に対処できる新規な多角形分割方法およびその装置を
提供することを目的としている。
り、少ないデータ量で簡単に多角形を三角形に分割で
き、しかも自己干渉ポリゴン、縮退したポリゴンにも簡
単に対処できる新規な多角形分割方法およびその装置を
提供することを目的としている。
<課題を解決するための手段> 上記の目的を達成するための、第1の発明の多角形分
割方法は、多角形の全ての頂点について凹頂点か凸頂点
かを判別するとともに、多角形の頂点数を得、所望の凸
頂点を選択して、選択された凸頂点を共有する2辺およ
び2辺の端点を結ぶ線分で構成される三角形の内部に他
の頂点が存在するか否かを判別し、他の頂点が存在して
いなければ該当する三角形を多角形から切り取るととも
に頂点数を減少させて、残った多角形について頂点判別
処理、凸頂点の選択処理および他の頂点が存在するか否
かの判別処理を反復し、逆に、他の頂点が存在していれ
ば、異なる凸頂点を選択して他の頂点が存在しているか
否かの判別処理を反復する方法である。
割方法は、多角形の全ての頂点について凹頂点か凸頂点
かを判別するとともに、多角形の頂点数を得、所望の凸
頂点を選択して、選択された凸頂点を共有する2辺およ
び2辺の端点を結ぶ線分で構成される三角形の内部に他
の頂点が存在するか否かを判別し、他の頂点が存在して
いなければ該当する三角形を多角形から切り取るととも
に頂点数を減少させて、残った多角形について頂点判別
処理、凸頂点の選択処理および他の頂点が存在するか否
かの判別処理を反復し、逆に、他の頂点が存在していれ
ば、異なる凸頂点を選択して他の頂点が存在しているか
否かの判別処理を反復する方法である。
第2の発明の多角形分割装置は、多角形の全ての頂点
について凹頂点か凸頂点かを判別する頂点判別手段と、
多角形の頂点数を保持する頂点数保持手段と、所望の凸
頂点を選択する凸頂点選択手段と、選択された凸頂点を
共有する2辺および2辺の端点を結ぶ線分で構成される
三角形の内部に他の頂点が存在するか否かを判別する三
角形判別手段と、他の頂点が存在していないことを示す
三角形判別手段の判別結果に基づいて該当する三角形を
多角形から切り取るとともに、頂点数を減少させる三角
形切り取り手段と、残った多角形について頂点判別手
段、頂点数保持手段、凸頂点選択手段および三角形判別
手段を反復動作させる第1反復制御手段と、他の頂点が
存在していることを示す三角形判別手段の判別結果に基
づいて、凸頂点選択手段および三角形判別手段を反復動
作させる第2反復制御手段とを含んでいる。
について凹頂点か凸頂点かを判別する頂点判別手段と、
多角形の頂点数を保持する頂点数保持手段と、所望の凸
頂点を選択する凸頂点選択手段と、選択された凸頂点を
共有する2辺および2辺の端点を結ぶ線分で構成される
三角形の内部に他の頂点が存在するか否かを判別する三
角形判別手段と、他の頂点が存在していないことを示す
三角形判別手段の判別結果に基づいて該当する三角形を
多角形から切り取るとともに、頂点数を減少させる三角
形切り取り手段と、残った多角形について頂点判別手
段、頂点数保持手段、凸頂点選択手段および三角形判別
手段を反復動作させる第1反復制御手段と、他の頂点が
存在していることを示す三角形判別手段の判別結果に基
づいて、凸頂点選択手段および三角形判別手段を反復動
作させる第2反復制御手段とを含んでいる。
第3の発明の多角形分割方法は、多角形の全ての頂点
について凹頂点か凸頂点かを判別するとともに、多角形
の頂点数を得、互に重なり合った頂点を検出し、重なり
合っていない頂点のうちの所望の凸頂点を選択して、選
択された凸頂点を共有する2辺および2辺の端点を結ぶ
線分で構成される三角形の内部に他の頂点が存在するか
否かを判別し、他の頂点が存在していなければ該当する
三角形を多角形から切り取るとともに頂点数を減少させ
て、残った多角形について頂点判別処理、重なり合った
頂点の検出処理、凸頂点の選択処理および他の頂点が存
在するか否かの判別処理を反復し、逆に、他の頂点が存
在していれば、重なり合っていない頂点のうち異なる凸
頂点を選択して他の頂点が存在しているか否かの判別処
理を反復し、上記凸頂点の選択によっては多角形の分割
が完了しなかった場合に、内部に凹頂点を含まない凸頂
点を選択して他の頂点が存在するか否かの判別処理およ
び可能な場合に三角形の切り取り処理を行ない、異なる
凸頂点を選択して他の頂点が存在しているか否かの判別
処理、または残った多角形について頂点判別処理、重な
り合った頂点の検出処理、凸頂点の選択処理および他の
頂点が存在するか否かの判別処理を反復する方法であ
る。
について凹頂点か凸頂点かを判別するとともに、多角形
の頂点数を得、互に重なり合った頂点を検出し、重なり
合っていない頂点のうちの所望の凸頂点を選択して、選
択された凸頂点を共有する2辺および2辺の端点を結ぶ
線分で構成される三角形の内部に他の頂点が存在するか
否かを判別し、他の頂点が存在していなければ該当する
三角形を多角形から切り取るとともに頂点数を減少させ
て、残った多角形について頂点判別処理、重なり合った
頂点の検出処理、凸頂点の選択処理および他の頂点が存
在するか否かの判別処理を反復し、逆に、他の頂点が存
在していれば、重なり合っていない頂点のうち異なる凸
頂点を選択して他の頂点が存在しているか否かの判別処
理を反復し、上記凸頂点の選択によっては多角形の分割
が完了しなかった場合に、内部に凹頂点を含まない凸頂
点を選択して他の頂点が存在するか否かの判別処理およ
び可能な場合に三角形の切り取り処理を行ない、異なる
凸頂点を選択して他の頂点が存在しているか否かの判別
処理、または残った多角形について頂点判別処理、重な
り合った頂点の検出処理、凸頂点の選択処理および他の
頂点が存在するか否かの判別処理を反復する方法であ
る。
第4の発明の多角形分割装置は、多角形の全ての頂点
について凹頂点か凸頂点かを判別する頂点判別手段と、
多角形の頂点数を保持する頂点数保持手段と、互に重な
り合う頂点を検出する検出手段と、重なり合わない頂点
のなかから所望の凸頂点を選択する凸頂点選択手段と、
選択された凸頂点を共有する2辺および2辺の端点を結
ぶ線分で構成される三角形の内部に他の頂点が存在する
か否かを判別する三角形判別手段と、他の頂点が存在し
ていないことを示す三角形判別手段の判別結果に基づい
て該当する三角形を多角形から切り取るとともに、頂点
数を減少させる三角形切り取り手段と、残った多角形に
ついて頂点判別手段、頂点数保持手段、凸頂点選択手段
および三角形判別手段を反復動作させる第1反復制御手
段と、他の頂点が存在していることを示す三角形判別手
段の判別結果に基づいて、凸頂点選択手段および三角形
判別手段を反復動作させる第2反復制御手段と、重なり
合わない頂点のなかから凸頂点を選択した場合に三角形
の切り取りが完了しなかった場合に、内部に凹頂点を含
まない凸頂点を選択して三角形判別手段による判別を行
なわせる重なり頂点選択手段とを含んでいる。
について凹頂点か凸頂点かを判別する頂点判別手段と、
多角形の頂点数を保持する頂点数保持手段と、互に重な
り合う頂点を検出する検出手段と、重なり合わない頂点
のなかから所望の凸頂点を選択する凸頂点選択手段と、
選択された凸頂点を共有する2辺および2辺の端点を結
ぶ線分で構成される三角形の内部に他の頂点が存在する
か否かを判別する三角形判別手段と、他の頂点が存在し
ていないことを示す三角形判別手段の判別結果に基づい
て該当する三角形を多角形から切り取るとともに、頂点
数を減少させる三角形切り取り手段と、残った多角形に
ついて頂点判別手段、頂点数保持手段、凸頂点選択手段
および三角形判別手段を反復動作させる第1反復制御手
段と、他の頂点が存在していることを示す三角形判別手
段の判別結果に基づいて、凸頂点選択手段および三角形
判別手段を反復動作させる第2反復制御手段と、重なり
合わない頂点のなかから凸頂点を選択した場合に三角形
の切り取りが完了しなかった場合に、内部に凹頂点を含
まない凸頂点を選択して三角形判別手段による判別を行
なわせる重なり頂点選択手段とを含んでいる。
第5の発明の多角形分割方法は、特許請求の範囲第1
項または第3項の多角形分割方法により多角形から三角
形を切り取る毎に凸頂点から凹頂点に変化した頂点が存
在するか否かを判別し、凸頂点から凹頂点に変化した頂
点が存在しないと判別された場合にはそのまま多角形の
分割を反復し、凸頂点から凹頂点に変化した頂点が存在
すると判別された場合には多角形の分割を強制的に終了
する方法である。
項または第3項の多角形分割方法により多角形から三角
形を切り取る毎に凸頂点から凹頂点に変化した頂点が存
在するか否かを判別し、凸頂点から凹頂点に変化した頂
点が存在しないと判別された場合にはそのまま多角形の
分割を反復し、凸頂点から凹頂点に変化した頂点が存在
すると判別された場合には多角形の分割を強制的に終了
する方法である。
第6の発明の多角形分割装置は、多角形の全ての頂点
について凹頂点か凸頂点かを判別する頂点判別手段と、
多角形の頂点数を保持する頂点数保持手段と、所望の凸
頂点を選択する凸頂点選択手段と、選択された凸頂点を
共有する2辺および2辺の端点を結ぶ線分で構成される
三角形の内部に他の頂点が存在するか否かを判別する三
角形判別手段と、他の頂点が存在していないことを示す
三角形判別手段の判別結果に基づいて該当する三角形を
多角形から切り取るとともに、頂点数を減少させる三角
形切り取り手段と、三角形切り取りに伴なって凸頂点か
ら凹頂点に変化した頂点が存在するか否かを判別する変
化頂点判別手段と、凸頂点から凹頂点に変化した頂点が
存在しない場合に、残った多角形について頂点判別手
段、頂点数保持手段、凸頂点選択手段および三角形判別
手段を反復動作させる第1反復制御手段と、他の頂点が
存在していることを示す三角形判別手段の判別結果に基
づいて、凸頂点選択手段および三角形判別手段を反復動
作させる第2反復制御手段と、凸頂点から凹頂点に変化
した頂点が存在する場合に、多角形分割処理を強制的に
終了させる強制終了手段とを含んでいる。
について凹頂点か凸頂点かを判別する頂点判別手段と、
多角形の頂点数を保持する頂点数保持手段と、所望の凸
頂点を選択する凸頂点選択手段と、選択された凸頂点を
共有する2辺および2辺の端点を結ぶ線分で構成される
三角形の内部に他の頂点が存在するか否かを判別する三
角形判別手段と、他の頂点が存在していないことを示す
三角形判別手段の判別結果に基づいて該当する三角形を
多角形から切り取るとともに、頂点数を減少させる三角
形切り取り手段と、三角形切り取りに伴なって凸頂点か
ら凹頂点に変化した頂点が存在するか否かを判別する変
化頂点判別手段と、凸頂点から凹頂点に変化した頂点が
存在しない場合に、残った多角形について頂点判別手
段、頂点数保持手段、凸頂点選択手段および三角形判別
手段を反復動作させる第1反復制御手段と、他の頂点が
存在していることを示す三角形判別手段の判別結果に基
づいて、凸頂点選択手段および三角形判別手段を反復動
作させる第2反復制御手段と、凸頂点から凹頂点に変化
した頂点が存在する場合に、多角形分割処理を強制的に
終了させる強制終了手段とを含んでいる。
<作用> 第1の発明の多角形分割方法であれば、多角形の全て
の頂点の中から所望の凸頂点を選択し、選択された凸頂
点を共有する2辺および2辺の端点を結ぶ線分で構成さ
れる三角形の内部に他の頂点が存在するか否かを判別す
る。そして、他の頂点が存在していなければ該当する三
角形を多角形から切り取るとともに、頂点数を減少させ
て、残った多角形について上記処理を反復する。逆に、
他の頂点が存在していれば、異なる凸頂点を選択して他
の頂点が存在しているか否かの判別処理を反復する。
の頂点の中から所望の凸頂点を選択し、選択された凸頂
点を共有する2辺および2辺の端点を結ぶ線分で構成さ
れる三角形の内部に他の頂点が存在するか否かを判別す
る。そして、他の頂点が存在していなければ該当する三
角形を多角形から切り取るとともに、頂点数を減少させ
て、残った多角形について上記処理を反復する。逆に、
他の頂点が存在していれば、異なる凸頂点を選択して他
の頂点が存在しているか否かの判別処理を反復する。
したがって、ソート処理が必要でなく、全体として簡
単な処理で多角形を三角形に分割でき、しかも各頂点デ
ータのほかに各頂点が凹頂点か凸頂点かを示すデータが
必要になるだけであり、データ量を少なくできる。
単な処理で多角形を三角形に分割でき、しかも各頂点デ
ータのほかに各頂点が凹頂点か凸頂点かを示すデータが
必要になるだけであり、データ量を少なくできる。
第2の発明の多角形分割装置であれば、多角形の全て
の頂点について頂点判別手段により凹頂点か凸頂点かを
判別し、多角形の頂点数を頂点数保持手段により保持す
る。そして、凸頂点選択手段により所望の凸頂点を選択
し、選択された凸頂点を共有する2辺および2辺の端点
を結ぶ線分で構成される三角形の内部に他の頂点が存在
するか否かを三角形判別手段により判別する。そして、
他の頂点が存在していないことを示す三角形判別手段の
判別結果に基づいて三角形切り取り手段により該当する
三角形を多角形から切り取るとともに頂点数を減少さ
せ、第1反復制御手段により、残った多角形について頂
点判別手段、頂点数保持手段、凸頂点選択手段および三
角形判別手段を反復動作させる。逆に、他の頂点が存在
していることを示す三角形判別手段の判別結果に基づい
て、第2反復制御手段により凸頂点選択手段および三角
形判別手段を反復動作させる。
の頂点について頂点判別手段により凹頂点か凸頂点かを
判別し、多角形の頂点数を頂点数保持手段により保持す
る。そして、凸頂点選択手段により所望の凸頂点を選択
し、選択された凸頂点を共有する2辺および2辺の端点
を結ぶ線分で構成される三角形の内部に他の頂点が存在
するか否かを三角形判別手段により判別する。そして、
他の頂点が存在していないことを示す三角形判別手段の
判別結果に基づいて三角形切り取り手段により該当する
三角形を多角形から切り取るとともに頂点数を減少さ
せ、第1反復制御手段により、残った多角形について頂
点判別手段、頂点数保持手段、凸頂点選択手段および三
角形判別手段を反復動作させる。逆に、他の頂点が存在
していることを示す三角形判別手段の判別結果に基づい
て、第2反復制御手段により凸頂点選択手段および三角
形判別手段を反復動作させる。
したがって、選択された凸頂点を共有する2辺および
2辺の端点を結ぶ直線で構成される三角形の内部に他の
頂点が存在するか否かに基づいて第2反復制御手段また
は第1反復制御手段を選択的に動作させるだけで簡単に
多角形を三角形に分割できる。
2辺の端点を結ぶ直線で構成される三角形の内部に他の
頂点が存在するか否かに基づいて第2反復制御手段また
は第1反復制御手段を選択的に動作させるだけで簡単に
多角形を三角形に分割できる。
第3の発明の多角形分割方法であれば、縮退したポリ
ゴンについて、重なっている頂点は切り取り対象の三角
形の外部に位置すると判断するとともに、複数頂点が重
なっている頂点を除いて第1の発明の方法による分割を
行なう。そして、この方法によっては分割が完了しなか
った場合にのみ、内部に凹頂点を含まない凸頂点を選択
して他の頂点が存在するか否かの判別処理および可能な
場合に三角形の切り取り処理を行ない、異なる凸頂点を
選択して他の頂点が存在しているか否かの判別処理、ま
たは残った多角形について頂点判別処理、重なり合った
頂点の検出処理、凸頂点の選択処理および他の頂点が存
在するか否かの判別処理を反復する。
ゴンについて、重なっている頂点は切り取り対象の三角
形の外部に位置すると判断するとともに、複数頂点が重
なっている頂点を除いて第1の発明の方法による分割を
行なう。そして、この方法によっては分割が完了しなか
った場合にのみ、内部に凹頂点を含まない凸頂点を選択
して他の頂点が存在するか否かの判別処理および可能な
場合に三角形の切り取り処理を行ない、異なる凸頂点を
選択して他の頂点が存在しているか否かの判別処理、ま
たは残った多角形について頂点判別処理、重なり合った
頂点の検出処理、凸頂点の選択処理および他の頂点が存
在するか否かの判別処理を反復する。
したがって、縮退したポリゴンの殆どは第1の発明の
方法により分割でき、第1の発明の方法によっては分割
できない場合にも内部に凹頂点を含まない凸頂点を選択
することにより残った部分の分割を行なうことができ
る。
方法により分割でき、第1の発明の方法によっては分割
できない場合にも内部に凹頂点を含まない凸頂点を選択
することにより残った部分の分割を行なうことができ
る。
第4の発明の多角形分割装置であれば、検出手段によ
り互に重なり合う頂点を検出するのであるから、先ず、
検出された頂点以外の頂点について第2の発明と同様に
して三角形の切り取りを行なう。そして、重なり合わな
い頂点のなかから凸頂点を選択した場合に三角形の切り
取りが完了しなかった場合に、重なり頂点選択手段によ
り、内部に凹頂点を含まない凸頂点を選択して三角形判
別手段による判別を行なわせるのであるから、第2の発
明と同様の処理を行なった結果残った部分についても三
角形の切り取りを行なうことができる。
り互に重なり合う頂点を検出するのであるから、先ず、
検出された頂点以外の頂点について第2の発明と同様に
して三角形の切り取りを行なう。そして、重なり合わな
い頂点のなかから凸頂点を選択した場合に三角形の切り
取りが完了しなかった場合に、重なり頂点選択手段によ
り、内部に凹頂点を含まない凸頂点を選択して三角形判
別手段による判別を行なわせるのであるから、第2の発
明と同様の処理を行なった結果残った部分についても三
角形の切り取りを行なうことができる。
第5の発明の多角形分割方法であれば、第1の発明ま
たは第3の発明の方法により多角形から三角形を切り取
る毎に凸頂点から凹頂点に変化した頂点が存在するか否
かを判別する。そして、凸頂点から凹頂点に変化した頂
点が存在しないと判別された場合には自己干渉ポリゴン
でないからそのまま多角形の分割を反復し、凸頂点から
凹頂点に変化した頂点が存在すると判別された場合には
自己干渉ポリゴンであるから多角形の分割を強制的に終
了する。
たは第3の発明の方法により多角形から三角形を切り取
る毎に凸頂点から凹頂点に変化した頂点が存在するか否
かを判別する。そして、凸頂点から凹頂点に変化した頂
点が存在しないと判別された場合には自己干渉ポリゴン
でないからそのまま多角形の分割を反復し、凸頂点から
凹頂点に変化した頂点が存在すると判別された場合には
自己干渉ポリゴンであるから多角形の分割を強制的に終
了する。
したがって、自己干渉ポリゴンか否かを簡単に識別で
き、自己干渉ポリゴンである場合に分割処理を強制的に
終了させることができる。
き、自己干渉ポリゴンである場合に分割処理を強制的に
終了させることができる。
第6の発明の多角形分割装置であれば、第2の発明ま
たは第4の発明の装置と同様に三角形の切り取りを行な
う毎に、変化頂点判別手段により、三角形切り取りに伴
なって凸頂点から凹頂点に変化した頂点が存在するか否
かを判別する。したがって、この判別結果に基づいて自
己干渉ポリゴンか否かを認識でき、強制終了手段により
多角形分割処理を強制的に終了させる。
たは第4の発明の装置と同様に三角形の切り取りを行な
う毎に、変化頂点判別手段により、三角形切り取りに伴
なって凸頂点から凹頂点に変化した頂点が存在するか否
かを判別する。したがって、この判別結果に基づいて自
己干渉ポリゴンか否かを認識でき、強制終了手段により
多角形分割処理を強制的に終了させる。
したがって、自己干渉ポリゴンか否かを簡単に識別で
き、自己干渉ポリゴンである場合に分割処理を強制的に
終了させることができる。
き、自己干渉ポリゴンである場合に分割処理を強制的に
終了させることができる。
<実施例> 以下、実施例を示す添付図面によって詳細に説明す
る。
る。
第1図はこの発明の多角形分割方法の一実施例を示す
フローチャートであり、ステップにおいて分割の対象
である多角形の全ての頂点について凹頂点(内角が180
゜よりも大きい頂点)か凸頂点(内角が180゜よりも大
きくない頂点)かの判別を行ない(尚、この判別は例え
ば、内積を算出することにより簡単に行なうことがで
き、また、各頂点間にはリンク・ポインタが付与されて
いる)、ステップにおいて多角形の頂点数を設定し、
ステップにおいて、ある任意の凸頂点を選択し、ステ
ップにおいて頂点数が3より多いか否かを判別する。
ステップにおいて頂点数が3よりも多いと判別された
場合には、ステップにおいて、選択された凸頂点(以
下、カレント頂点と称する)を共有する2辺およびこの
2辺の端点同士を結ぶ線分で構成される三角形を切り取
り対象候補とし、ステップにおいて切り取り対象候補
の三角形を構成する頂点以外の頂点を選択して、ステッ
プにおいて、選択された頂点が切り取り対象候補の三
角形の内部にあるか否かを判別し、外部にあると判別さ
れれば、ステップにおいて全ての頂点についてステッ
プの判別が行なわれたか否かを判別し、ステップの
判別が行なわれていない頂点が存在すれば、ステップ
において他の頂点を選択して再びステップの判別を行
なう。
フローチャートであり、ステップにおいて分割の対象
である多角形の全ての頂点について凹頂点(内角が180
゜よりも大きい頂点)か凸頂点(内角が180゜よりも大
きくない頂点)かの判別を行ない(尚、この判別は例え
ば、内積を算出することにより簡単に行なうことがで
き、また、各頂点間にはリンク・ポインタが付与されて
いる)、ステップにおいて多角形の頂点数を設定し、
ステップにおいて、ある任意の凸頂点を選択し、ステ
ップにおいて頂点数が3より多いか否かを判別する。
ステップにおいて頂点数が3よりも多いと判別された
場合には、ステップにおいて、選択された凸頂点(以
下、カレント頂点と称する)を共有する2辺およびこの
2辺の端点同士を結ぶ線分で構成される三角形を切り取
り対象候補とし、ステップにおいて切り取り対象候補
の三角形を構成する頂点以外の頂点を選択して、ステッ
プにおいて、選択された頂点が切り取り対象候補の三
角形の内部にあるか否かを判別し、外部にあると判別さ
れれば、ステップにおいて全ての頂点についてステッ
プの判別が行なわれたか否かを判別し、ステップの
判別が行なわれていない頂点が存在すれば、ステップ
において他の頂点を選択して再びステップの判別を行
なう。
そして、ステップにおいて全ての頂点についてステ
ップの判別が行なわれたと判別された場合、即ち、ど
の頂点も切り取り対象候補の三角形の内部にないと判別
された場合には、ステップにおいて切り取り対象候補
の三角形を切り取り(同時に頂点間のリンクポインタを
つけ代え)、ステップにおいて、三角形の切り取りに
より影響を受ける2つの頂点が凹頂点であるか凸頂点で
あるかを判定し、この判定結果に基づいて、ステップ
で得られた判定結果を変更し、ステップにおいて頂点
数を1だけ減少させ、ステップにおいて次の凸頂点を
選択し、再びステップの判別を行なう。
ップの判別が行なわれたと判別された場合、即ち、ど
の頂点も切り取り対象候補の三角形の内部にないと判別
された場合には、ステップにおいて切り取り対象候補
の三角形を切り取り(同時に頂点間のリンクポインタを
つけ代え)、ステップにおいて、三角形の切り取りに
より影響を受ける2つの頂点が凹頂点であるか凸頂点で
あるかを判定し、この判定結果に基づいて、ステップ
で得られた判定結果を変更し、ステップにおいて頂点
数を1だけ減少させ、ステップにおいて次の凸頂点を
選択し、再びステップの判別を行なう。
逆に、ステップにおいて、選択された頂点が切り取
り対象候補の三角形の内部にあると判別された場合に
は、そのままステップの処理を行なう。
り対象候補の三角形の内部にあると判別された場合に
は、そのままステップの処理を行なう。
また、上記ステップにおいて頂点数が3になったと
判別された場合には、もはや分割の必要がないのである
から、そのまま一連の処理を終了する。
判別された場合には、もはや分割の必要がないのである
から、そのまま一連の処理を終了する。
即ち、分割の対象である多角形の各頂点の中から凸頂
点を選択して、この凸頂点を共有する2辺および2辺の
端点を結ぶ線分により構成される三角形の内部に他の頂
点が存在しているか否かを判別し、他の頂点が存在して
いない場合にのみ該当する三角形を切り取り、該当する
三角形の切り取りが行なわれたか否かに拘らず、次の凸
頂点を選択して上記処理を反復する。したがって、処理
を簡素化できるとともに、データ量を少なくできる。
点を選択して、この凸頂点を共有する2辺および2辺の
端点を結ぶ線分により構成される三角形の内部に他の頂
点が存在しているか否かを判別し、他の頂点が存在して
いない場合にのみ該当する三角形を切り取り、該当する
三角形の切り取りが行なわれたか否かに拘らず、次の凸
頂点を選択して上記処理を反復する。したがって、処理
を簡素化できるとともに、データ量を少なくできる。
第2図は多角形分割方法の具体例を示す図であり、第
2図(A)に示すように、頂点V1から頂点V6まで順に6
つの頂点が定義された多角形を分割する場合を示してい
る。
2図(A)に示すように、頂点V1から頂点V6まで順に6
つの頂点が定義された多角形を分割する場合を示してい
る。
第2図(A)に示す多角形においては、頂点V1,V2,V
4,V6が凸頂点、頂点V3,V5が凹頂点と判定され、頂点数
は6である。そして、カレント頂点として頂点V1が選択
されれば、頂点数が3より多いので、頂点V6,V1,V2で構
成される三角形(第2図(B)中破線参照)を切り取り
対象候補とし、他の頂点が内部にあるか否かを判別す
る。この場合に、頂点V3が内部にあるので、三角形(V
6,V1,V2)の切り取りを行なわず、カレント頂点として
次の頂点V2を選択する。頂点数は3より多いので、頂点
V1,V2,V3で構成される三角形(第2図(C)中破線参
照)を切り取り対象候補とし、他の頂点が内部にあるか
否かを判別する。この場合に、頂点V4,V5,V6が全て外部
にあるので、三角形(V1,V2,V3)切り取りを行ない、三
角形の切り取りにより影響を受ける頂点V1,V3が凹頂点
から凸頂点かの判定を行ない、頂点V3が凸頂点に変化し
ているので頂点V3についての最初の判定結果を変更し、
頂点数を1だけ減少させる。
4,V6が凸頂点、頂点V3,V5が凹頂点と判定され、頂点数
は6である。そして、カレント頂点として頂点V1が選択
されれば、頂点数が3より多いので、頂点V6,V1,V2で構
成される三角形(第2図(B)中破線参照)を切り取り
対象候補とし、他の頂点が内部にあるか否かを判別す
る。この場合に、頂点V3が内部にあるので、三角形(V
6,V1,V2)の切り取りを行なわず、カレント頂点として
次の頂点V2を選択する。頂点数は3より多いので、頂点
V1,V2,V3で構成される三角形(第2図(C)中破線参
照)を切り取り対象候補とし、他の頂点が内部にあるか
否かを判別する。この場合に、頂点V4,V5,V6が全て外部
にあるので、三角形(V1,V2,V3)切り取りを行ない、三
角形の切り取りにより影響を受ける頂点V1,V3が凹頂点
から凸頂点かの判定を行ない、頂点V3が凸頂点に変化し
ているので頂点V3についての最初の判定結果を変更し、
頂点数を1だけ減少させる。
次いで、カレント頂点として頂点V3を選択する。頂点
数は5であり、3よりも多いので、頂点V1,V3,V4で構成
される三角形(第2図(D)中破線参照)を切り取り対
象候補とし、他の頂点が内部にあるか否かを判別する。
この場合に、頂点V5,V6が全て外部にあるので、三角形
(V1,V3,V4)の切り取りを行ない、三角形の切り取りに
より影響を受ける頂点V1,V4が凹頂点か凸頂点かの判定
を行ない、何れの頂点V1,V4も凸頂点のままで変化して
いないので最初の判定結果を変更せず、頂点数を1だけ
減少させる。
数は5であり、3よりも多いので、頂点V1,V3,V4で構成
される三角形(第2図(D)中破線参照)を切り取り対
象候補とし、他の頂点が内部にあるか否かを判別する。
この場合に、頂点V5,V6が全て外部にあるので、三角形
(V1,V3,V4)の切り取りを行ない、三角形の切り取りに
より影響を受ける頂点V1,V4が凹頂点か凸頂点かの判定
を行ない、何れの頂点V1,V4も凸頂点のままで変化して
いないので最初の判定結果を変更せず、頂点数を1だけ
減少させる。
その後、カレント頂点として頂点V4を選択する。頂点
数は4であり、3よりも多いので、頂点V1,V4,V5で構成
される三角形(第2図(E)中破線参照)を切り取り対
象候補とし、他の頂点が内部にあるか否かを判別する。
この場合に、頂点V6が外部にあるので、三角形(V1,V4,
V5)の切り取りを行ない、三角形の切り取りにより影響
を受ける頂点V1,V5が凹頂点か凸頂点かの判定を行な
い、何れの頂点V1,V5も凸頂点のままで変化していない
ので最初の判定結果を変更せず、頂点数を1だけ減少さ
せる。
数は4であり、3よりも多いので、頂点V1,V4,V5で構成
される三角形(第2図(E)中破線参照)を切り取り対
象候補とし、他の頂点が内部にあるか否かを判別する。
この場合に、頂点V6が外部にあるので、三角形(V1,V4,
V5)の切り取りを行ない、三角形の切り取りにより影響
を受ける頂点V1,V5が凹頂点か凸頂点かの判定を行な
い、何れの頂点V1,V5も凸頂点のままで変化していない
ので最初の判定結果を変更せず、頂点数を1だけ減少さ
せる。
その後、カレント頂点として頂点V5を選択する。頂点
数は3であるから、もはや分割は必要でなく、残りの三
角形(V1,V5,V6)(第2図(F)参照)を出力してその
まま一連の処理を終了する。
数は3であるから、もはや分割は必要でなく、残りの三
角形(V1,V5,V6)(第2図(F)参照)を出力してその
まま一連の処理を終了する。
以上から明らかなように、単純な判別、処理を繰り返
すだけでよいからプログラム容量を少なくでき、また、
分割に必要な情報が少なくてよいので、データ容量も少
なくできる。具体的には、頂点数を最大256頂点とし、
頂点の各座標値、カラー値にそれぞれ1 long wordを割
り当てた場合に、この発明の方法では1800 long wordの
データ領域が必要になるだけである。これに対して従来
方法では1801 long wordであるが、従来方法では28
32 long wordであり、従来方法では3982 long wordで
ある。
すだけでよいからプログラム容量を少なくでき、また、
分割に必要な情報が少なくてよいので、データ容量も少
なくできる。具体的には、頂点数を最大256頂点とし、
頂点の各座標値、カラー値にそれぞれ1 long wordを割
り当てた場合に、この発明の方法では1800 long wordの
データ領域が必要になるだけである。これに対して従来
方法では1801 long wordであるが、従来方法では28
32 long wordであり、従来方法では3982 long wordで
ある。
また、従来方法とこの発明の方法とによる分割
速度を第3図(A)〜(F)に示す各多角形について比
較した結果、それぞれ第4図(A)〜(F)に示す分割
速度が得られた。尚、分割速度はポリゴン/秒であり、
また、多角形の形状によっては元の形状のみならず90゜
ずつ回転させた形状についても分割を行ない、得られた
結果の加重平均値で示している。
速度を第3図(A)〜(F)に示す各多角形について比
較した結果、それぞれ第4図(A)〜(F)に示す分割
速度が得られた。尚、分割速度はポリゴン/秒であり、
また、多角形の形状によっては元の形状のみならず90゜
ずつ回転させた形状についても分割を行ない、得られた
結果の加重平均値で示している。
この測定結果から明らかなように、この発明の方法で
はかなり高い分割速度が得られている。
はかなり高い分割速度が得られている。
<実施例2> 第5図はこの発明の多角形分割方法の他の実施例を示
すフローチャートであり、重なっている頂点は切り取り
対象候補の三角形の外部に存在すると判断することを前
提としている。
すフローチャートであり、重なっている頂点は切り取り
対象候補の三角形の外部に存在すると判断することを前
提としている。
ステップにおいて他の頂点と重なっている頂点と、
全く重なっていない頂点とを識別し、ステップにおい
て、全く重なっていない頂点を対象として第1図のフロ
ーチャートに示す判別、処理を行ない、ステップにお
いて多角形の全てが三角形として切り取れたか否かを判
別し、切り取れていなければ、ステップにおいて凸頂
点の内部に凹頂点を含まない頂点を捜し、ステップに
おいて該当する頂点が存在するか否かを判別し、存在し
ていれば、ステップにおいて該当する頂点をカレント
頂点として選択し、再びステップの処理を行なう。逆
に、ステップにおいて該当する頂点が存在しないと判
別された場合には、自己干渉ポリゴンとして、一連の処
理を終了する。また、ステップにおいて多角形の全て
が三角形として切り取れたと判別された場合にもそのま
ま一連の処理を終了する。第6図は多角形分割方法の具
体例を示す図であり、第6図(A)に示すように、頂点
P1から頂点P10まで順に10の頂点が定義された多角形を
分割する場合を示している。
全く重なっていない頂点とを識別し、ステップにおい
て、全く重なっていない頂点を対象として第1図のフロ
ーチャートに示す判別、処理を行ない、ステップにお
いて多角形の全てが三角形として切り取れたか否かを判
別し、切り取れていなければ、ステップにおいて凸頂
点の内部に凹頂点を含まない頂点を捜し、ステップに
おいて該当する頂点が存在するか否かを判別し、存在し
ていれば、ステップにおいて該当する頂点をカレント
頂点として選択し、再びステップの処理を行なう。逆
に、ステップにおいて該当する頂点が存在しないと判
別された場合には、自己干渉ポリゴンとして、一連の処
理を終了する。また、ステップにおいて多角形の全て
が三角形として切り取れたと判別された場合にもそのま
ま一連の処理を終了する。第6図は多角形分割方法の具
体例を示す図であり、第6図(A)に示すように、頂点
P1から頂点P10まで順に10の頂点が定義された多角形を
分割する場合を示している。
第6図(A)に示す多角形においては、頂点P1,P2,P
7,P8,P9,P10が凸頂点、P3,P4,P5,P6が凹頂点であり、し
かも頂点P4,P7,P10が互に重なり合っている。但し、頂
点P4,P7,P10の関係は第6図(B)に示すように設定さ
れている。したがって、例えば、カレント頂点を頂点P1
0とした場合に、切り取り対象候補の三角形(P9,P10,P
1)第6図(A)中破線参照)の内部に他の頂点が存在
しないことになる。なぜならば、重なっている頂点は切
り取り対象候補の三角形の外部に存在すると判断するこ
とを前提としているからである。この結果、三角形(P
9,P10,P1)が切り取られてしまうことになるという不都
合がある。しかし、この実施例においては、重なり合っ
た頂点以外の凸頂点をカレント頂点として選択して三角
形の切り取りを行なうようにしているので、頂点P1,P2,
P8,P9の何れかをカレント頂点として三角形の切り取り
を行なうことにより、不自然な三角形の切り取りを防止
できる。
7,P8,P9,P10が凸頂点、P3,P4,P5,P6が凹頂点であり、し
かも頂点P4,P7,P10が互に重なり合っている。但し、頂
点P4,P7,P10の関係は第6図(B)に示すように設定さ
れている。したがって、例えば、カレント頂点を頂点P1
0とした場合に、切り取り対象候補の三角形(P9,P10,P
1)第6図(A)中破線参照)の内部に他の頂点が存在
しないことになる。なぜならば、重なっている頂点は切
り取り対象候補の三角形の外部に存在すると判断するこ
とを前提としているからである。この結果、三角形(P
9,P10,P1)が切り取られてしまうことになるという不都
合がある。しかし、この実施例においては、重なり合っ
た頂点以外の凸頂点をカレント頂点として選択して三角
形の切り取りを行なうようにしているので、頂点P1,P2,
P8,P9の何れかをカレント頂点として三角形の切り取り
を行なうことにより、不自然な三角形の切り取りを防止
できる。
また、第6図(C)に示す多角形(但し、重なり合う
頂点同士の関係は第6図(D)に示すとおり)において
は、重なり合った頂点以外の凸頂点の何れをカレント頂
点として選択した場合にも、切り取り対象候補の三角形
の内部に他の頂点が存在するので、三角形の切り取りが
できない。しかし、このような多角形の場合には、重な
り合った頂点の中から、内部に凹頂点を含まない凸頂点
を捜し、該当する凸頂点をカレント頂点として上記多角
形分割処理を行なうので、不自然な三角形の切り取りを
伴なうことなく、多角形の分割を達成できる。
頂点同士の関係は第6図(D)に示すとおり)において
は、重なり合った頂点以外の凸頂点の何れをカレント頂
点として選択した場合にも、切り取り対象候補の三角形
の内部に他の頂点が存在するので、三角形の切り取りが
できない。しかし、このような多角形の場合には、重な
り合った頂点の中から、内部に凹頂点を含まない凸頂点
を捜し、該当する凸頂点をカレント頂点として上記多角
形分割処理を行なうので、不自然な三角形の切り取りを
伴なうことなく、多角形の分割を達成できる。
尚、この実施例の場合には、重なっている頂点の有無
を示す情報が各頂点毎に必要になるので、頂点数が最大
256頂点の場合に256 long word程度データ容量が増加す
るが、従来方法で分割不可能であった縮退したポリゴン
の分割を可能にできるという効果を発揮できる。
を示す情報が各頂点毎に必要になるので、頂点数が最大
256頂点の場合に256 long word程度データ容量が増加す
るが、従来方法で分割不可能であった縮退したポリゴン
の分割を可能にできるという効果を発揮できる。
<実施例3> 第7図はこの発明の多角形分割方法のさらに他の実施
例を示すフローチャートであり、第1図のフローチャー
トと異なる点は、ステップの判定とステップの処理
との間において、ステップにおいて、三角形の切り取
りにより影響を受ける2つの頂点の少なくとも一方が凸
頂点から凹頂点に変化したか否かを判別し、凸頂点から
凹頂点に変化していなければそのままステップの処理
を行ない、逆に、凸頂点から凹頂点に変化していればス
テップにおいて、自己干渉ポリゴンであると認識して
多角形分割処理を強制的に終了させるようにしている点
のみである。
例を示すフローチャートであり、第1図のフローチャー
トと異なる点は、ステップの判定とステップの処理
との間において、ステップにおいて、三角形の切り取
りにより影響を受ける2つの頂点の少なくとも一方が凸
頂点から凹頂点に変化したか否かを判別し、凸頂点から
凹頂点に変化していなければそのままステップの処理
を行ない、逆に、凸頂点から凹頂点に変化していればス
テップにおいて、自己干渉ポリゴンであると認識して
多角形分割処理を強制的に終了させるようにしている点
のみである。
第8図は自己干渉ポリゴン検出動作を説明する図であ
り、第8図(A)に示す多角形に対してカレント頂点を
P1として三角形の切り取りを行なえば、切り取り前の頂
点P2が凸頂点であったのに、切り取り後の頂点P2は第8
図(B)に示すように凹頂点になる。したがって、与え
られた多角形に基づいて先ず辺の交点計算を行なって自
己干渉ポリゴンであるか否かを判別する場合と比較し
て、三角形の切り取りに伴なって凸頂点から凹頂点に変
化した頂点が存在するか否かの判別を行なうだけでよい
から、処理を大幅に簡素化できる。また、自己干渉ポリ
ゴンは分割処理が強制的に終了されるのであるが、自己
干渉ポリゴンはプログラムの暴走さえ防止できればどの
ようにぬりつぶしてもよいのであるから、上記処理によ
り特に不都合が生じることはない。
り、第8図(A)に示す多角形に対してカレント頂点を
P1として三角形の切り取りを行なえば、切り取り前の頂
点P2が凸頂点であったのに、切り取り後の頂点P2は第8
図(B)に示すように凹頂点になる。したがって、与え
られた多角形に基づいて先ず辺の交点計算を行なって自
己干渉ポリゴンであるか否かを判別する場合と比較し
て、三角形の切り取りに伴なって凸頂点から凹頂点に変
化した頂点が存在するか否かの判別を行なうだけでよい
から、処理を大幅に簡素化できる。また、自己干渉ポリ
ゴンは分割処理が強制的に終了されるのであるが、自己
干渉ポリゴンはプログラムの暴走さえ防止できればどの
ようにぬりつぶしてもよいのであるから、上記処理によ
り特に不都合が生じることはない。
<実施例4> 第9図はこの発明の多角形分割装置の一実施例を示す
ブロック図であり、与えられた多角形の各頂点を定義順
に保持する頂点保持部(1)と、頂点保持部(1)に保
持されている各頂点が凸頂点か凹頂点かを判定し、判定
結果を保持する頂点判定保持部(2)と、多角形の頂点
数を保持する頂点数保持部(3)と、頂点保持部(1)
から任意の凸頂点を選択してカレント頂点とするカレン
ト頂点設定部(4)と、カレント頂点を共有する2辺お
よび2辺の端点を結ぶ線分で構成される三角形を切り取
り対象候補とする切り取り対象候補三角形生成部(5)
と、切り取り対象候補の三角形の内部に他の頂点が存在
しているか否かを判別する切り取り可否判別部(6)
と、切り取り対象候補の三角形の内部に他の頂点が全く
存在していないことを示す切り取り可否判別部(6)か
らの判別結果に基づいて切り取り対象候補の三角形を切
り取る三角形切り取り部(7)と、三角形の切り取りに
より影響を受けた頂点が凸頂点か凹頂点かを判定し、判
定結果に基づいて頂点判定保持部(2)の内容を更新す
る頂点判定結果更新部(8)と、三角形の切り取りが行
なわれたことを条件として頂点数保持部(3)の頂点数
を1だけ減少させる頂点数減少部(9)と、頂点数が3
より多いか否かを判別する頂点数判別部(10)と、三角
形の切り取りが行なわれたこと、または切り取り対象候
補の三角形の内部に他の頂点が存在していることを条件
とし、しかも頂点数が3より多いことを条件として次の
凸頂点をカレント頂点として選択すべくカレント頂点設
定部(4)を制御する制御部(11)とを有している。
ブロック図であり、与えられた多角形の各頂点を定義順
に保持する頂点保持部(1)と、頂点保持部(1)に保
持されている各頂点が凸頂点か凹頂点かを判定し、判定
結果を保持する頂点判定保持部(2)と、多角形の頂点
数を保持する頂点数保持部(3)と、頂点保持部(1)
から任意の凸頂点を選択してカレント頂点とするカレン
ト頂点設定部(4)と、カレント頂点を共有する2辺お
よび2辺の端点を結ぶ線分で構成される三角形を切り取
り対象候補とする切り取り対象候補三角形生成部(5)
と、切り取り対象候補の三角形の内部に他の頂点が存在
しているか否かを判別する切り取り可否判別部(6)
と、切り取り対象候補の三角形の内部に他の頂点が全く
存在していないことを示す切り取り可否判別部(6)か
らの判別結果に基づいて切り取り対象候補の三角形を切
り取る三角形切り取り部(7)と、三角形の切り取りに
より影響を受けた頂点が凸頂点か凹頂点かを判定し、判
定結果に基づいて頂点判定保持部(2)の内容を更新す
る頂点判定結果更新部(8)と、三角形の切り取りが行
なわれたことを条件として頂点数保持部(3)の頂点数
を1だけ減少させる頂点数減少部(9)と、頂点数が3
より多いか否かを判別する頂点数判別部(10)と、三角
形の切り取りが行なわれたこと、または切り取り対象候
補の三角形の内部に他の頂点が存在していることを条件
とし、しかも頂点数が3より多いことを条件として次の
凸頂点をカレント頂点として選択すべくカレント頂点設
定部(4)を制御する制御部(11)とを有している。
上記の構成の多角形分割装置の動作は次のとおりであ
る。
る。
多角形を構成する複数個の頂点が定義順に頂点保持部
(1)に保持されれば、頂点判定保持部(2)により各
頂点が凸頂点か凹頂点かを判定して判定結果を保持す
る。また、同時に頂点数保持部(3)により多角形の頂
点数を保持する。
(1)に保持されれば、頂点判定保持部(2)により各
頂点が凸頂点か凹頂点かを判定して判定結果を保持す
る。また、同時に頂点数保持部(3)により多角形の頂
点数を保持する。
この状態において、カレント頂点設定部(4)により
何れかの凸頂点をカレント頂点として選択し、切り取り
対象候補三角形生成部(5)により切り取り対象候補の
三角形を生成し、切り取り可否判別部(6)により、切
り取り対象候補の三角形の内部に他の頂点が存在してい
るか否かを判別する。そして、内部に他の頂点が全く存
在していなければ、三角形切り取り部(7)により切り
取り対象の三角形を切り取る。尚、三角形の切り取りに
伴なって2つの頂点が影響を受けるので、頂点判定結果
更新部(8)によりこれらの頂点が凸頂点か凹頂点かを
判定し、判定結果に基づいて頂点判定保持部(2)の内
容を更新し、同時に頂点数減少部(9)により、頂点数
保持部(3)の頂点数を1だけ減少させる。
何れかの凸頂点をカレント頂点として選択し、切り取り
対象候補三角形生成部(5)により切り取り対象候補の
三角形を生成し、切り取り可否判別部(6)により、切
り取り対象候補の三角形の内部に他の頂点が存在してい
るか否かを判別する。そして、内部に他の頂点が全く存
在していなければ、三角形切り取り部(7)により切り
取り対象の三角形を切り取る。尚、三角形の切り取りに
伴なって2つの頂点が影響を受けるので、頂点判定結果
更新部(8)によりこれらの頂点が凸頂点か凹頂点かを
判定し、判定結果に基づいて頂点判定保持部(2)の内
容を更新し、同時に頂点数減少部(9)により、頂点数
保持部(3)の頂点数を1だけ減少させる。
以上のようにして三角形の切り取りが行なわれた場
合、または切り取り対象候補の三角形の内部に他の頂点
が存在すると判別された場合には、頂点数判別部(10)
により頂点数が3より多いと判別されたことを条件とし
て制御部(11)により、次の凸頂点をカレント頂点とし
て選択すべくカレント頂点設定部(4)を制御する。し
たがって、新たなカレント頂点に基づいて三角形の切り
取りが反復される。
合、または切り取り対象候補の三角形の内部に他の頂点
が存在すると判別された場合には、頂点数判別部(10)
により頂点数が3より多いと判別されたことを条件とし
て制御部(11)により、次の凸頂点をカレント頂点とし
て選択すべくカレント頂点設定部(4)を制御する。し
たがって、新たなカレント頂点に基づいて三角形の切り
取りが反復される。
以上の説明から明らかなように、簡単な構成で多角形
の分割を達成でき、しかも三角形分割のために必要なデ
ータ量を少なくできる。
の分割を達成でき、しかも三角形分割のために必要なデ
ータ量を少なくできる。
<実施例5> 第10図はこの発明の多角形分割装置の他の実施例を示
すブロック図であり、第9図のブロック図と異なる点
は、各頂点毎に他の頂点と重なり合うか否かを判別して
判別結果を保持する重なり合い判別保持部(12)をさら
に有している点、カレント頂点設定部(4)に代えて、
重なり合っていない凸頂点をカレント頂点として選択す
る第1カレント頂点設定部(4a)および重なり合ってい
る頂点の中から、凹頂点を含まない凸頂点をカレント頂
点として選択する第2カレント頂点設定部(4b)とを有
している点、第1カレント頂点設定部(4a)を優先的に
動作させ、第1カレント頂点設定部(4a)により該当す
る全ての凸頂点を順次選択して三角形の切り取り処理を
行なっても頂点数が3よりも多い場合に第2カレント頂
点設定部(4b)を動作させる頂点選択制御部(13)を有
している点のみである。上記の構成の多角形分割装置の
動作は次のとおりである。
すブロック図であり、第9図のブロック図と異なる点
は、各頂点毎に他の頂点と重なり合うか否かを判別して
判別結果を保持する重なり合い判別保持部(12)をさら
に有している点、カレント頂点設定部(4)に代えて、
重なり合っていない凸頂点をカレント頂点として選択す
る第1カレント頂点設定部(4a)および重なり合ってい
る頂点の中から、凹頂点を含まない凸頂点をカレント頂
点として選択する第2カレント頂点設定部(4b)とを有
している点、第1カレント頂点設定部(4a)を優先的に
動作させ、第1カレント頂点設定部(4a)により該当す
る全ての凸頂点を順次選択して三角形の切り取り処理を
行なっても頂点数が3よりも多い場合に第2カレント頂
点設定部(4b)を動作させる頂点選択制御部(13)を有
している点のみである。上記の構成の多角形分割装置の
動作は次のとおりである。
先ず、第9図の実施例と同様に、多角形を構成する複
数個の頂点を定義順に頂点保持部(1)に保持し、頂点
判定保持部(2)により各頂点が凸頂点か凹頂点かを判
定して判定結果を保持し、頂点数保持部(3)により多
角形の頂点数を保持すると同時に、重なり合い判別保持
部(12)により、各頂点毎に他の頂点と重なり合うか否
かを判別して判別結果を保持する。
数個の頂点を定義順に頂点保持部(1)に保持し、頂点
判定保持部(2)により各頂点が凸頂点か凹頂点かを判
定して判定結果を保持し、頂点数保持部(3)により多
角形の頂点数を保持すると同時に、重なり合い判別保持
部(12)により、各頂点毎に他の頂点と重なり合うか否
かを判別して判別結果を保持する。
この状態において頂点選択制御部(13)により先ず第
1カレント頂点設定部(4a)を動作させて重なり合って
いない凸頂点を順次選択し、第9図の実施例と同様に三
角形の切り取り処理を必要回数だけ反復する。そして、
最終的に頂点数が3になれば、多角形の分割を終了す
る。逆に、頂点数が3よりも多ければ、頂点選択制御部
(13)により第2カレント頂点設定部(4b)を動作さ
せ、重なり合っている頂点の中から、凹頂点を含まない
凸頂点を選択し、次いで、再び第1カレント頂点設定部
(4a)を動作させて三角形の切り取り処理を反復する。
以下、三角形の切り取り処理を反復した結果、頂点数が
3よりも多いことを条件として、第2カレント頂点設定
部(4b)の動作および第1カレント頂点設定部(4a)の
動作を反復することにより、縮退したポリゴンの分割を
達成することができる。
1カレント頂点設定部(4a)を動作させて重なり合って
いない凸頂点を順次選択し、第9図の実施例と同様に三
角形の切り取り処理を必要回数だけ反復する。そして、
最終的に頂点数が3になれば、多角形の分割を終了す
る。逆に、頂点数が3よりも多ければ、頂点選択制御部
(13)により第2カレント頂点設定部(4b)を動作さ
せ、重なり合っている頂点の中から、凹頂点を含まない
凸頂点を選択し、次いで、再び第1カレント頂点設定部
(4a)を動作させて三角形の切り取り処理を反復する。
以下、三角形の切り取り処理を反復した結果、頂点数が
3よりも多いことを条件として、第2カレント頂点設定
部(4b)の動作および第1カレント頂点設定部(4a)の
動作を反復することにより、縮退したポリゴンの分割を
達成することができる。
以上の説明から明らかなように、第9図の実施例と同
様の処理によっては多角形の分割が完了しなかった場合
にのみ第2カレント頂点設定部(4b)を動作させればよ
いのであるから、構成を簡素化でき、しかも縮退したポ
リゴンの分割を簡単に達成できる。尚、縮退したポリゴ
ンは、縮小処理を施すことにより頻繁に発生するのであ
るから、縮退したポリゴンについては確実に三角形への
分割が達成できることが要求されるのであるが、この実
施例はこの要求を簡単に満足できる優れた多角形分割装
置である。
様の処理によっては多角形の分割が完了しなかった場合
にのみ第2カレント頂点設定部(4b)を動作させればよ
いのであるから、構成を簡素化でき、しかも縮退したポ
リゴンの分割を簡単に達成できる。尚、縮退したポリゴ
ンは、縮小処理を施すことにより頻繁に発生するのであ
るから、縮退したポリゴンについては確実に三角形への
分割が達成できることが要求されるのであるが、この実
施例はこの要求を簡単に満足できる優れた多角形分割装
置である。
<実施例6> 第11図はこの発明の多角形分割装置のさらに他の実施
例を示すブロック図であり、第10図のブロック図と異な
る点は、頂点判定保持部(2)に保持されている、各頂
点が凸頂点から凹頂点かを示す判定結果と、頂点判定結
果更新部(8)により得られる、三角形の切り取りによ
り影響を受けた頂点が凸頂点か凹頂点かを示す判定結果
とに基づいて、少なくとも何れかの頂点が凸頂点から凹
頂点に変化したか否かを判別する頂点変化判別部(14)
を有している点、凸頂点から凹頂点に変化したことを示
す頂点変化判別部(14)からの判別結果に基づいて多角
形分割を強制的に終了させる強制終了部(15)とを有し
ている点のみである。
例を示すブロック図であり、第10図のブロック図と異な
る点は、頂点判定保持部(2)に保持されている、各頂
点が凸頂点から凹頂点かを示す判定結果と、頂点判定結
果更新部(8)により得られる、三角形の切り取りによ
り影響を受けた頂点が凸頂点か凹頂点かを示す判定結果
とに基づいて、少なくとも何れかの頂点が凸頂点から凹
頂点に変化したか否かを判別する頂点変化判別部(14)
を有している点、凸頂点から凹頂点に変化したことを示
す頂点変化判別部(14)からの判別結果に基づいて多角
形分割を強制的に終了させる強制終了部(15)とを有し
ている点のみである。
上記の構成の多角形分割装置においては、三角形切り
取りの前後において凸頂点から凹頂点に変化した頂点が
存在する場合に、この多角形が自己干渉ポリゴンである
から、強制終了部(15)により多角形分割処理を強制的
に終了させることができる。逆に、凸頂点から凹頂点に
変化する頂点が全く存在していない場合には、第10図の
実施例と同様に多角形を三角形に分割できる。
取りの前後において凸頂点から凹頂点に変化した頂点が
存在する場合に、この多角形が自己干渉ポリゴンである
から、強制終了部(15)により多角形分割処理を強制的
に終了させることができる。逆に、凸頂点から凹頂点に
変化する頂点が全く存在していない場合には、第10図の
実施例と同様に多角形を三角形に分割できる。
<発明の効果> 以上のように第1の発明は、簡単な処理で、しかも少
ないデータ容量で任意の多角形を三角形に分割できると
いう特有の効果を奏する。
ないデータ容量で任意の多角形を三角形に分割できると
いう特有の効果を奏する。
第2の発明は、簡単な構成で、しかも少ないデータ容
量で任意の多角形を三角形に分割できるという特有の効
果を奏する。
量で任意の多角形を三角形に分割できるという特有の効
果を奏する。
第3の発明は、簡単な処理で、しかも少ないデータ容
量で縮退したポリゴンを含む任意の多角形を三角形に分
割できるという特有の効果を奏する。
量で縮退したポリゴンを含む任意の多角形を三角形に分
割できるという特有の効果を奏する。
第4の発明は、簡単な構成で、しかも少ないデータ容
量で縮退したポリゴンを含む任意の多角形を三角形に分
割できるという特有の効果を奏する。
量で縮退したポリゴンを含む任意の多角形を三角形に分
割できるという特有の効果を奏する。
第5の発明は、簡単な処理で、自己干渉ポリゴンを識
別でき、自己干渉ポリゴンである場合に分割処理を強制
的に終了できるという特有の効果を奏する。
別でき、自己干渉ポリゴンである場合に分割処理を強制
的に終了できるという特有の効果を奏する。
第6の発明は、簡単な構成で、自己干渉ポリゴンを識
別でき、自己干渉ポリゴンである場合に分割処理を強制
的に終了できるという特有の効果を奏する。
別でき、自己干渉ポリゴンである場合に分割処理を強制
的に終了できるという特有の効果を奏する。
第1図はこの発明の多角形分割方法の一実施例を示すフ
ローチャート、 第2図は多角形分割方法の具体例を示す図、 第3図は分割速度を比較するために設定した多角形を示
す図、 第4図は従来方法とこの発明の方法との分割速度を示す
図、 第5図はこの発明の多角形分割方法の他の実施例を示す
フローチャート、 第6図は多角形分割方法の具体例を示す図、 第7図はこの発明の多角形分割方法のさらに他の実施例
を示すフローチャート、 第8図は自己干渉ポリゴン検出動作を説明する図、 第9図はこの発明の多角形分割装置の一実施例を示すブ
ロック図、 第10図はこの発明の多角形分割装置の他の実施例を示す
ブロック図、 第11図はこの発明の多角形分割装置の他の実施例を示す
ブロック図、 第12図、第14図、第16図および第18図はそれぞれ従来方
法を示すフローチャート、 第13図、第15図、第17図および第19図はそれぞれ従来方
法の具体例を示す図、 第20図は各従来方法による三角形分割結果を示す図、 第21図および第22図は従来方法の不都合を説明する図。 (2)……頂点判定保持部、(3)……頂点数保持部、 (4)……カレント頂点設定部、 (4a)……第1カレント頂点設定部、 (4b)……第2カレント頂点設定部、 (5)……切り取り対象候補三角形生成部、 (6)……切り取り可否判別部、(7)……三角形切り
取り部、 (8)……頂点判定結果更新部、(9)……頂点数減少
部、 (11)……制御部、(14)……頂点変化判別部、 (15)……強制終了部
ローチャート、 第2図は多角形分割方法の具体例を示す図、 第3図は分割速度を比較するために設定した多角形を示
す図、 第4図は従来方法とこの発明の方法との分割速度を示す
図、 第5図はこの発明の多角形分割方法の他の実施例を示す
フローチャート、 第6図は多角形分割方法の具体例を示す図、 第7図はこの発明の多角形分割方法のさらに他の実施例
を示すフローチャート、 第8図は自己干渉ポリゴン検出動作を説明する図、 第9図はこの発明の多角形分割装置の一実施例を示すブ
ロック図、 第10図はこの発明の多角形分割装置の他の実施例を示す
ブロック図、 第11図はこの発明の多角形分割装置の他の実施例を示す
ブロック図、 第12図、第14図、第16図および第18図はそれぞれ従来方
法を示すフローチャート、 第13図、第15図、第17図および第19図はそれぞれ従来方
法の具体例を示す図、 第20図は各従来方法による三角形分割結果を示す図、 第21図および第22図は従来方法の不都合を説明する図。 (2)……頂点判定保持部、(3)……頂点数保持部、 (4)……カレント頂点設定部、 (4a)……第1カレント頂点設定部、 (4b)……第2カレント頂点設定部、 (5)……切り取り対象候補三角形生成部、 (6)……切り取り可否判別部、(7)……三角形切り
取り部、 (8)……頂点判定結果更新部、(9)……頂点数減少
部、 (11)……制御部、(14)……頂点変化判別部、 (15)……強制終了部
Claims (6)
- 【請求項1】多角形の全ての頂点について凹頂点か凸頂
点かを判別するとともに、多角形の頂点数を得、所望の
凸頂点を選択して、選択された凸頂点を共有する2辺お
よび2辺の端点を結ぶ線分で構成される三角形の内部に
他の頂点が存在するか否かを判別し、他の頂点が存在し
ていなければ該当する三角形を多角形から切り取るとと
もに頂点数を減少させて、残った多角形について頂点判
別処理、凸頂点の選択処理および他の頂点が存在するか
否かの判別処理を反復し、逆に、他の頂点が存在してい
れば、異なる凸頂点を選択して他の頂点が存在している
か否かの判別処理を反復することを特徴とする多角形分
割方法。 - 【請求項2】多角形の全ての頂点について凹頂点か凸頂
点かを判別する頂点判別手段(2)と、多角形の頂点数
を保持する頂点数保持手段(3)と、所望の凸頂点を選
択する凸頂点選択手段(4)と、選択された凸頂点を共
有する2辺および2辺の端点を結ぶ線分で構成される三
角形の内部に他の頂点が存在するか否かを判別する三角
形判別手段(5)(6)と、他の頂点が存在していない
ことを示す三角形判別手段(6)の判別結果に基づいて
該当する三角形を多角形から切り取るとともに頂点数を
減少させる三角形切り取り手段(7)(8)(9)と、
残った多角形について頂点判別手段(2)、頂点数保持
手段(3)、凸頂点選択手段(4)および三角形判別手
段(5)(6)を反復動作させる第1反復制御手段(1
1)と、他の頂点が存在していることを示す三角形判別
手段(6)の判別結果に基づいて、凸頂点選択手段
(4)および三角形判別手段(5)(6)を反復動作さ
せる第2反復制御手段(11)とを含むことを特徴とする
多角形分割装置。 - 【請求項3】多角形の全ての頂点について凹頂点か凸頂
点かを判別するとともに、多角形の頂点数を得、互に重
なり合った頂点を検出し、重なり合っていない頂点のう
ちの所望の凸頂点を選択して、選択された凸頂点を共有
する2辺および2辺の端点を結ぶ線分で構成される三角
形の内部に他の頂点が存在するか否かを判別し、他の頂
点が存在していなければ該当する三角形を多角形から切
り取るとともに頂点数を減少させて、残った多角形につ
いて頂点判別処理、重なり合った頂点の検出処理、凸頂
点の選択処理および他の頂点が存在するか否かの判別処
理を反復し、逆に、他の頂点が存在していれば、重なり
合っていない頂点のうち異なる凸頂点を選択して他の頂
点が存在しているか否かの判別処理を反復し、上記凸頂
点の選択によっては多角形の分割が完了しなかった場合
に、内部に凹頂点を含まない凸頂点を選択して他の頂点
が存在するか否かの判別処理および可能な場合に三角形
の切り取り処理を行ない、異なる凸頂点を選択して他の
頂点が存在しているか否かの判別処理、または残った多
角形について頂点判別処理、重なり合った頂点の検出処
理、凸頂点の選択処理および他の頂点が存在するか否か
の判別処理を反復することを特徴とする多角形分割方
法。 - 【請求項4】多角形の全ての頂点について凹頂点か凸頂
点かを判別する頂点判別手段(2)と、多角形の頂点数
を保持する頂点数保持手段(3)と、互に重なり合う頂
点を検出する検出手段(12)と、重なり合わない頂点の
なかから所望の凸頂点を選択する凸頂点選択手段(4a)
と、選択された凸頂点を共有する2辺および2辺の端点
を結ぶ線分で構成される三角形の内部に他の頂点が存在
するか否かを判別する三角形判別手段(5)(6)と、
他の頂点が存在していないことを示す三角形判別手段
(6)の判別結果に基づいて該当する三角形を多角形か
ら切り取るとともに頂点数を減少させる三角形切り取り
手段(7)(8)(9)と、残った多角形について頂点
判別手段(2)、頂点数保持手段(3)、凸頂点選択手
段(4a)および三角形判別手段(5)(6)を反復動作
させる第1反復制御手段(11)と、他の頂点が存在して
いることを示す三角形判別手段(6)の判別結果に基づ
いて、凸頂点選択手段(4a)および三角形判別手段
(5)(6)を反復動作させる第2反復制御手段(11)
と、重なり合わない頂点のなかから凸頂点を選択した場
合に三角形の切り取りが完了しなかった場合に、内部に
凹頂点を含まない凸頂点を選択して三角形判別手段
(5)(6)による判別を行なわせる重なり頂点選択手
段(4b)とを含むことを特徴とする多角形分割装置。 - 【請求項5】特許請求の範囲第1項または第3項の多角
形分割方法により多角形から三角形を切り取る毎に凸頂
点から凹頂点に変化した頂点が存在するか否かを判別
し、凸頂点から凹頂点に変化した頂点が存在しないと判
別された場合にはそのまま多角形の分割を反復し、凸頂
点から凹頂点に変化した頂点が存在すると判別された場
合には多角形の分割を強制的に終了することを特徴とす
る多角形分割方法。 - 【請求項6】多角形の全ての頂点について凹頂点から凸
頂点かを判別する頂点判別手段(2)と、多角形の頂点
数を保持する頂点数保持手段(3)と、所望の凸頂点を
選択する凸頂点選択手段(4)(4a)と、選択された凸
頂点を共有する2辺および2辺の端点を結ぶ線分で構成
される三角形の内部に他の頂点が存在するか否かを判別
する三角形判別手段(5)(6)と、他の頂点が存在し
ていないことを示す三角形判別手段(6)の判別結果に
基づいて該当する三角形を多角形から切り取るとともに
頂点数を減少させる三角形切り取り手段(7)(8)
(9)と、三角形切り取りに伴なって凸頂点から凹頂点
に変化した頂点が存在するか否かを判別する変化頂点判
別手段(14)と、凸頂点から凹頂点に変化した頂点が存
在しない場合に、残った多角形について頂点判別手段
(2)、頂点数保持手段(3)、凸頂点選択手段(4)
(4a)および三角形判別手段(5)(6)を反復動作さ
せる第1反復制御手段(11)と、他の頂点が存在してい
ることを示す三角形判別手段(6)の判別結果に基づい
て、凸頂点選択手段(4)(4a)および三角形判別手段
(5)(6)を反復動作させる第2反復制御手段(11)
と、凸頂点から凹頂点に変化した頂点が存在する場合
に、多角形分割処理を強制的に終了させる強制終了手段
(15)とを含むことを特徴とする多角形分割装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2317138A JP2800404B2 (ja) | 1990-11-20 | 1990-11-20 | 多角形分割方法およびその装置 |
US07/794,484 US5335319A (en) | 1990-11-20 | 1991-11-19 | Polygon division method and apparatus |
EP19910119779 EP0487060A3 (en) | 1990-11-20 | 1991-11-19 | Polygon division method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2317138A JP2800404B2 (ja) | 1990-11-20 | 1990-11-20 | 多角形分割方法およびその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04184689A JPH04184689A (ja) | 1992-07-01 |
JP2800404B2 true JP2800404B2 (ja) | 1998-09-21 |
Family
ID=18084869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2317138A Expired - Lifetime JP2800404B2 (ja) | 1990-11-20 | 1990-11-20 | 多角形分割方法およびその装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5335319A (ja) |
EP (1) | EP0487060A3 (ja) |
JP (1) | JP2800404B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3327621B2 (ja) * | 1992-04-29 | 2002-09-24 | キヤノン株式会社 | オブジェクトソートとエッジ計算を行うグラフィックシステム及びその方法 |
JP2807608B2 (ja) * | 1992-12-29 | 1998-10-08 | 株式会社ナムコ | ソーティング処理装置、これを用いた画像合成装置及びソーティング処理方法 |
DE69421495D1 (de) * | 1993-03-19 | 1999-12-09 | Fujitsu Ltd | Verfahren und vorrichtung zum aufteilen von trapezen |
JP3466661B2 (ja) * | 1993-06-29 | 2003-11-17 | キヤノン株式会社 | 画像処理装置及びその方法 |
JPH07182537A (ja) * | 1993-12-21 | 1995-07-21 | Toshiba Corp | 図形描画装置および図形描画方法 |
US5644691A (en) * | 1994-10-14 | 1997-07-01 | Compaq Computer Corporation | Method and apparatus for accelerated filling of polygons on a computer display by rectangular decomposition |
AU3313895A (en) | 1994-10-14 | 1996-04-26 | Compaq Computer Corporation | Method and apparatus for determining simple convex polygons |
JP3239975B2 (ja) * | 1994-11-29 | 2001-12-17 | 富士通株式会社 | 多角形描画装置 |
US5794004A (en) * | 1995-12-19 | 1998-08-11 | Hewlett-Packard Company | Clipper assisted decomposition of bow-tie quadrilaterals |
US6693719B1 (en) * | 1998-09-16 | 2004-02-17 | Texas Instruments Incorporated | Path to trapezoid decomposition of polygons for printing files in a page description language |
JP4541533B2 (ja) * | 2000-11-24 | 2010-09-08 | パナソニック株式会社 | 描画装置 |
US7502024B2 (en) * | 2003-09-25 | 2009-03-10 | Honeywell International Inc. | Texture based circular arc generation |
KR100915574B1 (ko) * | 2007-12-17 | 2009-09-07 | 한국전자통신연구원 | 충분히 매끄럽게 만들어진 메쉬의 각진 부분을 복원하는메쉬 재구성 방법 및 장치 |
GB0908506D0 (en) | 2009-05-18 | 2009-06-24 | Imagination Tech Ltd | Method and apparatus for drawing polygons |
CN101923502B (zh) * | 2009-11-16 | 2012-10-24 | 东南大学 | 计算机图形中简单多边形的切环剖分方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61265677A (ja) * | 1985-05-21 | 1986-11-25 | Fujio Yamaguchi | 隠れ線・隠れ面演算処理方式 |
US4815009A (en) * | 1987-04-21 | 1989-03-21 | Xerox Corporation | Algorithm for filling an image outline |
US4951227A (en) * | 1988-09-30 | 1990-08-21 | Tektronix, Inc. | Dimension analysis of drawings |
US5129051A (en) * | 1990-03-16 | 1992-07-07 | Hewlett-Packard Company | Decomposition of arbitrary polygons into trapezoids |
-
1990
- 1990-11-20 JP JP2317138A patent/JP2800404B2/ja not_active Expired - Lifetime
-
1991
- 1991-11-19 EP EP19910119779 patent/EP0487060A3/en not_active Withdrawn
- 1991-11-19 US US07/794,484 patent/US5335319A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5335319A (en) | 1994-08-02 |
EP0487060A2 (en) | 1992-05-27 |
JPH04184689A (ja) | 1992-07-01 |
EP0487060A3 (en) | 1993-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2800404B2 (ja) | 多角形分割方法およびその装置 | |
US4809201A (en) | Graphic display region defining technique | |
JPH0445874B2 (ja) | ||
JP2009134620A (ja) | 描画装置、描画プログラムおよび描画方法 | |
US5179645A (en) | Method of recognizing overlapped graphics in each degree of overlapping thereof | |
KR102209076B1 (ko) | 가상 키보드 오타 보정을 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독가능한 기록 매체 | |
US6728407B1 (en) | Method for automatically determining trackers along contour and storage medium storing program for implementing the same | |
KR102443401B1 (ko) | 자율주행 차량을 위한 로드 네트워크 데이터 생성 방법, 장치 및 컴퓨터프로그램 | |
KR102014363B1 (ko) | 배율이 변경되는 아이드로퍼 툴을 이용한 색상 추출 방법 및 그 장치 | |
JPH07301542A (ja) | 車両用ナビゲーション装置 | |
JP7407787B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
US10830594B2 (en) | Updating missing attributes in navigational map data via polyline geometry matching | |
JPH0362084A (ja) | 車載用地図表示装置 | |
CN115659900A (zh) | 用于呈现集成电路版图的方法、设备和介质 | |
CN111783180B (zh) | 图纸拆分方法及相关装置 | |
JP2662539B2 (ja) | 3次元図形処理装置 | |
KR102282538B1 (ko) | 배율이 변경되는 아이드로퍼 툴을 이용한 색상 추출 방법 및 그 장치 | |
JPH0384416A (ja) | 車載用地図表示装置 | |
JP2003288606A (ja) | 領域判別装置及びプログラム | |
JP2753543B2 (ja) | 図形出力装置 | |
JP3305395B2 (ja) | 図形分割装置 | |
JP2610828B2 (ja) | 図形情報抽出方法 | |
JP2007052469A (ja) | データ形式変換システム | |
JPH07200847A (ja) | 図形出力装置 | |
JP3633011B2 (ja) | 図形抽出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080710 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090710 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100710 Year of fee payment: 12 |