JP2000293707A - 点集合への曲面の当てはめ方法及び装置 - Google Patents

点集合への曲面の当てはめ方法及び装置

Info

Publication number
JP2000293707A
JP2000293707A JP11088131A JP8813199A JP2000293707A JP 2000293707 A JP2000293707 A JP 2000293707A JP 11088131 A JP11088131 A JP 11088131A JP 8813199 A JP8813199 A JP 8813199A JP 2000293707 A JP2000293707 A JP 2000293707A
Authority
JP
Japan
Prior art keywords
nodes
node
calculating
changing
point
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.)
Granted
Application number
JP11088131A
Other languages
English (en)
Other versions
JP3245128B2 (ja
Inventor
Atsushi Yamada
山田  敦
Tomotake Furuhata
智武 古畑
Takayuki Ito
貴之 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP08813199A priority Critical patent/JP3245128B2/ja
Publication of JP2000293707A publication Critical patent/JP2000293707A/ja
Application granted granted Critical
Publication of JP3245128B2 publication Critical patent/JP3245128B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】3次元空間に分布する点集合の滑らかに変化す
る曲面を求めること。 【解決手段】本発明の実施例では、線又は面を構成する
複数のノードの位置を変更する方法が、(a)与えられ
た各点を最も近いノードへ関連づけるステップと、
(b)各ノードにおいて隣接するノードから第1の量を
計算するステップと、(c)各ノードに関連づけられた
点から第2の量を計算するステップを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ノード列を用いた
曲線又はノード群を含むメッシュを用いた曲面の生成に
関する。
【0002】
【従来の技術】測定などによって得られた離散的な点の
集合が与えられ、それらの点集合に沿った滑らかな曲
線、曲面形状を求めたいという問題がある。この問題
は、数値計算の分野では近似問題などに分類され、非常
に多くの分野で利用されている。
【0003】例えば、CADやCGの分野では、3次元
測定器で測定した点集合から曲面を生成する問題も上記
の問題の一例と考えられており、曲線又は曲面がいかに
もっともらしく与えられた点集合を近似しているかを評
価するための指標として、与えられた点と生成される曲
線、曲面との距離の2乗和がよく利用される。
【0004】この2乗和を最小にするような曲線、曲面
を求める方法が、最小2乗法と呼ばれる方法である。曲
線の場合を例に取ると、図1に示すように点集合(11
0、120、130、140、150、160)と曲線
170が与えられたとき、各点と曲線上の最短距離にあ
る点(117、127、137、147、157、16
7)との間に、その最短距離に比例して力が増加するバ
ネ(115、125、135、145、155、16
5)を取り付け、全てのバネが安定する状態が2乗和が
最小の状態と解釈できる。この状態のとき、バネの内部
エネルギーの和が最小となっている。
【0005】一般的に、最小2乗法では、調節可能なパ
ラメータを含む何らかの評価関数を仮定し、2乗和最小
の条件を満たすように評価関数のパラメータを決定す
る。この評価関数として、例えば、比較的低次の切断べ
き多項式を複数つないだスプライン関数などが用いられ
る。しかし、この何らかの評価関数を仮定しなければな
らないということが、特に曲面の場合には最小2乗法に
おいては、解法を非常に複雑にする場合がある。
【0006】例えば、図2の左側210に示すように、
チェスボードのような正方形等の構造的な曲面の集合を
点集合に当てはめるという問題であれば、スプライン関
数のような評価関数を用いることができるため、解法は
簡単である。一方、図2の右側260に示すような、1
つの頂点290に4つ以上(この例では、6つ)の稜線
が集まるような非構造な曲面の集合を点集合に当てはめ
たい場合、解法は更に複雑になる。
【0007】ここで、構造的な曲面の集合とは、個々の
曲面が四辺形であり、かつ全ての頂点において4つの稜
線が集まるような曲面の集合のことであり、非構造的と
は、構造的ではない曲面の意味である。
【0008】スプライン関数は、図2の210のような
チェスボードのような構造の場合にのみ用いられる関数
であるため、図2の260のような非構造的な場合には
何らかの別の関数を評価関数として用いる必要がある。
【0009】更に、その評価関数は、ある曲面の評価関
数のパラメータが決定されたときに、隣の曲面との間で
自動的に滑らかに接続されるようなものである必要があ
る。これは最終的に生成される曲面集合が滑らかに接続
されるための条件である。
【0010】例えば、図2の210のように構造的でス
プライン関数が使える場合は、その関数の定義自体に隣
との接続条件を埋め込むことが可能であるので、滑らか
さの条件を特に考慮する必要はない。
【0011】また、図3の305のように、3角形(3
10、320等)や4角形(330等)の要素が混在し
ている場合には、3角形と4角形とに別個の評価関数を
割り当てる必要がある。図3の355のように、3角形
(390等)、4角形(380等)、5角形(360、
370等)、6角形などの要素が混在する場合には、更
に話は複雑となる。もっと簡単にもっともらしい曲面を
生成する方法に対するニーズがあり、係る方法を提供す
るというのが本発明である。
【0012】点集合に対する曲面の当てはめに関する問
題は、古典的な問題であり、例えばCADの分野だけを
考えても、非常に多くの手法が提案されている。それら
の手法は、主に(1)評価関数がチェスボードのように
構造的に配置されている場合の手法、(2)評価関数が
非構造的に配置されている場合の手法、の2種類の手法
に分類することができる。
【0013】分類(1)の手法の一例として、文献[ROG
ERS89]「 D. F. Rogers, N. G. Fog, Constrained B-sp
line curve and surface fitting, Computer Aided Des
ign,Vol. 21, No.10, 1989, pp. 641-648.」のようにB-
スプライン曲面を使った点集合の補間手法がある。
【0014】一方、(2)に分類される手法として、文
献[Zienkiewicz77]「 O. C. Zienkiewicz, The finite
element method, third edition, McGraw-Hill, 197
7.」に紹介されているように、要素が長方形か4角形か
3角形かに応じて、自動的に隣の要素との滑らかな接続
条件を満たす評価関数が提案されている。これらの評価
関数を用いて、薄板の曲げ問題を解くことにより曲面を
生成するのが、分類(2)で良く用いられる手法であ
る。
【0015】いま、任意の輪郭形状で囲まれた領域内部
に点集合に当てはめた曲面を生成する問題を考える。ま
ず分類(1)の手法は適用できない。なぜならば(1)
の手法は、構造的に4角形に限定されるからである。一
方、分類(2)の手法は、一般にプログラミングが困難
である。ましてや3角形要素や4角形要素が混在してい
る場合は、それらごとに評価関数を定義する必要があ
り、それら同士の接続条件なども考慮するとよりプログ
ラミングは困難性を伴う。
【0016】結局、5角形や6角形の要素が1つでも存
在する場合には、良い評価関数が提案されていないのが
現状である。
【0017】文献[YAMADA98]「Atsushi Yamada, Kenji
Shimada, Tomotake Furuhata, Ko Hsiu Hou, Node posi
tion change method and apparatus(米国出願09/2
16,582)」
【0018】文献[YAMADA98]で、与えられた拘束条件を
満たす滑らかな曲面形状を成すメッシュを生成する手法
が述べられている。この手法で用いられている隣接ノー
ド間に作用する力と、与えられた点集合からノードへ作
用する力とを足し合わせることにより、メッシュを与え
られた点集合に対して最小2乗的に当てはめる手法を、
本発明では提案する。
【0019】本発明で提案する方法では、陽に評価関数
を定義しないため、生成したい曲面が3角形や4角形の
混在であっても、また5角形や6角形が混ざっていて
も、区別なく1つのアルゴリズムで曲面を生成すること
ができるという顕著な特徴を有する。
【0020】更に、アルゴリズムが非常に単純であるの
で、短時間で本発明を適用したプログラムをコーティン
グすることができる。すなわち、プログラム開発に掛か
るコストも少なくて済む。
【0021】また、生成される曲面は、厳密に2乗和を
最小にしているわけではないが、それに近いもっともら
しい曲面となる。
【0022】上述の説明においては、本発明の概念をわ
かりやすく説明するために、曲面を点集合に当てはめる
と説明したが、厳密にいえば本発明により当てはめられ
るのは、曲面ではなく多角形の集合により構成されるメ
ッシュである。
【0023】本発明に対する入力は、(1)3次元空間
にばらまかれた点集合と、(2)ノードと要素(3角形
や4角形などの多角形)によって構成される初期メッシ
ュである。また、本発明の出力は、曲面式ではなく、メ
ッシュを構成するノードの座標値とそのノードにおける
法線ベクトルである。
【0024】もし曲面式が必要な場合には、本発明のア
ルゴリズム終了後、得られた座標値及び法線ベクトルか
ら、例えば、文献[PETERS90]「Jorg Peters, Local cub
ic and bicubic C1 surface interpolation with line
arly varying boundary normal, Computer Aided Geome
tric Design, Vol. 7,1990, pp499-516.」等に記載され
た手法により、曲面式を生成することは可能である。
【0025】
【発明が解決しようとする課題】本願発明が解決しよう
とする課題の1つは、3次元空間に分布する点集合の滑
らかに変化する曲面を求めることにあり、より具体的に
は、初期メッシュの複数のノードの位置を変更すること
により、多角形の集合からなる滑らかに変化する曲線又
は曲面を生成することである。
【0026】本発明が解決しようとする課題の1つは、
生成したい曲面が3角形や4角形の混在であっても、ま
た5角形や6角形が混ざっていても、区別なく1つのア
ルゴリズムで曲面を生成することである。
【0027】
【課題を解決するための手段】本発明の実施例では、線
又は面を構成する複数のノードの位置を変更する方法
が、(a)与えられた各点を最も近いノードへ関連づけ
るステップと、(b)各ノードにおいて隣接するノード
から第1の量を計算するステップと、(c)各ノードに
関連づけられた点から第2の量を計算するステップと、
を含む。
【0028】本発明の他の実施例では、線又は面を構成
する複数のノードの位置を変更する方法、(a)与えら
れた各点を最も近いノードへ関連づけるステップと、
(b)各ノードにおいて隣接するノードから第1の量を
計算するステップと、(c)各ノードに関連づけられた
点から第2の量を計算するステップと、(d)前記第1
及び第2の量に対応して、ノードの位置を変更するステ
ップと、を含む。
【0029】本発明の他の実施例では、線又は面を構成
する複数のノードの位置を変更する方法が、(a)与え
られた各点を最も近いノードへ関連づけるステップと、
(b)各ノードにおいて隣接するノードから第1の量を
計算するステップと、(c)各ノードに関連づけられた
点から第2の量を計算するステップと、(b)各ノード
において隣接するノードから第3の量を計算するステッ
プと、を含む。
【0030】
【発明の実施の形態】A.アルゴリズムの概要 本発明に対する入力として、(1)3次元空間にばらま
かれた点集合と、(2)ノードと要素(3角形や4角形
などの多角形)によって構成される初期メッシュが与え
られていると仮定する。初期メッシュを構成する要素
は、3角形や4角形に限らず、n角形が混在していても
良い。
【0031】初期メッシュの生成方法は、どのような点
集合がばらまかれているかにも依存するが、例えば、与
えられた点集合から投影平面を決定し、その投影平面上
にメッシュを生成すれば良い。
【0032】本明細書において、「点」とは3次元空間
にばらまかれた点集合の構成要素のことを意味し、「ノ
ード」とはメッシュの構成要素としての点のことを、主
に意味しているものとする。
【0033】本アルゴリズムの処理の概要のフローチャ
ートを図16に示し、C言語風の疑似コードを表1に示
した。このアルゴリズムを実行することにより、ばらま
かれた点集合を最小2乗近似したメッシュのノード座標
値とそのノードにおける法線ベクトルとが出力として得
られる。
【0034】表1に示される様に、本発明のアルゴリズ
ム全体は、主に4つのステップにより構成される。この
4つのステップの反復計算を所定の終了条件が満たされ
るまで繰り返す。
【0035】
【表1】
【0036】ステップ1(Step 1)では、メッシュを構
成する各ノードに対して単位法線を計算する。
【0037】ステップ2(Step 2)では、入力として与
えられた各点に対して、その最近傍にあるノードを計算
する。
【0038】ステップ3(Step 3)では、3種類の力に
よる変位ベクトルを足し合わせて、ノードの位置ベクト
ルに加算する。
【0039】ステップ4(Step 4)では、ステップ1〜
3を繰り返すか否か、終了条件が判断される。
【0040】ステップ3は、更に3つのステップ(ステ
ップ3−1〜3−3)に分解することができる。ステッ
プ3−1(Step3-1)において計算される1つめの力
は、隣接ノード間の辺が円弧に近づくように隣接ノード
間に働く力Vbendであり、この力の作用によりメッ
シュは滑らかな曲面形状を構成する。Vbendによる
変位ベクトルは、そのノードで計算した法線方向のベク
トルである。
【0041】ステップ3−2(Step3-2)による2つめ
の力Vstretchは、ノードの分布を均一にするよ
うに隣接ノード間に働く力であり、Vstretchの
作用により反復過程で不均一になるノード分布が可能な
限り均一になる。尚,Vstretchによる変位ベク
トルは、ステップ3−1(Step3-1)のVbendによ
る変位ベクトルと直交する(すなわち、法線方向と直交
する)ベクトルであり、ステップ3−1(Step3-1)に
よる変位を妨げないような変位ベクトルである。入力す
る初期メッシュが最終のメッシュにある程度近い形状で
ある等の場合には、このステップ3−2は省略可能であ
る。
【0042】ステップ3−3(Step3-3)による3つめ
の力Vfitは、与えられた点集合からノードに対して
働く力であり、Vfitの作用により、各ノードは与え
られた点に対して引き寄せられる。尚、Vfitによる
変位ベクトルは、ステップ3−1(Step3-1)のVbe
ndによる変位ベクトルと同じ向き(すなわち、法線方
向と同じ向き)のベクトルである。
【0043】図16には本発明の主な処理の流れがフロ
ーチャートを用いて示されている。ステップ1610か
ら処理が開始される。
【0044】ステップ1620において、全ノードの単
位法線が順次計算される。実際には、反復を繰り返すご
とに、各ノードにおける単位法線を計算する。
【0045】ここで、ノードPiの単位法線Niを計算する
ことを考える。ノードPiに隣接する各要素(3角形や4
角形など)に対して法線を計算し、それらの法線をN0,
N1,…, Nmと記述する。ここで各法線の大きさは、要素
の面積に比例して計算しておくものとする。これらの要
素の法線を使ってノードPiの単位法線Niを以下の式によ
り計算する。 Ni = ( N0 + N1 + … + Nm ) / | N0 + N1 + … + Nm |(式A) あるいは、要素の法線N0, N1, …,Nmを単位法線ベクト
ルとして計算しておき、上式によりNiを計算しても良
い。単位法線Niの計算には上述の方法以外にもいくつか
の方法が考えられる。例えば、ノードPiとそれに隣接す
るノードP0,…,Pmとから近似的にそれらの点を通過する
球面を生成し、その球面のPiにおける法線をPiの法線と
して決定しても良い。
【0046】ステップ1625において、与えられた各
点への最近傍ノード(あるいは要素)への関連づけ処理
が行われる。
【0047】入力された各点に対して、その一番近傍に
あるノード(あるいは要素)を求める。最近傍ノードを
求めた場合には、そのノードに入力された点を関連づ
け、最近傍要素を求めた場合には、その要素を構成する
各ノードに入力された点を関連づける。
【0048】最近傍ノードの探索方法としては、例え
ば、入力された点と全てのノードとの距離を比較するこ
とにより一番距離の短いノードを最近傍ノードとする。
また、最初の一回目の反復では、上述の方法で最近傍ノ
ードを決定し、計算された距離を比較することにより最
近傍ノードを計算するが、2回目からは、前回の最近傍
ノードの近傍のみを探索することも可能である。尚、ス
テップ1625は、必ずしも反復のたびに行う必要はな
く、反復数回に対して一度実行するだけでも良い。
【0049】ステップ1627において、ノードの番号
iに初期値として0が代入される。図16に示された例
では、全ノードの数はimax+1である。
【0050】ステップ1630において、隣接ノードか
らの曲げの力による変位ベクトルVbendの計算が行
われる。ノードPiにおいて、隣接するノードから受ける
曲げの力による変位ベクトルVbendを計算する。ノ
ードPiはそれに隣接するノードP0, P1, …, Pmそれぞれ
から力の作用を受けるが、隣接するノードP0, P1, …,
Pmの中の1つであるPjから受ける力による変位ベクトル
の計算方法についてまず説明する。
【0051】図4には、Vbendの説明が記載されて
いる。図4を参照して、Pi410を通りその単位法線Ni
430に沿う直線をLi412、Pj420を通りその単位
法線Nj440に沿う直線をLj422とし、直線Li41
2, Lj422の最短距離の足に相当する点をそれぞれHi
414, Hj424とする。このとき、Pi410に対して
Pj420から作用する力によるPi410の変位ベクトル
Vjを以下の式により計算する。 Vj = ( |Pj-Hj| - |Pi-Hi| ) Ni(式B) 尚、ここで| V | はベクトルVの長さを表すスカラー値
である。同様にして隣接する全てのノードP0, P1, …,
Pmに対してそれぞれ、上式と同様にして変位ベクトルV
0, V1, …, Vmを計算する。
【0052】このように計算されたV0, V1, …, Vmを使
って、ノードPiの変位ベクトルVbendを以下の式に
より決定する。 Vbend = ( V0 + V1 + … + Vm ) / (m+1)(式C) 又は、 Vbend = ( Len0 V0 + Len1 V1 + … + Lenm Vm ) / (Len0 + Len1 + … + Lenm) (式D) ここで、Len0,…Lenmは、V0, …, Vmを足し合わせると
きの重み係数であり、例えば以下の式等で計算される。 Lenj = |Pi-Pj| (j = 0,1, …, m) この重み付け方法は、PiとPjとの距離に応じて重み付け
た例である。
【0053】ステップ1635において、隣接ノードか
らの伸びの力による変位ベクトルVstretchが計
算される。
【0054】いまノードPiにおける変位ベクトルVst
retchを計算することを考える。ノードPiの周辺に
隣接しているノードをP0, P1, …, Pmと表記すると、ま
ずノードPiを、ノードP0, P1, …, Pmからなる多角形の
重心に移動する変位ベクトルを計算する。その変位ベク
トルからPiにおける法線方向の成分を削除して、接平面
に沿う方向の成分だけを残した変位ベクトルを、変位ベ
クトルVstretchと定義する。すなわち、Vst
retchを次の式により計算する。 Vstretch = Vc0 - Vc1(式E) Vc0 = ( P0 + P1 + … + Pm ) / (m + 1) - Pi, Vc1 = dot(Vc0, Ni) Ni 但し、ここでNiはノードPiにおける単位法線を表し、do
t(V1, V2)はベクトルV1,V2の内積を表す。
【0055】ステップ1640において、ステップ2
(1625)で関連づけた点からの力による変位ベクト
ルVfitを計算する。ステップ2(1625)では、
入力された各点に対して近傍ノードを関連づけた。逆に
ノードの側から見ると、(1)点が1つも関連づけられ
ていないノードと、(2)1個又は複数個の点が関連づ
けられているノードとが存在することになる。
【0056】(1)の点が関連づけられていないノード
に対しては、変位ベクトルVfitを零ベクトルとす
る。一方(2)の点が関連づけられているノードに関し
ては、以下に述べる手法により変位ベクトルVfitを
計算する。
【0057】図5には、Vfitを説明するための図で
ある。図5を参照して、今ノードPi510に対して、入
力された点P0, P1, …, Pmが関連づけられているものと
する。Piは、P0, P1, …, Pmの各点から力の作用を受け
るわけだが、P0,P1, …, Pmの中の1つの点Pj530か
ら受ける力による変位ベクトルVjを、以下の式により計
算する。 Vj = kj dot(Ni, Pj-Pi) Ni(式F)
【0058】但し、ここでNi520はノードPi510に
おける単位法線を表し、dot(V1, V2)はベクトルV1,V2の
内積を表し、kjは重み係数を表すスカラー値である。上
式の意味は、PiからPjへのベクトルの単位法線Ni方向の
成分をkj倍したものと解釈できる。同様にして各点P0,
P1, …, Pmに対してそれぞれ、上式と同様にして変位ベ
クトルV0,V1, …, Vmを計算する。
【0059】このように計算されたV0, V1, …, Vmを使
ってノードPiの変位ベクトルVfitを以下の式により
計算する。 Vfit = ( V0 + V1 + … + Vm) / (m + 1)(式G) 又は Vfit = ( Len0 V0 + Len1 V1 + … + Lenm Vm ) / (Len0 + Len1 + … + Lenm) (式G2) 式G2は、V0,…, Vmに重みを付けて足し合わせた場合
の式である。重みLenJ(j=0,…,m)の決定方法は、例えば
PjからPiの接平面におろした足とPiとの距離に応じて重
み付ける方法等が考えられる。
【0060】このVfitが最小2乗和に相当している
ことについて説明する。図1で、2乗和が最小の状態と
は、各点と曲線上の最短距離にある点との間にその最短
距離に比例して力が増加するバネを取り付け、全てのバ
ネが安定する状態と等価であると説明した。上式で求め
たVjは、与えられた点Pjから、Piにおける接平面への最
短距離に比例した力による変位と考えることができる
(図5参照)。
【0061】従って、メッシュが十分な密度のノードに
より構成されていてるとき、点Pjと曲面との距離は、点
Pjと最近傍ノードの接平面との距離で近似できると考え
ると、ここで計算したVfitは最小2乗和とほぼ等価
であるといえる。
【0062】ステップ1645において、Vstret
ch、Vbend、Vfitから最終的な変位ベクトル
Vallが計算され、ステップ1650において、ノー
ドPiの位置ベクトルにVallの値が加算される。
【0063】最終的な変位ベクトルVallは、以下の
式により計算される。 Vall = Vbend + Vstretch + Vfit(式F) 以上のように計算されたVallを現在対象としてるノ
ードの座標に加算することにより、ノードPiの新しい座
標値が求まる(ステップ1650)。この実施例では、
Vallとして、Vbend、Vstretch及びV
fitの和を用いている(式F)が、VallとしてV
bend及びVfitの和を用いることも可能である。
【0064】ステップ1655において対象となるノー
ドPiが最後のノードか否かが判断される。i=imax
が成り立つときに、対象ノードは最後のノードであるた
め、ステップ1660に移行し、i=imaxではない
ときは、iを1つ増分し(ステップ1665)、ステッ
プ1630へ移行し、再度ステップ1630からステッ
プ1650までの処理を繰り返す。
【0065】ここでVmaxはスカラー値とする。ステ
ップ1660において、反復の終了が判断される。反復
を終了させるための条件としていくつかの方法が考えら
れる。例えば、ノードの変位ベクトルVallの大きさ
が一定の値以下(|Vall| <Vmax)であれば、反復を終
了させるという条件が考えられる。
【0066】すなわち、各ノードPiに対して、それに隣
接するノードP0, P1, …, Pmに関して距離|Pi-P0|, |Pi
-P1|, …, |Pi-Pm|の最小値、平均値、あるいは最大値
を計算しそれをLiとする。各ノードPiに対して、変位ベ
クトルの大きさDi =|Vall|を計算する。これらから各ノ
ードPiに対してDi / Liを計算する。これはノード間の
距離によって正規化されたノードの移動量を表す。この
ように各ノードに対して計算された正規化されたノード
の移動量の、最大値あるいは平均値が与えられたしきい
値以下であれば、反復を終了させることができる。但
し、曲面の当てはめの目的のためには必ずしもこの方法
により終了判定を行う必要はなく、他の判定条件を用い
ても良い。
【0067】上述の本願発明の方法を、与えられた点集
合に対してメッシュを当てはめた適用例を示す。図6〜
15では、点集合と、その点集合に当てはめられたメッ
シュが示されている。
【0068】図6及び図7と図8及び図9の与えられた
点は同じであり、当てはめた要素及びメッシュの細かさ
が異なる。図6と図7とは、同じメッシュを異なる視点
から見たものである。図6は上面(視点1)から見た図
であり、図7は側面(視点2)から見た図である。図6
及び図7は、全て4角形要素からなるが非構造なメッシ
ュを当てはめた例である。特に図7を見ると与えられた
点集合に対して4角形のメッシュが良く当てはめられて
いることが分かる。
【0069】図8と図9とは、同じメッシュを異なる視
点から見たものである。図8は上面(視点1)から見た
図であり、図9は側面(視点2)から見た図である。図
8及び図9は、4角形の中に5角形が混在しているメッ
シュを当てはめた例である。特に図9を見ると与えられ
た点集合に対して4角形及び5角形のメッシュが良く当
てはめられていることが分かる。
【0070】図10と図11は、図6〜9で与えられた
点集合よりも更に与えられた点集合にばらつきがある場
合の適用例である。図10は上面(視点1)から見た図
であり、図11は側面(視点2)から見た図である。図
10及び図11は、3角形のメッシュを当てはめた例で
ある。特に図11を見ると与えられた点集合に対して3
角形のメッシュが良く当てはめられていることが分か
る。
【0071】図12〜15の場合に、用いられた点は、
1つの平面とその平面一定の距離だけ離れたS字から構
成されている。図12は計算前の上面(視点1)から見
た図であり、図13は計算前の側面(視点2)から見た
図である。図14は計算後の上面(視点1)から見た図
であり、図15は計算後の側面(視点2)から見た図で
ある。
【0072】図14及び図15は、3角形のメッシュを
当てはめた例である。図14及び15を見ると与えられ
た点集合(平面とS字)に対して3角形のメッシュが良
く当てはめられていることが分かる。すなわち、図14
及び図15を参照すると、S字を稜線として3角形のメ
ッシュが良く追従して、滑らかな曲線を形成しているこ
とが分かる。
【0073】計算時間に関しては、例えばインテル社の
ペンティアム・プロセッサ450MHz動作のものを仮
定すると、図6〜15のケースで、数秒程度であり、本
発明は計算的な負荷としてもさほど大きくないという利
点を有することが分かる。
【0074】以上本発明の処理フローを説明した。本発
明の処理フローはコンピュータ・プログラムによって実
施することができる。このコンピュータ・プログラム
は、例えば図17で示すようなコンピュータ・システム
において実行可能である。この場合、コンピュータ・プ
ログラム及び必要なデータはハードディスク・ドライブ
HDD1760等に格納されており、必要に応じてメイ
ンメモリ1720に呼び出され、CPU1710にて実
行される。処理の結果(中間データを含む)もメインメ
モリ1720に格納される。但し、仮想記憶によってH
DD1760に記憶される場合もある。データは、キー
ボード1770、マウス1780やフロッピー・ディス
ク(FDD)1730その他の記憶媒体、また、モデム
等の通信装置1750によって接続された通信回線17
55から供給され得る。コンピュータ・プログラムも他
のコンピュータ・システムから送られてくるようにして
も良い。同様に、コンピュータ・プログラムはFDD1
730やCD−ROMその他の記憶媒体にて提供される
場合がある。本発明の処理結果は、HDD1760など
に記憶された他のコンピュータ・プログラムによって数
値解析等に用いられる。更に、表示装置1795や印刷
装置1740によってユーザに提示することも可能であ
る。
【0075】更に本発明の処理を行う専用の装置にて本
発明を実施することもできる。例えば、法線計算部、ノ
ード位置変更部、制御部といったように上の処理フロー
を説明する上で分けた方法を用いて、必要なモジュール
を構成することも考えられる。更に細かい単位又は大き
い単位で必要なモジュールを構成することも可能であ
る。
【0076】図18には本発明の第二の実施例の処理の
流れがフローチャートを用いて示されている。ステップ
1810から処理が開始される。
【0077】ステップ1825において、与えられた各
点と最近傍ノード(あるいは要素)が相互に関連づけ処
理が行われる。
【0078】入力された各点に対して、その一番近傍に
あるノード(あるいは要素)を求める。最近傍ノードを
求めた場合には、そのノードに入力された点を関連づ
け、最近傍要素を求めた場合には、その要素を構成する
各ノードに入力された点を関連づける。
【0079】ステップ1827において、ノードの番号
iに初期値として0が代入される。
【0080】ステップ1830において、隣接ノードか
らの曲げの力による変位ベクトルVbendの計算が行
われる。ノードPiにおいて、隣接するノードから受ける
曲げの力による変位ベクトルVbendを計算する。
【0081】ステップ1840において、ステップ18
25で関連づけた点からの力による変位ベクトルVfi
tを計算する。
【0082】ステップ1845において、Vbend、
Vfitから最終的な変位ベクトルVallが計算さ
れ、ステップ1850において、ノードPiの位置ベクト
ルにVallの値が加算される。
【0083】第二の実施例の場合は、最終的な変位ベク
トルVallは、以下の式により計算される。 Vall = Vbend + Vfit(式F2) 以上のように計算されたVallを現在対象としてるノ
ードの座標に加算することにより、ノードPiの新しい座
標値が求まる(ステップ1850)。この実施例では、
Vallとして、Vbend及びVfitの和を用いて
いる(式F2)。
【0084】ステップ1855において対象となるノー
ドPiが最後のノードか否かが判断される。i=imax
が成り立つときに、対象ノードは最後のノードであるた
め、ステップ1660に移行し、i=imaxではない
ときは、iを1つ増分し(ステップ1865)、ステッ
プ1830へ移行し、再度ステップ1830からステッ
プ1850までの処理を繰り返す。
【0085】
【効果】ノードの位置を変更することにより滑らかに変
化する曲線又は曲面を生成することができた。
【0086】また、通過点等の与えられた条件を満た
し、かつ滑らかに変化する曲線又は曲面を生成すること
もできた。
【0087】更に本発明では、陽に評価関数を定義しな
いため、生成したい曲面が3角形や4角形の混在であっ
ても、また5角形や6角形が混ざっていても、区別なく
1つのアルゴリズムで曲面を生成することができるとい
う特徴を有する。
【0088】以下まとめとして他の実施例を記載する。
【0089】(1)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいて隣接するノードから第1の量を計算する
ステップと、(c)前記各ノードに関連づけられた点か
ら第2の量を計算するステップと、を含む位置変更方
法。
【0090】(2)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいて隣接するノードから第1の量を計算する
ステップと、(c)前記各ノードに関連づけられた点か
ら第2の量を計算するステップと、(d)前記第1及び
第2の量に対応して、ノードの位置を変更するステップ
と、を含む位置変更方法。
【0091】(3)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいて隣接するノードから第1の量を計算する
ステップと、(c)前記各ノードに関連づけられた点か
ら第2の量を計算するステップと、(d)前記第1及び
第2の量に対応して、ノードの位置を変更するステップ
と、(e)所定の条件を満たすまで、前記(a)から
(d)のステップを繰り返すステップと、を含む位置変
更方法。
【0092】(4)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいて隣接するノードから第1の量を計算する
ステップと、(c)前記各ノードに関連づけられた点か
ら第2の量を計算するステップと、(b)前記各ノード
において隣接するノードから第3の量を計算するステッ
プと、を含む位置変更方法。
【0093】(5)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいて隣接するノードから第1の量を計算する
ステップと、(c)前記各ノードに関連づけられた点か
ら第2の量を計算するステップと、(d)前記各ノード
において隣接するノードから第3の量を計算するステッ
プと、(e)前記第1、第2及び第3の量に対応して、
ノードの位置を変更するステップと、を含む位置変更方
法。
【0094】(6)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいて隣接するノードから第1の量を計算する
ステップと、(c)前記各ノードに関連づけられた点か
ら第2の量を計算するステップと、(d)前記各ノード
において隣接するノードから第3の量を計算するステッ
プと、(e)前記第1、第2及び第3の量に対応して、
ノードの位置を変更するステップと、(f)所定の条件
を満たすまで、前記(a)から(e)のステップを繰り
返すステップと、を含む位置変更方法。
【0095】(7)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいてVbendを計算するステップと、
(c)前記各ノードにおいてVfitを計算するステッ
プと、を含む位置変更方法。
【0096】(8)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいてVbendを計算するステップと、
(c)前記各ノードにおいてVfitを計算するステッ
プと、(b)前記各ノードにおいて隣接するノードから
Vstretchを計算するステップと、を含む位置変
更方法。
【0097】(9)線又は面を構成する複数のノードの
位置を変更する方法であって、(a)与えられた各点を
最も近いノードへ関連づけるステップと、(b)前記各
ノードにおいてVbendを計算するステップと、
(c)前記各ノードにおいてVfitを計算するステッ
プと、(d)前記Vbend及びVfitの値に対応し
て、ノードの位置を変更するステップと、を含む位置変
更方法。
【0098】(10)線又は面を構成する複数のノード
の位置を変更する方法であって、(a)与えられた各点
を最も近いノードへ関連づけるステップと、(b)前記
各ノードにおいてVbendを計算するステップと、
(c)前記各ノードにおいてVfitを計算するステッ
プと、(d)前記各ノードにおいて隣接するノードから
Vstretchを計算するステップと、(e)前記V
bend、Vfit及びVstretchの値に対応し
て、ノードの位置を変更するステップを含む位置変更方
法。
【0099】(11)線又は面を構成する複数のノード
の位置を変更するプログラムを記録した記録媒体であっ
て、前記プログラムは、(a)与えられた各点を最も近
いノードへ関連づけるステップと、(b)前記各ノード
において隣接するノードから第1の量を計算するステッ
プと、(c)前記各ノードに関連づけられた点から第2
の量を計算するステップと、を含む、記録媒体。
【0100】(12)線又は面を構成する複数のノード
の位置を変更する装置であって、(a)与えられた各点
を最も近いノードへ関連づける手段と、(b)前記各ノ
ードにおいて隣接するノードから第1の量を計算する手
段と、(c)前記各ノードに関連づけられた点から第2
の量を計算する手段と、を含む位置変更装置。
【0101】(13)プロセッサ、メモリ、周辺装置を
含むコンピュータ・システムであって、前記システム
は、(a)与えられた各点を最も近いノードへ関連づけ
る手段と、(b)前記各ノードにおいて隣接するノード
から第1の量を計算する手段と、(c)前記各ノードに
関連づけられた点から第2の量を計算する手段と、を含
むシステム。
【0102】(14)CADのプログラムを記録した記
録媒体であって、前記CADプログラムは、線又は面を
構成する複数のノードの位置を変更するプログラムを含
む、前記ノードの位置を変更するプログラムは、(a)
与えられた各点を最も近いノードへ関連づけるステップ
と、(b)前記各ノードにおいて隣接するノードから第
1の量を計算するステップと、(c)前記各ノードに関
連づけられた点から第2の量を計算するステップと、を
含む、記録媒体。
【図面の簡単な説明】
【図1】最小2乗法を説明するための図である。
【図2】構造的な曲面集合と非構造的な曲面集合を示す
図である。
【図3】三角形、四角形及びn角形が混在した曲面集合
を示す図である。
【図4】Vbendを説明する図である。
【図5】Vfitを説明する図である。
【図6】本発明の実際の適用例1を示した図である。
【図7】本発明の実際の適用例1を示した図である。
【図8】本発明の実際の適用例2を示した図である。
【図9】本発明の実際の適用例2を示した図である。
【図10】本発明の実際の適用例3を示した図である。
【図11】本発明の実際の適用例3を示した図である。
【図12】本発明の実際の適用例4を示した図である。
【図13】本発明の実際の適用例4を示した図である。
【図14】本発明の実際の適用例4を示した図である。
【図15】本発明の実際の適用例4を示した図である。
【図16】本発明の処理(第1の実施例)のフローチャ
ートである。
【図17】本発明が適用されるコンピュータ・システム
の構成を示す図である。
【図18】本発明の処理(第2の実施例)のフローチャ
ートである。
【符号の説明】
1710 CPU 1720 メモリ 1730 FDD 1740 プリンター 1750 通信装置 1760 HDD 1770 キーボード 1780 マウス 1790 グラフィックス・アクセラレータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 敦 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内 (72)発明者 古畑 智武 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内 (72)発明者 伊藤 貴之 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内 Fターム(参考) 5B046 FA18 GA01

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    において隣接するノードから第1の量を計算するステッ
    プと、(c)前記各ノードに関連づけられた点から第2
    の量を計算するステップと、を含む位置変更方法。
  2. 【請求項2】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    において隣接するノードから第1の量を計算するステッ
    プと、(c)前記各ノードに関連づけられた点から第2
    の量を計算するステップと、(d)前記第1及び第2の
    量に対応して、ノードの位置を変更するステップと、を
    含む位置変更方法。
  3. 【請求項3】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    において隣接するノードから第1の量を計算するステッ
    プと、(c)前記各ノードに関連づけられた点から第2
    の量を計算するステップと、(d)前記第1及び第2の
    量に対応して、ノードの位置を変更するステップと、
    (e)所定の条件を満たすまで、前記(a)から(d)
    のステップを繰り返すステップと、を含む位置変更方
    法。
  4. 【請求項4】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    において隣接するノードから第1の量を計算するステッ
    プと、(c)前記各ノードに関連づけられた点から第2
    の量を計算するステップと、(b)前記各ノードにおい
    て隣接するノードから第3の量を計算するステップと、
    を含む位置変更方法。
  5. 【請求項5】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    において隣接するノードから第1の量を計算するステッ
    プと、(c)前記各ノードに関連づけられた点から第2
    の量を計算するステップと、(d)前記各ノードにおい
    て隣接するノードから第3の量を計算するステップと、
    (e)前記第1、第2及び第3の量に対応して、ノード
    の位置を変更するステップと、を含む位置変更方法。
  6. 【請求項6】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    において隣接するノードから第1の量を計算するステッ
    プと、(c)前記各ノードに関連づけられた点から第2
    の量を計算するステップと、(d)前記各ノードにおい
    て隣接するノードから第3の量を計算するステップと、
    (e)前記第1、第2及び第3の量に対応して、ノード
    の位置を変更するステップと、(f)所定の条件を満た
    すまで、前記(a)から(e)のステップを繰り返すス
    テップと、を含む位置変更方法。
  7. 【請求項7】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    においてVbendを計算するステップと、(c)前記
    各ノードにおいてVfitを計算するステップと、を含
    む位置変更方法。
  8. 【請求項8】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    においてVbendを計算するステップと、(c)前記
    各ノードにおいてVfitを計算するステップと、
    (b)前記各ノードにおいて隣接するノードからVst
    retchを計算するステップと、を含む位置変更方
    法。
  9. 【請求項9】線又は面を構成する複数のノードの位置を
    変更する方法であって、(a)与えられた各点を最も近
    いノードへ関連づけるステップと、(b)前記各ノード
    においてVbendを計算するステップと、(c)前記
    各ノードにおいてVfitを計算するステップと、
    (d)前記Vbend及びVfitの値に対応して、ノ
    ードの位置を変更するステップと、を含む位置変更方
    法。
  10. 【請求項10】線又は面を構成する複数のノードの位置
    を変更する方法であって、(a)与えられた各点を最も
    近いノードへ関連づけるステップと、(b)前記各ノー
    ドにおいてVbendを計算するステップと、(c)前
    記各ノードにおいてVfitを計算するステップと、
    (d)前記各ノードにおいて隣接するノードからVst
    retchを計算するステップと、(e)前記Vben
    d、Vfit及びVstretchの値に対応して、ノ
    ードの位置を変更するステップを含む位置変更方法。
  11. 【請求項11】線又は面を構成する複数のノードの位置
    を変更するプログラムを記録した記録媒体であって、 前記プログラムは、(a)与えられた各点を最も近いノ
    ードへ関連づけるステップと、(b)前記各ノードにお
    いて隣接するノードから第1の量を計算するステップ
    と、(c)前記各ノードに関連づけられた点から第2の
    量を計算するステップと、を含む、記録媒体。
  12. 【請求項12】線又は面を構成する複数のノードの位置
    を変更する装置であって、(a)与えられた各点を最も
    近いノードへ関連づける手段と、(b)前記各ノードに
    おいて隣接するノードから第1の量を計算する手段と、
    (c)前記各ノードに関連づけられた点から第2の量を
    計算する手段と、を含む位置変更装置。
  13. 【請求項13】プロセッサ、メモリ、周辺装置を含むコ
    ンピュータ・システムであって、 前記システムは、(a)与えられた各点を最も近いノー
    ドへ関連づける手段と、(b)前記各ノードにおいて隣
    接するノードから第1の量を計算する手段と、(c)前
    記各ノードに関連づけられた点から第2の量を計算する
    手段と、を含むシステム。
  14. 【請求項14】CADのプログラムを記録した記録媒体
    であって、 前記CADプログラムは、線又は面を構成する複数のノ
    ードの座標を変更するプログラムを含む、 前記ノードの座標を変更するプログラムは、(a)与え
    られた各点を最も近いノードへ関連づけるステップと、
    (b)前記各ノードにおいて隣接するノードから第1の
    量を計算するステップと、(c)前記各ノードに関連づ
    けられた点から第2の量を計算するステップと、を含
    む、記録媒体。
JP08813199A 1999-03-30 1999-03-30 点集合への曲面の当てはめ方法及び装置 Expired - Fee Related JP3245128B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08813199A JP3245128B2 (ja) 1999-03-30 1999-03-30 点集合への曲面の当てはめ方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08813199A JP3245128B2 (ja) 1999-03-30 1999-03-30 点集合への曲面の当てはめ方法及び装置

Publications (2)

Publication Number Publication Date
JP2000293707A true JP2000293707A (ja) 2000-10-20
JP3245128B2 JP3245128B2 (ja) 2002-01-07

Family

ID=13934382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08813199A Expired - Fee Related JP3245128B2 (ja) 1999-03-30 1999-03-30 点集合への曲面の当てはめ方法及び装置

Country Status (1)

Country Link
JP (1) JP3245128B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255209A (zh) * 2017-12-14 2018-07-06 武汉菲仕运动控制系统有限公司 一种折弯机控制方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255209A (zh) * 2017-12-14 2018-07-06 武汉菲仕运动控制系统有限公司 一种折弯机控制方法及系统
CN108255209B (zh) * 2017-12-14 2020-12-25 武汉菲仕运动控制系统有限公司 一种折弯机控制方法及系统

Also Published As

Publication number Publication date
JP3245128B2 (ja) 2002-01-07

Similar Documents

Publication Publication Date Title
Löhner Applied computational fluid dynamics techniques: an introduction based on finite element methods
CN101388117B (zh) 基于粒子法的流体模拟的表面构筑方法
JP6736361B2 (ja) 変位係数を用いたテッセレーション方法
US11847391B2 (en) Computer system for simulating physical processes using surface algorithm
JP3963334B2 (ja) メッシング方法及び装置
Laug et al. Molecular surface modeling and meshing
JP3208358B2 (ja) メッシング方法及びコンピュータ
Giuliani et al. Adaptive mesh refinement on graphics processing units for applications in gas dynamics
JP5113765B2 (ja) コンピュータシミュレーションおよび分析のための粒子への物体離散化
Qian et al. Essential techniques for laparoscopic surgery simulation
JP3245128B2 (ja) 点集合への曲面の当てはめ方法及び装置
Bernsdorf Simulation of complex flows and multi-physics with the Lattice-Boltzmann method
Hettinga et al. Phong Tessellation and PN Polygons for Polygonal Models.
Conti et al. Generation of oriented three‐dimensional Delaunay grids suitable for the control volume integration method
Mesit et al. Experimenting with real time simulation parameters for fluid model of soft bodies
Beddiaf et al. Physically-Based Rendering of Particle-Based Fluids with Light Transport Effects
CN108877476B (zh) 一种分层级虚网格获取方法、装置及系统
Gutiérrez et al. Speeding up the simulation of deformable objects through mesh improvement
Tsamis et al. The Marching Shape 3D: Extensions of the Ice Ray Shape Grammar
JP2004206329A (ja) シミュレーション装置、方法、並びに、プログラム
KR20030026300A (ko) 3차원 구조물에 대한 비구조형 사면체 메쉬 생성 방법
Simpson Geometry independence for a meshing engine for 2D manifolds
US20130035918A1 (en) Multi-grid fluid pressure solver handling separating solid boundary conditions
Thanh Boundary Treatment for Particle-based Fluid Simulation with Solid Wall and Open Boundary Conditions
Andersson Ray Casting DEM Simulation Data to Characterize the Spray Coating of Superquadric Particles

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees