(57)【要約】【課題】３次元空間内の座標系を定義するパラメータを直感的且つすばやく、且つ正確に指定することができる座標系定義方法を提供する。【解決手段】３次元座標系を３次元空間内に定義する座標系定義方法において、定義される座標系を決定するためのパラメータ指定の際、表示された３次元形状モデルのなかから、利用者に１番目の頂点Ｐ１をポインティング装置により入力させ（Ｓ１）、この結果得られたＰ１の座標値を、定義する座標系の原点とし（Ｓ２）、次に、２番目の頂点Ｐ２を入力させ（Ｓ３）、前記原点から点Ｐ２までの方向Ｖ１を、定義する座標系のＸ軸方向とし（Ｓ４）、さらに、３番目の頂点Ｐ３を入力させ（Ｓ５）、前記原点から点Ｐ３までの方向Ｖ２を、定義する座標系のＺ軸方向とし（Ｓ６）、Ｖ１とＶ２との外積をＹ軸方向とする構成にした。【選択図】　　　図２
2004094751.tif 000002
【特許請求の範囲】
【請求項１】
３次元座標系を３次元空間内に定義する座標系定義方法において、定義される座標系の二つの軸を含む平面として表わされる作業平面を決定するパラメータを指定させる際、表示された既存の要素のなかから前記パラメータ指定の基準として用いる要素を指定させることを特徴とする座標系定義方法。
【請求項２】
請求項１記載の座標系定義方法において、原点座標および二つの軸方向を指示して作業平面を決定する場合、既存の要素として、原点となる頂点と、その頂点から前記二つの軸方向を指示するための他の二つの頂点とを指定させることを特徴とする座標系定義方法。
【請求項３】
請求項２記載の座標系定義方法において、二つの軸をＸ軸およびＹ軸としたことを特徴とする座標系定義方法。
【請求項４】
請求項１、請求項２、または請求項３記載の座標系定義方法において、基準となるパラメータの重要度をあらかじめ決めておき、指定された前記要素によって作業平面を決定するパラメータが正確に求まらない場合、重要度の低いパラメータを重要度の高いパラメータによって変更することを特徴とする座標系定義方法。
【請求項５】
請求項４記載の座標系定義方法において、重要度の低いパラメータを重要度の高いパラメータによって変更する際、試行錯誤による再変更を可能にしたことを特徴とする座標系定義方法。
【請求項６】
請求項１乃至請求項５のいずれか１項に記載の座標系定義方法において、前記要素を基準として指定させる際、ポインティング装置を用いて指定させることを特徴とする座標系定義方法。
【請求項７】
情報処理装置上で実行されるプログラムにおいて、請求項１乃至請求項６のいずれか１項に記載の座標系定義方法によった座標系定義を実行させるようにプログラミングされていることを特徴とするプログラム。
【請求項８】
プログラムを記憶した記憶媒体において、請求項７記載のプログラムを記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＡＤ装置など専用の３次元形状処理装置やパーソナルコンピュータなど汎用の情報処理装置において実施される、３次元空間内の座標系定義方法に係わり、特に、画面を用いてインタラクティブに定義することができる座標系定義方法に関する。
【０００２】
【従来の技術】
グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭ装置など３次元形状処理装置では、従来より、画面を用いて３次元形状を生成したり、生成されている３次元形状を変形させたり、様々な検証をおこなったりしている。
そのような画面を用いた操作時に、３次元形状処理システムでは、３次元空間内の仮想的な平面（ここでは作業平面と呼ぶ）を用いて作業をすることがある。そのような場合、利用者は例えばＸ軸およびＹ軸を含む平面として定義される作業平面を定義する変換マトリックスのパラメータを何らかの手段で入力しなければならない。
しかしながら、従来、直感的且つすばやくそのパラメータを指定する方法はなかった。例えば、表示されている３次元形状モデルの座標系とは異なる新たな座標系を定義したい場合、表示されているその３次元形状モデルの座標系を表示させ、マウスなどポインティング装置によりその座標系の原点の位置をドラッグして移動させたり、座標軸をドラッグして回転させたりして座標系を定義するというような方法では、正確な定義が不可能であるので、従来は、原点、Ｘ軸方向、Ｙ軸方向などパラメータをキーボードを用いて数字で入力せざるを得なかったのである。
【０００３】
【発明が解決しようとする課題】
前記したように、従来技術においては、３次元空間内の座標系を正確に定義したい場合、直感的且つすばやくそのパラメータを指定することができなかった。
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、３次元空間内の座標系を定義するパラメータを直感的且つすばやく、且つ正確に指定することができる座標系定義方法を提供することにある。
【０００４】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、３次元座標系を３次元空間内に定義する座標系定義方法において、定義される座標系の二つの軸を含む平面として表わされる作業平面を決定するパラメータを指定させる際、表示された既存の要素のなかから前記パラメータ指定の基準として用いる要素を指定させる構成にしたことを特徴とする。
また、請求項２記載の発明では、請求項１記載の発明において、原点座標および二つの軸方向を指示して作業平面を決定する場合、既存の要素として、原点となる頂点と、その頂点から前記二つの軸方向を指示するための他の二つの頂点とを指定させる構成にしたことを特徴とする。
また、請求項３記載の発明では、請求項２記載の発明において、二つの軸をＸ軸およびＹ軸としたことを特徴とする。
また、請求項４記載の発明では、請求項１、請求項２、または請求項３記載の発明において、基準となるパラメータの重要度をあらかじめ決めておき、指定された前記要素によって作業平面を決定するパラメータが正確に求まらない場合、重要度の低いパラメータを重要度の高いパラメータによって変更する構成にしたことを特徴とする。
また、請求項５記載の発明では、請求項４記載の発明において、重要度の低いパラメータを重要度の高いパラメータによって変更する際、試行錯誤による再変更を可能にしたことを特徴とする。
また、請求項６記載の発明では、請求項１乃至請求項５のいずれか１項に記載の発明において、前記要素を基準として指定させる際、ポインティング装置を用いて指定させる構成にしたことを特徴とする。
また、請求項７記載の発明では、情報処理装置上で実行されるプログラムにおいて、請求項１乃至請求項６のいずれか１項に記載の座標系定義方法によった座標系定義を実行させるようにプログラミングされている構成にしたことを特徴とする。
また、請求項８記載の発明では、プログラムを記憶した記憶媒体において、請求項７記載のプログラムを記憶したことを特徴とする。
【０００５】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明が実施されるパーソナルコンピュータなど情報処理装置のハードウェア構成図である。図示したように、この情報処理装置は、プログラムに従って動作するＣＰＵ１、そのプログラムや各種データを一時的に記憶するメモリ（例えばＲＡＭ）２、前記プログラムや各種データを保存しておく外部記憶装置（例えばハードディスク記憶装置）３、データや指示を入力する入力装置であるキーボード４およびマウスなどポインティング装置５、３次元形状などを表示する表示装置６を備える。そして、前記プログラム（ソフトウェア）の一つとして、例えば３次元ＣＡＤプログラムなど、３次元空間中に平面を定義する必要がある既存のプログラムを用い、そのユーザーインターフェースに以下の動作フローに説明するようなプログラムを組み込む。これにより、利用者にとって自然で使いやすいパラメータ入力による座標系定義機能を実現できる。
前記したような構成で、本発明の第１の実施例の情報処理装置では、画面上に表示する３次元の座標系を定義するに当たり、定義される座標系の二つの座標軸（例えばＸ軸とＹ軸）を含む平面として表わされる作業平面を決定するパラメータを指定させる際、表示されている３次元形状モデル中の既存の要素を基準として指定させる。なお、以下においては、マウスなどポインティング装置を用いて画面上で頂点などの位置を指示することをピックと呼ぶ。
まず、３点を指示することにより前記作業平面を指定する場合について、その３点を結ぶ直線のうちの２直線が直交している例を図２に示した動作フロー図および図３に示した説明図などにより説明する。なお、この例では、最も単純なケースとして、座標系を決定するのに適当な要素として、既に直方体が存在している（表示されている）ものとしている。画面上でその直方体の頂点をピックし、その座標情報などを用いて作業平面を定義するのである。
【０００６】
この場合、まず、プログラムに従って（以下、同様）ＣＰＵ１が利用者に原点とする頂点の入力を促す（Ｓ１）。そして、利用者がＰ１（図３（ａ）参照）をピックすると、ＣＰＵ１はこの結果得られた座標値Ｐ１（ｘ１，ｙ１，ｚ１）を、定義する作業平面の原点とする（Ｓ２）（図３（ａ）参照）。
次に、ＣＰＵ１は利用者に２番目の頂点の入力を促す（Ｓ３）。そして、利用者のピックにより入力された直方体上の他の点Ｐ２（ｘ２，ｙ２，ｚ２）の座標情報を取得すると、先に入力してあった原点から点Ｐ２までの方向Ｖ１（ｘ２−ｘ１，ｙ２−ｙ１，ｚ２−ｚ１）を、定義する作業平面のＸ軸方向とする（Ｓ４）（図３（ｂ）参照）。
最後に、利用者に３番目の点Ｐ３（ｘ３，ｙ３，ｚ３）の入力を促す（Ｓ５）。そして、利用者のピックにより入力された点Ｐ３の座標情報を取得すると、先に入力してあった原点から点Ｐ３までの方向Ｖ２（ｘ３−ｘ１，ｙ３−ｙ１，ｚ３−ｚ１）を、定義する作業平面のＺ軸方向、つまり法線方向とする（Ｓ６）（図３（ｃ）参照）。
こうして、平面のパラメータが決定され、作業平面の定義が完了する（図４参照）。例えば、Ｖ１の成分を（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）、同様にＶ２の成分を（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）、また、Ｖ１とＶ２から求められる外積をＶ３（Ｖ３ｘ，Ｖ３ｙ，Ｖ３ｚ）とし、これをＹ軸方向とした場合には、元の座標（そのとき表示されている３次元形状モデルが存在する３次元空間の座標）からこの平面を基準とした座標への４×４変換マトリックスは以下のように表現できる。
［Ｖ１ｘ，Ｖ３ｘ，Ｖ２ｘ，０．０］
［Ｖ１ｙ，Ｖ３ｙ，Ｖ２ｙ，０．０］
［Ｖ１ｚ，Ｖ３ｚ，Ｖ２ｚ，０．０］
［−（Ｐ１ｘ×Ｖ１ｘ＋Ｐ１ｙ×Ｖ１ｙ＋Ｐ１ｚ×Ｖ１ｚ），−（Ｐ１ｘ×Ｖ３ｘ＋Ｐ１ｙ×Ｖ３ｙ＋Ｐ１ｚ×Ｖ３ｚ），−（Ｐ１ｘ×Ｖ２ｘ＋Ｐ１ｙ×Ｖ２ｙ＋Ｐ１ｚ×Ｖ２ｚ），１．０］
こうして、この実施例によれば、頂点など、表示された既存の要素を用いて作業平面の定義を簡単な操作でおこなうことができる。また、指示された各点は指し示された位置が不正確であっても、既存の頂点であるので、正確な座標値が得られる。
【０００７】
本発明の第２の実施例では、基準となるパラメータの重要度をあらかじめ決めておき、指定された要素によって作業平面を決定するパラメータが正確に求まらない場合、重要度の低いパラメータを重要度の高いパラメータによって変更する。以下、そのような例として、３点を結ぶ直線のうちの２直線が直交していない一般的な場合について説明する。なお、この例では、Ｐ１（原点）とＰ２（Ｘ軸方向）が重要度の高いパラメータで、Ｐ３（Ｚ軸方向）が重要度の低いパラメータである。
前記した第１の実施例では、指示された各点を結ぶ方向がそれぞれ直交しているので、そのままの情報で平面を定義することができるが、ここでは、直方体以外の要素を用いても平面を定義できるように、指示された点の座標値から作業平面を計算する方法を一般化する。
図５（ａ）に示した例のように、指示された３点を結ぶ線が直交しない場合には、指示されたＸ軸方向を固定し、指示されたＺ軸方向をＸ軸方向と直交するように自動的に修正して（図５（ｂ）参照）平面を定義できるパラメータを算出する。この場合、図６に示したような平面Ｆを作業平面として定義することを利用者が意図しているとする。図６に示した平面Ｆは、Ｘ軸を指示するために使われた点Ｐ１，Ｐ２（図５参照）で定義される稜線に接し、法線（Ｚ軸方向）は以下で説明する方法に則って算出された方向である。
【０００８】
図７はＺ軸方向を算出する方法を示す説明図である。図７において、Ｖ１は利用者が指示した１点目Ｐ１、２点目Ｐ２から決められるＸ方向ベクトルであり、Ｖ２は前記１点目Ｐ１、３点目Ｐ３から決定できる仮のＺ軸方向ベクトルである。これらの方向ベクトルは直交しているとは限らないので、このままでは平面の定義には不都合である。そこで、ＣＰＵ１は、Ｖ２を、Ｖ１を基準にして直交するように修正する。つまり、Ｖ１とＶ２の外積Ｖ１×Ｖ２を生成し、この外積とＶ１との外積Ｖ３（Ｖ１×Ｖ２×Ｖ１）を求める。このとき、Ｖ３はＶ１に直交するようにＶ２を回転移動させた方向となる。このような方向のＶ３をＺ軸方向として用いる。変換マトリックスは第１の実施例と同様である。外積Ｖ３の計算はＶ１の成分を（Ｖ１ｘ，Ｖ１ｙ，Ｖ１ｚ）、Ｖ２の成分を（Ｖ２ｘ，Ｖ２ｙ，Ｖ２ｚ）とした場合、以下の通りである。
Ｖ３ｘ＝Ｖ１ｙ×Ｖ２ｚ−Ｖ１ｚ×Ｖ２ｙ
Ｖ３ｙ＝Ｖ１ｚ×Ｖ２ｘ−Ｖ１ｘ×Ｖ２ｚ
Ｖ３ｚ＝Ｖ１ｘ×Ｖ２ｙ−Ｖ１ｙ×Ｖ２ｘ
こうして、平面を定義するためのパラメータとして適切な、それぞれ直交するＶ１，Ｖ２，Ｖ３が求まり、作業平面の定義が完了する。
このように、本発明の第２の実施例によれば、指示された要素によって作業平面を決定するパラメータが正確に求まらない場合でも、作業平面の定義を簡単な操作でおこなうことができる。
【０００９】
なお、第２の実施例では、重要度の低いパラメータを重要度の高いパラメータによって変更する際、試行錯誤による再変更が可能である。図５に示した例では直方体を元にしているので、指定する頂点の位置関係がだいたい直角になるので、試行錯誤することはあまりないが、これが例えば不定形（いろいろな位置に頂点を有する形状）だったとすると、どの頂点とどの頂点を指定すれば直角に交わる座標軸の指示ができるかというのはすぐにはわからない。しかし、この実施例によれば、入力するパラメータは必ずしも直角に交わっている必要はないので、利用者が適当な頂点を入力していくことで（必ずしも直角に交わるような頂点をパラメータとして入力することなしに）座標系を決定できるし、もし、生成された座標系が気に入らなかったら、そのときの指定を取り消し、指定しなおすことができるのである。例えば、画面に「取り消し」というボタン（アイコン）を表示させ、マウスなどポインティング装置によりそのボタンが指示されたことを認識すると、ＣＰＵ１はそのとき取得されている結果を破棄し、動作フローを例えばＰ１指定のステップに戻す。
以上、作業平面をＸ軸およびＹ軸を含む面とする場合で説明したが、作業平面はＹ軸とＺ軸を含む面、またはＺ軸とＸ軸を含む面でもよく、その場合も同様にして本発明によった３次元空間内の座標系定義をおこなうことができる。
また、以上説明したような本発明の座標系定義方法にしたがってプログラミングしたプログラムを着脱可能な記憶媒体に記憶し、その記憶媒体をこれまで本発明によった座標系定義をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、または、そのようなプログラムをネットワークを介してそのような情報処理装置へ転送することにより、そのような情報処理装置においても本発明によった座標系定義をおこなうことができる。
【００１０】
【発明の効果】
以上説明したように、本発明によれば、請求項１記載の発明では、３次元座標系を３次元空間内に定義する際、定義される座標系の二つの軸を含む平面として表わされる作業平面を決定するパラメータを指定させる場合、表示された既存の要素のなかからパラメータ指定の基準として用いる要素が指定されるので、３次元空間内の座標系を定義するパラメータを直感的且つすばやく指定することができるし、指定位置が意図する要素から少しずれていてもその要素の座標値が指定位置となるため、位置を正確に指定することができる。
また、請求項２記載の発明では、請求項１記載の発明において、原点座標および二つの軸方向を指示して作業平面を決定する場合、既存の要素として、原点となる頂点と、その頂点から二つの軸方向を指示するための他の二つの頂点とを指定すればよいので、請求項１記載の発明と同様の効果を得ることができる。
また、請求項３記載の発明では、請求項２記載の発明において、二つの軸がＸ軸およびＹ軸であるので、作業平面がＸ軸およびＹ軸を含む一般的な平面の場合で請求項１記載の発明の効果を得ることができる。
また、請求項４記載の発明では、請求項１、請求項２、または請求項３記載の発明において、基準となるパラメータの重要度があらかじめ決めておかれ、指定された要素によって作業平面を決定するパラメータが正確に求まらない場合、重要度の低いパラメータが重要度の高いパラメータによって変更されるので、要素の指定が簡単になる。
また、請求項５記載の発明では、請求項４記載の発明において、重要度の低いパラメータを重要度の高いパラメータによって変更する際、試行錯誤による再変更が可能であるので、利用者の意図に反した座標系が設定されてしまうというような事態を避けることができる。
また、請求項６記載の発明では、請求項１乃至請求項５のいずれか１項に記載の発明において、要素を基準として指定させる際、ポインティング装置を用いて指定するので、操作がさらに容易になる。
また、請求項７記載の発明では、請求項１乃至請求項６のいずれか１項に記載の座標系定義方法によった座標系定義を実行させるようにプログラミングされているプログラムが情報処理装置上で実行されるので、情報処理装置を用いて請求項１乃至請求項６のいずれか１項に記載の発明の効果を得ることができる。
また、請求項８記載の発明では、請求項７記載のプログラムを着脱可能な記憶媒体に記憶することができるので、その記憶媒体をこれまで請求項１乃至請求項６のいずれか１項に記載の発明によった座標系定義をおこなえなかったパーソナルコンピュータなど情報処理装置に装着することにより、そのような情報処理装置においても請求項１乃至請求項６のいずれか１項に記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明が実施される情報処理装置のハードウェア構成図である。
【図２】本発明の第１の実施例を示す座標系定義方法の動作フロー図である。
【図３】本発明の第１の実施例を示す座標系定義方法の説明図である。
【図４】本発明の第１の実施例を示す座標系定義方法の他の説明図である。
【図５】本発明の第２の実施例を示す座標系定義方法の説明図である。
【図６】本発明の第２の実施例を示す座標系定義方法の他の説明図である。
【図７】本発明の第２の実施例を示す座標系定義方法の他の説明図である。
【符号の説明】
１　ＣＰＵ
２　メモリ
３　外部記憶装置
５　ポインティング装置
６　表示装置
【図１】
2004094751.tif 000003
【図２】
2004094751.tif 000004
【図３】
2004094751.tif 000005
【図４】
2004094751.tif 000006
【図５】
2004094751.tif 000007
【図６】
2004094751.tif 000008
【図７】
2004094751.tif 000009