(57)【特許請求の範囲】
【請求項１】
図形要素を入力して所望の図形を作成し、表示装置へ出力する図形処理装置において、
前記表示装置に表示されている所定の図形要素を指定する図形要素指定手段と、
前記図形要素指定手段によって指定された図形要素が有する特徴ベクトルを抽出する特徴ベクトル抽出手段と、
表示系が有する基底ベクトルの何れかと前記特徴ベクトルとを一致させるための回転角度を算定する回転角度算定手段と、
前記図形要素を含む図形の一部または全部を、前記表示系において前記回転角度算定手段によって算定された回転角度だけ回転させる回転手段と、
前記回転手段によって図形の一部または全部を回転する前に、前記図形要素のみを前記回転角度算定手段によって算定された角度だけ回転させる図形要素回転手段と、
を有することを特徴とする図形処理装置。
【請求項２】
前記回転角度算定手段は、それぞれの基底ベクトルに対する回転角度を算定し、
前記回転手段は、前記図形要素を含む図形の一部または全部を、操作者によって指定された何れかの基底ベクトルに対応する回転角度だけ回転させる、
ことを特徴とする請求項１記載の図形処理装置。
【請求項３】
前記図形要素は複数の特徴ベクトルを有し、
前記回転角度算定手段は、前記特徴ベクトルと前記基底ベクトルのそれぞれを一致させるための回転角度を算定する、
ことを特徴とする請求項１記載の図形処理装置。
【請求項４】
前記図形要素回転手段によって回転された図形要素を参照して、特定の回転角度を指定する回転角度指定手段を更に有し、
前記回転手段は、前記回転角度指定手段によって指定された回転角度だけ前記図形の一部または全部を回転させることを特徴とする請求項１記載の図形処理装置。
【請求項５】
図形要素を入力して所望の図形を作成し、表示装置へ出力する処理をコンピュータに機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
前記表示装置に表示されている所定の図形要素を指定する図形要素指定手段、
前記図形要素指定手段によって指定された図形要素が有する特徴ベクトルを抽出する特徴ベクトル抽出手段、
表示系が有する基底ベクトルの何れかと前記特徴ベクトルとを一致させるための回転角度を算定する回転角度算定手段、
前記図形要素を含む図形の一部または全部を、前記表示系において前記回転角度算定手段によって算定された回転角度だけ回転させる回転手段、
前記回転手段によって図形の一部または全部を回転する前に、前記図形要素のみを前記回転角度算定手段によって算定された角度だけ回転させる図形要素回転手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
図形要素を入力して所望の図形を作成し、表示装置へ出力する処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
前記表示装置に表示されている所定の図形要素を指定する図形要素指定手段、
前記図形要素指定手段によって指定された図形要素が有する特徴ベクトルを抽出する特徴ベクトル抽出手段、
表示系が有する基底ベクトルの何れかと前記特徴ベクトルとを一致させるための回転角度を算定する回転角度算定手段、
前記図形要素を含む図形の一部または全部を、前記表示系において前記回転角度算定手段によって算定された回転角度だけ回転させる回転手段、
前記回転手段によって図形の一部または全部を回転する前に、前記図形要素のみを前記回転角度算定手段によって算定された角度だけ回転させる図形要素回転手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は図形処理装置、記録媒体、および、プログラムに関し、特に、図形要素を入力して所望の図形を作成し、表示装置へ出力する図形処理装置、記録媒体、および、プログラムに関する。
【０００２】
【従来の技術】
例えば、ＣＡＤ（Computer Aided Design）等の図形処理装置では、作成された図形の表示形態を頻繁に変更する必要が生ずる。
【０００３】
図６３は、従来における２次元図形の表示形態の変更方法の一例を示す図である。この図の例では、対象となる図形１を回転する際の中心軸となる中心点２と回転角度とが指定され、これらに基づいて図形１が回転される。
【０００４】
図６４は、３次元図形の表示形態の変更方法の一例を示す図である。この例では、「ビュー情報一覧」と題されたウィンドウが表示されており、その内部の表示領域１０ａには、視点の候補が表示されている。このようなウィンドウにおいて所望の視点を選択した後、終了ボタン１０ｄが操作されると、例えば、図６５に示すように、選択された視点から眺めた図形１５が表示される。なお、図６４に示すウィンドウにおいて、緯度および経度をテキストボックス１０ｂ，１０ｃに直接入力することによっても、所望の視点を指定することができる。
【０００５】
図６６は、３次元図形の表示形態の他の変更方法の一例を示す図である。この例では、ポインタ１６の動きに比例して図形１５が回転される様子が示されている。
【０００６】
図６７は、３次元図形の表示形態の更に他の変更方法の一例を示す図である。この例では、図形１５の特定の面１５ａがポインタ１６によって指定されており、この面１５ａを正面に向けるように図形の表示が変更されている。
【０００７】
【発明が解決しようとする課題】
ところで、従来の２次元の図形を表示する図形処理システムの場合、利用者がある図形に着目し、その図形が特徴的な状態で表示される状態を望んだ場合、利用者がその形状から、回転角度を計算して入力しなければならず、非常に煩雑であるという問題点があった。
【０００８】
また、従来の３次元の形状を表示する図形処理システムの場合、例えば、図６４に示す例では、予め決められた複数の視点の中からしか選択できないので、選択範囲が狭いという問題点があった。
【０００９】
また、図６６に示す方法では、任意の方向から眺めた図形を表示させることが可能であるが微調整が困難であるという問題点があった。
更に、図６７に示す方法では、やはり図６４に示す場合と同様に、選択可能な範囲が限定されるという問題点があった。
【００１０】
本発明はこのような点に鑑みてなされたものであり、所望の視点から眺めた図形を簡単に表示させることが可能な図形処理装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示す、図形要素を入力して所望の図形を作成し、表示装置へ出力する図形処理装置３０において、表示装置３２に表示されている所定の図形要素を指定する図形要素指定手段３０ａと、図形要素指定手段３０ａによって指定された図形要素が有する特徴ベクトルを抽出する特徴ベクトル抽出手段３０ｂと、表示系が有する基底ベクトルの何れかと特徴ベクトルとを一致させるための回転角度を算定する回転角度算定手段３０ｃと、図形要素を含む図形の一部または全部を、表示系において回転角度算定手段３０ｃによって算定された回転角度だけ回転させる回転手段３０ｄと、回転手段３０ｄによって図形の一部または全部を回転する前に、図形要素のみを回転角度算定手段３０ｃによって算定された角度だけ回転させる図形要素回転手段３０ｅと、を有することを特徴とする図形処理装置３０が提供される。
【００１２】
ここで、図形要素指定手段３０ａは、表示装置３２に表示されている所定の図形要素を指定する。特徴ベクトル抽出手段３０ｂは、図形要素指定手段３０ａによって指定された図形要素が有する特徴ベクトルを抽出する。回転角度算定手段３０ｃは、表示系が有する基底ベクトルの何れかと特徴ベクトルとを一致させるための回転角度を算定する。回転手段３０ｄは、図形要素を含む図形の一部または全部を、表示系において回転角度算定手段３０ｃによって算定された回転角度だけ回転させる。図形要素回転手段３０ｅは、回転手段３０ｄによって図形の一部または全部を回転する前に、図形要素のみを回転角度算定手段３０ｃによって算定された角度だけ回転させる。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の動作原理を説明する原理図である。この図において、図形処理装置３０は、図形要素指定手段３０ａ、特徴ベクトル抽出手段３０ｂ、回転角度算定手段３０ｃ、回転手段３０ｄ、図形要素回転手段３０ｅ、および、回転角度指定手段３０ｆによって構成されており、入力装置３１から入力された図形要素を組み合わせることによって生成された図形を表示装置３２に対して表示出力するとともに、所定の図形要素が指定された場合にはその図形要素が有する特徴ベクトルを抽出し、特徴ベクトルを基準にして図形全体または図形の一部を回転する。なお、図形要素とは、図形を構成する基本単位であり、例えば、直線、円、楕円等をいう。
【００１４】
ここで、図形要素指定手段３０ａは、表示装置３２に表示されている所定の図形要素を指定する。
特徴ベクトル抽出手段３０ｂは、図形要素指定手段３０ａによって指定された図形要素が有する特徴ベクトルを抽出する。
【００１５】
回転角度算定手段３０ｃは、表示系が有する基底ベクトルの何れかと特徴ベクトルとを一致させるために必要な回転角度を算定する。
回転手段３０ｄは、図形要素を含む図形の一部または全部を、表示系において回転角度算定手段３０ｃによって算定された回転角度だけ回転させる。
【００１６】
図形要素回転手段３０ｅは、回転手段３０ｄによって図形の一部または全部を回転する前に、指定された図形要素のみを回転角度算定手段３０ｃによって算定された角度だけ回転させる。
【００１７】
回転角度指定手段３０ｆは、図形要素回転手段３０ｅによって回転された図形要素を参照して特定の回転角度を指定する。
入力装置３１は、例えば、キーボードやマウスによって構成されており、操作者の操作に応じた情報を生成して図形処理装置３０に供給する。
【００１８】
表示装置３２は、例えば、ＣＲＴ（Cathode Ray Tube）モニタによって構成されており、図形処理装置３０から出力された画像を表示出力する。
次に、以上の原理図の動作について説明する。
【００１９】
いま、図２に示すように、正方形３５ａ、楕円３５ｂ、対角線３５ｃ、および、対角線３５ｄから構成される図形３５が入力装置３１から入力され、表示装置３２に表示されているとする。
【００２０】
このような状態において、入力装置３１が操作され、正方形３５ａの上部に位置する辺がポインタによって指定されたとすると、図形処理装置３０の図形要素指定手段３０ａは、正方形３５ａを構成する辺を処理の対象として指定する。
【００２１】
特徴ベクトル抽出手段３０ｂは、図形要素指定手段３０ａによって指定された正方形３５ａの上部に位置する辺の特徴ベクトルを抽出する。この例では、図３に示すように、辺に平行な特徴ベクトル３５ｅが抽出されることになる。
【００２２】
回転角度算定手段３０ｃは、表示系が有する基底ベクトルの何れかと特徴ベクトルとを一致させるために必要な回転角度を算定する。例えば、この例では、表示系が有する基底ベクトルは、図３の左下に示すＸ，Ｙであるので、特徴ベクトル３５ｅがＸ方向、Ｙ方向、−Ｘ方向、および、−Ｙ方向の基底ベクトル（それぞれ、Ｘベクトル、Ｙベクトル、−Ｘベクトル、および、−Ｙベクトルと称す）と一致する回転角度を算定する。
【００２３】
回転手段３０ｄは、回転角度算定手段３０ｃによって算定された複数の回転角度の候補を順番に選択し、選択した回転角度に応じて図形を回転させる。なお、この選択の順番としては、回転角度が少ない順に選択する方法があり、その場合には、先ず、図４に示す図形が表示装置３２に表示されることになる。図４に示すような図形が表示装置３２に表示されている状態において、この状態を選択する操作が入力装置３１に対してなされた場合には、表示状態が固定される。
【００２４】
また、同様にして、図５に示すような状態において、対角線３５ｄが選択された場合には、図形要素指定手段３０ａは、対角線３５ｄを処理の対象として指定し、特徴ベクトル抽出手段３０ｂは、対角線３５ｄの特徴ベクトル３５ｆを抽出する。
【００２５】
回転角度算定手段３０ｃは、特徴ベクトル３５ｆと基底ベクトルとを一致させるための回転角度の候補を算出して、回転手段３０ｄに供給する。回転手段３０ｄは、供給された回転角度の候補を、その値が最も小さいものから順に選択し、図形を回転させる。
【００２６】
例えば、図５の例では、Ｘベクトルとの間の角度が最も小さいので、図６に示す図形が最初に表示されることになる。
以上の例では、図形全体を回転して表示するようにしたが、指定された図形要素のみを回転して表示させ、所定の回転状態において確定する操作がなされた場合には、図形全体を回転して表示するようにしてもよい。そのような場合の処理について以下に説明する。
【００２７】
いま、図２に示す表示状態において、正方形３５ａの上部に位置する辺がポインタ３６によって指定されたとすると、図形要素指定手段３０ａは、この辺を処理の対象として指定する。
【００２８】
特徴ベクトル抽出手段３０ｂは、指定された辺から特徴ベクトル３５ｅを抽出する。
回転角度算定手段３０ｃは、特徴ベクトル３５ｅと基底ベクトルとを一致させるための回転角度を算定し、回転手段３０ｄと図形要素回転手段３０ｅに供給する。
【００２９】
図形要素回転手段３０ｅは、供給された回転角度に応じて、指定された図形要素である辺を構成する直線を回転させ、表示装置３２に表示させる。いまの例では、例えば、図７に示すように、Ｘベクトルと一致するように回転された辺３５ｇが表示されることになる。
【００３０】
このような状態において、操作者が入力装置３１を操作して、回転角度を指定する操作を行った場合には、回転角度指定手段３０ｆは、回転手段３０ｄに対して回転角度が指定された旨を通知する。通知を受けた回転手段３０ｄは、全ての図形要素を指定された回転角度で回転する。その結果、表示装置３２には、図４に示すような図形が表示されることになる。
【００３１】
以上に説明したように、本発明に係る図形処理装置によれば、指定された図形要素が有する特徴ベクトルと、基底ベクトルとを一致させる回転角度を算定し、その回転角度だけ図形を回転して順次表示するようにしたので、簡単な操作により図形を所望の方向に回転させることが可能となる。
【００３２】
また、図形要素回転手段３０ｅにより、指定された図形要素のみを回転させた状態を表示し、その状態で固定する場合には回転角度指定手段３０ｆに指示するようにすれば、候補が変更される度に図形全体を回転する必要がなくなるので、処理速度を向上させることが可能となる。
【００３３】
次に、本発明の実施の形態について説明する。
図８は、本発明の実施の形態の構成例を示すブロック図である。この図に示すように、本発明に係る図形処理装置５０は、ＣＰＵ（Central Processing Unit）５０ａ、ＲＯＭ（Read Only Memory）５０ｂ、ＲＡＭ（Random Access Memory）５０ｃ、ＨＤＤ（Hard Disk Drive）５０ｄ、ＧＣ（Graphics Card）５０ｅ、Ｉ／Ｆ（Interface）５０ｆによって構成されており、その外部には表示装置５１および入力装置５２が接続されている。
【００３４】
ＣＰＵ５０ａは、ＨＤＤ５０ｄ等に格納されているプログラムに応じて、各種演算処理を実行するとともに、装置の各部を制御する。
ＲＯＭ５０ｂは、ＣＰＵ５０ａが実行する基本的なプログラムやデータ等を格納している。
【００３５】
ＲＡＭ５０ｃは、ＣＰＵ５０ａが実行中のプログラムや演算途中のデータ等を一時的に格納する。
ＨＤＤ５０ｄは、ＣＰＵ５０ａが実行するプログラムやデータを格納するとともに、入力装置５２から入力された図形要素やその配置状態に関する情報を格納する。
【００３６】
ＧＣ５０ｅは、ＣＰＵ５０ａから供給された描画命令に応じて描画処理を実行し、生成した画像を映像信号に変換して表示装置５１に出力する。
Ｉ／Ｆ５０ｆは、入力装置５２からの情報を入力する。
【００３７】
表示装置５１は、例えば、ＣＲＴモニタや液晶ディスプレイ等によって構成されており、ＧＣ５０ｅから出力された映像信号を表示出力する。
入力装置５２は、キーボードやマウスによって構成されており、操作者の操作に応じた情報を生成して、Ｉ／Ｆ５０ｆに対して供給する。
【００３８】
次に、以上の実施の形態の動作について説明する。
本発明では、２次元および３次元双方の図形の処理が可能であるが、以下では先ず２次元図形に関する処理について説明した後、３次元図形に関する処理について説明する。
【００３９】
先ず、２次元図形に対する処理について説明する前に、２次元図形の各図形要素が有する特徴ベクトルと、基準点について説明する。
図９は、２次元図形要素の基準点と特徴ベクトルを説明する図である。また、図１０および図１１は、図９に示す図形要素の特徴ベクトルと基準点を具体的に示した図である。
【００４０】
図９および図１０（Ａ）に示すように、図形要素「直線」の場合、始点を（ｘ１，ｙ１）とし、終点を（ｘ２，ｙ２）とした場合に、基準点は中点Ｐ（（ｘ１＋ｘ２）／２，（ｙ１＋ｙ２）／２）と定義され、また、特徴ベクトルは方向ベクトルＶ１（ｘ２−ｘ１，ｙ２−ｙ１）と定義される。
【００４１】
また、図形要素「円弧」の場合では、図１０（Ｂ）に示すように、中心を（Ｏｘ，Ｏｙ）とし、始点を（ｘ１，ｙ１）、終点を（ｘ２，ｙ２）とした場合に、基準点は中点Ｐ（Ｏｘ，Ｏｙ）と定義され、また、特徴ベクトルはローカルＸ軸Ｖ１（１，０）、始点ベクトル（ｘ１−Ｏｘ，ｙ１−Ｏｙ）、終点ベクトル（Ｘ２−Ｏｘ，ｙ２−Ｏｙ）の３つと定義される。
【００４２】
図形要素「楕円弧」の場合では、図１０（Ｃ）に示すように、中心を（Ｏｘ，Ｏｙ）とし、ローカルＸ軸を（Ｌｘ，Ｌｙ）、始点を（ｘ１，ｙ１）、終点を（ｘ２，ｙ２）とした場合に、基準点は中点Ｐ（Ｏｘ，Ｏｙ）と定義され、また、特徴ベクトルはローカルＸ軸Ｖ１（Ｌｘ，Ｌｙ）、始点ベクトル（ｘ１−Ｏｘ，ｙ１−Ｏｙ）、終点ベクトル（Ｘ２−Ｏｘ，ｙ２−Ｏｙ）の３つと定義される。
【００４３】
図形要素「放物線」の場合では、図１１（Ａ）に示すように、基準点は焦点Ｐ（Ｆｘ，Ｆｙ）と定義され、また、特徴ベクトルは軸ベクトルＶ１（Ａｘ，Ａｙ）と定義される。
【００４４】
図形要素「双曲線」の場合では、図１１（Ｂ）に示すように、基準点は中心Ｐ（Ｏｘ，Ｏｙ）と定義され、また、特徴ベクトルは実軸ベクトルＶ１（Ａｘ，Ａｙ）と、漸近線ベクトルＶ２（Ｔｘ，Ｔｙ）と定義される。
【００４５】
更に、図形要素「自由曲線」の場合では、図１１（Ｃ）に示すように、基準点は指示された点である指示点Ｐ（ｐ，ｑ）と定義され、また、特徴ベクトルは接ベクトルＶ１（Ｔｘ，Ｔｙ）と定義される。
【００４６】
なお、以上はほんの一例であり、このような場合にのみ限定されるものではない。
次に、本発明の実施の形態の動作について説明する。
【００４７】
図１２は、図８に示す実施の形態において、２次元図形を回転させる場合に実行される処理の一例を説明するフローチャートである。このフローチャートが開始されると、以下の処理が実行されることになる。
［Ｓ１０］ＣＰＵ５０ａは、入力装置５２が操作されて指定された図形要素を特定する。
【００４８】
例えば、表示装置５１に表示されている図形要素「円弧」が入力装置５２によって指定されたとすると、ＣＰＵ５０ａは、「円弧」を指定された図形要素と特定する。
［Ｓ１１］ＣＰＵ５０ａは、特定された図形要素の基準点および特徴ベクトルを抽出する処理を実行する。なお、この処理の詳細は、図１３を参照して後述する。
［Ｓ１２］ＣＰＵ５０ａは、指定された図形要素を含む図形の回転角度の候補を推論する処理を実行する。なお、この処理の詳細は、図１４を参照して後述する。
［Ｓ１３］ＣＰＵ５０ａは、ステップＳ１２において算出された回転角度の候補のそれぞれに対応する分だけ図形を回転する処理を実行する。なお、この処理の詳細は、図１５を参照して後述する。
［Ｓ１４］ＣＰＵ５０ａは、変数ｉを値“１”に初期設定する。
［Ｓ１５］ＣＰＵ５０ａは、ステップＳ１３において算出された、第ｉ番目の回転角度の候補に対応して回転された図形を表示装置５１に表示させる。
［Ｓ１６］ＣＰＵ５０ａは、入力装置５２から所定の情報が入力され、現在表示されている図形でＯＫである旨が指示された場合には処理を終了し、それ以外の場合にはステップＳ１７に進む。
［Ｓ１７］ＣＰＵ５０ａは、変数ｉを“１”だけインクリメントする。
［Ｓ１８］ＣＰＵ５０ａは、変数ｉの値が回転角度の候補数以下である場合にはステップＳ１５に戻って同様の処理を繰り返し、それ以外の場合にはステップＳ１９に進む。
［Ｓ１９］ＣＰＵ５０ａは、変数ｉを“１”に再度初期設定した後、ステップＳ１５に戻って同様の処理を繰り返す。
【００４９】
次に、図１３を参照して、図１２に示す「基準点および特徴ベクトル抽出処理」の詳細について説明する。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ２０］ＣＰＵ５０ａは、ステップＳ１０において特定された図形要素を取得する。
［Ｓ２１］ＣＰＵ５０ａは、特定された図形の基準点を図９に示すテーブルを参照して取得する。
【００５０】
例えば、図形要素として円弧が指定された場合には、円弧の中心Ｐ（Ｏｘ，Ｏｙ）が基準点として取得されることになる。
［Ｓ２２］ＣＰＵ５０ａは、特定された図形の特徴ベクトルを図９に示すテーブルを参照して取得する。
【００５１】
いまの例では、対象となる図形要素は円弧であるので、図９に示すように、ローカルＸ軸Ｖ１、始点ベクトルＶ２、および、終点ベクトルＶ３が特徴ベクトルとして抽出されることになる。
［Ｓ２３］ＣＰＵ５０ａは、取得した基準点と特徴ベクトルを、ＨＤＤ５０ｄのベクトル情報テーブルへ格納し、もとの処理へ復帰する（リターン）。
【００５２】
図１６は、ベクトル情報テーブルの一例を示す図である。この図では、ベクトル番号１〜３までの３種類の基準ベクトルと、それぞれのベクトルの基準点が格納されている。
【００５３】
次に、図１４を参照して、図１２に示す「回転角度候補推論処理」の詳細な処理について説明する。このフローチャートが開始されると、以下の処理が実行されることになる。
［Ｓ３０］ＣＰＵ５０ａは、変数ｉを“１”に初期設定する。
［Ｓ３１］ＣＰＵ５０ａは、１次元配列Ｖの第ｉ番目の要素として、第ｉ番目の特徴ベクトルを代入する。
［Ｓ３２］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，０）番目の要素として、基底ベクトルであるＸベクトル（１，０）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ３３］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，１）番目の要素として、基底ベクトルであるＹベクトル（０，１）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ３４］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，２）番目の要素として、基底ベクトルであるＸベクトルを１８０°回転させたベクトル（−１，０）（以下、−Ｘベクトルと称す）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ３５］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，３）番目の要素として、基底ベクトルであるＹベクトルを１８０°回転させたベクトル（０，−１）（以下、−Ｙベクトルと称す）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ３６］ＣＰＵ５０ａは、変数ｉの値を“１”だけインクリメントする。
［Ｓ３７］ＣＰＵ５０ａは、変数ｉの値が特徴ベクトル数以下である場合にはステップＳ３１に戻って同様の処理を繰り返し、それ以外の場合にはステップＳ３８に進む。
［Ｓ３８］ＣＰＵ５０ａは、２次元配列Ｔｈに格納されている全ての要素を、昇順にソートする。
【００５４】
その結果、回転角度が少ない順に並べ換えが行われることになる。
［Ｓ３９］ＣＰＵ５０ａは、配列に格納されている要素に重複が生じている場合には、これを排除する。
［Ｓ４０］ＣＰＵ５０ａは、ソートされた結果を、ＨＤＤ５０ｄの回転角度候補テーブルに格納する。
【００５５】
図１７は、回転角度候補テーブルの一例を示す図である。この例では、特徴ベクトルのベクトル番号と、その回転角度とが対応付けられて格納されている。なお、ベクトル番号が“１”の特徴ベクトルは、第１番目と第３番目に登場しているが、これは同一の特徴ベクトルであっても対象となる基底ベクトルが異なる場合があるからである。
【００５６】
次に、図１５を参照して、図１２に示す「図形回転処理」の詳細について説明する。このフローチャートが開始されると、以下の処理が実行されることになる。
［Ｓ５０］ＣＰＵ５０ａは、変数ｉを値“１”に初期設定する。
［Ｓ５１］ＣＰＵ５０ａは、回転角度候補テーブルから第ｉ番目の回転角度を取得する。
［Ｓ５２］ＣＰＵ５０ａは、取得した角度だけ図形を回転し、得られた図形を、例えば、ＨＤＤ５０ｄに格納する。
［Ｓ５３］ＣＰＵ５０ａは、変数ｉの値を“１”だけインクリメントする。
［Ｓ５４］ＣＰＵ５０ａは、変数ｉの値が回転角度の候補数以下である場合にはステップＳ５１に戻って同様の処理を繰り返し、それ以外の場合には元の処理に復帰する。
【００５７】
次に、以上の処理の具体的な動作を、円弧を例に挙げて説明する。
図１８は、処理の対象となる円弧の一例を示す図である。このような円弧６０にポインタ６１が配置された状態において入力装置５２が操作され、図形を回転する指示がなされたとすると、ＣＰＵ５０ａは、円弧６０を処理の対象として特定する。そして、ローカルＸ軸ベクトルＶ１、始点ベクトルＶ２、および、終点ベクトルＶ３を特徴ベクトルとして抽出し、また、中心Ｐを基準点として抽出する。
【００５８】
次に、ＣＰＵ５０ａは、各特徴ベクトルを基底ベクトルと一致するように回転させた場合の回転角度を算出する処理を実行する。ここでは、始点ベクトルＶ２を例に挙げて説明する。
【００５９】
いま、始点ベクトルＶ２を、基底ベクトルであるＸベクトル、Ｙベクトル、−Ｘベクトル、および、−Ｙベクトルとそれぞれ一致させるために必要な回転角度を算出する。なお、実際には、始点ベクトルＶ２だけでなく、ローカルＸ軸Ｖ１、終点ベクトルＶ３に対しても同様の処理が行われ、それぞれのベクトルを基底ベクトルに一致させるための回転角度が算出される。
【００６０】
次に、ＣＰＵ５０ａは、算出された角度を、昇順に並べ換える。例えば、始点ベクトルＶ２のみを例に挙げると、先ず、図１９に示すように、ベクトルＶ２をＹベクトルと一致させる回転角度が最先に選択され、次に、図２０に示すように、始点ベクトルＶ２をＸベクトルと一致させる回転角度が選択され、続いて、図２１に示すように、始点ベクトルＶ２を−ｘベクトルと一致させる回転角度が選択され、最後に、図２２に示すように、始点ベクトルＶ２を−Ｙベクトルと一致させる回転角度が選択されることになる。
【００６１】
次に、ＣＰＵ５０ａは、回転角度のうち重複するものを削除する。例えば、始点ベクトルＶ２をＹベクトルと一致させる回転角度と、終点ベクトルＶ３をＸベクトルに一致させる回転角度とは同一であるので、重複を排除するために、これらの何れか一方が削除される。
【００６２】
続いて、ＣＰＵ５０ａは、並べ換えが行われた回転角度のそれぞれに対応して図形を回転させる。例えば、始点ベクトルＶ２のみに注目すると、回転の結果として、図１９〜２２に示すような状態の図形が表示されることになる。
【００６３】
次に、ＣＰＵ５０ａは、作成された図を操作者の操作に応じて表示装置５１に順次表示させる。そして、全ての図形の表示が終了した場合には、もとの図形に戻って表示を繰り返す。例えば、マウスの右クリックに応じて図形の候補が表示装置５１に順次表示されることになる。そして、所定の図形が表示されている場合において、その図形を選択する操作が入力装置５２に対してなされた場合には、その時点において表示されている図形をそのまま表示装置５１に表示させ続ける結果となる。以上のように所定の図形要素が指定されて、図形の回転が指示された場合には、指定された図形要素を特徴的に示す表示状態が基底ベクトルと特徴ベクトルとから算定され、算定された候補が順に表示されるので、操作者は簡単な操作により、所望の表示形態を選択することが可能となる。
【００６４】
次に、複数の図形要素が表示されている場合における処理について説明する。図２３は、複数の図形要素が表示されている場合において、直線７１がポインタ７０によって指示された場合の一例を示している。この例では、直線７１、円弧７２、楕円弧７３、双曲線７４、および、放物線７５が表示されており、直線７１の上にポインタ７０が移動されて、図形を回転させる操作が入力装置５２に対して行われたとする。すると、ＣＰＵ５０ａは、指示された図形要素が直線であることを特定し、その特徴ベクトルと基準点とを抽出する。いまの例では、直線７１の中点が基準点であり、また、直線７１の左端を基点とし、右端を先端とするベクトルを特徴ベクトルとして抽出する。そして、ＣＰＵ５０ａは、抽出した特徴ベクトルと基底ベクトルを一致させるための回転角度を算出し、昇順にソートする。
【００６５】
いまの例では、直線を水平方向、即ち、Ｘベクトル方向に向ける回転角度が最小であるので、先ず、図２４に示す画面が表示装置５１に表示されることになる。このような状態において、表示を確定する操作（例えば、マウスの左ボタンの操作）がなされると、図２４に示す画面が表示装置５１に継続して表示されることになる。また、次の画面を表示する操作（例えば、マウスの右ボタンの操作）がなされると、直線７１が上下に向くような回転（直線７１の右端が上を向く回転）が施されることになる。
【００６６】
引き続いて、次の画面を表示する操作がなされたとすると、直線７１の右端が下を向く回転が施され、更に、操作が繰り返されたとすると、直線７１の右端が左を向く回転が施されることになる。
【００６７】
次に、図２５を参照して、円弧７２が指定された場合における処理について説明する。
図２５に示すように、円弧７２がポインタ７０によって指定されたとすると、ＣＰＵ５０ａは、指定された図形要素が円弧であることを特定し、特徴ベクトルと基準点とを抽出する。円弧の場合は、基準点は円の中心であり、また、特徴ベクトルはローカルＸ軸Ｖ１、始点ベクトルＶ２、および、終点ベクトルＶ３であるので、ＣＰＵ５０ａはこれらを図形要素から抽出する。そして、抽出した特徴ベクトルが基底ベクトルに一致する回転角度を算出して昇順にソートし、全ての図形要素を各回転角度に応じて回転する。
【００６８】
いまの例では、ローカルＸ軸Ｖ１を水平方向に向ける回転角度（０°）が最小であるが、これは回転したことにはならないので除外され、始点ベクトルＶ２を水平方向に向ける回転角度が最小であるので、先ず、図２６に示す画面が表示装置５１に表示されることになる。それ以降は、始点ベクトル、終点ベクトル、および、ローカルＸ軸ベクトルと、基底ベクトルとを一致させるための回転角度が小さい順に図形が回転されて表示されることになる。
【００６９】
次に、図２７を参照して、楕円弧７３が指定された場合における処理について説明する。
図２７に示すように、楕円弧７３がポインタ７０によって指定されたとすると、ＣＰＵ５０ａは、指定された図形要素が楕円弧であることを特定し、特徴ベクトルと基準点を抽出する。楕円弧の場合は、基準点は楕円の中心であり、また、特徴ベクトルはローカルＸ軸Ｖ１、始点ベクトルＶ２、および、終点ベクトルＶ３であるので、ＣＰＵ５０ａはこれらを図形要素から抽出する。そして、抽出した特徴ベクトルが基底ベクトルに一致する回転角度を算出して昇順にソートし、全ての図形要素を各回転角度に応じて回転する。
【００７０】
いまの例では、始点ベクトルおよび終点ベクトルはそれぞれ０°および３６０°であり、ともにローカルＸ軸ベクトルと一致しているので、例えば、これらのベクトルを基底ベクトルに一致させる回転角度が算出され、その値を昇順に並べ換えたものに応じて図形が回転されることになる。その結果、図２８に示す画面が表示装置５１に表示されることになる。
【００７１】
次に、図２９を参照して、双曲線７４が指定された場合における処理について説明する。
図２９に示すように、双曲線７４がポインタ７０によって指定されたとすると、ＣＰＵ５０ａは、指定された図形要素が双曲線であることを特定し、特徴ベクトルと基準点を抽出する。双曲線の場合は、基準点は原点であり、また、特徴ベクトルは実軸ベクトルＶ１、および、漸近線ベクトルＶ２であるので、ＣＰＵ５０ａはこれらを図形要素から抽出する。そして、抽出した特徴ベクトルが基底ベクトルに一致する回転角度を算出して昇順にソートし、全ての図形要素を各回転角度に応じて回転する。
【００７２】
いまの例では、漸近線ベクトルＶ２を上方向に向ける回転角度が最初に選択され、図３０に示すような画面が表示装置５１に最初に表示されることになる。
次に、図３１を参照して、放物線７５が指定された場合における処理について説明する。
【００７３】
図３１に示すように、放物線７５がポインタ７０によって指定されたとすると、ＣＰＵ５０ａは、指定された図形要素が放物線であることを特定し、特徴ベクトルと基準点を抽出する。放物線の場合は、基準点は焦点であり、また、特徴ベクトルは軸ベクトルＶ１であるので、ＣＰＵ５０ａはこれらを図形要素から抽出する。そして、抽出した特徴ベクトルが基底ベクトルに一致する回転角度を算出して昇順にソートし、全ての図形要素を各回転角度に応じて回転する。
【００７４】
いまの例では、軸ベクトルＶ１を上方向に向ける回転角度が最初に選択され、図３２に示すような画面が表示装置５１に表示されることになる。
次に、図３３を参照して、自由曲線８０が指定された場合における処理について説明する。
【００７５】
図３３に示すように、自由曲線８０がポインタ７０によって指定されたとすると、ＣＰＵ５０ａは、指定された図形要素が自由曲線であることを特定し、特徴ベクトルと基準点を抽出する。自由曲線の場合は、基準点は指示点であり、また、特徴ベクトルは接ベクトルＶ１であるので、ＣＰＵ５０ａはこれらを図形要素から抽出する。そして、抽出した特徴ベクトルが基底ベクトルに一致する回転角度を算出して昇順にソートし、全ての図形要素を各回転角度に応じて回転する。
【００７６】
いまの例では、接ベクトルＶ１を水平方向に向ける回転角度が最初に選択され、図３４に示すような画面が表示装置５１に最初に表示されることになる。
以上に説明したように、本発明の実施の形態によれば、画面上に表示されている２次元図形の図形要素が指定された場合には、その基準点と特徴ベクトルを抽出し、特徴ベクトルが基底ベクトルと一致する回転角度を算出してその値が小さいものから順に選択して図形を回転するようにしたので、簡単な操作により図形を所望の方向に回転させることが可能となる。
【００７７】
次に、３次元図形の場合について説明する。
図３５は、３次元図形において図形要素を回転する場合の座標系の関係を示す図である。図３５（Ａ）に示すように、３次元図形を処理する図形処理装置には、図形が有する座標系（Ｘ，Ｙ，Ｚ）と、視野を示す座標系（Ｘｖ，Ｙｖ，Ｚｖ）の２種類が存在している。表示装置５１に対して表示する際には、図３５（Ｂ）に示すように、視野を示す座標系のＺｖ軸が画面の奥行き方向へ、Ｙｖ軸が画面の上下方向へ、また、Ｘｖ軸が画面の左右方向へ向くように回転させた場合における図形の形態が表示されることになる。従って、３次元図形の場合では、視野を示す座標系を基準として図形の回転がなされることから、２次元図形のような基準点は存在しない。また、３次元図形では、視野を示す座標系を基底ベクトルとする。
【００７８】
図３６は、ベクトルを回転させる際の処理について説明する図である。この図に示すように、ベクトルＶ１をベクトルＶ２へ移動（回転）させる場合には、先ず、ベクトルＶ１とベクトルＶ２の外積からベクトルＡｘを求める。そして、このベクトルＡｘを回転の中心軸としてベクトルＶ１を角度θだけ回転させることによりベクトルＶ２へ移動させる。
【００７９】
図３７は、３次元図形要素の特徴ベクトルを説明する図である。この図に示すように、始点および終点が（ｘ１，ｙ１，ｚ１）、（ｘ２，ｙ２，ｚ２）である３次元の図形要素「直線」に対しては、方向ベクトルＶ１（ｘ２−ｘ１，ｙ２−ｙ１，ｚ２−ｚ１）を特徴ベクトルとして定義する。なお、直線の具体例を図３８（Ａ）に示す。
【００８０】
また、円または円弧に対しては、軸ベクトル（Ａｘ，Ａｙ，Ａｚ）を特徴ベクトルとして定義する。図３８（Ｂ）は、円または円弧と軸ベクトルとの関係を示す図である。
【００８１】
楕円または楕円弧に対しては、軸ベクトル（Ａｘ，Ａｙ，Ａｚ）を特徴ベクトルとして定義する。図３８（Ｃ）は、楕円または楕円弧と軸ベクトルとの関係を示す図である。
【００８２】
自由曲線に対しては、接ベクトルＶ１（Ｔｘ，Ｔｙ，Ｔｚ）を特徴ベクトルとして定義する。図３９（Ａ）は、自由曲線と接ベクトルＶ１の関係を示す図である。
【００８３】
平面に対しては、法線ベクトルＶ１（Ｎｘ，Ｎｙ，Ｎｚ）を特徴ベクトルとして定義する。図３９（Ｂ）は、平面と法線ベクトルの関係を示す図である。
円筒面に対しては、軸ベクトルＶ１（Ａｘ，Ａｙ，Ａｚ）を特徴ベクトルとして定義する。図３９（Ｃ）は、円筒面と軸ベクトルの関係を示す図である。
【００８４】
円錐面に対しては、軸ベクトルＶ１（Ａｘ，Ａｙ，Ａｚ）を特徴ベクトルとして定義する。図４０（Ａ）は、円錐面と軸ベクトルの関係を示す図である。
球面に対しては、軸ベクトルＶ１（Ａｘ，Ａｙ，Ａｚ）を特徴ベクトルとして定義する。図４０（Ｂ）は、球面と軸ベクトルの関係を示す図である。
【００８５】
トーラス面に対しては、軸ベクトルＶ１（Ａｘ，Ａｙ，Ａｚ）を特徴ベクトルとして定義する。図４０（Ｃ）は、トーラス面と軸ベクトルの関係を示す図である。
【００８６】
掃引面に対しては、掃引方向ベクトルＶ１（Ｓｘ，Ｓｙ，Ｓｚ）を特徴ベクトルとして定義する。図４１（Ａ）は、掃引面と掃引方向ベクトルとの関係を示す図である。
【００８７】
回転面に対しては、回転軸ベクトルＶ１（Ａｘ，Ａｙ，Ａｚ）を特徴ベクトルとして定義する。図４１（Ｂ）は、回転面と回転軸ベクトルの関係を示す図である。
【００８８】
自由曲面に対しては、法線ベクトルＶ１（Ｎｘ，Ｎｙ，Ｎｚ）を特徴ベクトルとして定義する。図４１（Ｃ）は、自由曲面と法線ベクトルの関係を示す図である。
【００８９】
次に、図４２を参照して、３次元図形を回転する場合の処理について説明する。このフローチャートが開始されると、以下の処理が実行されることになる。
［Ｓ７０］ＣＰＵ５０ａは、入力装置５２によって指定された図形要素を特定する。
［Ｓ７１］ＣＰＵ５０ａは、特定された図形要素の特徴ベクトルを抽出する処理である「特徴ベクトル抽出処理」を実行する。なお、この処理の詳細は、図４３を参照して後述する。
［Ｓ７２］ＣＰＵ５０ａは、指定された図形要素の回転角度の候補を推論する処理である「回転角度候補推論処理」を実行する。なお、この処理の詳細は、図４４を参照して後述する。
［Ｓ７３］ＣＰＵ５０ａは、ステップＳ７２において算出した回転角度の候補のそれぞれに対応する分だけ図形を回転する処理である「図形回転処理」を実行する。なお、この処理の詳細は、図４５を参照して後述する。
［Ｓ７４］ＣＰＵ５０ａは、変数ｉを値“１”に初期設定する。
［Ｓ７５］ＣＰＵ５０ａは、ステップＳ７３において算出された第ｉ番目の回転角度の候補に対応して回転された図形を表示装置５１に表示させる。
［Ｓ７６］ＣＰＵ５０ａは、入力装置５２から所定の情報が入力され、現在表示されている図形でＯＫである旨が指示された場合には処理を終了し、それ以外の場合にはステップＳ７７に進む。
［Ｓ７７］ＣＰＵ５０ａは、変数ｉを“１”だけインクリメントする。
［Ｓ７８］ＣＰＵ５０ａは、変数ｉの値が候補数以下である場合にはステップＳ７５に戻って同様の処理を繰り返し、それ以外の場合にはステップＳ７９に進む。
［Ｓ７９］ＣＰＵ５０ａは、変数ｉを“１”に再度設定した後、ステップＳ７５に戻って同様の処理を繰り返す。
【００９０】
次に、図４３を参照して、図４２に示す「特徴ベクトル抽出処理」の詳細について説明する。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ８０］ＣＰＵ５０ａは、ステップＳ７０において特定された図形要素を取得する。
［Ｓ８１］ＣＰＵ５０ａは、特定された図形の特徴ベクトルを図３７に示すテーブルを参照して取得する。
［Ｓ８２］ＣＰＵ５０ａは、取得した特徴ベクトルをＨＤＤ５０ｄのベクトル情報テーブルへ格納し、もとの処理へ復帰する。
【００９１】
図４６は、ベクトル情報テーブルの一例を示す図である。この図では、ベクトル番号１〜３の３種類の特徴ベクトルが格納されている。
次に、図４４を参照して、図４２に示す「回転角度候補推論処理」の詳細な処理について説明する。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ９０］ＣＰＵ５０ａは、変数ｉを“１”に初期設定する。
［Ｓ９１］ＣＰＵ５０ａは、現在の視野座標に関する情報を視野座標テーブルに格納する。
【００９２】
図４７は、視野座標テーブルの一例を示す図である。この例では、視野を示す座標系（Ｘｖ，Ｙｖ，Ｚｖ）の基底ベクトルが格納されている。
［Ｓ９２］ＣＰＵ５０ａは、１次元配列Ｖの第ｉ番目の要素として、第ｉ番目の特徴ベクトルを代入する。
［Ｓ９３］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，０）番目の要素として、基底ベクトルであるＸベクトル（１，０，０）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ９４］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，１）番目の要素として、基底ベクトルであるＹベクトル（０，１，０）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ９５］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，２）番目の要素として、基底ベクトルであるＺベクトル（０，０，１）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ９６］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，３）番目の要素として、基底ベクトルであるＸベクトルを１８０°回転させたベクトル（−１，０，０）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ９７］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，４）番目の要素として、基底ベクトルであるＹベクトルを１８０°回転させたベクトル（０，−１，０）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ９８］ＣＰＵ５０ａは、２次元配列Ｔｈの第（ｉ，５）番目の要素として、基底ベクトルであるＺベクトルを１８０°回転させたベクトル（０，０，−１）と特徴ベクトルＶ［ｉ］とが成す角度を代入する。
［Ｓ９９］ＣＰＵ５０ａは、変数ｉの値を“１”だけインクリメントする。
［Ｓ１００］ＣＰＵ５０ａは、変数ｉの値が特徴ベクトル数以下である場合にはステップＳ９２に戻って同様の処理を繰り返し、それ以外の場合にはステップＳ１０１に進む。
［Ｓ１０１］ＣＰＵ５０ａは、２次元配列Ｔｈに格納されている全ての要素を、昇順にソートする。
［Ｓ１０２］ＣＰＵ５０ａは、重複が生じている場合には、これを排除する。
［Ｓ１０３］ＣＰＵ５０ａは、ソートされた結果を、ＨＤＤ５０ｄの回転角度候補テーブルに格納する。
【００９３】
図４８は、回転角度候補テーブルの一例を示す図である。この例では、特徴ベクトルのベクトル番号と、合わせる基底ベクトルと、その回転角度とが対応付けられている。
【００９４】
次に、図４５を参照して、図４２に示す「図形回転処理」の詳細について説明する。このフローチャートが開始されると、以下の処理が実行されることになる。
［Ｓ１１０］ＣＰＵ５０ａは、変数ｉを値“１”に初期設定する。
［Ｓ１１１］ＣＰＵ５０ａは、回転角度候補テーブルから第ｉ番目の回転角度を取得する。
［Ｓ１１２］ＣＰＵ５０ａは、取得した角度だけ図形を回転し、得られた図形を、例えば、ＨＤＤ５０ｄに格納する。
［Ｓ１１３］ＣＰＵ５０ａは、変数ｉの値を“１”だけインクリメントする。
［Ｓ１１４］ＣＰＵ５０ａは、変数ｉの値が回転角度の候補数以下である場合にはステップＳ１１１に戻って同様の処理を繰り返し、それ以外の場合には元の処理に復帰する。
【００９５】
次に、以上の処理の具体的な動作について説明する。
いま、図４９に示すような３次元図形１００が表示装置５１に表示されているとする。その場合に、ポインタ９０が３次元図形１００を構成する辺１００ａ上に移動され、図形を回転する指示がなされたとすると、ＣＰＵ５０ａは、指定された図形要素を特定し、その特徴ベクトルを抽出する。いまの例では、図形要素は直線であるので、直線の始点と終点を結ぶ方向ベクトルＶ１が特徴ベクトルとして抽出される。
【００９６】
次に、ＣＰＵ５０ａは、抽出した特徴ベクトルを各基底ベクトルに一致させるための回転角度を算出し、昇順にソートする。いまの例では、特徴ベクトルをＸｖベクトルに一致させる回転角度が最小であることから、この回転角度が最先に配置されることになる。
【００９７】
続いて、ＣＰＵ５０ａは、ソートされた回転角度の候補に応じて図形を回転し、表示装置５１に対して表示する。そして、所定の回転角度によって回転された図形を選択する操作がなされた場合には、その回転角度における図形の状態が継続して表示されることになる。図５０は、ソートによって最先に配置された回転角度（特徴ベクトルとＸｖベクトルを一致させる回転角度）だけ３次元図形１００を回転させた場合の表示例である。
【００９８】
また、図５１に示すような表示画面において、３次元図形１００の円１００ｂ上へポインタ９０を移動し、図形を回転させる操作を行ったとすると、ＣＰＵ５０ａは、指定された図形要素が円であることを特定するとともに、その特徴ベクトルとして軸ベクトルを抽出する。
【００９９】
そして、ＣＰＵ５０ａは、特徴ベクトルと基底ベクトルを一致させる回転角度を算出し、昇順にソートする。次に、ＣＰＵ５０ａは、ソートされた回転角度に応じて３次元図形１００を回転させ、操作者の操作に応じて表示装置５１に逐次表示させる。図５２〜５４は、このとき表示装置５１に表示される画像の一例を示す図である。図５２は、円の軸ベクトルをＹｖベクトルと一致させる方向に回転した場合の表示例である。また、図５３はＺｖベクトル、図５４はＸｖベクトルとそれぞれ一致するように回転させた場合の表示例である。なお、図には示していないが、−Ｘｖ，−Ｙｖ，−Ｚｖベクトルと一致させるように回転した図形も候補として表示する。
【０１００】
そして、このような表示候補の中から所定の候補を選択する操作がなされた場合にはその画面が継続的に表示されることになる。
更に、図５５に示すような表示画面において、３次元図形１００の楕円１００ｃ上へポインタ９０を移動させ、図形を回転させる操作を行ったとすると、ＣＰＵ５０ａは、指定された図形要素が楕円であることを特定するとともに、その特徴ベクトルとして軸ベクトルを抽出する。
【０１０１】
ＣＰＵ５０ａは、特徴ベクトルと基底ベクトルを一致させる回転角度を算出し、昇順にソートする。続いて、ＣＰＵ５０ａは、ソートされた回転角度に応じて３次元図形１００を回転させ、操作者の操作に応じて表示装置５１に逐次表示させる。図５６〜５８は、このとき表示装置５１に表示される画像の一例を示す図である。図５６は、楕円の軸ベクトルをＺｖベクトルと一致させる方向に回転した場合の表示例である。また、図５７はＸｖベクトル、図５８はＹｖベクトルとそれぞれ一致するように回転させた場合の表示例である。なお、図には示していないが、−Ｘｖ，−Ｙｖ，−Ｚｖベクトルと一致させるように回転した図形も候補として表示する。
【０１０２】
更に、図５９に示すような表示画面において、３次元図形１００の自由曲線１００ｄ上へポインタ９０を移動させ、図形を回転させる操作を行ったとすると、ＣＰＵ５０ａは、指定された図形要素が自由曲線であることを特定するとともに、その特徴ベクトルとして接ベクトルを抽出する。
【０１０３】
ＣＰＵ５０ａは、特徴ベクトルと基底ベクトルを一致させる回転角度を算出し、昇順にソートする。続いて、ＣＰＵ５０ａは、ソートされた回転角度に応じて３次元図形１００を回転させ、操作者の操作に応じて表示装置５１に逐次表示させる。図６０〜６２は、このとき表示装置５１に表示される画面の一例を示す図である。図６０は、自由曲線の接ベクトルをＹｖベクトルと一致させる方向に回転した場合の表示例である。また、図６１はＸｖベクトル、図６２はＺｖベクトルとそれぞれ一致するように回転させた場合の表示例である。なお、図には示していないが、−Ｘｖ，−Ｙｖ，−Ｚｖベクトルと一致させるように回転した図形も候補として表示する。
【０１０４】
以上に示したように、本発明の実施の形態によれば、３次元図形の表示形態を変更する場合には、所定の図形要素を指定し、その図形要素が有する特徴ベクトルを基底ベクトルに一致させる回転角度を算定し、その回転角度が小さいものから選択して、図形を回転させるようにしたので、少ない操作で図形を所望の方向へ回転させることが可能となる。
【０１０５】
なお、以上の実施の形態では、回転角度が小さい順に回転角度の候補をソートするようにしたが、これは一例であって、それ以外のソート方法を採用することも可能であることはいうまでもない。
【０１０６】
また、単に回転角度の大小に応じてソートするだけでなく、各図形要素毎に選択される傾向の高い方向を学習することにより、操作者の意図を反映したソートを行うことも可能である。
【０１０７】
更に、以上の実施の形態では、画面上に表示されている全ての図形要素を回転するようにしたが、例えば、予め選択された図形要素のみを回転させるようにしてもよい。
【０１０８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、図形処理装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory)やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【０１０９】
【発明の効果】
以上説明したように本発明では、図形要素を入力して所望の図形を作成し、表示装置へ出力する図形処理装置において、表示装置に表示されている所定の図形要素を指定する図形要素指定手段と、図形要素指定手段によって指定された図形要素が有する特徴ベクトルを抽出する特徴ベクトル抽出手段と、表示系が有する基底ベクトルの何れかと特徴ベクトルとを一致させるための回転角度を算定する回転角度算定手段と、図形要素を含む図形の一部または全部を、表示系において回転角度算定手段によって算定された回転角度だけ回転させる回転手段と、回転手段によって図形の一部または全部を回転する前に、図形要素のみを回転角度算定手段によって算定された角度だけ回転させる図形要素回転手段と、を有するようにしたので、簡単な操作で図形を所望の角度に回転させることが可能になる。
【図面の簡単な説明】
【図１】本発明の動作原理を説明する原理図である。
【図２】図１に示す原理図の動作を説明するための図である。
【図３】図２において四角形の上辺を指定した場合における特徴ベクトルの一例を示す図である。
【図４】図３に示す四角形を、特徴ベクトルを基底ベクトルに一致させるように回転させた場合の図である。
【図５】図２において四角形の対角線を指定した場合における特徴ベクトルの一例を示す図である。
【図６】図５に示す四角形を、特徴ベクトルを基底ベクトルに一致させるように回転させた場合の図である。
【図７】図３において、四角形の上辺のみを回転して表示した場合の一例である。
【図８】本発明の実施の形態の構成例を示すブロック図である。
【図９】図形種毎の基準点と特徴ベクトルの一例を示す図である。
【図１０】図１０（Ａ）は直線の特徴ベクトルと基準点、図１０（Ｂ）は円弧の特徴ベクトルと基準点、図１０（Ｃ）は楕円弧の特徴ベクトルと基準点を示す図である。
【図１１】図１１（Ａ）は放物線の特徴ベクトルと基準点、図１１（Ｂ）は双曲線の特徴ベクトルと基準点、図１１（Ｃ）は自由曲線の特徴ベクトルと基準点を示す図である。
【図１２】図８に示す実施の形態において実行される処理の一例を説明するフローチャートである。
【図１３】図１２に示す「基準点および特徴ベクトル抽出処理」の詳細を説明するフローチャートである。
【図１４】図１２に示す「回転角度候補推論処理」の詳細を説明するフローチャートである。
【図１５】図１２に示す「図形回転処理」の詳細を説明するフローチャートである。
【図１６】ベクトル情報テーブルの一例を示す図である。
【図１７】回転角度候補テーブルの一例を示す図である。
【図１８】図８に示す実施の形態の具体的な動作を説明するための図である。
【図１９】図１８に示す円弧の始点ベクトルＶ２をＹベクトルに一致させるように回転した図である。
【図２０】図１８に示す円弧の始点ベクトルＶ２をＸベクトルに一致させるように回転した図である。
【図２１】図１８に示す円弧の始点ベクトルＶ２を−Ｘベクトルに一致させるように回転した図である。
【図２２】図１８に示す円弧の始点ベクトルＶ２を−Ｙベクトルに一致させるように回転した図である。
【図２３】複数の図形要素が表示された場合における本発明の具体的な動作を説明するための図である。
【図２４】図２３において直線が指定され、回転が指示された場合に最初に表示される画面の一例である。
【図２５】円弧が指定された場合の表示画面の一例である。
【図２６】図２５において円弧が指定され、回転が指示された場合に最初に表示される画面の一例である。
【図２７】楕円弧が指定された場合の表示画面の一例である。
【図２８】図２７において楕円弧が指定され、回転が指示された場合に最初に表示される画面の一例である。
【図２９】双曲線が指定された場合の表示画面の一例である。
【図３０】図２９において双曲線が指定され、回転が指示された場合に最初に表示される画面の一例である。
【図３１】放物線が指定された場合の表示画面の一例である。
【図３２】図３１において放物線が指定され、回転が指示された場合に最初に表示される画面の一例である。
【図３３】自由曲線が指定された場合の表示画面の一例である。
【図３４】図３３において自由曲線が指定され、回転が指示された場合に最初に表示される画面の一例である。
【図３５】３次元図形が有する座標系と、視野座標系との関係を示す図である。
【図３６】ベクトルを回転させる際の処理について説明する図である。
【図３７】３次元図形の各図形要素の特徴ベクトルを説明する図である。
【図３８】図３８（Ａ）は直線の特徴ベクトルを、図３８（Ｂ）は円または円弧の特徴ベクトルを、図３８（Ｃ）は楕円または楕円弧の特徴ベクトルを説明する図である。
【図３９】図３９（Ａ）は自由曲線の特徴ベクトルを、図３９（Ｂ）は平面の特徴ベクトルを、図３９（Ｃ）は円筒面の特徴ベクトルを説明する図である。
【図４０】図４０（Ａ）は円錐面の特徴ベクトルを、図４０（Ｂ）は球面の特徴ベクトルを、図４０（Ｃ）はトーラス面の特徴ベクトルを説明する図である。
【図４１】図４１（Ａ）は掃引面の特徴ベクトルを、図４１（Ｂ）は回転面の特徴ベクトルを、図４１（Ｃ）は自由曲面の特徴ベクトルを説明する図である。
【図４２】図８に示す実施の形態において、３次元図形を回転させる場合に実行される処理の一例を説明するフローチャートである。
【図４３】図４２に示す「特徴ベクトル抽出処理」の詳細を説明するフローチャートである。
【図４４】図４２に示す「特徴ベクトル抽出処理」の詳細を説明するフローチャートである。
【図４５】図４２に示す「図形回転処理」の詳細を説明するフローチャートである。
【図４６】ベクトル情報テーブルの一例を示す図である。
【図４７】視野座標テーブルの一例を示す図である。
【図４８】回転角度候補テーブルの一例を示す図である。
【図４９】３次元図形を回転させる場合の具体的な動作を説明するための図である。
【図５０】図４９において、立方体上部の辺が指定され、図形の回転が指示された場合に最初に表示される画面の一例である。
【図５１】円柱上部の円が指定された場合の表示例である。
【図５２】図５１において、円柱上部の円が指定され、図形の回転が指示された場合に最初に表示される画面の一例である。
【図５３】図５２の次に表示される画面の一例である。
【図５４】図５３の次に表示される画面の一例である。
【図５５】立方体側面の楕円が指定された場合の表示例である。
【図５６】図５５において、立方体側面の楕円が指定され、図形の回転が指示された場合に最初に表示される画面の一例である。
【図５７】図５６の次に表示される画面の一例である。
【図５８】図５７の次に表示される画面の一例である。
【図５９】立方体側面の自由曲線が指定された場合の表示例である。
【図６０】図５９において、立方体側面の自由曲線が指定され、図形の回転が指示された場合に最初に表示される画面の一例である。
【図６１】図６０の次に表示される画面の一例である。
【図６２】図６１の次に表示される画面の一例である。
【図６３】従来における２次元図形の表示形態の変更方法の一例を示す図である。
【図６４】従来における３次元図形の表示形態の変更方法の一例を示す図である。
【図６５】図６４に示す画面において所定の視点が指定された場合の表示例である。
【図６６】３次元図形の表示形態の他の変更方法の一例を示す図である。
【図６７】３次元図形の表示形態の更に他の変更方法の一例を示す図である。
【符号の説明】
３０  図形処理装置
３０ａ  図形要素指定手段
３０ｂ  特徴ベクトル抽出手段
３０ｃ  回転角度算定手段
３０ｄ  回転手段
３０ｅ  図形要素指定手段
３０ｆ  回転角度指定手段
３１  入力装置
３２  表示装置
５０  図形処理装置
５０ａ  ＣＰＵ
５０ｂ  ＲＯＭ
５０ｃ  ＲＡＭ
５０ｄ  ＨＤＤ
５０ｅ  ＧＣ
５０ｆ  Ｉ／Ｆ
５１  表示装置
５２  入力装置
【図１】
0003923262.tif 000002
【図２】
0003923262.tif 000003
【図３】
0003923262.tif 000004
【図４】
0003923262.tif 000005
【図５】
0003923262.tif 000006
【図６】
0003923262.tif 000007
【図７】
0003923262.tif 000008
【図８】
0003923262.tif 000009
【図９】
0003923262.tif 000010
【図１０】
0003923262.tif 000011
【図１１】
0003923262.tif 000012
【図１２】
0003923262.tif 000013
【図１３】
0003923262.tif 000014
【図１４】
0003923262.tif 000015
【図１５】
0003923262.tif 000016
【図１６】
0003923262.tif 000017
【図１７】
0003923262.tif 000018
【図１８】
0003923262.tif 000019
【図１９】
0003923262.tif 000020
【図２０】
0003923262.tif 000021
【図２１】
0003923262.tif 000022
【図２２】
0003923262.tif 000023
【図２３】
0003923262.tif 000024
【図２４】
0003923262.tif 000025
【図２５】
0003923262.tif 000026
【図２６】
0003923262.tif 000027
【図２７】
0003923262.tif 000028
【図２８】
0003923262.tif 000029
【図２９】
0003923262.tif 000030
【図３０】
0003923262.tif 000031
【図３１】
0003923262.tif 000032
【図３２】
0003923262.tif 000033
【図３３】
0003923262.tif 000034
【図３４】
0003923262.tif 000035
【図３５】
0003923262.tif 000036
【図３６】
0003923262.tif 000037
【図３７】
0003923262.tif 000038
【図３８】
0003923262.tif 000039
【図３９】
0003923262.tif 000040
【図４０】
0003923262.tif 000041
【図４１】
0003923262.tif 000042
【図４２】
0003923262.tif 000043
【図４３】
0003923262.tif 000044
【図４４】
0003923262.tif 000045
【図４５】
0003923262.tif 000046
【図４６】
0003923262.tif 000047
【図４７】
0003923262.tif 000048
【図４８】
0003923262.tif 000049
【図４９】
0003923262.tif 000050
【図５０】
0003923262.tif 000051
【図５１】
0003923262.tif 000052
【図５２】
0003923262.tif 000053
【図５３】
0003923262.tif 000054
【図５４】
0003923262.tif 000055
【図５５】
0003923262.tif 000056
【図５６】
0003923262.tif 000057
【図５７】
0003923262.tif 000058
【図５８】
0003923262.tif 000059
【図５９】
0003923262.tif 000060
【図６０】
0003923262.tif 000061
【図６１】
0003923262.tif 000062
【図６２】
0003923262.tif 000063
【図６３】
0003923262.tif 000064
【図６４】
0003923262.tif 000065
【図６５】
0003923262.tif 000066
【図６６】
0003923262.tif 000067
【図６７】
0003923262.tif 000068