(57)【特許請求の範囲】
【請求項１】
コンピュータ処理が可能な図形データを組み合わせて作図を行う三次元作図システムにおいて、
入力操作に応じて図形データに含まれる物体の特定面の正視画面を表示させる正視ツールを備え、
前記正視ツールは、
入力操作の内容、量、方向又は座標を検出する操作検出手段と、
前記入力操作がなされた際の画面法線と交差又は近接する物体を特定する物体検出手段と、
前記物体検出手段で特定された物体が備えるベクトルのなかから前記入力操作中における前記画面法線との交差角度が規定角度以内である特定ベクトルを検出する斜角判定手段と、
前記操作検出手段の検出情報に応じて前記図形データを含む編集空間を視線に対して回転させ、且つ前記入力操作の終了時において前記特定ベクトルを検出した場合に当該特定ベクトルが前記画面法線と平行となる様に前記図形データを含む編集空間を視線に対して回転させる回転手段を備えることを特徴とする三次元作図システム。
【請求項２】
前記物体検出手段で特定された物体が備えるベクトルのなかから前記入力操作中における画面座標軸との交差角度が規定角度以内である特定ベクトルを検出する斜角判定手段と、
前記図形データを含む編集空間を、前記画面法線を軸として、前記入力操作の終了時において、前記物体検出手段で特定された物体のローカル座標軸又は実座標軸が前記画面座標軸と平行となる様に回転させる回転手段を具備することを特徴とする前記請求項１に記載の三次元作図システム。
【請求項３】
コンピュータ処理が可能な図形データを組み合わせて作図を行う三次元作図プログラムにおいて、
コンピュータに、
コンピュータ処理が可能な図形データを組み合わせて作図を行う三次元作図システムであって、
入力操作に応じて図形データに含まれる物体の特定面の正視画面を表示させる正視ツールを備え、
前記正視ツールは、
入力操作の内容、量、方向又は座標を検出する操作検出手段と、
前記入力操作がなされた際の画面法線と交差又は近接する物体を特定する物体検出手段と、
前記物体検出手段で特定された物体が備えるベクトルのなかから前記入力操作中における前記画面法線との交差角度が規定角度以内である特定ベクトルを検出する斜角判定手段と、
前記操作検出手段の検出情報に応じて前記図形データを含む編集空間を視線に対して回転させ、且つ前記入力操作の終了時において前記特定ベクトルを検出した場合に当該特定ベクトルが前記画面法線と平行となる様に前記図形データを含む編集空間を視線に対して回転させる回転手段を備える三次元作図システムとして機能させることを特徴とする三次元作図プログラム。
【請求項４】
前記物体検出手段で特定された物体が備えるベクトルのなかから前記入力操作中における画面座標軸との交差角度が規定角度以内である特定ベクトルを検出する斜角判定手段と、
前記図形データを含む編集空間を、前記画面法線を軸として、前記入力操作の終了時において、前記物体検出手段で特定された物体のローカル座標軸又は実座標軸が前記画面座標軸と平行となる様に回転させる回転手段を具備する三次元作図システムとして機能させることを特徴とする前記請求項３に記載の三次元作図プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形の編集処理（作図）を三次元で行う作図システム及びそのプログラムに関する。
【背景技術】
【０００２】
これまで、三次元作図システムについては、Ｘ軸、Ｙ軸、又はＺ軸について回転させながら編集作業が行えるものが提供されている。
従来の三次元作図システムは、マウスドラッグやキー操作によって、作図された物体の向きを変え得るものであって、表示方向は、斜視、ＸＹＺ軸方向からの正面図や立面図であったりする。
【０００３】
なかには、斜視は、所望の方向に達するまでマウスドラッグやキー操作を継続することによってその角度調整が行われ、ＸＹＺ軸方向からの正面図や立面図の正視は、定められたキー入力で得ることができるものも存在する（例えば、下記特許文献参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−１０５２６３号公報
【特許文献２】特開２００２−７４４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記公報に記載の技術をはじめとする従来の手法は、斜視状態における編集の途中で正視状態にする場合は、ドラッグ操作をやめて、正視状態にする機能を割り当てられたボタンを押さなければならず、現在の斜視状態から目的の正視状態にするためには、物体のローカル座標系におけるＷ軸、Ｕ軸、Ｖ軸、のどれが最も画面の法線に近いのか（Ｕ−Ｖ平面、Ｖ−Ｗ平面、Ｗ−Ｕ平面（以下、「基準面」と記す。）のどれが最も画面に近いか）を、作業者自身が判断して操作をしなければならないという問題がある。
【０００６】
具体的には、建物を表示し、正面から右側面が正視出来る様に回転させるには、Ｕ軸が正面を向く様にドラッグで回転させなければならない。その様な操作によれば、画面とＵ軸とが略垂直となり、Ｖ−Ｗ平面を正視することに近い状態となるものの、正確な垂直は得難いので、期待しない面までもが見えることとなる。
【０００７】
そこで、最寄りの面を正視する画像を表示する機能を起動するキー入力をすることで完全な正視画像を表示することができるＣＡＤも存在するが、注目する面が、Ｕ軸、Ｖ軸、又はＷ軸からなる如何なる面であるかを当初から認識することは容易ではなく、何度もキー入力をし直さねばならない場合が少なくない。
【０００８】
殊に、前記基準面に対して傾斜した面を正視したい場合にあっては、ドラッグ操作による回転角度を、例えば、９０度の約数となる角度単位で各軸毎の複雑な回転操作を行わなければならないという問題があった。
【０００９】
本発明は、上記実情に鑑みてなされたものであって、斜視状態から求める面を正視する状態までを簡便な操作で達成し得る三次元作図システム及びそのプログラムの提供を目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために為された本発明による三次元作図システムは、コンピュータ処理が可能な図形データを組み合わせて作図を行う三次元作図システムにおいて、入力操作に応じて図形データに含まれる物体の特定面の正視画面を表示させる正視ツールを備え、前記正視ツールは、入力操作の内容、量、方向又は座標を検出する操作検出手段と、前記入力操作がなされた際の画面法線と交差する物体を特定する物体検出手段と、前記物体検出手段で特定された物体が備えるベクトルのなかから前記入力操作中における前記画面法線との交差角度が規定角度以内である特定ベクトルを検出する斜角判定手段と、前記操作検出手段の検出情報に応じて前記図形データを含む編集空間を視線に対して回転させ、且つ前記入力操作の終了時において前記特定ベクトルを検出した場合に当該特定ベクトルが前記画面法線と平行となる様に前記図形データを含む編集空間を視線に対して回転させる回転手段を備えることを特徴とする。
【００１１】
上記課題を解決するために為された本発明による三次元作図プログラムは、コンピュータ処理が可能な図形データを組み合わせて作図を行う三次元作図プログラムにおいて、コンピュータに、コンピュータ処理が可能な図形データを組み合わせて作図を行う三次元作図システムであって、入力操作に応じて図形データに含まれる物体の特定面の正視画面を表示させる正視ツールを備え、前記正視ツールは、入力操作の内容、量、方向又は座標を検出する操作検出手段と、前記入力操作がなされた際の画面法線と交差する物体を特定する物体検出手段と、前記物体検出手段で特定された物体が備えるベクトルのなかから前記入力操作中における前記画面法線との交差角度が規定角度以内である特定ベクトルを検出する斜角判定手段と、前記操作検出手段の検出情報に応じて前記図形データを含む編集空間を視線に対して回転させ、且つ前記入力操作の終了時において前記特定ベクトルを検出した場合に当該特定ベクトルが前記画面法線と平行となる様に前記図形データを含む編集空間を視線に対して回転させる回転手段を備える三次元作図システムとして機能させることを特徴とする。
【００１２】
前記三次元作図システム又は前記三次元作図プログラムの回転手段として、更に、前記物体検出手段で特定された物体が備えるベクトルのなかから前記入力操作中における画面座標軸との交差角度が規定角度以内である特定ベクトルを検出する斜角判定手段と、前記図形データを含む編集空間を、前記画面法線を軸として、前記入力操作の終了時において、前記物体検出手段で特定された物体のローカル座標軸又は実座標軸が前記画面座標軸と平行となる様に回転させる回転手段を具備する構成としても良い。
【００１３】
尚、前記画面法線とは、前記入力操作で移動するカーソルの位置を通る画面の法線（指示垂線）、又は編集画面の中央を通る画面の法線（中央法線）である。
前記特定ベクトルとしては、実座標軸、又は前記物体の、ローカル座標軸、面法線、材軸、若しくは配筋方向などを用いることができる。前記面法線にこだわらない理由は、例えば、傾斜状態にある躯体の構成要素を正視する際に、当該物体のローカル座標又は実座標の軸を特定ベクトルとして、当該構成要素固有の正視画面のみならず、躯体に組み入れられた状態を正面及び側面から見たい場合があるからである。
前記入力操作としては、マウス等によるドラッグ操作やジョグシャトル等の操作が挙げられる。
【発明の効果】
【００１４】
以上の如く本発明による三次元作図システム及びそのプログラムによれば、ディスプレイ画面に表示すべき物体を含む編集空間を特定ベクトルに吸着させた形で回転させることによって、編集空間に作図されている全ての物体及びそれに関連する全てのベクトルに対する視線を調整することができる。
例えば、実座標系のＺ軸、Ｘ軸、又はＹ軸いずれかの方向の正視画像を、特定操作の開始及び終了の操作のみで実現することができ、ローカル座標系のＷ軸、Ｕ軸、又はＶ軸いずれかの方向の正視画像にあっても、ドラッグなどの特定操作の開始、継続中、及び終了の操作のみで実現することができる。
【００１５】
具体的には、編集された物体が有する各面の法線方向、材軸方向、又は配筋方向への正視画像も、前記特定操作及び終了の操作のみで表現することができる。
また、前記特定操作中に正視状態に近づいた事実を、所定の出力を以ってユーザーに知らせることができ、当該所定の出力を発する閾角度をユーザーが適宜指定することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明による三次元作図システム及びそのプログラムにおける正視ツールの処理の一例を示すフローチャートである。
【図２】本発明による三次元作図システム及びそのプログラムにおける正視ツールの入力操作で行われる処理の一例を示すフローチャートである。
【図３】本発明による三次元作図システム及びそのプログラムにおけるドラッグフラグの変化に伴う処理の振り分けの一例を示すフローチャートである。
【図４】本発明による三次元作図システム及びそのプログラムにおける正視ツールの回転オブジェクトの、（Ａ）：ドラッグ開始時、（Ｂ）：ドラッグ継続時、及び（Ｃ）ドラッグ終了時に行う処理の一例を示すフローチャートである。
【図５】本発明による三次元作図システム及びそのプログラムにおける正視ツールの回転オブジェクトの動作を説明する説明図である。
【図６】本発明による三次元作図システム及びそのプログラムにおける正視オブジェクトの、（Ａ）：ドラッグ開始時、及び（Ｂ）：ドラッグ継続時に行う処理の一例を示すフローチャートである。
【図７】本発明による三次元作図システム及びそのプログラムにおける正視オブジェクトのドラッグ終了時に行う処理の一例を示すフローチャートである。
【図８】本発明による三次元作図システム及びそのプログラムにおける表示オブジェクトの処理の一例を示す説明図である。
【図９】本発明による三次元作図システム及びそのプログラムにおける正視ツールにおける立体正視処理の一例を示す説明図である。
【図１０】本発明による三次元作図システム及びそのプログラムにおける正視ツールにおける水平正視処理の一例を示す説明図である。
【図１１】本発明による三次元作図システム及びそのプログラムにおける画面法線と編集画面に映し出される既存の物体との関係の一例を示す説明図である。
【図１２】本発明による三次元作図システム及びそのプログラムにおける画面法線と編集画面に映し出される既存の物体及び実座標との関係の一例を示す説明図である。
【図１３】本発明による三次元作図システム及びそのプログラムにおける画面法線と編集画面に映し出される交差物における交差面との関係の一例を示す説明図である。
【図１４】本発明による三次元作図システムのハードウエア構成の一例を示す説明図である。
【図１５】本発明による三次元作図システム及びそのプログラムにおける正視ツールで用いる物体オブジェクトの内容の一例を示す説明図である。
【図１６】本発明による三次元作図システム及びそのプログラムにおける正視オブジェクトでの回転中心マークの点滅処理の一例を示すフローチャートである。
【図１７】本発明による三次元作図システム及びそのプログラムにおけるデータ処理遷移の一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明による三次元作図システム（以下、作図システムと記す。）及びそのプログラムの一実施の形態を、図面を示しつつ詳細に説明する。
図１４に示す例は、コンピュータシステムにより、コンピュータ処理が可能な図形データを組み合わせて作図を行う作図システムであって、入力装置１、制御装置２、出力装置３、及び記録装置４を具備して構成される。
【００１８】
前記入力装置１は、キーボードやポインティングデバイスなど、制御装置が読み取り可能なデータをユーザーの操作によって入力する装置である。
前記制御装置２は、ＣＰＵ、メモリー、及び入出力インターフェースを含むハードウエアに、コンピュータシステムを作図システムとして機能させる三次元作図プログラム（以下、作図プログラムと記す。）をインストールしたものである。
前記出力装置３は、編集した図形を視認可能に表示するディスプレイ装置や、紙面に印画するプリンタなどである。
記録装置４は、ハードディスクやＵＳＢメモリーなどの各種記録媒体である。
【００１９】
このコンピュータシステムの例は、上記構成によって、前記ハードディスクに格納されたアプリケーションプログラム（作図プログラム）が立ち上がり、作図システムとしての機能を果たす。
編集される図形データは、各種記録媒体からなる記録装置４に対する読み書きや前記入力装置１を経た操作により、作図システムに対する入力又は保存を行う。
前記図形データの編集処理は、前記作図システムに整備されたツール（関数）と、入力装置１で与えられた位置データ又は素材データ等を用いて行う。
【００２０】
前記作図システムは、上記の如く編集処理を行うために、単数又は関連する複数の操作項目を備える複数のツールボックスを階層的に組み合わせてなるデータ（ツールデータ）と、前記操作項目に割り当てられた特定関数のデータ（関数データ）と、操作項目に対する入力操作（以下、「クリック」又は「加圧」と記す。）を以って当該操作項目に割り当てられた下位階層のツールボックスを表示し又は当該操作項目に割り当てられた特定関数を起動する選択手段と、起動された関数で必要な演算を実行する演算手段と、前記操作項目の新規選択により、選択から漏れた同階層の操作項目の選択を解除すると共に、解除された操作項目の下位階層として存在するツールボックスの選択及び表示を解除するツール管理手段を備える。
【００２１】
前記ツール関数は、その処理内容に応じて、前記入力装置からユーザーの編集操作によって生じる位置データや素材データなど、編集に必要な各種データを前記ツール関数のパラメータ等として取り込み、前記演算手段で当該ツール関数所定の演算処理を施して得た画像データをメモリーや記録装置４に保存する。
【００２２】
更に、この例は、作図空間の座標軸方向、又は当該物体が有する各面の法線方向、材軸方向、若しくは配筋方向などから見た正視画像を、ドラッグなどの特定操作のみで実現することができるように、座標検出手段、操作検出手段、物体検出手段、斜角判定手段、及び回転手段を具備する正視ツールを備える。
【００２３】
前記正視ツールを機能させるについて、当該例においては、実座標系、マウス座標（入力操作の座標）系、画面座標系及びローカル座標系に各々属する四種類の座標を取り扱う。
前記実座標系の座標（実座標）とは、この作図システムが有する作図空間全体の三次元直交座標（Ｘ、Ｙ、Ｚ）である。
【００２４】
その他の座標系は、前記実座標系とは、原点の位置や大きさが一致するものではなく、前記実座標系以外の各々との関係でも相互に一致するものではない。
前記マウス座標系の座標とは、マウス等の入力デバイスの入力操作によって形成される一定の解像度を持った平面の座標（Ｖ，Ｈ）である。
【００２５】
前記画面座標系の座標とは、前記実座標空間に存在する視点と視線方向とアップベクトルとで決定され、ディスプレイ装置の編集画面の外縁で仕切られた視錘台の前面をｘ−ｙ基準面とし、且つ前記視線方向に奥行を有する空間の三次元直交座標系の座標（ｘ，ｙ，ｚ）であって、前記実座標空間に存在する視点を原点とし視線を前記基準面（ｘ−ｙ平面）の法線（ｚ軸）とするものである。
即ち、実座標系と画面座標系とは、実座標系空間（この例では編集空間）を見る視線を決める「視線移動回転行列」の正逆行列で相互に変換することができる。
尚、上記行列及び以下の説明で用いる行列は、アフィン変換行列である。
前記ローカル座標系の座標とは、各オブジェクトが隔する空間固有の材軸や配筋方向等を軸とする三次元直交座標系の座標である。
【００２６】
＜座標検出手段＞
前記座標検出手段は、マウス等の入力装置を用いた入力操作で変化する編集画面に表示されたカーソル（例えば、図５（Ａ）参照。）の画面座標を前記位置データから検出する。
【００２７】
＜操作検出手段＞
前記操作検出手段は、当該画面座標の変化から、入力操作の内容、量、又は方向を検出する。
例えば、入力操作（入力装置１での、クリックダウン若しくは加圧又はキー入力など）及び入力操作の解除（入力装置１での、クリックアップ若しくは加圧解除又はキー入力など）、並びに当該入力操作及びその解除が行われた位置座標、若しくは位置座標の変化、又はそれによって導き出せる操作方向などがその検出対象である。
【００２８】
＜マウスオブジェクト＞
マウスオブジェクトは、この例における前記関数データを構成するオブジェクトの一つであって、前記視点（カーソル等）の位置座標を前記マウス座標系から前記画面座標系へ変換する変換行列を備え、前記座標検出手段及び前記操作検出手段で検出したマウス（入力装置１）による入力操作の具体的操作情報（位置座標を含む）を受けて、以下の通りドラッグフラグを変化させる。
当該例のマウスオブジェクトは、当該オブジェクトの内部データの処理を前記マウス座標系で行い、当該マウスオブジェクトによる処理結果を他のオブジェクトへ渡す際には、前記処理結果を実座標系に変換する。
【００２９】
当該例における前記マウスオブジェクトは、マウスによる入力操作を前記変換行列でマウス座標系から画面座標系へ変換し、前記入力操作の開始がなされたカーソル位置の画面座標を前記座標検出手段で検出し、当該画面座標を始点座標Ｐ０として保存し（図２及び図５（Ａ）参照）、マウスによる前記入力操作が継続されたままその位置が変化するに伴い、前記座標検出手段から得た変化中の位置座標に基づき前記始点座標に至る距離Ｌを逐次前記演算手段で算出して保存し、その距離が規定距離以上離隔したことを検出したらドラッグフラグをＯＮとし（図２（Ｂ）参照）、前記操作検出手段から得たマウスによる入力操作の解除の検出を以って、その位置の画面座標を前記座標検出手段で検出して保存し、ドラッグフラグをＯＦＦとする（図２（Ｃ）参照）。
【００３０】
＜物体検出手段＞
前記物体検出手段は、前記編集操作により図形データとして登録されている物体（以下、「登録物」と記す。）のなかから、画面法線と交差する物体（交差物）を検出し（図１１又は図１３参照）、前記交差物を検出できない場合には、編集空間（当該例では実座標系空間であるが、必要に応じて実座標系空間に対して所望の傾斜や移動を与えた他の三次元空間であってもよい。）の基準面を物体と見立てて当該基準面との交差点の実座標を検出する（図８及び図１２参照）。
前記物体検出手段は、編集が進行した前記編集画面において、前記画面法線を、先ず、前記画面座標で定義し、当該画面法線の軌跡を変換行列で実座標に変換し、前記登録物の位置座標（実座標）と比較することによって、当該画面法線の軌跡と交差する物体を検出する（図８参照）。
尚、前記画面法線の軌跡と交差する物体が検出されなかった場合については、前記編集基準面を物体と見立てる処理を行う前に、当該画面法線から一定距離離れた近辺も仮想の画面法線で円形走査し、当該仮想の画面法線と交わる物体及びその際の交点を検出する処理を行っても良い。
前記基準面とは、実座標系の原点を通り法線がＸ軸、Ｙ軸、Ｚ軸の三つの面を指す面である。前記画面法線が複数の基準面と交差する場合は、前記編集画面に最も近い点とＸ軸、Ｙ軸、Ｚ軸方向をベクトルとして検出する。
【００３１】
この例における画面法線は、前記中央法線であって、前記編集画面における中央の位置から当該編集画面の奥行方法へ向かうベクトルである。当該ベクトルは、その始点座標（ｘ0，ｙ0，ｚ0）と終点座標（ｘ0，ｙ0，−ｚn）からなる前記画面座標系で表し、それを前記変換行列（視線移動回転行列の逆行列）で実座標に変換した実座標系ベクトルとして用いる（図１２：表示オブジェクト参照）。
前記視線移動回転行列は、前記物体交点を視点（回転の中心）とする視線の回転移動（又は、前記編集空間の逆回転移動）を表示方向として反映させるための行列であって、実座標空間にある物体を編集画面に投影する投影行列と掛け合わせることによって射影行列Ｍｓを生成する。
【００３２】
当該例における前記物体検出手段は、前記選択手段によって正視ツールが選択され、前記ドラッグフラグがＯＮであり、且つ前記入力操作がなされた際における前記編集画面の中央を内包する物体（交差物）の面（交差面）を特定する（図８及び図１３参照）。
また、画面法線（視線）が複数の物体を貫通（交差）する場合は、前記編集画面にもっと近い物体（交差物）を対象として処理を行い、当該交差物の交点を前記回転の中心とする。
【００３３】
前記画面法線が、既に編集された既存の物体と交差するか否かを確認する際は、後に説明する表示オブジェクトの処理（図８（Ａ）参照）を以って、当該画面法線が、前記物体の表面を構成する単数の三角形又は相互に接触する複数の三角形群のいずれかと交差するか否かを判定する処理（判定処理）を行う（図１５（Ａ）参照）。
【００３４】
前記交点は、前記三角形の頂点上、線上、面上の三態様で存在するが（図１３参照）、前記交点が、頂点上又は線上に存在する場合には、当該交点は、複数の三角形に内包されていることから、各三角形の法線の平均ベクトルを前記面法線（物体法線）として採用し、前記交点が、前記面上に存在する場合には、当該交点を内包する単一の三角形の法線を前記面法線として採用する。
厚みを有し、入射点（画面法線の始点に近い側）と出射点（画面法線の始点から遠い側）が異なる物体については、入射点を前記交点として採用する。
【００３５】
以上の如く前記交差物を特定し、前記演算手段で前記画面法線と交差する三角形を特定した場合には、前記演算手段でその三角形（交差面）上の交点（物体交点）及び当該交点における法線（物体法線：前記物体交点を含む面の当該物体交点を通る法線）を導くと共に、交差物が物体の構造として持つ三次元ローカル座標系（Ｕ，Ｖ，Ｗ）の各軸（図９及び１０参照）、配筋方向、又は材軸方向を物体オブジェクトから検出し、メモリー等に保存する。
尚、当該例では、前記中央法線を画面法線とするが、前記指示垂線を画面法線とすることもできる。
【００３６】
＜物体オブジェクト＞
物体オブジェクトは、前記図形データを構成するオブジェクトの一つであって、基本的には、物体の座標等を保有し、各種関数データを構成するオブジェクトの要求に対して必要な情報を提供し、各種関数データの処理結果に基づいて情報の内容を更新するオブジェクトである。
その際、当該物体が保有する材軸や、その物体が保有する配筋情報から取得した主筋、配力筋方向から、前記物体交点に最も近いベクトルを前記演算手段で算出すると共に、他のオブジェクトの要求に応じて上記交点、ベクトルを返信し、若しくはその内容を更新する。
【００３７】
当該例における前記物体オブジェクトは、物体の位置座標（ローカル座標）と、物体の材軸（方向等を示すローカル座標）と、物体の配筋情報（方向等を示すローカル座標）と、前記物体の位置座標をローカル座標から実座標へ変換する変換行列、又は前記物体の位置座標を実座標からローカル座標へ変換する変換行列を保持する。
当該例では、物体を単数又は複数の三角形からなる表面を持つ物体として定義しており（図１５（Ａ）参照）、相互に接する三角形（辺を共有する三角形）群を一個の物体として物体オブジェクトに登録することによって、当該物体の外縁（全表面）を明らかにする。
【００３８】
前記物体の位置座標は、前記三角形群で構成される表面の頂点座標である。
前記物体の材軸とは、梁、柱など断面形と線形で入力される物体の線形であり、独立基礎、床、壁など建築物の面を形作る物体（面部材）では、材軸を観念できない場合もある。
前記物体の配筋情報は、独立基礎、床、壁などの面部材が入力される時点で、各部材の仕様に応じて設定される鉄筋の配筋方向である（図１５参照）。
【００３９】
＜斜角判定手段＞
前記斜角判定手段は、目的とする一対のベクトルの交差角度θを検出し、それが規定角度以内であるかを判定する。
当該斜角判定手段によって、例えば、ドラッグ操作中において、前記図形データの前記物体検出手段で特定された物体（交差物）から生じる固有ベクトル（前記物体法線など）と前記画面法線との交差角度θを検出し、当該交差角度θが規定角度以内である（以下、「近似」と記す。）特定ベクトルを検出することができる。
前記特定ベクトルを検出する処理（特定ベクトル検出処理）は、前記演算手段で前記画面法線と特定ベクトル候補の内積を算出し、その値が規定の正視近似範囲内にあるか否かを評価するなどすればよい。
【００４０】
＜回転手段＞
前記正視ツールは、前記入力操作によって、前記物体検出手段で検出した交差物の一面が前記編集画面と平行となる様に、前記交差物を立体回転させ（立体正視処理）、更に、前記交差物を、前記画面法線を軸として、前記交差物が保有するベクトルが、画面座標系の縦軸又は横軸と平行となる様に水平回転させ得る（水平正視処理）回転手段を具備する。
【００４１】
当該例における回転手段は、回転オブジェクトと、正視オブジェクトと、表示オブジェクトを備える。
前記回転オブジェクトと表示オブジェクトは、実座標系で各オブジェクトの内部データの処理を行う。前記回転オブジェクトでの処理における前記画面座標系から前記実座標系への座標変換は、当該回転オブジェクトが、前記表示オブジェクトから前記視線移動回転行列の逆行列を取得して行う。
前記正視オブジェクトは、前記画面座標系で当該オブジェクトの内部データの処理を行う。前記正視オブジェクトでの処理における前記実座標系から前記画面座標系への座標変換は、当該正視オブジェクトが、前記表示オブジェクトから、そのための変換行列（視線移動回転行列）を取得して行う。
前記正視ツールを構成する各オブジェクトの処理においては、図形データを含むデータの授受は複製という形で行い、例えば、各オブジェクトにおける物体ベクトル群（物体の材軸方向、ローカル座標軸、表面方向及び固有ベクトル）の変形や移動等は、編集された既存の図形データや、他のオブジェクトが内部処理の際に保有するそれらのデータに影響を与えることはない。
【００４２】
当該例における正視ツールでは、各オブジェクトは、他のオブジェクトと前記内部データの授受を行う際には、必ず、実座標系のデータで授受を行う。即ち、実座標系のデータ以外で処理を行うオブジェクトは、他のオブジェクトへの出力に際して、必ず、当該オブジェクトにおいて、他の座標系のデータから実座標系のデータに変換する処理を行い、他のオブジェクトから入力した際には、必ず、当該オブジェクトにおいて、実座標系のデータから当該オブジェクトでの処理に適合した座標系のデータに変換する（図１７参照）。
尚、前記マウス座標系から画面座標系への変換は、前記マウスオブジェクトにおけるマウス座標系から画面座標系へ変換する変換行列と前記表示オブジェクトから取得した前記実座標系から前記画面座標系へ変換する変換行列（視線移動回転行列）を乗じた行列を以って行う。
【００４３】
＜回転オブジェクト＞
前記回転オブジェクトは、前記関数データを構成するオブジェクトの一つであって、前記マウスオブジェクトによる前記ドラッグフラグの変化を検出し、ドラッグフラグがＯＦＦからＯＮに変化した時を「ドラッグ開始」、ドラッグフラグがＯＮのままで変化が無い時を「ドラッグ中」、ドラッグフラグがＯＮからＯＦＦに変化した時を「ドラッグ終了」と判定し、その判定に応じて、表示オブジェクト又は正視オブジェクトへ、以下の通り操作情報を通知する（図４（Ａ）参照）。
【００４４】
[ドラッグ開始]
即ち、前記回転オブジェクトは、前記マウスオブジェクトからドラッグフラグがＯＦＦからＯＮへ変化したとの通知を受けて（「ドラッグ開始」）、前記表示オブジェクトから、前記交差物上の前記交差点（物体交点）の位置座標、前記交差面の法線（物体法線）、当該交差物が内包する固有ベクトル、当該交差物が有するローカル座標の座標軸（以下、「ドラッグ開始情報」と記す。）を取得し（図４（Ａ）参照）、それらを前記正視オブジェクトへ通知する（「ドラッグ開始」の通知）。
【００４５】
尚、当該例における前記回転中心マークを表示する処理は、当該正視オブジェクトにおいて、前記物体交点を中心に球を作成し、当該球のデータを実座標に変換して前記表示オブジェクトに通知する。前記回転中心マークを消去する処理は、前記表示オブジェクトに、前記球を消去する旨を通知する。
【００４６】
[ドラッグ中]
また、前記回転オブジェクトは、前記マウスオブジェクトからドラッグフラグがＯＮの状態を維持継続していることを示す通知を受けて（「ドラッグ中」）、前記ドラッグ操作に伴う始点座標からの移動量（図５参照）から前記回転処理の中心を通る回転軸（後に記す立体回転軸）と回転量（立体操作角ａ）を前記操作検出手段で導き、当該回転軸及び回転量に副った操作行列Ｍ0（実座標系における回転関数）を生成し前記表示オブジェクト及び正視オブジェクトへ通知する（図４（Ｂ）参照）。
【００４７】
例えば、前記回転オブジェクトは、立体回転（編集された物体の一面を編集画面と平行に導く回転）時の前記ドラッグ操作に伴う始点座標からの移動量より画像を回転すべき角度（以下、立体操作角ａ）を求め、前記画面座標系（ｘ，ｙ，ｚ）におけるカーソルの移動ベクトル（ドラッグ操作に伴う始点座標からの二次元的移動方向）と直角で、且つ前記回転の中心を通る軸（立体回転軸）を回転軸とする操作行列（関数）Ｍ0を生成し、当該操作行列Ｍ0を、前記表示オブジェクト及び前記正視オブジェクトに通知する（図５（Ｂ）参照）。
【００４８】
前記立体操作角ａは、カーソル移動量Ｌ／編集画面の縦の長さ×Ｎで求める。
Ｎは画面の下から上までドラッグした時に、前記交差物を、それが置かれた前記編集空間（当該例では実座標系空間）と共に、視線に対して回転する角度であり、一回のドラッグ操作で一回転することが要請される場合には、その角度は、３６０度となる（図５（Ｃ）参照）。
【００４９】
[ドラッグ終了]
更に、前記回転オブジェクトは、前記マウスオブジェクトからドラッグフラグがＯＮからＯＦＦへ変化したとの通知を受けて（「ドラッグ終了」）、前記ドラッグ中の処理と同様に、前記ドラッグ操作に伴う始点座標からの移動量（図５参照）から前記操作行列Ｍ0を生成し、正視オブジェクトへ通知すると共に（図４（Ｂ）参照）、当該ドラッグ操作の終了によって確定し前記正視オブジェクトから通知された調整行列Ｍ1・調整行列Ｍ2に前記操作行列Ｍ0を乗じてその入力操作に伴って生じた回転行列Ｍを生成し、表示オブジェクトへ通知する（図４（Ｃ）参照）。
一方、このドラッグ操作に伴うカーソルの移動量Ｌが‘０’の場合には、恒等行列を前記回転行列Ｍとして表示オブジェクトへ通知する。
尚、前記調整行列Ｍ1、調整行列Ｍ2及び前記回転行列Ｍは、実座標系空間に対する回転関数である。
【００５０】
＜正視オブジェクト＞
前記正視オブジェクトは、前記関数データを構成するオブジェクトの一つであって、主に、前記立体回転における調整量（差分角を解消する量）を導くと共に、導いた調整量に基づいて前記調整行列を導く。
【００５１】
[ドラッグ開始]
当該例における前記正視オブジェクトは、前記回転オブジェクトからの「ドラッグ開始」の通知を受けて、前記回転オブジェクトから前記ドラッグ開始情報を取得すると共に、既存の図形データのなかから、交差物との交点や、交点直近の材軸方向、交差物のローカル座標軸、表面方向、又は固有ベクトル（配筋方向など）を含む保有ベクトル群を取得する（図６（Ａ）参照）。
受け取ったデータは、当該正視オブジェクトにおける内部処理に備えて当該処理に適した座標系（画面座標系）に変換する。
以下、前記材軸方向、ローカル座標軸、表面方向及び固有ベクトルを「物体ベクトル群」と記す。
【００５２】
[ドラッグ中]
当該例における前記正視オブジェクトは、前記回転オブジェクトからの「ドラッグ中（前記操作行列Ｍ0を含む）」通知を受けて、前記交差物に回転処理の中心となる点のマークを表示すると共に、以下の通り、正視スナップマーク（正視状態に近いことを示すスナップマーク）の表示処理等を行う。
前記の通り、実座標系の操作行列Ｍ0は、当該正視オブジェクトの処理対象座標系である画面座標系の操作行列ｍ0に変換する。
当該例における前記正視オブジェクトは、前記操作行列ｍ0に副って前記交差物が有する前記物体ベクトル群を回転させるべく、当該物体ベクトル群を前記操作行列ｍ0で変換し、前記斜角判定手段により、変換された当該物体ベクトル群のなかに、変換後において、前記画面法線と近似する前記特定ベクトルが存在するか否かを判定する。
【００５３】
当該例における正視オブジェクトの処理では、先ず、前記画面法線に近似するベクトルが前記交差物の前記物体ベクトル群に存在するか否かを判定する処理（図１７における「画面法線テスト」）を行い、存在する場合にのみ、続いて、前記画面座標系のｘ軸又はｙ軸と近似するベクトルが有るか否かを判定する処理を行う。
【００５４】
前記判定の結果、前記画面法線に対する前記特定ベクトルを検出できなかった場合には、正視スナップマークの表示を消去する指令・情報を表示グラフィックモジュールに送ると共に、「ドラッグ中」通知が継続する間、上記処理を繰り返す（図６（Ｂ）参照）。
一方、前記判定の結果、前記画面法線に対する前記特定ベクトルを検出した場合には、前記表示オブジェクトにより正視スナップマークを表示する指令・情報を前記表示グラフィックモジュールに送る。
【００５５】
[ドラッグ終了]
前記正視オブジェクトは、前記回転オブジェクトからの「ドラッグ終了」通知を受けて、調整行列Ｍ1及び調整行列Ｍ2をクリアし、以下の立体正視処理を行う。
前記正視オブジェクトは、前記ドラッグ中における当該正視オブジェクトの処理と同様に、前記操作行列ｍ0に副って前記交差物が有する前記物体ベクトル群を回転させるべく、当該物体ベクトル群を前記操作行列ｍ0で変換し、前記斜角判定手段により、変換された当該物体ベクトル群のなかに、変換後において、前記画面法線と近似する特定ベクトルが存在するか否かを判定する。
【００５６】
前記判定の結果、前記画面法線に対する前記特定ベクトルを検出できなかった場合には、前記正視オブジェクトは、前記立体差分角を‘０’とする恒等行列を、調整行列ｍ1とする（図７参照）。
一方、前記判定の結果、前記画面法線に対する前記特定ベクトルを検出した場合には、前記正視オブジェクトは、前記画面法線と最も近似する前記特定ベクトルを前記斜角判定手段で前記交差物の前記物体ベクトル群から選出し、前記演算手段で前記画面法線と前記特定ベクトルとの立体差分角を導く（図７参照）。
【００５７】
更に、前記正視オブジェクトは、前記演算手段で、前記特定ベクトルと画面法線の外積ベクトルを求め、当該外積方向を回転軸とし、前記立体差分角を回転量（調整量）とする行列ｍ1を導き、前記特定ベクトルと前記画面法線とを平行にする様に前記交差物が有する前記物体ベクトル群を回転させるべく（図７参照）、当該物体ベクトル群を前記調整行列ｍ1で変換する（図９参照）。
【００５８】
続いて、前記正視オブジェクトは、水平正視処理（図１７における「ｘ−ｙ軸テスト」）を行う。
その際、前記正視オブジェクトは、前記演算手段により、前記交差物の前記物体ベクトル群のｚ軸成分の量を‘０’とした画面座標面（ｘ，ｙ，０）上のベクトル群（以下、「画面ベクトル群」と記す。）を導くと共に（図１０参照）、前記斜角判定手段により、前記画面ベクトル群のなかに前記画面座標系のｘ軸又はｙ軸と近似する特定ベクトルが有るか否かを判定する。
【００５９】
前記判定の結果、前記画面座標系のｘ軸又はｙ軸に対する前記特定ベクトルを検出できなかった場合には、前記正視オブジェクトは、前記水平差分角を‘０’とする恒等行列を、当該画面座標系の調整行列ｍ2とする（図７参照）。
【００６０】
一方、前記判定の結果、前記画面座標系のｘ軸又はｙ軸に対する前記特定ベクトルを検出した場合には、前記正視オブジェクトは、前記画面座標面（ｘ，ｙ，０）のｘ軸又はｙ軸と最も近似する特定ベクトルを前記斜角判定手段で前記画面ベクトル群から選出し、当該特定ベクトルと前記画面座標系のｘ軸又はｙ軸とがなす水平差分角を前記演算手段で導き（図７参照）、前記画面座標系（ｘ，ｙ，ｚ）のｚ軸を回転軸として前記水平差分角回転する調整行列ｍ2を導く。
【００６１】
尚、前記立体正視処理及び水平正視処理においては、前記交差物の前記物体ベクトル群の前記編集空間における位置関係を、それらの処理の前後について相違させない様に、前記調整行列ｍ1による変換前の前記物体ベクトル群を一旦退避させてそれらの処理の終了後に元の状態に復元し、若しくは前記調整行列ｍ1による変換前の前記物体ベクトル群を複写して当該複写先においてそれらの処理を実行するなどの措置を採る。
【００６２】
最後に、前記正視オブジェクトは、当該正視オブジェクトの処理で得た立体差分角と水平差分角に応じた前記調整行列ｍ1と前記調整行列ｍ2を、実座標系での処理に適合する調整行列Ｍ1と調整行列Ｍ2にそれぞれ変換し回転オブジェクトに通知する（図７参照）と共に、前記回転の中心となる点のマーク及び正視スナップマークの表示を消去する指令・情報を表示グラフィックモジュールに送る。
【００６３】
＜表示オブジェクト＞
前記表示オブジェクトは、前記関数データを構成するオブジェクトの一つであって、前記物体の位置座標を実座標系から画面座標系へ変換する変換行列（視線移動回転行列）、及び前記物体の位置座標を画面座標系から実座標系へ変換する変換行列（視線移動回転行列の逆行列）並びに、前記視線移動回転行列と、実座標空間にある物体を編集画面に投影する投影行列とを掛け合わせてなる射影行列Ｍｓを備える。
【００６４】
当該例における前記表示オブジェクトは、編集画面上に入力操作に応じた描画が適切に行われる様に、前記図形データの操作を適宜行う他、保有する射影行列Ｍｓについて、前記視線移動回転行列と投影行列を分けて管理し、前記視線移動回転行列成分を、他のオブジェクトから受け取った視点の移動量Ｌ（＝｜ｐ0−ｐ1｜）又は回転量（立体操作角）ａを受けて逐次累積して更新し、最新の前記視線移動回転行列を採用した各種保有行列を、他のオブジェクトからの要求に応じて適宜通知する。
【００６５】
更に当該例における前記表示オブジェクトは、前記登録物に関する前記物体オブジェクト、又は各オブジェクトで生成されたマーク等の図形データに副って、既に編集された図形データを編集画面に表示する処理を行う。
【００６６】
当該例における前記表示オブジェクトは、具体的には、前記回転オブジェクトから通知された前記操作行列Ｍ0並びに調整行列Ｍ1及び前記調整行列Ｍ2を、前記回転行列Ｍ（＝Ｍ0・Ｍ1・Ｍ2）という形で受け、前記編集画面に表示する際の新たな視線（view）情報を与える関数を前記回転行列Ｍに乗じ、前記物体交点を中心とした回転（編集空間に対する視線の変化）を編集画面の表示として反映する回転行列Ｍｖ（＝移動行列（−物体交点）・Ｍ0・Ｍ1・Ｍ2・移動行列（物体交点））を生成する。
【００６７】
尚、前記回転行列Ｍｖは、前記物体交点を前記移動行列（−物体交点）で実座標の原点へ移動させ、当該原点を中心として回転行列Ｍによる回転を行い、その後、前記物体交点を前記移動行列（物体交点）で当該物体交点が当初存在した実座標系の位置へ戻す行列であって、当該回転行列Ｍｖを用いた変換を経ることによって前記編集空間に対する視線を変化させることができる。
【００６８】
更に、当該例における表示オブジェクトは、前記視線の変化に基づく回転行列Ｍｖを既存の射影行列Ｍｓに乗じて射影行列Ｍｓを更新し（Ｍｓ＝Ｍｖ・Ｍｓ）、更新した当該射影行列Ｍｓを前記図形データに含まれるすべての表示物体の前記位置座標等とともに前記表示グラフィックモジュールに送ることによって表示関数による演算が施され、前記編集画面に、前記入力操作を反映した所望の面の正視画像を表示する（図８（Ｂ）参照）。
【００６９】
尚、ドラッグ中においては、前記調整行列Ｍ1及び前記調整行列Ｍ2を恒等行列として前記回転行列Ｍを導き、ドラッグ終了時においては、前記正視オブジェクトから通知された前記調整行列Ｍ1及び前記調整行列Ｍ2を用いて前記回転行列Ｍを導き同様の処理を行う（図１７参照）。
【００７０】
上記の通り、前記正視ツールで前記編集画面に正視画像等を表示するにあたり、前記物体検出手段の処理においては、前記画面法線と物体表面との交点を、前記物体検出手段で算出し、前記画面法線と交差する物体が無い場合には、前記実座標系の基準面との交点を前記演算手段で算出し、この様に算出した交点を、前記回転オブジェクトにおける物体の回転操作の中心とし（図８（Ａ）参照）、特定ベクトルの検出範囲に、前記実座標系の座標軸を含める。
【符号の説明】
【００７１】
１  入力装置，２  制御装置，３  出力装置，４  記録装置，
【図１】
0005905421.tif 000002
【図２】
0005905421.tif 000003
【図３】
0005905421.tif 000004
【図４】
0005905421.tif 000005
【図５】
0005905421.tif 000006
【図６】
0005905421.tif 000007
【図７】
0005905421.tif 000008
【図８】
0005905421.tif 000009
【図９】
0005905421.tif 000010
【図１０】
0005905421.tif 000011
【図１１】
0005905421.tif 000012
【図１２】
0005905421.tif 000013
【図１３】
0005905421.tif 000014
【図１４】
0005905421.tif 000015
【図１５】
0005905421.tif 000016
【図１６】
0005905421.tif 000017
【図１７】
0005905421.tif 000018