(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-29
(45)【発行日】2023-09-06
(54)【発明の名称】モデル化装置及びプログラム
(51)【国際特許分類】
G06T 17/20 20060101AFI20230830BHJP
G06F 30/10 20200101ALI20230830BHJP
【FI】
G06T17/20
G06F30/10
G06F30/10 100
(21)【出願番号】P 2019194482
(22)【出願日】2019-10-25
【審査請求日】2022-04-20
(73)【特許権者】
【識別番号】000002107
【氏名又は名称】住友重機械工業株式会社
(74)【代理人】
【識別番号】100105887
【氏名又は名称】来山 幹雄
(72)【発明者】
【氏名】大西 良孝
(72)【発明者】
【氏名】廣瀬 良太
(72)【発明者】
【氏名】松宮 就章
【審査官】中田 剛史
(56)【参考文献】
【文献】特開平06-131471(JP,A)
【文献】中国特許出願公開第102930091(CN,A)
【文献】特開2015-225421(JP,A)
【文献】特開2010-238215(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/20
G06F 30/12
G06F 30/10
(57)【特許請求の範囲】
【請求項1】
二次元平面図形の縁の上に位置する複数の特徴点の位置情報を取得する入力部と、
前記入力部に入力された前記位置情報で定義される前記二次元平面図形を複数の三角形要素に分割する処理部と、
前記処理部の処理結果を出力する出力部と
を有し、
前記処理部は、
前記二次元平面図形を包含する仮想平面を四角形の複数のセルに区分する処理と、
前記二次元平面図形の縁の上で隣り合う2つの特徴点を結ぶ線分であるエッジと、前記複数のセルの縁とが交差する位置、及び前記複数のセルの頂点に、それぞれ付加点を配置する処理と、
前記複数のセルについてセルごとに、セル内の領域が複数の三角形要素で満たされ、かつ三角形要素同士は重ならないという条件を満たすように、セル内に位置する特徴点及び付加点を頂点とする複数の三角形要素を生成する処理と、
前記二次元平面図形の外側に位置する三角形要素を取り除く処理と、
前記二次元平面図形の外側に位置する三角形要素を取り除く処理を行った後に残っている複数の三角形要素を定義する情報を前記出力部に出力する処理と
を実行するモデル化装置。
【請求項2】
前記処理部は、
前記二次元平面図形の外側に位置する三角形要素を取り除く処理において、
前記エッジの両側に位置する三角形要素のうち、前記二次元平面図形の外側の三角形要素を取り除く処理と、
三角形要素の、前記エッジではない辺のうち、片側にしか三角形要素が配置されていない辺を持つ三角形要素を取り除く手順を、片側にしか三角形要素が配置されていない辺を持つ三角形要素がなくなるまで繰り返す処理と
を実行する請求項
1に記載のモデル化装置。
【請求項3】
前記処理部は、
前記二次元平面図形の外側に位置する三角形要素を取り除く処理を実行した後、
前記エッジ上の付加点を、前記エッジの端部の特徴点の位置まで移動させると共に、移動させた付加点を頂点とする三角形要素を付加点の移動に基づいて変形させる処理を、さらに実行する請求項
1または2に記載のモデル化装置。
【請求項4】
前記処理部は、前記エッジ上の付加点を移動させる処理において、移動の前後で、移動した付加点を頂点とする複数の三角形要素の面積の合計が増加しない方向に移動させる請求項3に記載のモデル化装置。
【請求項5】
二次元平面図形の縁の上に位置する複数の特徴点の位置情報を取得する機能と、
前記二次元平面図形を包含する仮想平面を四角形の複数のセルに区分する機能と、
前記二次元平面図形の縁の上で隣り合う2つの特徴点を結ぶ線分であるエッジと、前記複数のセルの縁とが交差する位置、及び前記複数のセルの頂点に、それぞれ付加点を配置する機能と、
前記複数のセルについてセルごとに、セル内の領域が複数の三角形要素で満たされ、かつ三角形要素同士は重ならないという条件を満たすように、セル内に位置する特徴点及び付加点を頂点とする複数の三角形要素を生成する機能と、
前記二次元平面図形の外側に位置する三角形要素を取り除く機能と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデル化装置及びプログラムに関する。
【背景技術】
【0002】
二次元点群データで形状が定義された二次元平面図形を、複数の三角形要素に分割する手法が、多角形を複数の三角形に分割する手法として古くから研究されてきた。また、近年、三次元計測器の発展に伴い、測定によって得られた点群データで定義された計測対象物の形状を三角形分割(ポリゴン化)して、計測対象物の形状をコンピュータに記憶させる需要が高まっている。
【0003】
二次元平面図形を複数の三角形要素に分割手法が、以下の非特許文献1~非特許文献3に説明されている。非特許文献1に記載された手法では、すべての点間を線分で結び、重なった線分を除去する。非特許文献2に記載された耳刈り取り法では、2つの辺が多角形の辺で、残りの1つの辺が多角形の内部に位置する三角形要素(耳)を刈り取る。非特許文献3に記載された方法は、点群を包括する凸多面体をユニークに決定する方法であり、正三角形に近い要素を積極的に作成する。
【先行技術文献】
【非特許文献】
【0004】
【文献】Duppe, R. D., Gottschalk, H. J. (1970), “Automatische Interpolation von Isolinien bei willkurlich ver teilten Stutzpunkten”, Allgemeine Vermessungs-Nachrichten, 77: 423-426
【文献】ElGindy, H. (1993), “Slicing an ear using prune-and-search”, Pattern Recognition Letters 14 (9), 719-722, doi:10.1016/0167-8655(93)90141
【文献】Delaunay, Boris (1991), “Sur la sphere vide”, Otdelenie Matematicheskikh i Estestvennykh Nauk, 7, pp.793-800
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に記載された方法は、非常に単純な方法であるが、点群に含まれる点の個数が増えると計算時間が膨大になる。非特許文献2に記載された耳刈り取り法は、多角形内部に穴が存在する場合には使用できない。すなわち、取り扱う対象図形が制限され、ロバスト性が低い。非特許文献3に記載された方法は、多大な計算時間が必要とされる。
【0006】
本発明の目的は、膨大な計算時間を必要とせず、ロバスト性の高い三角形要素分割を行うモデル化装置を提供することである。
【課題を解決するための手段】
【0008】
本発明の一観点によると、
二次元平面図形の縁の上に位置する複数の特徴点の位置情報を取得する入力部と、
前記入力部に入力された前記位置情報で定義される前記二次元平面図形を複数の三角形要素に分割する処理部と、
前記処理部の処理結果を出力する出力部と
を有し、
前記処理部は、
前記二次元平面図形を包含する仮想平面を四角形の複数のセルに区分する処理と、
前記二次元平面図形の縁の上で隣り合う2つの特徴点を結ぶ線分であるエッジと、前記複数のセルの縁とが交差する位置、及び前記複数のセルの頂点に、それぞれ付加点を配置する処理と、
前記複数のセルについてセルごとに、セル内の領域が複数の三角形要素で満たされ、かつ三角形要素同士は重ならないという条件を満たすように、セル内に位置する特徴点及び
付加点を頂点とする複数の三角形要素を生成する処理と、
前記二次元平面図形の外側に位置する三角形要素を取り除く処理と、
前記二次元平面図形の外側に位置する三角形要素を取り除く処理を行った後に残っている複数の三角形要素を定義する情報を前記出力部に出力する処理と
を実行するモデル化装置が提供される。
【0010】
本発明の他の観点によると、
二次元平面図形の縁の上に位置する複数の特徴点の位置情報を取得する機能と、
前記二次元平面図形を包含する仮想平面を四角形の複数のセルに区分する機能と、
前記二次元平面図形の縁の上で隣り合う2つの特徴点を結ぶ線分であるエッジと、前記複数のセルの縁とが交差する位置、及び前記複数のセルの頂点に、それぞれ付加点を配置する機能と、
前記複数のセルについてセルごとに、セル内の領域が複数の三角形要素で満たされ、かつ三角形要素同士は重ならないという条件を満たすように、セル内に位置する特徴点及び付加点を頂点とする複数の三角形要素を生成する機能と、
前記二次元平面図形の外側に位置する三角形要素を取り除く機能と
をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【0011】
セルごとに三角形要素に分割するため、三角形要素を生成する対象となる点群の個数が少なくなる。その結果、計算時間の長大化を抑制することができる。また、二次元平面図形の外部に生成された三角形要素を除去することにより、内部に穴を持つ二次元平面図形についても三角形要素分割を行うことが可能になり、ロバスト性の高い三角形要素分割を行うモデル化装置が提供される。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施例によるモデル化装置のブロック図である。
【
図2】
図2は、実施例による三角形要素分割方法のフローチャートである。
【
図3】
図3は、二次元平面図形の一例を示す図である。
【
図4】
図4は、二次元平面図形の外側の縁及び内側の縁の上に配置された特徴点の一部を拡大した図である。
【
図5】
図5は、複数のセルに区分された仮想平面の図である。
【
図6】
図6は、付加点を配置した状態の仮想平面の一部を示す図である。
【
図7】
図7は、三角形要素が生成された仮想平面の図である。
【
図8】
図8は、ステップS5(
図2)で三角形要素を除去する前の状態の仮想平面を示す図である。
【
図9】
図9は、エッジを含み、二次元平面図形の外部に位置する三角形要素を除去した状態の仮想平面を示す図である。
【
図10】
図10は、三角形要素を除去した状態の仮想平面を示す図である。
【
図11】
図11は、複数の三角形要素に分割した状態の二次元平面図形を示す図である。
【
図13】
図13は、三次元立体形状の上面の外側の縁の一部、及び上面に過不足なく生成された複数の
三角形要素を示す図である。
【
図14】
図14Aは、エッジ上の1つの付加点42を頂点とする2つの三角形要素と、そのエッジを辺とする1つの三角形要素を示すであり、
図14Bは、エッジ上の付加点を、その両側の2つの特徴点のいずれか一方の位置まで移動させた状態の三角形要素を示す図である。
【
図15】
図15Aは、エッジ上の付加点Pを頂点とする複数の三角形要素を示す図であり、
図15Bは、付加点Pを特徴点Aの位置まで移動させた状態の複数の三角形要素を示す図である。
【
図16】
図16Aは、エッジ上の付加点Pを頂点とする複数の三角形要素を示す図であり、
図16Bは、付加点Pを特徴点Bの位置まで移動させた状態の複数の三角形要素を示す図である。
【発明を実施するための形態】
【0013】
図1~
図11を参照して、実施例による三角形要素分割方法及びモデル化装置について説明する。
【0014】
図1は、実施例によるモデル化装置のブロック図である。実施例によるモデル化装置は、処理部20、入力部21、出力部22、及び記憶部23を含む。
【0015】
入力部21に対して、モデル化装置に対する種々のコマンドの入力、三角形要素分割の対象となる二次元平面図形の形状を定義するデータ等の入力が行われる。入力部21は、例えば、キーボード、タッチパネル、ポインティングデバイス、リムーバブルメディア読み取り装置、通信装置等を含む。
【0016】
処理部20は、入力部21に入力されたコマンドに応じて種々の処理を実行する。例えば、入力部21に入力された二次元平面図形の形状を定義するデータに基づいて、二次元平面図形を複数の三角形要素に分割する。さらに、処理結果を出力部22に出力する。処理部20は、例えばコンピュータの中央処理ユニット(CPU)等で構成される。
【0017】
記憶部23は、主記憶装置と補助記憶装置とを含む。補助記憶装置に、処理部20の動作のためのオペレーティングシステム(OS)、処理部20が実行するプログラム等が格納されている。処理部20は、補助記憶装置に格納されているプログラムを主記憶装置に読み出して、主記憶装置に記憶されているプログラムを実行する。さらに、処理部20は、主記憶装置に、処理部20の処理に必要な種々のデータを一時的に記憶させる。補助記憶装置には、例えば、ハードディスクドライブ、フラッシュメモリ等が用いられる。主記憶装置には、例えば、ランダムアクセスメモリ(RAM)が用いられる。
【0018】
出力部22は、例えばディスプレイ、リムーバブルメディア書き込み装置、通信装置等を含む。ディスプレイは、処理部20の処理結果を画像として表示する。リムーバブルメディア書き込み装置は、処理部20の処理結果をリムーバブルメディアに書き込む。通信装置は、処理部20の処理結果を外部機器に送信する。
【0019】
図2は、実施例による三角形要素分割方法のフローチャートである。
図2に示されたフローチャートの各ステップの機能は、処理部20(
図1)が記憶部23に記憶されたプログラムを実行することにより実現される。
図2のフローチャートの各ステップにおいて、二次元平面図形に対して行われる処理は、二次元平面図形の形状を定義する点群の各点の位置を定義する位置データに対してデータ処理を行うことにより実行される。
【0020】
まず、ステップS1において、処理部20(
図1)が、入力部21(
図1)に入力された二次元平面図形の複数の特徴点の位置情報を取得する。位置情報は、例えばxy座標上のx座標及びy座標の値を含む。
【0021】
図3に、二次元平面図形30の一例を示す。二次元平面図形30の外形が縁31によって画定される。縁31で囲まれた領域の内部に穴33が設けられている。穴33の周囲は、縁32により画定される。外側の縁31と内側の縁32との間の領域が、二次元平面図形30の内部である。外側の縁31より外側の領域、及び穴33の内側の領域は、二次元平面図形30の外部である。外側の縁31は、外側に向かって凸の部分35と内側に向かって凸の部分36とを含んでいる。外側の縁31及び内側の縁32の上に、複数の特徴点40が定義されている。複数の特徴点40に、配列の順番に通し番号が付されており、通し番号によって1つの特徴点40が特定される。複数の特徴点40の位置が、位置情報によって定義されており、複数の特徴点40の位置によって二次元平面図形の形状が定義される。なお、
図3では、一部の特徴点40のみを示している。
【0022】
図4は、外側の縁31及び内側の縁32の上に配置された特徴点40の一部を拡大した図である。外側の縁31の上に配置された3個の特徴点40に、通し番号i-1、i、i+1が付されており、内側の縁32の上に配置された3個の特徴点40に、通し番号j-1、j、j+1が付されている。ここで、i、jは整数である。若番の特徴点40から老番の特徴点40を見たとき、左側及び右側の領域がそれぞれ二次元平面図形30の内部及び外部と定義する。なお、内部と外部の定義は、逆にしてもよい。その他の方法で内部と外部とを定義してもよい。通し番号が連続する2つの特徴点40を両端とする線分を、エッジ41ということとする。
【0023】
ステップS1の後、ステップS2(
図2)において、二次元平面図形30を包含する有限な仮想平面を定義し、この仮想平面を複数のセルに区分する。
【0024】
図5に、複数のセル51に区分された仮想平面50の図を示す。仮想平面50に二次元平面図形30が包含されている。仮想平面50が、第1方向D1(
図5において左右方向)に平行な複数の直線、及び第1方向D1に対して垂直な第2方向D2(
図5において上下方向)に平行な複数の直線で区切られて、複数のセル51に区分されている。複数のセル51の各々は、例えば長方形である。
【0025】
次に、ステップS3(
図2)において、エッジ41とセル51の縁とが交差する位置、及びセル51の頂点に付加点42を配置する。
【0026】
図6に、付加点42を配置した状態の仮想平面50の一部を示す。セル51の縁52と、エッジ41とが交差する位置に付加点42が配置される。さらに、セル51の頂点にも付加点42が配置される。なお、セル51の縁52が特徴点40を通過する状態が発生した場合には、仮想平面50と二次元平面図形30とを相対的にわずかにずらすことにより、セル51の縁52が特徴点40を通過する状態の発生を回避する。
【0027】
次に、ステップS4(
図2)において、セル51ごとに、特徴点40及び付加点42を頂点とする複数の三角形要素を生成する。このとき、セル51内が複数の三角形要素で完全に埋め尽くされること、三角形要素同士は重ならないことという2つの条件を満たすように、三角形要素を生成する。この2つの条件を満たすように三角形要素を生成することを、三角形要素を過不足なく生成するという。
【0028】
図7に、三角形要素60が生成された仮想平面50の一部を示す。以下、複数の三角形要素60を生成する手順について説明する。まず、1つのセル51内のすべての特徴点40、当該セル51の縁52の上に位置するすべての付加点42を結ぶ線分を生成する。これらの線分のうち相互に交差する2本の線分を検出し、一方を削除する。この手順を、相互に交差する線分がなくなるまで繰り返す。これにより、当該セル51内に、過不足なく三角形要素60が生成される。なお、複数の線分を順番に生成するときに、新たに生成する線分が既に生成されている線分と交差する場合には、新たな線分の生成を行わないようにしてもよい。
【0029】
次に、ステップS5(
図2)において、二次元平面図形30の外部の三角形要素60を除去する。
図8~
図11を参照して、ステップS5の具体的な手順について説明する。
【0030】
図8は、ステップS5で三角形要素60を除去する前の状態の仮想平面50を示す図である。この段階では、すべてのエッジ41の各々の両側に三角形要素60が生成されている。エッジ41は、二次元平面図形30の縁に相当するため、エッジ41の両側の三角形要素60のうち一方は二次元平面図形30の内部に位置し、他方は二次元平面図形30の外部に位置する。まず、すべてのエッジ41の各々について、そのエッジ41を含み、二次元平面図形30の外部に位置する方の三角形要素60Aを除去する。
図8において、エッジ41を含み、二次元平面図形30の外部に位置する三角形要素60Aにハッチングを付している。
【0031】
図9は、エッジ41を含み、二次元平面図形30の外部に位置する三角形要素60A(
図8)を除去した状態の仮想平面50を示す図である。この段階では、二次元平面図形30の外部に位置し、かつエッジ41を含まない三角形要素60Bが除去されないで残っている。
図9において、三角形要素60Bにハッチングを付している。
【0032】
二次元平面図形30の内部に位置する三角形要素60は、エッジ41以外の辺を介して隣の三角形要素60に接している。すなわち、三角形要素60のエッジ41以外の辺は、その両側に三角形要素60が配置されている。従って、二次元平面図形30の外部に位置する三角形要素60Bを抽出するには、まずエッジ41以外の辺の中から、片側にしか三角形要素60が配置されていないものを抽出すればよい。
図9において、片側にしか三角形要素60が配置されていない辺として、辺61が抽出される。これらの辺61を含む4つの三角形要素60Bが、二次元平面図形30の外部に位置すると判定される。
【0033】
図10は、三角形要素60B(
図9)を除去した状態の仮想平面50を示す図である。二次元平面図形30の外部に位置する三角形要素60A(
図8)及び三角形要素60B(
図9)が除去され、二次元平面図形30の内部にのみ三角形要素60が残っている。
【0034】
次に、ステップS6(
図2)において、処理部20は、内部が複数の三角形要素60に分割された二次元平面図形30を定義するデータを、出力部22に出力する。
【0035】
図11は、複数の三角形要素60に分割した状態の二次元平面図形30を示す図である。二次元平面図形30の内部が、第1方向D1に平行な複数の直線と、第1方向D1に直交する第2方向D2に平行な複数の直線とによって、複数のセル51に区分されている。セル51ごとに、複数の三角形要素60が生成されており、二次元平面図形30の外部には三角形要素60が配置されていない。また、二次元平面図形30の内部には、過不足なく複数の三角形要素60が生成されている。
【0036】
二次元平面図形30の外側の縁31及び内側の縁32の少なくとも一方が内部を通過しているセル51A内には、エッジ41を少なくとも1つの辺とする複数の三角形要素60Cが生成されている。二次元平面図形30に全域が包含されているセル51Bは、1本の対角線によって2つの三角形要素60Dに分割されている。なお、二次元平面図形30の縁31、32が内部を通過しているセル51A内にも、セル51の対角線で分割された1つの三角形要素60Eが生成される場合がある。
【0037】
次に、上記実施例の優れた効果について説明する。
上記実施例では、二次元平面図形30を複数のセル51に区分し(ステップS2)、セル51ごとに三角形要素60に分割する(ステップS4)ため、三角形要素60を生成するときに着目する特徴点40の個数が少なくなる。また、セル51ごとに並行して三角形要素60に分割する処理を実行することができる。これにより、計算に必要な時間を短縮することができる。
【0038】
また、上記実施例では、二次元平面図形30の外部に生成された三角形要素60を除去するため(ステップS5)、内部に穴33(
図3)を有するような二次元平面図形30についても、複数の三角形要素60に分割することができる。このため、上記実施例による三角形要素分割方法は、ロバスト性が高いということができる。
【0039】
また、上記実施例による三角形要素分割方法のアルゴリズムは単純である。このため、分割結果に不都合が生じた場合に、その原因の探索が容易であるという優れた効果も得られる。
【0040】
次に、上記実施例の変形例について説明する。上記実施例では、仮想平面50(
図5)を、相互に直交する2組の直線群で区切ることにより、複数のセル51に区分している。すなわち、第1方向D1と第2方向D2とが垂直である。このため、セル51は、正方形または長方形である。その他の方法として、第1方向D1と第2方向D2とが斜めに交わるようにしてもよい。この場合、セル51は平行四辺形になる。また、セル51が平行四辺形以外の四角形になるように仮想平面50を区分してもよい。
【0041】
次に、
図12~
図16Bを参照して、他の実施例による三角形要素分割法について説明する。
図1~
図11に示した実施例による三角形要素分割方法では、単独の二次元平面図形30(
図3等)を過不足なく三角形要素60に分割する。以下に説明する実施例では、二次元平面図形30が三次元立体形状の1つの表面を構成している。
【0042】
図12は、三次元立体形状70の一部分の斜視図である。三次元立体形状70の表面の一部(以下、上面71という。)が、二次元平面図形30(
図3)と同一の形状を有する。すなわち、上面71は、二次元平面図形30と同様に、外側の縁31と内側の縁32とを有する。上面71の外側の縁31及び内側の縁32に、それぞれ三次元立体形状70の外側の側面72及び内側の側面73が連続する。本実施例では、上面71に生成される複数の三角形要素60と、外側の側面72及び内側の側面72に生成される複数の三角形要素との整合性を図ることができる。ここで、「整合性を図る」とは、縁31、32を介して接続されている2つの表面のうち一方の表面の三角形要素と、他方の表面の三角形要素とが、エッジを介して1対1に対応する関係を持たせることを意味する。
【0043】
まず、
図1~
図11に示した実施例による三角形要素分割方法を適用して、上面71を過不足なく複数の三角形要素60に分割する。なお、
図12では一部の三角形要素60のみを示している。
【0044】
図13に、上面71の外側の縁31の一部、及び上面71に過不足なく生成された複数の三角形要素60を示す。さらに、外側の側面72に過不足なく生成された三角形要素65を示す。上面71を複数の三角形要素60に分割する際に、
図1~
図11に示した方法を適用すると、外側の縁31上に、特徴点40の他に付加点42が配置される。上面71内に、この付加点42を頂点とする2つの三角形要素60Fが生成される。
【0045】
外側の側面72を複数の三角形要素65に分割する処理を、上面71を複数の三角形要素60に分割する処理と並行して実行する場合、外側の側面72を複数の三角形要素65に分割する際には、外側の縁31上には付加点42が配置されていない。この状態で外側の側面72を複数の三角形要素65に分割すると、外側の側面72に生成される1つの三角形要素65Fに対して、付加点42を頂点に持つ2つの三角形要素60Fが上面71に生成されてしまう。この状態では、整合性が図られているとはいえない。
【0046】
次に、
図14A及び
図14Bを参照して、
図13に示した2つの三角形要素60Fと1つの三角形要素65Fのような整合していない位置関係を持つ三角形要素の発生を回避する方法について説明する。
【0047】
図14Aは、エッジ41上の1つの付加点42を頂点とする2つの三角形要素60Fと、そのエッジ41を辺とする1つの三角形要素65Fを示す図である。エッジ41上の付加点42の両側にそれぞれ特徴点40が配置されている。三角形要素60Fの各々は、エッジ41上の1つの付加点42とエッジ41上の1つの特徴点40とを2つの頂点とする。エッジ41上の付加点42を、その両側の2つの特徴点40のいずれか一方の位置まで移動させる。
【0048】
図14Bは、エッジ41上の付加点42を、その両側の2つの特徴点40のいずれか一方の位置まで移動させた状態の三角形要素を示す図である。この移動に伴って、付加点42は消滅し、付加点42を頂点とする三角形要素60Fの形状が変化する。具体的には、2つの三角形要素60Fのうち一方は消滅し、他方は大きくなる。このように、エッジ41上の付加点42をそのエッジ41の両端に位置する特徴点40の一方の位置まで移動させることにより、エッジ41上の付加点42を除去することができる。
【0049】
図14A及び
図14Bに示した例では、付加点42をその両側のどちらの特徴点40の位置に移動させても、得られる結果は同一である。ところが、付加点42を移動させる方向によっては、得られる結果が「過不足なく三角形要素を生成する」という条件を満たさなくなる場合がある。以下、
図15A~
図16Bを参照して、「過不足なく三角形要素を生成する」という条件を満たさなくなる例について説明する。
【0050】
図15Aは、エッジ41上の付加点42を頂点とする複数の三角形要素60を示す図である。付加点42をPと表記し、付加点42の両側の特徴点40を、それぞれA、Bと表記し、三角形要素60の辺で付加点42に接続される他の5個の特徴点40を、それぞれC、D、E、F、Gと表記する。合計6個の三角形要素GAP、GPF、FPE、EPD、DPC、CPBが生成されている。
【0051】
図15Bは、付加点Pを特徴点Aの位置まで移動させた状態の複数の三角形要素60を示す図である。元の三角形要素GAPは消滅している。この状態で、三角形要素CPBが、他の三角形要素GPF、FPE、EPD、DPCと重なっている。従って、「過不足なく生成」という条件を満たさない。この場合、付加点Pを移動した後に残った5個の三角形要素GPF、FPE、EPD、DPC、CPBの面積の合計は、元の6個の三角形要素GAP、GPF、FPE、EPD、DPC、CPBの面積の合計より広い。
【0052】
図16Aは、付加点Pを移動する前の
図15Aの状態と同じ複数の三角形要素60を示す図である。
図16Bは、付加点Pを特徴点Bの位置まで移動させた状態の複数の三角形要素60を示す図である。この場合には、元の三角形要素CPBが消滅し、残りの5個の三角形要素GAP、GPF、FPE、EPD、DPCが残る。残された5個の三角形要素GAP、GPF、FPE、EPD、DPCは、「過不足なく生成」という条件を満たしている。この場合、付加点Pを移動した後に残った5個の三角形要素GAP、GPF、FPE、EPD、DPCの面積の合計は、元の6個の三角形要素GAP、GPF、FPE、EPD、DPC、CPBの面積の合計と等しい。
【0053】
エッジ41上の付加点42をエッジ41の両端のいずれかの特徴点40の位置まで移動した後に、付加点42を頂点とする複数の三角形要素60の面積の合計が、移動前の三角形要素の面積の合計より広くなる場合(
図15B)には、その移動は不適切な移動であると判定することができる。この場合には、
図16Bに示したように、付加点42をエッジ41上の反対側の特徴点40の位置まで移動させるとよい。
【0054】
次に、
図12~
図16Bに示した実施例の優れた効果について説明する。
本実施例では、三次元立体形状70(
図12)の表面うち平面である一部分を複数の三角形要素60に分割した後、
図14B、
図16Bに示したように複数の三角形要素60に分割された領域の縁31、32に、付加点42(
図14A)が配置されない。このため、複数の三角形要素60に分割された表面領域に、縁を介して接続された他の表面領域を複数の三角形要素に分割する場合には、縁を介して接続された2つの表面領域の三角形要素の配置の整合性を図ることができる。
【0055】
上述の各実施例は例示であり、異なる実施例で示した構成の部分的な置換または組み合わせが可能であることは言うまでもない。複数の実施例の同様の構成による同様の作用効果については実施例ごとには逐次言及しない。さらに、本発明は上述の実施例に制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【符号の説明】
【0056】
20 処理部
21 入力部
22 出力部
23 記憶部
30 二次元平面図形
31 外側の縁
32 内側の縁
33 穴
35 外側に向かって凸の部分
36 内側に向かって凸の部分
40 特徴点
41 エッジ
42 付加点
50 仮想平面
51、51A、51B セル
52 セルの縁
60 三角形要素
60A エッジを含み二次元平面図形の外部に位置する三角形要素
60B エッジを含まず二次元平面図形の外部に位置する三角形要素
60C エッジを少なくとも1つの辺とする三角形要素
60D、60E セルの1本の対角線によって生成された三角形要素
60F 付加点を1つの頂点とする三角形要素
61 三角形要素の辺
65 三角形要素
65F 1つの辺の上に付加点を持つ三角形要素
70 三次元立体形状
71 上面
72 外側の側面
73 内側の側面