JP2001188919A - ノード位置変更方法及び装置 - Google Patents

ノード位置変更方法及び装置

Info

Publication number
JP2001188919A
JP2001188919A JP36568699A JP36568699A JP2001188919A JP 2001188919 A JP2001188919 A JP 2001188919A JP 36568699 A JP36568699 A JP 36568699A JP 36568699 A JP36568699 A JP 36568699A JP 2001188919 A JP2001188919 A JP 2001188919A
Authority
JP
Japan
Prior art keywords
node
normal
elastic body
changing
line
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.)
Pending
Application number
JP36568699A
Other languages
English (en)
Inventor
Atsushi Yamada
山田  敦
Tomotake Furuhata
智武 古畑
Kenji Shimada
憲司 嶋田
Hou Kooshu
コ−シュ・ホウ
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.)
Carnegie Mellon University
International Business Machines Corp
Original Assignee
Carnegie Mellon University
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 Carnegie Mellon University, International Business Machines Corp filed Critical Carnegie Mellon University
Priority to JP36568699A priority Critical patent/JP2001188919A/ja
Publication of JP2001188919A publication Critical patent/JP2001188919A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】滑らかな曲線又は曲面を生成すること。 【解決の手段】線又は面を構成する複数のノードの位置
を変更するために、各ノードにおける法線を記憶装置に
格納する第1ステップと、(1)各ノードの法線方向に当
該各ノードに接続された弾性体を仮想的に定義し、(2)
各弾性体がつりあうように各弾性体を法線方向に伸縮さ
せることにより、各ノードの位置を変更し、当該位置情
報を記憶装置に格納する第2ステップと、所定の条件を
満たすまで第1及び第2ステップを繰り返すステップと
を実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ノード列を用いた
曲線又はノード群を含むメッシュを用いた曲面の生成に
関する。
【0002】
【従来の技術】VRML、CAD、CGなどの分野にお
いて、三角形及び四角形などの線形図形の集まりとして
定義されるメッシュを使って滑らかに変化する曲線又は
曲面形状を表現したいという要求がある。
【0003】例えばWebの3次元コンテンツをVRM
Lのデータとして作る場合、自由形状は主に三角形の集
まりであるメッシュで表現される。人間の手や顔などの
ような滑らかに変化する形状を生成したい場合、メッシ
ュの各三角形の頂点であるノードの座標値を1つ1つ決
定することは困難であり、特定のノードの位置を固定す
ると、その他のノードは固定されたノードを補間するよ
うな位置に決定されることが望ましい。
【0004】またCADの分野で用いられる曲面は主に
NURBS(Non-Uniform RationalB-Spline)を代表と
するパラメトリック曲面を使って表現されることが多
い。一方で主に用いられるパラメトリック曲面が四角形
の構造をもつために、その位相的な制約からどうしても
パラメトリック曲面を生成することが困難な形状も存在
する。機械部品の形状の角を丸めるためのフィレットは
その一例であり、このような形状に対してはメッシュを
使って滑らかな曲面形状を生成する方が簡単である。
【0005】さらにCADの分野などで、意図する曲面
形状を直接コンピューターに入力するのは困難であるた
め、まず最初に線画であるワイヤーフレームを入力する
場合がある。その場合入力したワイヤーフレームからそ
の内部を滑らかに補間した曲面形状を生成する手法が必
要となる。
【0006】滑らかな曲線又は曲面形状を生成するとい
う問題は、適切に力を定義し、その力の釣り合った状態
を決定する問題と位置づけられる。一般的な手法では初
期ノードの座標を反復計算により更新していくことによ
り、最終的な形状に収束させる。どのように力を定義す
るかによってアルゴリズムの性質や優劣が決まってく
る。どのような力のモデルを定義して、どのようなアル
ゴリズムで力の釣り合い状態を求めるかが、滑らかな曲
線又は曲面生成手法の全てといってもよい。
【0007】まず、曲面の歪みエネルギーを最小にする
ことにより滑らかな曲線又は曲面形状を生成する手法が
幾つか提案されている(G.Celniker, and D.Gossard, D
eformable Curve andSurface Finite-Elements for Fre
e-Form Shape Design, Computer Graphics, Vol.25, N
o.4, pp.257-266, 1991, 又は W.Welch, and A.Witkin,
Variational Surface Modeling,Computer Graphics, V
ol. 26, No. 2, pp. 157-166, 1992, 又は W.Welch, an
d A.Witkin, Free-Form Shape Design Using Triangula
ted Surfaces, Computer Graphics Proceedings, pp247
-256, 1994, を参照のこと)。これらの手法では、三角
形要素の内部に曲面の存在を仮定し、曲面上の各点に働
く力を要素全体に渡って積分することにより内部エネル
ギーを計算し、その内部エネルギーを最小化する曲面形
状を計算している。しかし、これら三角形要素の内部全
体に渡って値を評価する手法は、ノードにおいてのみ値
を評価する離散的な手法と比べて一般的に多くの計算時
間を要する。
【0008】ノードにおいてのみ値を評価する手法の一
つとして、ラプラシアンスムージングと呼ばれ、解析用
のメッシュの質を改良するためにしばしば用いられる方
法がある(K.Ho-Le, Finite Element Mesh Generation
Methods: a Review and Classification, Computer Aid
ed Design, Vol. 20, No. 1, 1988 を参照のこと)。こ
の方法は、各ノードをそのノードに隣接するノードで構
成される多角形の重心に移動させるという処理を繰り返
す方法である。この方法は与えられた拘束条件を満たし
かつ面積を最小とする曲面形状を生成する特徴がある。
しかし、例えばメッシングされた領域の境界のノードを
固定し領域の中心のノードをある位置に固定した場合、
領域の中心において尖った曲面形状を生成するため、滑
らかな曲線、曲面形状を生成するという目的には利用で
きない。また与えることのできる拘束条件は、位置の拘
束に限られていて、法線などを拘束条件として与えるこ
とはできない。
【0009】離散的な点においてのみ値を評価する別の
手法として、R.Szeliski, and D.Tonnesen, Surface Mo
deling with Oriented Particle Systems, Computer Gr
aphics Vol.26, No.2, pp.185-194, 1992 が提案されて
いる。この手法を簡単に説明すると、曲面の面積を最小
にするように作用する伸びのバネによる力と、各ノード
周辺で平らになるように作用する曲げのバネによる力と
を、重み係数を掛けて各ノードに対して作用させている
とみなすことができる。この重み係数は形状を求めるた
めの一つの自由度と考えることができるが、どのような
重み係数を用いればどのような形状が得られるかは直感
的ではない。また、もし伸びのバネに対する重み係数を
零にして曲げのバネだけを作用させたとすると、各ノー
ド周辺で平らになろうとする力だけが働き、形状は無限
大に発散してしまう。一方もし曲げのバネに対する重み
係数を零にして伸びのバネだけを作用させたとすると、
ラプラシアンスムージングと同様な拘束条件が与えられ
ているノードで尖点が発生してしまう。滑らかな曲面生
成を行うためには、この重み係数をうまく決定しなけれ
ばならないが、当該論文ではそのことに関しては何も述
べられていない。
【0010】特開平1−125671号公報及び特開平
1−124062号公報は、曲面を形成する各点に質量
や電荷などに相当する属性を付加し、力の種類として、
重力のような場の力や、他の電荷などの力の発生源との
相互作用、バネなどの弾性力などを用意し、これらの力
のつりあいによって上記点の位置が定まり、曲面の形状
が決定されるということを開示している。この公報で
は、バネはある点(複数であってもよい)から曲面を形
成する各点の間に設定されている。それ以外には何ら条
件は開示されていない。
【0011】特開平10−69549号公報は、画像に
メッシュが貼られ、メッシュの頂点間を結ぶバネのバネ
係数を決定し、メッシュ頂点を共有するバネとバネのな
す角の回転バネのバネ係数を決定し、バネ一本一本毎に
つり合い方程式のマトリックスと、さらに全体のバネの
つり合い方程式のマトリックスを求め、変形制御情報を
入力し、これに基づきバネのつり合い方程式の変形を行
い、変形後のメッシュ点の位置を求め、メッシュ毎の座
標変換の補間式の算出を行い、変形後の画像を得る技術
を開示している。しかし、メッシュ点の法線方向にばね
を設けるという事項は開示されていない。
【0012】
【発明が解決しようとする課題】よって、本願発明は、
複数のノードの位置を変更することにより、滑らかに変
化する曲線又は曲面を生成することである。
【0013】また、通過点等の与えられた条件を満た
し、かつ滑らかに変化する曲線又は曲面を生成すること
も目的である。
【0014】
【課題を解決するための手段】本発明の第1の態様で
は、線又は面を構成する複数のノードの位置を変更する
ために、ノードにおける法線のデータを記憶装置に格納
する第1ステップと、(1)前記ノードの法線方向に当該
ノードに接続した弾性体を仮想的に定義し、(2)前記弾
性体を前記法線方向に伸縮させることにより、前記ノー
ドの位置を変更し、当該位置情報を記憶装置に格納する
第2ステップと、所定の条件を満たすまで全てのノード
について前記第1及び第2ステップを繰り返すステップ
とを実行する。ノードにおける法線方向に弾性体(例え
ばばね)を定義し、それを伸縮させることにより滑らか
な曲線又は曲面を得ることができる。ここでの記憶装置
は、例えばコンピュータのメイン・メモリである。
【0015】上で述べた第2ステップは、ノード分布を
修正するようにノードの位置をさらに変更するステップ
を含むようにすることもできる。より滑らかな曲線又は
曲面を生成するためである。これは後に述べる本発明の
第2の態様でも実施可能である。
【0016】線を取り扱う場合には、上で述べた法線は
従法線及び主法線を含み、当該従法線及び主法線の両方
の方向について弾性体を定義することも可能である。3
次元空間における曲線の場合、法線が2本存在するため
である。2次元空間における曲線の場合、法線は1本で
ある。これは本発明の第2の態様でも実施可能である。
【0017】上で述べた、弾性体を法線方向に伸縮させ
る処理において、ノードと所定の関係にある基準ノード
の位置情報と当該ノードの位置情報とを用いて伸縮量を
計算することも考えられる。基準ノードは、移動させる
ノードに影響を及ぼすノードである。これは本発明の第
2の態様でも実施可能である。実施例では、移動させる
ノードに隣接するノードである。但し、これに限定され
ない。
【0018】上で述べた、弾性体を法線方向に伸縮させ
る処理において、基準ノードを通り且つ当該基準ノード
の法線に平行な第1直線とあるノードを通り且つ当該あ
るノードの法線に平行な第2直線との距離が最短とな
る、第2直線上の点の位置情報をさらに用いることも考
えられる。これは本発明の第2の態様でも実施可能であ
る。
【0019】あるノードの法線を拘束条件として指定す
るステップをさらに含み、第2ステップにおいて当該あ
るノードの法線を指定された拘束条件に固定するように
することも考えられる。これにより所定の条件を満たす
曲線又は曲面を生成できる。これは本発明の第2の態様
においても実施可能である。
【0020】本発明の第2の態様では、線又は面を構成
する複数のノードの位置を変更するために、各ノードに
おける法線を記憶装置に格納する第1ステップと、(1)
各ノードの法線方向に当該各ノードに接続された弾性体
を仮想的に定義し、(2)各弾性体がつりあうように各弾
性体を法線方向に伸縮させることにより、各ノードの位
置を変更し、当該位置情報を記憶装置に格納する第2ス
テップと、所定の条件を満たすまで第1及び第2ステッ
プを繰り返すステップとを実行する。これにより滑らか
な曲線又は曲面を生成することができる。
【0021】上で述べた、弾性体を法線方向に伸縮させ
る処理において、あるノードを通り且つ当該あるノード
の法線に平行な第1直線ともう一つのノードを通り且つ
当該もう一つのノードの法線に平行な第2直線との距離
が最短となる、第1直線上の点Aと前記あるノードとの
距離と、第1及び第2直線の距離が最短となる、第2直
線上の点Bと前記もう一つのノードとの距離を用いるよ
うにすることも考えられる。弾性体の長さを基準に弾性
体の伸縮を決定するものである。これは本発明の第1の
態様でも実施可能である。
【0022】本発明の第1及び第2の態様において、弾
性体を法線方向に伸縮させる処理において、ノードと所
定の関係にある基準点の位置情報及びノードの位置情報
を用いて伸縮量が計算されるようにすることも可能であ
る。この基準点は、滑らかな曲面を生成する場合にはノ
ード又はメッシュの辺上の点とし得る。
【0023】さらに、本発明の第1及び第2の態様にお
いて、滑らかな曲面を生成する場合には、上述の第2ス
テップで、メッシュの所定の辺上の法線方向に当該辺に
接続された弾性体を仮想的にさらに定義し、当該辺に接
続された弾性体から受ける力も含めて、各ノードに定義
された各弾性体がつりあうように当該各弾性体を法線方
向に伸縮させることも考えられる。
【0024】以上述べた処理のフローは、専用の装置と
して実施することも、また、コンピュータのプログラム
として実施することも可能である。さらに、このコンピ
ュータのプログラムは、CD−ROMやフロッピー・デ
ィスク、MO(Magneto-optic)ディスクなどの記憶媒
体、又はハードディスクなどの記憶装置に記憶される。
【0025】
【発明の実施の形態】本発明は、ノード列を用いて滑ら
かな曲線を生成する方法と、メッシュ内のノード群を用
いて滑らかな曲面を生成する方法に分けられるが、これ
らの方法において用いられる弾性体(例えばばね)は同
じように定義される。まず、弾性体の定義から説明す
る。
【0026】基本的に、滑らかな曲線をノード列で近似
する場合、ノードの密度を十分に細かくすると、ノード
間を結ぶ辺に円弧を使うことにより十分な精度で近似す
ることができる。曲面に関しても同じで、メッシュのノ
ード分布を十分に細かくすると、ノード間を結ぶ辺に円
弧を用いることにより十分な精度で近似することができ
る。以下に説明する弾性体は、辺が円弧を構成するよう
に各ノードに作用する。図1に2つのノードに弾性体を
定義した状態を示す。図1において、ノードPaにおけ
る単位法線ベクトルNaが、そしてノードPbにおける単
位法線ベクトルNbが計算される。そして、この単位法
線ベクトルNaに平行で且つノードPaを通る直線Laが
ノードPaの弾性体であり、単位法線ベクトルNbに平行
で且つノードPbを通る直線LbがノードPbの弾性体で
ある。但し、直線Laと直線Lbの距離が最短となる点H
a(直線La上の点)及びHb(直線Lb上の点)を決め、
点HaとノードPaの間を用いる。また、同じように点H
bとノードPbの間を用いる。
【0027】直線Laと直線Lbに交点がある場合には、
その点が点Haであり且つ点Hbとなる。また、直線La
と直線Lbの距離が最短となる点を用いるのは一例であ
って、直線La上であって点Haから所定の距離離れた点
とノードPaの間を弾性体として用いてもよい。単位法
線ベクトルは、後に述べるように、平面内の曲線を生成
する場合には1本、空間内の曲線を生成する場合には2
本、曲面を生成する場合には1本存在する。2本存在す
る場合の取り扱いは後に述べる。
【0028】この弾性体によりノードPa及びPbに働く
力Fa及びFbをそれぞれ以下のように定義する。 Fa=Ka|Pa−Ha|Na Fb=Kb|Pb−Hb|Nb Ka及びKbは弾性係数を表すスカラー値であって、|V
|はベクトルVの長さを表すスカラー値である。Na及
びNbは先に示した単位法線ベクトルである。よって、
ノードPa及びPbに働く力は、各ノードの法線方向であ
ることが分かる。そして、|Fa|=|Fb|の場合に、
ノードPa及びPbはそれぞれの弾性体の力による釣り合
いの位置にあるものとする。よって、弾性係数がKa=
Kbであれば、|Pa−Ha|=|Pb−Hb|であると
き、すなわち、点HaとノードPaの距離と点Hbとノー
ドPbとの距離が一致する時に弾性体が釣り合い状態に
あることになる。
【0029】もし、ノードPaの位置を固定するという
条件の下ノードPbを自由に動かすことができる場合に
は、Kb|Pb−Hb|=Ka|Pa−Ha|となるように、
ノードPbは単位法線Nb方向に移動する。すなわち、弾
性体が法線方向に伸縮する。もし、Kb=Kaであれば、
点HaとノードPaの長さと同じになるように、ノードP
bは単位法線Nb方向に移動することになる。
【0030】図2左側のようにノード列P0乃至Pnが存
在する場合に滑らかな曲線を生成する例を考える。説明
を簡単にするため、全てのノードの単位法線は一点で交
わるものとする。そして、両端のノードP0及びPnの位
置が固定され、残りのノードP1乃至Pn-1が自由に移動
できるものとする。隣り合うノード間に、上で定義した
ような弾性体を作用させると、図2の右側のような状態
で力の釣り合った安定状態になる。すなわち、定義した
ような弾性体を作用させることにより、折れ曲がったノ
ード列P0乃至Pnから滑らかな曲線であるノード列が生
成できた。
【0031】以上のような弾性体の定義を前提とし、ノ
ード列を用いて滑らかな曲線を生成する方法及びメッシ
ュ内のノード群を用いて滑らかな曲面を生成する方法に
ついて説明する。
【0032】A.ノード列を用いて滑らかな曲線を生成
する方法 ノード列P0及びPnの位置情報は、予め記憶装置に記憶
されている。このノード列P0及びPnは閉じていても開
いていてもよい。閉じている場合には、ノードPnはノ
ードP0に隣接するものとする。図3に高レベルのフロ
ーチャートを示す。
【0033】本フローチャートは大きく分けて3つの部
分に分かれる。ステップ103乃至ステップ107の部
分が法線計算部、ステップ109乃至ステップ119が
ノード位置変更部、ステップ121及びステップ123
が終了制御部である。この分け方は一例であって、例え
ば、ノード位置変更部をステップ109乃至ステップ1
17とし、このノード位置変更部の制御部としてステッ
プ119があるというように分けることもできる。
【0034】では、法線計算部から説明する。ここで
は、全ての単位法線が計算済みとなるまで(ステップ1
03)、ノードの単位従法線と単位主法線を計算する
(ステップ105及び107)。計算結果はノード毎に
記憶装置に格納される。従法線nと主法線bは、図4の
ような三次元空間における曲線cに対し、それぞれ図示
のような方向となる。これは三次元空間における曲線c
を対象としたものであるから、二次元空間における曲線
の場合には主法線のみ存在する。よって、そのような場
合には、ステップ105は必要ない。
【0035】具体的に、単位従法線の計算(ステップ1
05)の方法を説明する。ここで取り扱う曲線はノード
列によって表された折れ線で表現されているため、厳密
に単位従法線を計算することはできない。よって、隣接
するノードを用いて擬似的に単位従法線を計算する。し
かし、処理を繰り返すにつれ、この単位従法線は生成さ
れる滑らかな曲線の従法線に近づく。以下の計算方法は
一例であって、単位従法線の計算方法は以下の方法に限
定されるものではない。
【0036】ノードPiの単位従法線Biを計算する場
合、ノードPiと、それに隣接する2つのノードPi-1
びPi+1の3点を通る平面を決定し、その平面の単位法
線をノードPiの単位従法線とする。もし、この3つの
ノードが一直線上にあり単位従法線が決定できない場合
には、さらに隣のノードを用いて単位従法線を決定す
る。全てのノードが一直線上にある場合には、単位従法
線を決定することはできないので、この場合には単位従
法線を零ベクトルとしておく。
【0037】なお、単位従法線又は単位接線が、単位従
法線を計算しようとしているノードに拘束条件として設
定されている場合には、上で述べた処理を実施しない。
もし、単位従法線そのものが拘束条件として指定されて
いる場合には、指定された単位従法線をもって当該ノー
ドの単位従法線とする。なお、法線の指定の方法とし
て、自由度0の指定方法と自由度1の指定方法がある。
自由度0の指定方法は法線そのものが指定される場合で
あって、自由度1の指定方法では法線が存在できる面
(平面又は曲面)が指定される。自由度0の場合には以
上の説明のとおりであって、自由度1の場合には、上の
方法で仮に単位従法線(図5におけるB'i)を計算し、
その仮の単位従法線B'iを最短距離で、指定された面Q
に移動させ、移動した先の単位ベクトルBiをそのノー
ドの単位従法線とする。
【0038】一方、単位接線が拘束条件として指定され
ている場合には、(1)上記の方法で仮の単位従法線を
計算し、(2)指定された単位接線と仮の単位従法線と
の外積として単位主法線を計算し、(3)単位主法線と
指定された単位接線との外積として単位従法線を計算す
る。
【0039】次に単位主法線の計算(ステップ107)
の方法を説明する。従法線の場合と同様に、主法線の計
算も擬似的なものであるが、処理を繰り返すにつれ、こ
の主法線は、生成される滑らかな曲線の主法線に近づ
く。以下の計算方法は一例であって、単位主法線の計算
方法は以下の方法に限定されるものではない。
【0040】ノードPiの単位主法線Niを計算する場合
には、まず、単位従法線Biを計算する。これはステッ
プ105の処理で得られている。そして、ベクトルPi
−Pi -1と単位従法線Biとの外積としてZi-1を、ベク
トルPi+1−Piと単位従法線B iとの外積としてZi+1
計算する。なお、単位従法線が零ベクトルである場合に
はZi-1及びZi+1も零ベクトルとなる。また、ノードP
iが開いたノード列の端のノードである場合には、Zi-1
又はZi+1のうち、隣接ノードが存在しない方のベクト
ルを零ベクトルとする。以上のように求められたZi-1
及びZi+1を用いて、単位主法線を以下のように計算す
る。 Ni=(Zi-1+Zi+1)/|Zi-1+Zi+1| 又は Ni=(Zi-1/|Zi-1|+Zi+1/|Zi+1|)/|Z
i-1/|Zi-1|+Zi+1/|Zi+1||
【0041】上の最初の式は、Zi-1及びZi+1をその大
きさを考慮して足した場合の単位主法線であり、2番目
の式は、Zi-1及びZi+1方向のそれぞれの単位ベクトル
を足した場合の単位主法線である。なお、上2式の分母
のベクトルが零ベクトルになる場合には、単位主法線N
iも零ベクトルであるとする。
【0042】以上述べた単位主法線の計算方法は、単位
主法線又は単位接線の拘束条件が指定されていないノー
ドについて実施する。ノードに対する拘束条件として単
位主法線そのものが指定されている場合には、その指定
された単位主法線を当該ノードにおける単位主法線とし
て後の計算を実施する。なお、法線の指定の方法とし
て、自由度0の指定方法と自由度1の指定方法がある。
自由度0の指定方法は法線そのものが指定される場合で
あって、自由度1の指定方法では法線が存在できる面
(平面又は曲面)が指定される。自由度0の場合には以
上の説明のとおりであって、自由度1の場合には、上の
方法で仮に単位主法線を計算し、その仮の単位主法線を
最短距離で、指定された面に移動させ、移動した先の単
位ベクトルをそのノードの単位主法線とする。
【0043】一方、単位接線が拘束条件として指定され
た場合には、(1)ステップ105にて説明した方法で
仮の単位従法線を計算し、(2)仮の単位従法線と指定
された単位接線との外積として単位主法線を計算する。
【0044】以上説明したように法線計算部の処理が実
施される。なお、本実施例では全てのノードの単位法線
を計算した後にノード位置変更部に移行するが、ノード
位置変更部において必要となるノードについてのみ法線
を計算し、すぐにノード位置変更部に移行するよう変更
することも可能である。
【0045】次にノード位置変更部について説明する。
まず、あるノードについて従法線方向の変位ベクトルV
bend1を計算する(ステップ109)。そして、そのノ
ードについて主法線方向の変位ベクトルVbend2を計算
する(ステップ111)。さらに、ノード分布を修正す
るための変位ベクトルVstretchを計算する(ステップ
113)。最後に、Vbend1、Vbend2及びVstretch
加算してVallを計算する(ステップ115)。このV
allを用いてそのノードの位置ベクトルを変更する(ス
テップ117)。これにより1つのノードの位置が変更
できたことになる。結果は記憶装置に記憶する。そし
て、全てのノードについて処理するまでステップ109
乃至117を繰り返す(ステップ119)。
【0046】では最初に、従法線方向の変位ベクトルV
bend1の計算(ステップ109)の方法について説明す
る。ノードPiに作用する、ノードPi-1からの力による
変位ベクトルYi-1を計算し、同様にノードPiに作用す
る、ノードPi+1からの力による変位ベクトルYi+1を計
算する。そのため、Piを通り且つ単位従法線Biに平行
な直線をLi、Pi-1を通り且つ単位従法線Bi-1に平行
な直線をLi-1、Pi+ 1を通り且つ単位従法線Bi+1に平
行な直線をLi+1とする。また、直線LiとLi- 1との最
短距離の足に相当する点をそれぞれHi1及びHi-1
し、直線LiとLi+1との最短距離の足に相当する点をそ
れぞれHi2及びHi+1とする。さらに、ノードPiにおけ
る弾性体の弾性係数をKi、ノードPi-1における弾性体
の弾性係数をKi-1、ノードPi+1における弾性体の弾性
係数をKi+1とする。
【0047】この時、Yi-1及びYi+1は以下のとおりに
なる。 Yi-1=(Ki-1|Pi-1−Hi-1|−Ki|Pi−Hi1|)
ii+1=(Ki+1|Pi+1−Hi+1|−Ki|Pi−Hi2|)
i なお、Ki=Ki-1=Ki+1であるならば、以下のように
簡単化することができる。 Yi-1=(|Pi-1−Hi-1|−|Pi−Hi1|)Bii+1=(|Pi+1−Hi+1|−|Pi−Hi2|)Bi
【0048】以上のように計算されたYi-1及びYi+1
用いて、ノードPiの従法線方向の変位ベクトルVbend1
は以下のように計算される。 Vbend1=(Yi-1+Yi+1)/2 又は Vbend1=(Leni-1i-1+Leni+1i+1)/(Leni-1+L
eni+1) Leni-1=|Pi−Pi-1|且つLeni+1=|Pi−Pi+1
【0049】なお、上の2番目の式は、ノードPiから
i-1への距離、ノードPiからPi+1への距離により重
み付けた計算方法である。以上の式は一例であって、本
発明はこれらに限定されない。
【0050】次に主法線方向の変位ベクトルVbend2
計算(ステップ111)の方法を説明する。これは基本
的に従法線方向の変位ベクトルVbend2の計算方法と同
じである。但し、直線Li、Li-1、Li+1は、それぞれ
単位主法線Ni、Ni-1、Ni+1に平行であり、Y'i-1
びY'i+1('は従法線方向のものと同じでないので付し
た)の方向も単位従法線方向ではなく、単位主法線方向
である。よってY'i-1及びY'i+1は以下のように書くこ
とができる。 Y'i-1=(K'i-1|Pi-1−H'i-1|−K'i|Pi−H'
i1|)Ni Y'i+1=(K'i+1|Pi+1−H'i+1|−K'i|Pi−H'
i2|)Ni なお、弾性係数も従法線方向と主法線方向と異なる値を
用いることもできる。よって、上の式ではK'i
K'i-1、K'i+1としている。また、直線L同士の最短距
離の足となる点も従法線の場合とは異なるためH'i-1
H'i1、H'i+1。H'i2としている。
【0051】さらに、Vbend2は以下のように書くこと
ができる。 Vbend2=(Y'i-1+Y'i+1)/2 又は Vbend2=(Leni-1Y'i-1+Leni+1Y'i+1)/(Leni-1
+Leni+1) Leni-1=|Pi−Pi-1|且つLeni+1=|Pi−Pi+1
【0052】従法線方向の変位ベクトルも主法線方向の
変位ベクトルも隣接するノードのみを用いて計算した
が、隣接しないノードを考慮に入れた形に変形すること
も可能である。
【0053】ノード分布を修正するための変位ベクトル
stretchの計算(ステップ113)の方法を説明す
る。上で述べたVbend1及びVbend2のみで計算を繰り返
していくと、ノードの分布が不均一になる。そこでノー
ド分布を修正する目的のために変位ベクトルVstretch
を計算する。ここで計算する変位ベクトルV
stretchは、ノードにおける接線方向へのベクトルであ
り、言い換えると曲線に沿った方向への変位ベクトルで
ある。曲線から離れる方向、すなわち従法線及び主法線
方向への成分は含まれない。Vstretchは、Vbend1及び
bend2と互いに直行する変位ベクトルである。なお、
初めに入力されるノード列が初めからほぼ滑らかな場合
には、本ステップを実施しなくとも目的の滑らかな曲線
を得ることができる。
【0054】ノードPiにおけるVstretchを計算するに
は、(1)隣接する2つのノードP i-1及びPi+1の中点
にPiを移動させるベクトルを計算し、(2)そのベク
トルから主法線方向の成分と従法線方向の成分を削除し
て、接線方向の成分だけを残し、それを変位ベクトルV
stretchとする。式で表現すると以下のようになる。 Vstretch=Vc0−Vc1−Vc2c0=(Pi-1+Pi+1)/2−Pic1=dot(Vc0,Bi)Bic2=dot(Vc0,Ni)Ni なお、dot(V1,V2)はベクトルV1とV2の内積を表
す。
【0055】なお、(1)のノードPiをPi-1とPi+1
の中点に移動させる場合の変位は、Piに対してPi-1
i+1からのそれぞれの距離に比例した(距離が0の時
力が0)力を作用させた場合の変位であると解釈でき
る。この力は、必ずしも距離に比例している必要はな
く、また距離が0の時に力が0である必要も無い。例え
ば、分子間力のような非線型なばねの力をPi-1とPi+1
から受けると考えてPiの変位を計算してもよい。
【0056】以上計算された変位ベクトルVbend1、V
bend2及びVstretchを用いて、最終的な変位ベクトルV
allを計算(ステップ115)するため、Vbend1、V
bend2及びVstretchを加算する。そして、ノードPi
位置ベクトルを、Vallを元の位置ベクトルに加算する
ことにより決定する(ステップ117)。このノード位
置変更部において処理された後の位置ベクトルは記憶装
置に記憶される。但し、元の位置ベクトルも他のノード
の新たな位置ベクトルを計算する処理に用いられる場合
もあるので、その場合には全てのノードについて処理が
完了するまで保持しておく必要がある。
【0057】ノードPiの元の位置ベクトルを用いず
に、他のノードの新たな位置ベクトルを計算する処理
に、ノードPiの新たな位置ベクトルを用いて計算する
という方法も考えられる。この場合には、再度法線を計
算し直した方がよい場合もある。
【0058】ステップ119においてノード位置変更部
の制御部分を実行する。すなわち、全てのノードについ
て処理(ステップ109乃至117)を実行したか判断
する。なお、拘束条件としてノードの座標値を指定して
いる場合がある。その場合には、ノード位置変更部の処
理を実施しないで、指定された座標値を当該ノードの位
置として取り扱う。但し、位置の拘束条件も自由度0の
指定方法、自由度1の指定方法、自由度2の指定方法が
ある。自由度0の指定方法は、ノードの位置を具体的に
座標値として指定している場合であって、上で述べたと
おり、ノード位置変更部の処理は不要である。自由度1
の指定方法の場合には、ノードが存在し得る線が指定さ
れるので、上の方法でノードの位置を計算した後、計算
されたノードの位置から最も近く且つ指定された線上の
点を求める。自由度2の指定方法の場合、ノードが存在
し得る面(平面及び曲面)が指定されるので、上の方法
でノードの位置を計算した後、計算されたノードの位置
から最も近く且つ指定された面上の点を求める。
【0059】最後に処理全体の終了制御部であるステッ
プ121及び123の説明を行う。ステップ121は処
理全体の終了条件に関する。計算を終了させる条件には
いくつかの方法が考えられるが、一例としてノードの変
位ベクトルVallの大きさが一定値以下であるかどうか
で判断する。この場合、全てのノードのうち|Vall
が最も大きいものを基準にすることも、|Vall|の平
均値を用いてもよい。一方、各ノードPiについて、距
離|Pi−Pi-1|と|Pi−Pi+1|との最小値、又は平
均値、又は最大値をLiとし、Di=|Vall|とした時
に、各ノードPiについてDi/Liを計算する。これは
ノード間距離により正規化されたノードの移動量であ
る。このように各ノードに対して計算された、正規化さ
れたノードの移動量の、最大値、又は平均値が所定のし
きい値以下であれば、所定の安定状態を得たとして処理
を終了する。なお、これらは一例であって、他の基準を
もって判断することも可能である。もし、所定の安定状
態が得られていないと判断できる場合には、ステップ1
03に戻って、再度処理する。この際に、ステップ12
3で先に計算した法線のデータをクリアしておく。
【0060】B.メッシュ内のノード群を用いて滑らか
な曲面を生成する方法メッシュ内のノード群Pi(i=
1...n)の位置情報は記憶装置に記憶されている。
メッシュの生成方法には様々な方法があるが、例えば日
本特許第2603902号に記載されている方法を用い
ることができる。図6に高レベルのフローチャートを示
す。
【0061】本フローチャートは大きくわけて3つの部
分に分けられる。ステップ203及びステップ205で
構成される法線計算部、ステップ207乃至ステップ2
15で構成されるノード位置変更部、ステップ217及
びステップ219で構成される終了制御部である。これ
は一例であって、例えばノード位置変更部は、ステップ
207乃至213とそれらの繰り返し制御を行うステッ
プ215とにさらに分けることも可能である。
【0062】では、法線計算部から説明する。面を取り
扱う場合には法線は1本である。まず、全ての単位法線
が計算済みであるか判断する(ステップ203)。全て
のノードの単位法線が予め拘束条件として指定されてい
ない限り、最初このステップの判断は否定される。よっ
て、ステップ205でノードの単位法線を計算する。全
てのノードの単位法線が計算済みとされるまで、このス
テップ205を繰り返す。計算された単位法線は記憶装
置に記憶される。
【0063】具体的にステップ205のノードの単位法
線の計算方法を説明する。取り扱う面はメッシュという
離散的なモデルにより表現されているため厳密にノード
における面の法線を計算することはできない。よって、
隣接するノードを用いて擬似的に法線を計算する。但
し、処理を繰り返していくうちに計算される単位法線
は、生成される滑らかな曲面の単位法線に近づく。図7
に示すように、ノードPiとそれに隣接するノードPi0
乃至Pi4(一般的にはPm)とで構成するメッシュ要素
(図7では三角形であるが、n角形であってもよい。n
は正の整数。)の法線Ni0乃至Ni4(一般的にはNim
を計算する。但し、法線Ni0乃至Nimは、要素の面積に
比例するような大きさを有するものとする。これらの法
線Ni0乃至N imを用いて、ノードPiにおける法線Ni
以下のように表される。 Ni=(Ni0+...+Nim)/|Ni0+...+Nim
| なお、隣接するノードと構成する要素の数は一般的にm
個であるとしている。また、法線Ni0乃至Ni4を例えば
単位ベクトルとして計算し、その後上記の式でN iを計
算することも考えられる。
【0064】なお、拘束条件として単位法線自体が指定
されているノードについては、上の計算を行わない。ま
た、単位法線が存在できる面が拘束条件として指定され
ている場合には、上の計算を行って単位法線を計算し、
指定された面に最短距離で移動させた後のベクトルを単
位法線として用いる。
【0065】以上説明したように法線計算部の処理が実
施される。なお、本実施例では全てのノードの単位法線
を計算した後にノード位置変更部に移行するが、ノード
位置変更部において必要となるノードについてのみ法線
を計算し、すぐにノード位置変更部に移行するよう変更
することも可能である。
【0066】次にノード位置変更部を説明する。ここで
は、あるノードPiについて法線方向の変位ベクトルV
bendを計算し(ステップ207)、ノード分布を修正す
るためにの変位ベクトルVstretchを計算する(ステッ
プ209)。このVbendとVs tretchを用いて、変位ベ
クトルVallを計算し(ステップ211)、あるノード
iの位置ベクトルを変更する(ステップ213)。計
算されたノードPiの位置情報は記憶装置に記憶され
る。これを全てのノードについて処理するまで繰り返す
(ステップ215)。
【0067】では各ステップの詳細を説明する。まず、
法線方向の変位ベクトルVbendの計算(ステップ20
7)の方法について説明する。ノードPiはそれに隣接
するPi 0乃至Pimのそれぞれから力を受けるが、まず隣
接する1つのノードPijから受ける変位ベクトルYij
計算する。これは、曲線の場合と同じであって、以下の
ように記載することができる。 Yij=(Kj|Pij−Hij|−Ki|Pi−Hi|)Ni なお、Ki=Ki=Kjであるならば、以下のように簡単
化することができる。 Yij=(|Pij−Hij|−|Pi−Hi|)Ni 但し、Piを通り且つ単位法線Niに平行な直線をLi
ijを通り且つ単位法線Nijに平行な直線をLijとし、
直線Li及びLijの最短距離の足に相当する点をそれぞ
れHi、Hijとした。
【0068】同様にして全ての隣接するノードPi0乃至
imについてYi0乃至Yimを計算する。この計算された
i0乃至Yimを用いて、ノードPiの法線方向の変位ベ
クトルVbendを計算する。 Vbend=(Yi0+...+Yim)/(m+1) 又は、 Vbend=(Len0i0+Len1i1+...Lenmim)/
(Len0+Len1+...Lenm) Lenj=|Pi−Pij|(j=0...m) 二番目の式はノードPiから隣接するノードへの距離に
よって重み付けをした計算方法である。
【0069】なお、上ではメッシュ内のノードPiにつ
いて隣接するノードからの力を受けるとしたが、隣接し
ないノードから力を受けるようにしてもよい。また、ノ
ードだけでなく、メッシュを構成する辺の任意の点を基
準点Pxとして選択し、この基準点Pxに弾性体を定義す
ることもできる。すなわち、基準点Pxにおける法線を
求め、この法線に平行で且つ基準点Pxを通過する直線
と直線Liの最短距離の足に相当する点を用い、上の式
でYixを計算する(図8参照)。法線は、メッシュの辺
の両側にあるメッシュ要素の法線の平均等を用いてもよ
い。Vbendの計算も、隣接するノードのYijと同じよう
に扱って計算することができる。
【0070】次にノード分布を修正するための変位ベク
トルVstretchの計算(ステップ209)の方法を説明
する。変位ベクトルVbendによるノード位置の変更のみ
を繰り返していくとノードの分布が不均一になる。その
ため、導入する変位Vstretc hはノードにおける法線と
直交するベクトルとする。Vbendとも直交する。ノード
iのVstretchを考える場合には、それに隣接するノー
ドPi0乃至Pimで構成される多角形の重心にノードPi
を移動させるような変位ベクトルVstretchを計算す
る。式で表すと以下のようになる。 Vstretch=Vc0−Vc1c0=(Pi0+...+Pim)/(m+1)−Pic1=dot(Vc0,Ni)Ni なお、ノードの初期配置が既に滑らかな曲面に近い場合
には、このVstretchを計算しないでもよい場合があ
る。
【0071】Vstretch及びVbendから変位ベクトルV
allを計算する(ステップ211)方法は、単純に2つ
のベクトルの加算である。すなわち、Vall=Vstretch
+Vbe ndでよい。
【0072】なお、ノード分布の修正にはノードを追加
又は削除することも考えられる。例えば、隣接するノー
ドとの距離がある値以上に離れた場合にはそのノードの
間に1つノードを追加したり、逆に隣接するノードとの
距離が他のある値未満である場合にはいずれかのノード
を削除することも考えられる。
【0073】最後に、ノードPiの位置ベクトルを、V
allを元の位置ベクトルに加算することにより決定する
(ステップ213)。このノード位置変更部において処
理された後の位置ベクトルは記憶装置に記憶される。但
し、元の位置ベクトルも他のノードの新たな位置ベクト
ルを計算する処理に用いられるため、全てのノードにつ
いて処理するまで保持しておく必要がある。
【0074】ノードPiの元の位置ベクトルを用いず
に、他のノードの新たな位置ベクトルを計算する処理に
ノードPiの新たな位置ベクトルを用いて計算するとい
う方法も考えられる。その場合には再度法線を計算し直
した方がよい場合もある。
【0075】ステップ215においてノード位置変更部
の制御部分を実行する。すなわち、全てのノードについ
て処理(ステップ207乃至213)を実行したか判断
する。実行していなければステップ207に戻り他のノ
ードについて処理を実行する。一方、全てのノードにつ
いて処理を実行していた場合には、終了制御部に移行す
る。なお、拘束条件としてノードの座標値を指定してい
る場合がある。その場合には、ノード位置変更部の処理
を実施しないで、指定された座標値を当該ノードの位置
として取り扱う。但し、位置の拘束条件も自由度0の指
定方法、自由度1の指定方法、自由度2の指定方法があ
る。自由度0の指定方法は、ノードの位置を具体的に座
標値として指定している場合であって、上で述べたとお
り、ノード位置変更部の処理は不要である。自由度1の
指定方法の場合には、ノードが存在し得る線が指定され
るので、上の方法でノードの位置を計算した後、計算さ
れたノードの位置から最も近く且つ指定された線上の点
を求める。自由度2の指定方法の場合、ノードが存在し
得る面(平面及び曲面)が指定されるので、上の方法で
ノードの位置を計算した後、計算されたノードの位置か
ら最も近く且つ指定された面上の点を求める。
【0076】最後に終了制御を行う終了制御部(ステッ
プ217及び219)について説明する。所定の安定状
態になった場合には処理を終了するわけであるが、安定
状態になったかの判定は様々な方法が考えられる。基本
的にはノードの移動量が一定の値以下であれば反復を終
了する。各ノードPiについて、隣接するノードPi0
至Pimとの距離|Pi−Pi0|....|Pi−Pim|の
最小値、又は平均値、又は最大値を計算し、それをLi
とする。またDi=|Vall|を計算する。これらから各
ノードPiについて、Di/Liを計算する。これはノー
ド間の距離によって正規化されたノードの移動量を表
す。このノード間距離によって正規化されたノードの移
動量の、最大値又は平均値がしきい値以下であれば処理
を終了させる。但し、これは一例であって、他の方法に
て安定状態を検出することも可能である。
【0077】もし、安定状態でない場合にはステップ2
03に戻る。但し、ステップ219で法線データをクリ
アしておく。
【0078】以上本発明の処理フローを説明した。本発
明の処理フローはコンピュータ・プログラムによって実
施することができる。このコンピュータ・プログラム
は、例えば図9で示すようなコンピュータ・システムに
おいて実行可能である。この場合、コンピュータ・プロ
グラム及び必要なデータはハードディスク・ドライブH
DDに格納されており、必要に応じてメインメモリに呼
び出され、CPUにて実行される。処理の結果(中間デ
ータを含む)もメインメモリに格納される。但し、仮想
記憶によってHDDに記憶される場合もある。データ
は、キーボードやフロッピー・ディスクその他の記憶媒
体、また、モデム等の通信機器によって接続された通信
回線から供給され得る。コンピュータ・プログラムも他
のコンピュータ・システムから送られてくるようにして
もよい。同様に、コンピュータ・プログラムはFDやC
D−ROMその他の記憶媒体にて提供される場合があ
る。本発明の処理結果は、HDDなどに記憶された他の
コンピュータ・プログラムによって数値解析等に用いら
れる。さらに、表示装置や印刷装置によってユーザに提
示することも可能である。
【0079】さらに本発明の処理を行う専用の装置にて
本発明を実施することもできる。例えば、法線計算部、
ノード位置変更部、制御部といったように上の処理フロ
ーを説明する上で分けた方法を用いて、必要なモジュー
ルを構成することも考えられる。さらに細かい単位又は
大きい単位で必要なモジュールを構成することも可能で
ある。
【0080】
【効果】ノードの位置を変更することにより滑らかに変
化する曲線又は曲面を生成することができた。
【0081】また、通過点等の与えられた条件を満た
し、かつ滑らかに変化する曲線又は曲面を生成すること
もできた。
【図面の簡単な説明】
【図1】本発明の基本原理を説明するための図である。
【図2】本発明の基本原理を説明するための図である。
【図3】滑らかな曲線を生成するための処理フローを示
した図である。
【図4】従法線及び主法線の関係を示した図である。
【図5】法線の拘束条件の自由度2の例を示した図であ
る。
【図6】滑らかな曲面を生成するための処理フローを示
した図である。
【図7】変位ベクトルを説明するための図である。
【図8】メッシュの辺に基準点を設ける例を説明するた
めの図である。
【図9】通常のコンピュータの請う制令を示す図であ
る。
【符号の説明】
101ー219 処理ステップ
フロントページの続き (71)出願人 598022347 カーネギー メロン ユニバーシテイ アメリカ合衆国 15213 ペンシルバニア ピツツバーク フオーブス アベニユー 5000 (72)発明者 山田 敦 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内 (72)発明者 古畑 智武 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 東京基礎研究所 内 (72)発明者 嶋田 憲司 アメリカ合衆国 15237、ペンシルベニア 州、ピッツバーグ、ラ・コスタ・コート 1704 (72)発明者 コ−シュ・ホウ アメリカ合衆国 15213、ペンシルベニア 州、ピッツバーグ、ビッグロウ・ブルバー ド4041、アパート111 Fターム(参考) 5B046 FA04 FA18 5B050 BA07 BA09 EA13 EA28 5B080 AA05 AA10 AA19 DA07 DA08

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】線又は面を構成する複数のノードの位置を
    変更する方法であって、 ノードにおける法線のデータを記憶装置に格納する第1
    ステップと、 (1)前記ノードの法線方向に当該ノードに接続した弾性
    体を仮想的に定義し、(2)前記弾性体を前記法線方向に
    伸縮させることにより、前記ノードの位置を変更し、当
    該位置情報を記憶装置に格納する第2ステップと、 所定の条件を満たすまで所定のノードについて前記第1
    及び第2ステップを繰り返すステップと、 を含むノード位置変更方法。
  2. 【請求項2】前記第2ステップは、ノード分布を修正す
    るように前記ノードの位置をさらに変更するステップを
    含む、請求項1記載のノード位置変更方法。
  3. 【請求項3】線を構成する複数のノードの位置を変更す
    る場合には、 前記法線は従法線及び主法線を含み、当該従法線及び主
    法線のいずれの方向についても弾性体を定義することを
    特徴とする請求項1記載のノード位置変更方法。
  4. 【請求項4】前記弾性体を前記法線方向に伸縮させる処
    理において、前記ノードと所定の関係にある基準ノード
    の位置情報と前記ノードの位置情報とを用いて伸縮量を
    計算することを特徴とする請求項1記載のノード位置変
    更方法。
  5. 【請求項5】前記弾性体を前記法線方向に伸縮させる処
    理において、前記基準ノードを通り且つ当該基準ノード
    の法線に平行な第1直線と前記ノードを通り且つ当該ノ
    ードの法線に平行な第2直線との距離が最短となる、前
    記第2直線上の点の位置情報をさらに用いることを特徴
    とする。請求項4記載のノード位置変更方法。
  6. 【請求項6】線又は面を構成する複数のノードの位置を
    変更する方法であって、 各ノードにおける法線を記憶装置に格納する第1ステッ
    プと、 (1)各ノードの法線方向に当該各ノードに接続された弾
    性体を仮想的に定義し、(2)各前記弾性体がつりあうよ
    うに各前記弾性体を法線方向に伸縮させることにより、
    前記各ノードの位置を変更し、当該位置情報を記憶装置
    に格納する第2ステップと、 所定の条件を満たすまで前記第1及び第2ステップを繰
    り返すステップと、 を含むノード位置変更方法。
  7. 【請求項7】前記弾性体を前記法線方向に伸縮させる処
    理において、あるノードを通り且つ当該あるノードの法
    線に平行な第1直線ともう一つのノードを通り且つ当該
    もう一つのノードの法線に平行な第2直線との距離が最
    短となる、前記第1直線上の点Aと前記あるノードとの
    距離と、前記第1及び第2直線の距離が最短となる、第
    2直線上の点Bと前記もう一つのノードとの距離を用い
    る、請求項6記載のノード位置変更方法。
  8. 【請求項8】前記弾性体を前記法線方向に伸縮させる処
    理において、 前記ノードと所定の関係にある基準点の位置情報及び前
    記ノードの位置情報を用いて伸縮量が計算される、請求
    項1記載のノード位置変更方法。
  9. 【請求項9】前記面を構成するメッシュのノードの位置
    を変更する場合、 前記基準点は、ノード又は前記メッシュの辺上の点であ
    る、請求項8記載のノード位置変更方法。
  10. 【請求項10】前記面を構成するメッシュのノードの位
    置を変更する場合、 前記第2ステップにおいて、 前記メッシュの所定の辺上の法線方向に当該辺に接続さ
    れた弾性体を仮想的にさらに定義し、当該辺に接続され
    た弾性体から受ける力も含めて、前記各ノードに定義さ
    れた各弾性体がつりあうように当該各弾性体を法線方向
    に伸縮させる、請求項6記載のノード位置変更方法。
  11. 【請求項11】線又は面を構成する複数のノードの位置
    を変更する装置であって、 ノードにおける法線のデータを記憶装置に格納する第1
    手段と、 (1)前記ノードの法線方向に当該ノードに接続した弾性
    体を仮想的に定義し、(2)前記弾性体を前記法線方向に
    伸縮させることにより、前記ノードの位置を変更し、当
    該位置情報を記憶装置に格納する第2手段と、 所定の条件を満たすまで所定のノードについて前記第1
    及び第2手段を動作させる制御手段と、 を有するノード位置変更装置。
  12. 【請求項12】線又は面を構成する複数のノードの位置
    を変更する装置であって、 各ノードにおける法線を記憶装置に格納する第1手段
    と、 (1)各ノードの法線方向に当該各ノードに接続された弾
    性体を仮想的に定義し、(2)各前記弾性体がつりあうよ
    うに各前記弾性体を法線方向に伸縮させることにより、
    前記各ノードの位置を変更し、当該位置情報を記憶装置
    に格納する第2手段と、 所定の条件を満たすまで前記第1及び第2手段を動作さ
    せる制御手段と、 を有するノード位置変更装置。
  13. 【請求項13】コンピュータに、線又は面を構成する複
    数のノードの位置を変更させるためのプログラムを記憶
    する記憶媒体であって、 前記プログラムは、前記コンピュータに、 ノードにおける法線のデータを記憶装置に格納する第1
    ステップと、 (1)前記ノードの法線方向に当該ノードに接続した弾性
    体を仮想的に定義し、(2)前記弾性体を前記法線方向に
    伸縮させることにより、前記ノードの位置を変更し、当
    該位置情報を記憶装置に格納する第2ステップと、 所定の条件を満たすまで所定のノードについて前記第1
    及び第2ステップを繰り返すステップと、を実行させ
    る、記憶媒体。
  14. 【請求項14】コンピュータに、線又は面を構成する複
    数のノードの位置を変更させるためのプログラムを記憶
    した記憶媒体であって、 前記プログラムは、前記コンピュータに、各ノードにお
    ける法線を記憶装置に格納する第1ステップと、 (1)各ノードの法線方向に当該各ノードに接続された弾
    性体を仮想的に定義し、(2)各前記弾性体がつりあうよ
    うに各前記弾性体を法線方向に伸縮させることにより、
    前記各ノードの位置を変更し、当該位置情報を記憶装置
    に格納する第2ステップと、 所定の条件を満たすまで前記第1及び第2ステップを繰
    り返すステップと、 を実行させる、記憶媒体。
  15. 【請求項15】あるノードの法線を拘束条件として指定
    するステップをさらに含み、 前記第2ステップにおいて当該あるノードの法線を指定
    された前記拘束条件に固定する、 請求項1又は6記載のノード位置変更方法。
JP36568699A 1999-12-22 1999-12-22 ノード位置変更方法及び装置 Pending JP2001188919A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36568699A JP2001188919A (ja) 1999-12-22 1999-12-22 ノード位置変更方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36568699A JP2001188919A (ja) 1999-12-22 1999-12-22 ノード位置変更方法及び装置

Publications (1)

Publication Number Publication Date
JP2001188919A true JP2001188919A (ja) 2001-07-10

Family

ID=18484864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36568699A Pending JP2001188919A (ja) 1999-12-22 1999-12-22 ノード位置変更方法及び装置

Country Status (1)

Country Link
JP (1) JP2001188919A (ja)

Similar Documents

Publication Publication Date Title
JP3597360B2 (ja) モデリング方法および記録媒体
JP4662959B2 (ja) デザイン最適化のための自由形状変形(FreeFormDeformation)表現の進化的直接操作(EvolutionaryDirectManipulation)
JP4934789B2 (ja) 補間処理方法および補間処理装置
US20230108734A1 (en) Computer simulation of physical fluids on a mesh in an arbitrary coordinate system
US7609262B2 (en) Evolutionary optimization and free form deformation
US6226405B1 (en) Method and apparatus for updating node position
JP4564506B2 (ja) 自由形状変形(FreeFormDeformation)の拡張直接操作(ExtendDirectManipulation)法による進化的デザイン最適化(EvolutionaryDesignOptimisation)
AU2761701A (en) System and method for multi-resolution fairing of non-manifold models
Friston et al. Real-time collision detection for deformable characters with radial fields
JP2603902B2 (ja) 自動メッシュ生成方法及びシステム
Li et al. Exact and efficient collision detection for a multi-section continuum manipulator
JPH08315183A (ja) 自動メッシュ生成方法及びシステム
US6192293B1 (en) System for meshing curved surface by generating and controlling the number of bubbles in parametric space
JP2001188919A (ja) ノード位置変更方法及び装置
Movania et al. A novel GPU-based deformation pipeline
JPH11328442A (ja) 三次元物体の表面形成方法
JP7036207B2 (ja) メッシュ生成システム、メッシュ生成プログラムおよびメッシュ生成方法
Cripps et al. Constructing 3D motions from curvature and torsion profiles
WO2014181598A1 (ja) 曲面描画装置および曲面描画用プログラム
Thompson et al. Generation of Volume Meshes by Extrusion from Surface Meshes of Arbitrary Topology.
Shen et al. A freeform shape optimization of complex structures represented by arbitrary polygonal or polyhedral meshes
Tengler et al. Ways of uneven road surface modelling used in the vehicle dynamics analysis
JPH07302357A (ja) コンピュータによる3次元自由形状の造形方法および装置
JP2001052039A (ja) 情報処理装置及び方法、表示装置及び方法並びに記録媒体
JP2631789B2 (ja) 3次元物体形状のモデリング方法

Legal Events

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