(57)【特許請求の範囲】
【請求項１】
３次元形状モデルの形状を変形する３次元形状処理方法において、
前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、
入力装置により指定された移動先点が前記母曲面にのっていない場合、前記移動先点を前記母曲面上に移動するステップと、
前記共通の母曲面を有する面の稜線における、前記頂点とは反対側の端点と、前記母曲面に移動後の前記頂点とを直線で結ぶステップと、
前記直線を前記母曲面上に射影することにより変形される面の稜線を生成するステップと、
を実行することを特徴とする３次元形状処理方法。
【請求項２】
３次元形状モデルの形状を変形する３次元形状処理方法において、
前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、
入力装置により指定された移動先点が前記母曲面上にのっていない場合、前記移動先点を前記母曲面上に移動するステップと、
前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とを、少なくとも一方の端点における接線ベクトルが前記稜線の対応する端点における接線ベクトルと同じになる曲線で結ぶステップと、
該曲線を前記母曲面上に射影することにより、変形される面の稜線を生成するステップと、を実行することを特徴とする３次元形状処理方法。
【請求項３】
３次元形状モデルの形状を変形する３次元形状処理方法において、
前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、
入力装置により指定された移動先点が前記母曲面にのっていない場合、前記移動先点を前記母曲面上に移動するステップと、
前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とを、少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線で結ぶステップと、
該曲線を前記母曲面上に射影することにより、変形される面の稜線を生成するステップと、を実行することを特徴とする３次元形状処理方法。
【請求項４】
３次元形状モデルの形状を変形する３次元形状処理方法において、
前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、
入力装置により指定された移動先点が前記母曲面上にのっていない場合、前記移動先点を前記母曲面上に移動するステップと、
前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とを、各面について
直線、
少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線、
または少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線
の何れかで結ぶステップと、
該曲線を前記母曲面上に射影することにより、変形される面の稜線を生成するステップと、を実行することを特徴とする３次元形状処理方法。
【請求項５】
請求項１乃至４の何れか１項記載の３次元形状処理方法において、前記制御手段は、入力装置によって指定された前記移動先点を最寄りの前記母曲面上に射影し、当該母曲面上の射影された点に前記移動先点を移動することを特徴とする３次元形状処理方法。
【請求項６】
請求項１乃至５の何れか１項記載の３次元形状処理方法において、移動させた頂点を共有する各面について、前記母曲面の情報を記憶しておくか否かを指定可能にしたことを特徴とする３次元形状処理方法。
【請求項７】
請求項１乃至６の何れか１項記載の３次元形状処理方法をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用の３次元形状処理装置やパーソナルコンピュータなど情報処理装置で実施される３次元ＣＡＤ，ＣＡＭ，ＣＡＥなど３次元形状処理に係わり、特に、３次元形状モデルの複数の面によって共有された頂点を移動することにより形状を変形させる３次元形状処理方法に関する。
【０００２】
【従来の技術】
近年、安価で高機能・高性能なパーソナルコンピュータが広く普及したこと、企業においてコスト削減や製品設計サイクル短縮の要求が大きくなっていることなどから、３次元形状処理装置を用いた設計・生産が企業生き残りのキーの一つとして不可欠になりつつある。そのため、グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭ装置など３次元形状処理装置を用いて、記憶されている３次元形状データにより３次元形状モデルを表示させたり、３次元形状を生成したり、生成されている３次元形状を変形させたり、３次元形状の体積や重心などを計算したりすることが広く行われるようになった。なお、本発明に係わる３次元形状（３次元立体）とは、例えば、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義して中身の詰まった立体を表現した、境界表現形式のソリッドモデルデータとして生成された形状である。
本発明はこのような３次元形状処理装置などにおいて行われる、３次元形状モデルの複数の面によって共有された頂点を移動することにより形状を変形させる３次元形状処理方法に関するが、従来技術においては、境界表現形式の３次元形状データで表現された３次元形状モデルの頂点の位置を変更させると、移動先の頂点が元々の母曲面上にのっていることを意図していた場合でも頂点まわりの面の母曲面の曲面情報を捨てざるを得なかった。例えば、図10に示したような円柱面上の点を真上に動かす場合、この移動先の座標は元の円柱面を延長した領域にのっている点であるので、本来なら円柱面の情報を捨てる必要はない。しかし、従来の技術では、マウスなどを用いて指定した移動先が同じ母曲面上にのっているかどうか判別することが困難であり、指定した移動先が母曲面からずれているとみなし、その母曲面の情報を捨ててしまっていた。
同様に、図11に示したような同一の母曲面Ｓを持つ４個のトリム面（母曲面から切り取った面）L1,L2,L3,L4があるとき、頂点V（b図参照）を頂点Va（c図参照）に移動させる場合も同様の理由で変形された面L1a,L2a,L3a,L4aの母曲面の情報を捨ててしまっていた。なお、図11は、（a）図に示した各面L1，L2，L3，L4のそれぞれが（b）図に示したように共通の母曲面を持つ面集合L1，L2，L3，L4のトリム面であり、頂点VをVaに移動させると、（d）図に示したように母曲面が同じで境界稜線の形状だけが変わった面L1a,L2a,L3a,L4aになることを示している。
【０００３】
【発明が解決しようとする課題】
前記のように、従来技術においては、境界表現形式の３次元形状データで表現された３次元形状モデルの頂点の位置を変更させると、移動先の頂点が元々の母曲面上にのっていることを意図していた場合でも、指定した移動先が母曲面上からずれていると、頂点まわりの面の母曲面の曲面情報を捨てざるを得なかった。
本発明の目的は、このような従来技術の問題を解決し、指定した移動先が母曲面上からずれていても、移動先の頂点が元々の母曲面上にのっていることが利用者の意図であるならば、移動先を母曲面上に移動させることにより、頂点まわりの面の母曲面の曲面情報を捨てずに用いることができる３次元形状処理方法などを提供することにある。
【０００４】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明は、３次元形状モデルの形状を変形する３次元形状処理方法において、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、入力装置により指定された移動先点が前記母曲面にのっていない場合、前記移動先点を前記母曲面上に移動するステップと、前記共通の母曲面を有する面の稜線における、前記頂点とは反対側の端点と、前記母曲面に移動後の前記頂点と、を直線で結ぶステップと、前記直線を前記母曲面上に射影することにより変形される面の稜線を生成するステップと、を実行する３次元形状処理方法を特徴とする。
また、請求項２記載の発明は、請求項１記載の３次元形状処理方法において、３次元形状モデルの形状を変形する３次元形状処理方法において、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、入力装置により指定された移動先点が前記母曲面上にのっていない場合、前記移動先点を前記母曲面上に移動するステップと、前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点と、を、少なくとも一方の端点における接線ベクトルが前記稜線の対応する端点における接線ベクトルと同じになる曲線で結ぶステップと、該曲線を前記母曲面上に射影することにより、変形される面の稜線を生成するステップと、を実行する３次元形状処理を特徴とする。
また、請求項３記載の発明は、３次元形状モデルの形状を変形する３次元形状処理方法において、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、入力装置により指定された移動先点が前記母曲面にのっていないならば、前記移動先点を前記母曲面上に移動するステップと、前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とを、少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線で結ぶステップと、該曲線を前記母曲面上に射影することにより、変形される面の稜線を生成するステップと、を実行する３次元形状処理方法を特徴とする。
また、請求項４記載の発明は、３次元形状モデルの形状を変形する３次元形状処理方法において、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、制御手段は、入力装置により指定された移動先点が前記母曲面上にのっていない場合、前記移動先点を前記母曲面上に移動するステップと、前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とを、各面について直線、少なくとも一方の端点における接線ベクトルが前記稜線の対応する端点における接線ベクトルと同じになる曲線、または少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線の何れかで結ぶステップと、該曲線を前記母曲面上に射影することにより、変形される面の稜線を生成するステップと、を実行する３次元形状処理方法を特徴とする。
また、請求項５記載の発明は、請求項１乃至４の何れか１項記載の３次元形状処理方法において、制御手段は、入力装置によって指定された前記移動先点を最寄りの前記母曲面上に射影し、当該母曲面上の射影された点に前記移動先点を移動する３次元形状処理方法を特徴とする。
【０００５】
また、請求項６記載の発明は、請求項１乃至５の何れか１項記載の３次元形状処理方法において、移動させた頂点を共有する各面について、前記母曲面の情報を記憶しておくか否かを指定可能にした３次元形状処理方法を特徴とする。
また、請求項７記載の発明は、請求項１乃至６の何れか１項記載の３次元形状処理方法をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体を特徴とする。
【０００６】
【作用】
前記のような手段にしたので、請求項１記載の発明では、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、入力装置により指定された移動先点が前記母曲面にのっていない場合、前記移動先点が前記母曲面上に移動され、抽出された前記共通の母曲面を有する面の稜線における、前記頂点とは反対側の端点と、前記母曲面に移動後の前記頂点とを直線で結ぶステップと、前記直線を前記母曲面上に射影することにより変形される面の稜線が生成される。
請求項２記載の発明では、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、入力装置により指定された移動先点が前記母曲面上にのっていない場合、前記移動先点が前記母曲面上に移動され、前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とが、少なくとも一方の端点における接線ベクトルが前記稜線の対応する端点における接線ベクトルと同じになる曲線で結ばれ、該曲線が前記母曲面上に射影されることにより、変形される面の稜線が生成される。
請求項３記載の発明では、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、入力装置により指定された移動先点が前記母曲面にのっていないならば、前記移動先点が前記母曲面上に移動され、前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とが、少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線で結ばれ、該曲線が前記母曲面上に射影されることにより、変形される面の稜線が生成される。
請求項４記載の発明では、前記３次元形状モデル中の一つの母曲面から切り取った複数の面により共有される頂点を移動して前記複数の面を変形する際に、入力装置により指定された移動先点が前記母曲面上にのっていない場合、前記移動先点が前記母曲面上に移動され、前記共通の母曲面を有する面の稜線における前記頂点とは反対側の端点と、前記母曲面上に移動後の前記頂点とが、各面について直線、少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線、または少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じになる曲線の何れかで結ばれ、該曲線が前記母曲面上に射影されることにより、変形される面の稜線が生成される。
請求項５記載の発明では、請求項１乃至４記載の発明において入力装置によって指定された前記移動先点が最寄りの前記母曲面上に射影され、当該母曲面上の射影された点に前記移動先点が移動される。
【０００７】
請求項６記載の発明では、請求項１乃至５記載の発明において、移動させた頂点を共有する各面について、前記母曲面の情報を記憶しておくか否かが指定可能になった。
請求項７記載の発明では、請求項１乃至６記載の３次元形状処理方法に従ってプログラミングしたプログラムが例えば着脱可能な記憶媒体に記憶される。
【０００８】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図２は本発明の各実施例の３次元形状処理装置のハードウェアを示す構成ブロック図である。図示したように、この実施例の３次元形状処理装置は、プログラムに従って装置全体を制御したり本発明に係わる処理を含む３次元形状処理を行ったりするＣＰＵ１、プログラムやデータを一時的に記憶するメモリ２、プログラムや３次元形状データなど各種データを記憶しておく外部記憶装置３、マウスやキーボードなどを有して、データを入力したり指示を与えたりする入力装置４、３次元形状データから生成した３次元形状モデルなどを表示する表示装置５、そのような３次元形状モデルなどを用紙上に印刷する印刷装置６などを備えている。本発明の各実施例はこのようなハードウェアと、メモリ２などに記憶されたプログラムによって実現される。
【０００９】
<第１実施例>
図１は、本発明の第１の実施例の動作を示すフローチャートである。以下、図１などの図面に従って、第１の実施例の動作を説明する。
まず、ＣＰＵ１は入力装置４を用いて利用者により指定された３次元形状モデルを表示装置５に表示させる。そして、利用者が例えば入力手段であるマウスにより複数の面に共有されている頂点とその頂点の移動先を指定すると、指定された位置情報をマウスから取得し、その位置情報から指定された頂点を識別するとともに、指定された移動先の３次元座標を取得する（Ｓ１）。
続いて、ＣＰＵ１は外部記憶装置３からメモリ２に読み出しておいた前記３次元形状モデルの３次元形状データを走査して頂点まわりの複数のトリム面を識別し、そのなかから、共通母曲面を持つ面を抽出する。なお、母曲面とは、一般に複数の境界稜線で囲まれた面を含む母体となる曲面である。このような形状を一義的に表現する母曲面情報をもっている。図５に示したように、境界曲線（境界稜線，図５の例では最も外側の４本の曲線）の形状が同じでも内部の制御点（図５の例では、点線で結ばれた複数の点）の位置が違うと曲面の形状は異なる。このため母曲面情報として、境界曲線の制御点だけでなく、内部の制御点の座標値なども情報として持つのである。これにより、その制御点の座標値などを曲面表現形式で与えられる数式に当てはめて、曲面上の各座標値を求めることができる。
次に、ＣＰＵ１は前記共通母曲面を持つ例えば複数の面のなかから母曲面情報を捨てない面を入力手段（マウスなど）により指定させる。なお、共通母曲面を持つ面のいずれの面についても母曲面情報を捨てない場合には、捨てない面の指定は不要である。
さらに、ＣＰＵ１は指定された頂点の移動先の座標Ｐ(x1,y1,z1)が前記母曲面Ｓ上にのっているか否かを判定する（図３参照）。例えば母曲面Ｓの母曲面情報を用いてパラメータ（u,v）空間の範囲を絞り込み、その範囲内でu,v各方向のパラメータ値（u,vの値）を所定量づつ増加させながら走査して座標(x1,y1,z1)が、当該母曲面上（母曲面関数で示される1点）にあるか否かを調べる。そして、のっていないと判定されたならば、図３(b)に示したように座標Ｐを母曲面Ｓに射影する（Ｓ２）。この射影は、座標Ｐから母曲面Ｓに直交するように下ろした直線が母曲面Ｓと交わる座標Paを求め、その点を頂点の真の移動先Va（図４(b)参照）とする。そして、移動した頂点を端点としていた各稜線のこれまでの端点座標を真の移動先の点の座標に変更する（Ｓ３）。
【００１０】
次に、移動した頂点につながっていた各稜線（換言すれば頂点から求めれる稜線）について、移動した端点とは反対側の端点と移動後の母曲面に射影された頂点とを直線で結び（図４(b)参照）（Ｓ４）、その直線をその母曲面に射影した曲線を求める（図４(c)参照）（Ｓ５）。次いで、前記射影と同様にして、これまでのその稜線の形状データを射影して求めた曲線の形状データに変更する（Ｓ６）。また、移動した頂点につながっているが、母曲面の形状が異なっているような場合、例えば図10に示した３次元形状の面（上面）については、これまでの曲面情報を捨てて、例えば表示する際に、新たに生成された境界稜線の３次元形状データから、曲面を生成する。４本の境界稜線で囲まれた面について言えば、その面内の各点の座標値は、内部制御点を当業者には公知の方法に従って算出し、それらの制御点の座標値を曲面表現形式によって与えられる数式に当てはめることにより求めることができる。
そして、変形後の稜線と面の情報が求まると、ＣＰＵ１はその情報に基づいて表示データを作成し、変形された３次元形状モデル、例えば図10(b)に示したような３次元形状を表示装置５などに出力する（Ｓ７）。
こうして、本実施例によれば、指定した移動先が母曲面上にない場合でも、移動先の頂点が元々の母曲面上にのっていることが利用者の意図であるならば、移動先を母曲面上に移動させることにより、頂点まわりの面の母曲面の曲面情報を一部の面以外は捨てずに用いることができる。なお、利用者の意図が母曲面の他の地点に移動させる場合には、メニュー選択などで指示することができる。また、前記のように、元の稜線の形状に係わりなく移動先の頂点と直線で結んだ場合、稜線の変更前後で稜線の類似性が失われてしまうことがある。この問題は移動先が母曲面からずれてしまうことに係わる本発明の問題とは切り離して処理することができ、本第１の実施例では触れない様々な方法で解決することができる。
【００１１】
<第２実施例>
図６は、本発明の第２の実施例を示す動作フロー図である。以下、図６などに基づいて、第２の実施例の動作を説明する。
まず、ＣＰＵ１は入力装置４を用いて利用者により指定された３次元形状モデルを表示装置５に表示させる。そして、利用者がマウスなどを用いて複数の面により共有されている頂点とその移動先を指定すると、指定された位置情報をマウスから取得し、その位置情報から指定された頂点を識別するとともに、指定された移動先の３次元座標を取得する（Ｓ11）。
次いで、ＣＰＵ１は外部記憶装置３からメモリ２に読み出しておいた前記３次元形状モデルの３次元形状データを走査して頂点まわりの複数のトリム面を識別し、そのなかから、共通母曲面を持つ面を抽出する。
次に、ＣＰＵ１は前記共通母曲面を持つ例えば複数の面のなかから母曲面情報を捨てない面をマウスなどにより指定させる。なお、共通母曲面を持つ面のいずれの面についても母曲面情報を捨てない場合には、捨てない面の指定は不要である。
さらに、ＣＰＵ１は指定された頂点の移動先の座標Ｐ(x1,y1,z1)が前記母曲面Ｓ上にのっている（母曲面を規定する関数の少なくとも１点）か否かを第１の実施例と同様にして判定する（図３参照）。そして、のっていない（面内にない）と判定されたならば、図３(b)に示したように座標Ｐを母曲面Ｓに射影する（Ｓ12）。この射影は、座標Ｐから母曲面Ｓに直交するように下ろした直線が母曲面Ｓと交わる座標Paを求め、その点を頂点の真の移動先Va（図４(b)参照）とする。そして、移動した頂点を端点としていた各稜線のこれまでの端点座標を真の移動先の点の座標に変更する（Ｓ13）。
次に、移動した頂点につながっていた各稜線について、移動した端点とは反対側の端点と移動後の母曲面に射影された頂点とを線で結ぶ。その際に、その線の少なくとも一方の端点における接線ベクトルを変形前の稜線の対応する端点における接線ベクトルと同じにする（Ｓ14）。例えば図７(a)に示した、５次のBezier曲線である元の稜線について、(b)図の例のように、頂点を移動しなかった端点a側だけ移動前後の接線ベクトルと同じにするか（換言すれば接線ベクトルを抽出する）、(c)図の例のように、両端点で移動前後の接線ベクトルを同じにするのである。なお、(b)図の例では、制御点b,c,d,eをいずれも移動させずに、それらの制御点を用いてa,bを端点とする曲線を求め、(c)図の例では、制御点b,c,dについては移動させず、制御点eについては、端点fと相対位置関係を同じにしたまま移動させ、そのような制御点を用いてa,bを端点とする曲線を求める。また、図８は３次のBezier曲線の例で、頂点Vを頂点Vaへ、稜線の両端点で接線ベクトルを保存したまま移動させた例を示している。
【００１２】
続いて、その曲線を母曲面に射影して母曲面上に曲線を求める（Ｓ15）。これは、変形前のその稜線の形状データを、母曲面上に射影して求め、これを曲線の形状データに変更する（Ｓ16）。また、移動した頂点につながっているが、母曲面の形状が異なっている面、例えば図10に示した３次元形状の上面についてはこれまで持っていた曲面情報を捨て、例えば表示するときに新たに生成された境界稜線の３次元形状データを用いて、曲面を生成する。
そして、変形後の稜線と面の情報が求まると、ＣＰＵ１はその情報に基づいて表示データを作成し、変形された３次元形状モデルを表示装置５を介して出力する（Ｓ17）。
こうして、本第２の実施例によれば、指定した移動先が母曲面上からずれていても、移動先の頂点が元々の母曲面上にのっていることが利用者の意図であるならば、移動先を母曲面上に移動させることにより、頂点まわりの面の母曲面の曲面情報を一部の面以外は捨てずに用いることができるし、変形された稜線の端点の接線ベクトルを変更前と同じにすることができるので、変形された稜線の類似性を保持することができる。換言すれば、母曲面上に稜線を射影して、新たな稜線を生成することができる。
【００１３】
<第３実施例>
図９は、本発明の第３の実施例の動作を示すフローチャートである。以下、図９などによって、第３の実施例の動作を説明する。
まず、ＣＰＵ１は入力装置４を用いて利用者により指定された３次元形状モデルを表示装置５に表示させる。そして、利用者が前記実施例同様にマウスなどを用いて、複数の面により共有されている頂点とその移動先を指定すると、指定された位置情報をマウスから取得し、その位置情報から指定された頂点を識別するとともに、指定された移動先の３次元座標を取得する（Ｓ21）。
続いて、ＣＰＵ１は外部記憶装置３からメモリ２に読み出しておいた前記３次元形状モデルの３次元形状データを走査して頂点まわりの複数のトリム面を識別し、そのなかから、共通母曲面を持つ面を抽出する。
次に、ＣＰＵ１は指定された頂点の移動先の座標Ｐ(x1,y1,z1)が前記母曲面Ｓ上にのっているか否かを第１の実施例と同様にして判定する（図３参照）。そして、のっていないと判定されたならば、図３(b)に示したように座標Ｐを母曲面Ｓに射影する（Ｓ22）。そして、移動した頂点を端点としていた各稜線のこれまでの端点座標を真の移動先の点の座標に変更する（Ｓ23）。
次に、移動した頂点につながっていた各稜線について、移動した端点とは反対側の端点と移動後の母曲面に射影された頂点とを曲線で結ぶのであるが、その際、その線の少なくとも一方の端点における２次微分ベクトルを変形前の稜線の対応する端点における接線ベクトルと同じにする（Ｓ24）。
次いで、その曲線を母曲面に射影した曲線を求める（Ｓ25）。そして、変形前のその稜線の形状データを、射影して求めた曲線の形状データに変形する（Ｓ26）。また、移動した頂点につながっているが、母曲面の形状が異なっている面、例えば図10に示した３次元形状の上面についてはこれまで持っていた曲面情報を捨て、例えば表示する際に、新たに生成された境界稜線の３次元形状データを用いて生成する。
そして、変形後の稜線と面の情報が求まると、ＣＰＵ１はその情報に基づいて表示データを作成し、変形された３次元形状モデルを表示装置５などに出力する（Ｓ27）。
こうして、本実施例によれば、指定した移動先が母曲面上からずれていても、移動先の頂点が元々の母曲面上にのっていることが利用者の意図であるならば、移動先を母曲面上に移動させることにより、頂点まわりの面の母曲面の曲面情報を一部の面以外は捨てずに用いることができるし、変形された稜線の端点の２次微分ベクトルを変更前と同じにすることができるので、変形された稜線の類似性を保持することができる。
【００１４】
<第４実施例>
また、本発明の第４の実施例では、移動前の頂点を共有するとともに形状の等しい母曲面上にあったそれぞれの稜線について、その頂点とは反対側の端点と母曲面に射影された移動後の頂点とを稜線ごとに別個に第１の実施例乃至第３の実施例のいずれの結び方法で結ぶかを指定させ、指定された方法により線で結び、その線を前記頂点を移動させた母曲面上に射影することにより、変形される面の稜線を生成する。
例えば、稜線Ａは実施例１に示したように２つの端点（一方の端点は移動後の頂点）を直線で結び，稜線Ｂは実施例２に示したように少なくとも一方の端点における接線ベクトルが保存されるように曲線で結び、稜線Ｃは実施例３に示したように少なくとも一方の端点における２次微分ベクトルが保存されるように曲線で結ぶ。
あるいは、例えば、稜線Ａは実施例１に示したように２つの端点を直線で結び、稜線Ｂおよび稜線Ｃは実施例２に示したように少なくとも一方の端点における接線ベクトルが保存されるように曲線で結ぶ。
こうして、第４の実施例では、稜線の形状などに応じて適切な方法で変更後の稜線を生成することができる。
また、前記各実施例について、移動された頂点まわりの各面について、母曲面の情報を記憶しておくか否かを指定できるようにした構成も可能である。例えば操作開始時にメッセージを表示させ、各母曲面について母曲面情報を記憶しておくか否かを指定させる。そして、記憶しておかないと指定された母曲面情報については直ちに削除し、表示する場合など、その母曲面情報が必要になったときには境界稜線の形状データを用いて算出する。
こうして、この実施例においてはメモリ容量を節約することができる。
また、以上の説明では、頂点を共有している面中に形状の等しい母曲面を持つ複数の面がある場合にその母曲面上に頂点を移動するものとしたが、形状の等しい母曲面がない場合にも、指定された移動先を最寄（最近）の母曲面に射影することによりその母曲面の曲面情報を移動後も用いることができる。但し、複数の面が共通の母曲面を共有している場合にはその複数の面でこの母曲面情報を移動後も用いることができるが、そうでない場合には、母曲面情報を用いることができるのは一つの面だけである。
また、以上説明したような本発明による３次元形状処理方法に従って処理できるようにプログラミングしたプログラムを例えば着脱可能な記憶媒体に記憶し、その記憶媒体をこれまで本発明によった３次元形状処理を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置において本発明によった３次元形状処理を行うこともできる。
【００１５】
【発明の効果】
以上説明したように、本発明によれば、請求項１記載の発明では、３次元形状モデル中の複数の面により共有された頂点を移動して前記複数の面を変形する際、前記頂点の移動先が一つの母曲面上である場合、指定された移動先点が前記母曲面にのっていないならば、前記移動先点を前記母曲面上に移動する修正が行なわれ、その修正結果を用いて面が変形されるので、指定された移動先が母曲面上からずれていても、頂点まわりの少なくとも一つの面の母曲面の曲面情報を捨てずに用いることができる。また、移動前の頂点を共有するとともに移動後の頂点がのる母曲面上にあったそれぞれの稜線の前記頂点とは反対側の端点と前記母曲面に射影された移動後の頂点とが直線で結ばれ、その直線が前記母曲面上に射影されて、変形される面の稜線が生成されるので、上記の効果に加え、極めて簡単な処理で形状を変更することができる。
また、請求項２記載の発明では、３次元形状モデル中の複数の面により共有された頂点を移動して前記複数の面を変形する際、前記頂点の移動先が一つの母曲面上である場合、指定された移動先点が前記母曲面にのっていないならば、前記移動先点を前記母曲面上に移動する修正が行なわれ、その修正結果を用いて面が変形されるので、指定された移動先が母曲面上からずれていても、頂点まわりの少なくとも一つの面の母曲面の曲面情報を捨てずに用いることができる。また、移動前の頂点を共有するとともに移動後の頂点がのる母曲面上にあったそれぞれの稜線の、前記頂点とは反対側の端点と前記母曲面に射影された移動後の頂点とが曲線で結ばれるとともに、その曲線の少なくとも一方の端点における接線ベクトルが前記稜線の対応する端点における接線ベクトルと同じにされ、その曲線が前記頂点を移動させた母曲面上に射影されて、変形される面の稜線が生成されるので、形状変更前後における稜線の類似性を維持しつつ、上記の効果を得ることが出来る。
また、請求項３記載の発明では、３次元形状モデル中の複数の面により共有された頂点を移動して前記複数の面を変形する際、前記頂点の移動先が一つの母曲面上である場合、指定された移動先点が前記母曲面にのっていないならば、前記移動先点を前記母曲面上に移動する修正が行なわれ、その修正結果を用いて面が変形されるので、指定された移動先が母曲面上からずれていても、頂点まわりの少なくとも一つの面の母曲面の曲面情報を捨てずに用いることができる。また、移動前の頂点を共有するとともに移動後の頂点がのる母曲面上にあったそれぞれの稜線の、前記頂点とは反対側の端点と前記母曲面に射影された移動後の頂点とが曲線で結ばれるとともに、その曲線の少なくとも一方の端点における２次微分ベクトルが前記稜線の対応する端点における２次微分ベクトルと同じにされ、その曲線が前記頂点を移動させた母曲面上に射影されて、変形される面の稜線が生成されるので、同様に、形状変更前後における稜線の類似性を維持しつつ、上記の効果を得ることができる。
【００１６】
また、請求項４記載の発明では、３次元形状モデル中の複数の面により共有された頂点を移動して前記複数の面を変形する際、前記頂点の移動先が一つの母曲面上である場合、指定された移動先点が前記母曲面にのっていないならば、前記移動先点を前記母曲面上に移動する修正が行なわれ、その修正結果を用いて面が変形されるので、指定された移動先が母曲面上からずれていても、頂点まわりの少なくとも一つの面の母曲面の曲面情報を捨てずに用いることができる。また、移動前の頂点を共有するとともに移動後の頂点がのる母曲面上にあったそれぞれの稜線について、前記頂点とは反対側の端点と前記母曲面に射影された移動後の頂点との結び方法として、稜線ごとに別個に請求項１乃至３記載のいずれかの結び方法が指定され、指定された方法により線で結ばれ、その線が前記頂点を移動させた母曲面上に射影されて、変形される面の稜線が生成されるので、上記の効果とともに、稜線の形状などに応じて適切な形状変更を行うことができる。
請求項５記載の発明では、移動前の頂点を共有するとともに移動後の頂点がのる母曲面上にあったそれぞれの稜線の、前記頂点とは反対側の端点と前記母曲面に射影された移動後の頂点とが曲線で結ばれるとともに、その曲線の少なくとも一方の端点における接線ベクトルが前記稜線の対応する端点における接線ベクトルと同じにされ、その曲線が前記頂点を移動させた母曲面上に射影されて、変形される面の稜線が生成されるので、形状変更前後における稜線の類似性を維持しつつ、請求項１乃至４の効果を得ることが出来る。
請求項６に記載の発明では、移動させた頂点まわりの各面について、母曲面の情報を記憶しておくか否かを指定することができるので、メモリ容量を節約することができる。
請求項７に記載の発明では、請求項１乃至６記載の３次元形状処理方法に従ってプログラミングしたプログラムが例えば着脱可能な記憶媒体に記憶されるので、その記憶媒体をこれまで請求項１乃至６記載の発明によった３次元形状処理を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置において請求項１乃至６記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施例を示す３次元形状処理方法の動作フロー図である。
【図２】本発明の各実施例の３次元形状処理装置のハードウェアを示す構成ブロック図である。
【図３】本発明の第１の実施例を示す３次元形状処理方法の説明図である。
【図４】本発明の第１の実施例を示す３次元形状処理方法の他の説明図である。
【図５】本発明の第１の実施例を示す３次元形状処理方法に係わる説明図である。
【図６】本発明の第２の実施例を示す３次元形状処理方法の動作フロー図である。
【図７】本発明の第２の実施例を示す３次元形状処理方法の説明図である。
【図８】本発明の第２の実施例を示す３次元形状処理方法の他の説明図である。
【図９】本発明の第３の実施例を示す３次元形状処理方法の動作フロー図である。
【図１０】従来技術および本発明の３次元形状処理方法に係わる説明図である。
【図１１】従来技術および本発明の３次元形状処理方法に係わる他の説明図である。
【符号の説明】
１  ＣＰＵ、２  メモリ、３  外部記憶装置、４  入力装置、５  表示装置
【図１】
0004096326.tif 000002
【図２】
0004096326.tif 000003
【図３】
0004096326.tif 000004
【図４】
0004096326.tif 000005
【図５】
0004096326.tif 000006
【図６】
0004096326.tif 000007
【図７】
0004096326.tif 000008
【図８】
0004096326.tif 000009
【図９】
0004096326.tif 000010
【図１０】
0004096326.tif 000011
【図１１】
0004096326.tif 000012