(57)【特許請求の範囲】
【請求項１】
３次元モデルを表示し、マルチタッチを検知可能なタッチパネルを備える情報処理装置であって、
前記タッチパネルに対するユーザからのタッチ操作を検知する操作検知手段と、
前記操作検知手段で検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置を用いて、前記３次元モデルの回転軸を設定する回転軸設定手段と、
前記３次元モデルの回転指示がなされた場合に、前記回転軸設定手段で設定された回転軸に基づいて、前記タッチパネルに表示された３次元モデルが回転されるように制御する回転手段と
を備え、
前記回転軸設定手段は、前記操作検知手段で検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置が変化した場合に、前記回転軸の奥行き方向を変更することを特徴とする情報処理装置。
【請求項２】
前記回転手段は、前記操作検知手段で前記少なくとも二点の位置を検知した状態で、当該二点の位置とは異なる位置のタッチ操作を検知した場合に、前記回転軸設定手段で設定された回転軸に基づいて、前記タッチパネルに表示された３次元モデルが回転されるように制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記異なる位置のタッチ操作は、前記操作検知手段で前記少なくとも二点の位置とは異なる位置におけるスライド操作であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記回転手段は、前記異なる位置の複数のタッチ操作を検知した場合に、前記回転軸設定手段で設定された回転軸に基づいて、前記３次元モデルと関連する３次元モデルが合わせて回転されるように制御することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記回転軸設定手段は、前記操作検知手段で検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置を結ぶ直線を前記３次元モデルの回転軸として設定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記情報処理装置は、
前記操作検知手段でユーザからの一点のタッチ操作を検知した場合に、前記３次元モデルを三次元空間上において移動させる移動手段を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
３次元モデルを表示し、マルチタッチを検知可能なタッチパネルを備える情報処理装置の制御方法であって、
前記情報処理装置の操作検知手段が、前記タッチパネルに対するユーザからのタッチ操作を検知する操作検知ステップと、
前記情報処理装置の回転軸設定手段が、前記操作検知ステップで検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置を用いて、前記３次元モデルの回転軸を設定する回転軸設定ステップと、
前記情報処理装置の回転手段が、前記３次元モデルの回転指示がなされた場合に、前記回転軸設定ステップで設定された回転軸に基づいて、前記タッチパネルに表示された３次元モデルが回転されるように制御する回転ステップと
を備え、
前記回転軸設定ステップは、前記操作検知ステップで検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置が変化した場合に、前記回転軸の奥行き方向を変更することを特徴とする情報処理装置の制御方法。
【請求項８】
３次元モデルを表示し、マルチタッチを検知可能なタッチパネルを備える情報処理装置の制御方法を実行可能なプログラムであって、
前記情報処理装置を、
前記タッチパネルに対するユーザからのタッチ操作を検知する操作検知手段と、
前記操作検知手段で検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置を用いて、前記３次元モデルの回転軸を設定する回転軸設定手段と、
前記３次元モデルの回転指示がなされた場合に、前記回転軸設定手段で設定された回転軸に基づいて、前記タッチパネルに表示された３次元モデルが回転されるように制御する回転手段
として機能させ、
前記回転軸設定手段は、前記操作検知手段で検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置が変化した場合に、前記回転軸の奥行き方向を変更することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元モデルの表示方法に関し、特にタッチパネルに表示された３次元モデルを、直観的に操作することの可能な情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、３次元ＣＡＤアプリケーション等で製品の３次元モデルが設計されている。設計された３次元モデルは、製品を製造するためだけではなく、製造後の製品保守等で活用される。例えば、製品が故障した場合に、ユーザは当該製品の３次元モデルをタブレット端末に表示させる。そして、ユーザは表示された３次元モデルを見ながら、製品の内部構造を確認して、当該製品の修理を行っていく。
【０００３】
タブレット端末に製品の３次元モデルを表示させる場合、ユーザはタブレット端末に備えられたタッチパネルに対して所定の操作を行うことで、３次元モデルを見やすく調整する。例えば、３次元モデルの拡大や縮小、３次元モデルの移動、そして３次元モデルの回転である。
【０００４】
タブレット端末は、当該タブレット端末に備えられたディスプレイがタッチパネルになっており、当該タッチパネルに対してユーザがタッチすることで、所定の操作が行える。例えば、タッチパネルに表示された３次元モデルの回転を行うボタンの位置が、タッチパネル上でタッチされた場合には、３次元モデルを所定の角度分回転させる仕組みが存在する。
【０００５】
このような仕組みとして、下記の特許文献１には、表示された対象物に対して回転操作を指示可能な第１指定領域と、平行移動操作を指示可能な第２指定領域と、拡大または縮小操作を指示可能な第３指定領域が予め設定されており、それぞれの領域をタッチしてスライドさせることで、３次元モデルの回転、平行移動、拡大縮小を行うことの可能な仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−０８７３２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
３次元モデルの移動と回転をタッチパネルで行う場合には、特許文献１にもあるように、所定のユーザインタフェースを設ける必要がある。特許文献１では、ユーザからの入力でスライド操作が行われた場合に、スライド移動の開始点がどの位置なのかによって移動と回転を判別していた。しかしながら、ユーザはこのような領域を常に意識しながら操作を行う必要がある。
【０００８】
また従来、タブレット端末が３次元モデルを回転させる場合には、あらかじめ決められた回転軸に基づいて、当該３次元モデルを回転させている。多くの場合は、３次元モデルの中心点を通る直線を回転軸とし、当該回転軸に沿って回転する。つまり、３次元モデルはその場から動かずに、回転することになる。よって、タブレット端末に車のドア部分の３次元モデルを表示し、ドアの蝶番部分を回転軸として回転させたい場合であっても、中心点が回転軸に設定されていると、蝶番部分を回転軸として回転できない問題がある。
【０００９】
また、中心点に基づいて３次元モデルを回転させる従来の仕組みでは、回転軸の奥行き方向も調整することができない。これは、入力デバイスであるタッチパネルが平面であり、３次元空間上の奥行き方向（Ｚ軸）の指定がしにくいためである。そのため、回転軸は３次元モデルの中心点を通る直線に限定されている場合が多い。仮に、タッチパネルで奥行き方向を指定しようとすると、３次元空間自体を回転させて回転軸を指定したり、回転軸の座標を入力したりする必要が発生するため、ユーザにとっては操作性が悪く、直観的に使用することができない問題があった。
【００１０】
本発明は上記の課題を鑑みてなされたもので、タッチパネルを備えた情報処理装置において、直感的に回転軸を設定して３次元モデルを回転することの可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために本発明の情報処理装置は、３次元モデルを表示し、マルチタッチを検知可能なタッチパネルを備える情報処理装置であって、前記タッチパネルに対するユーザからのタッチ操作を検知する操作検知手段と、前記操作検知手段で検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置を用いて、前記３次元モデルの回転軸を設定する回転軸設定手段と、前記３次元モデルの回転指示がなされた場合に、前記回転軸設定手段で設定された回転軸に基づいて、前記タッチパネルに表示された３次元モデルが回転されるように制御する回転手段とを備え、前記回転軸設定手段は、前記操作検知手段で検知した前記タッチパネルの複数のタッチ操作の少なくとも二点の位置が変化した場合に、前記回転軸の奥行き方向を変更することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、タッチパネルを備える情報処理装置において、ユーザからのタッチ操作の入力を検知すると、検知された少なくとも二点の位置を用いて回転軸を設定し、当該回転軸で３次元モデルを回転させることが可能となるので、タッチパネルを備えた情報処理装置において、直観的に回転軸を設定して３次元モデルを回転することのできる効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態におけるタブレット端末１０１のハードウェア構成の一例を示す構成図である。
【図２】タブレット端末１０１のモジュール構成の一例を示す構成図である。
【図３】本発明の実施形態における一連の処理の流れを示すフローチャートである。
【図４】設計図選択画面４０１の一例を示す構成図である。
【図５】タブレット端末１０１に記憶された設計図テーブル５０１、部品テーブル５１１、回転パラメータテーブル５２１の一例を示す構成図である。
【図６】設計図閲覧画面６０１の一例を示す構成図である。
【図７】指１本入力処理の詳細を示すフローチャートである。
【図８】設計図を構成する部品を選択した場合の一例を示す模式図である。
【図９】指１本でタッチした後、移動した場合の一例を示す模式図である。
【図１０】指ｎ本入力処理の詳細を示すフローチャートである。
【図１１】タッチされた２点の間隔が変更された場合に、回転軸の奥行き方向を変更する一例を示す模式図である。
【図１２】３本目の指でスライド操作がなされた場合に、選択された部品を回転させる一例を示す模式図である。
【図１３】３本目の指と４本目の指でスライド操作がなされた場合に、選択された部品を含む親部品も合わせて回転させる一例を示す模式図である。
【図１４】３本目の指と４本目の指と５本目の指でスライド操作がなされた場合に、設計図全体を回転させる一例を示す模式図である。
【図１５】第２の実施形態におけるタブレット端末１０１のモジュール構成の一例を示す構成図である。
【図１６】第２の実施形態における指ｎ本入力処理の詳細を示すフローチャートである。
【図１７】第２の実施形態における指ｎ本入力処理の概要を示す模式図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施の形態の一例について説明する。
【００１５】
図１は、本発明の実施形態におけるタブレット端末１０１のハードウェア構成を示す図である。タブレット端末１０１（情報処理装置）は、ディスプレイにタッチパネルを備えた装置である。３次元モデルで表現された設計図をタブレット端末１０１に記憶しており、ユーザからの要求に応じて、表示させる。
【００１６】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００１７】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ(Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ)やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００１８】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００１９】
また、入力コントローラ（入力Ｃ）２０５は、タッチパネル２０９からの入力を制御する。タッチパネル２０９は、どのような動作原理でもよい。感圧式でもよいし、静電容量方式でもよい。複数のタッチ操作を検知できれば、どのような方式でもよい。
【００２０】
ビデオコントローラ（ＶＣ）２０６は、ＣＲＴディスプレイ（ディスプレイ、表示手段）２１０等の表示器への表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。
【００２１】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２２】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００２３】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２４】
本発明のタブレット端末１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２５】
次に、タブレット端末１０１のモジュール構成を示す機能構成図について、図２を用いて説明する。尚、図２のタブレット端末１０１のモジュール構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００２６】
タブレット端末１０１は、タッチ操作検知モジュール２２１、画面表示モジュール２２２、３次元モデル回転モジュール２２３、回転軸設定モジュール２２４を備える。
【００２７】
タッチ操作検知モジュール２２１（操作検知手段）は、タッチパネル２０９に対するユーザからの入力（タッチ操作）を検知するためのモジュールである。タッチ操作検知モジュール２２１は、マルチタッチの検知が可能である。よって、タッチパネル２０９上でタッチされている点の数を検知できる。また、タッチパネル２０９においてタッチしたまま移動させる操作（以下、スライド操作）も検知する。スライド操作は、いわゆるフリックと同じ操作である。また、複数の点がタッチされた状態で、当該複数の点を移動させる操作（以下、ピンチイン操作またはピンチアウト操作）も検知することができる。この他にもタッチパネル上のマルチタッチを検知することができる。
【００２８】
画面表示モジュール２２２は、ディスプレイ２１０に３次元モデルに関する情報や、３次元モデルを表示させるためのモジュールである。
【００２９】
３次元モデル回転モジュール２２３は、画面表示モジュール２２２で表示された３次元モデルを回転させるためのモジュールである。後述する回転軸設定モジュール２２４で設定された回転軸に基づいて、３次元モデルを回転させる。
【００３０】
回転軸設定モジュール２２４は、タッチ操作検知モジュール２２１で複数の点がタッチされた場合に、当該複数の点を３次元空間上で接続した直線を３次元モデルの回転軸とするためのモジュールである。また、回転軸設定モジュール２２４は、タッチ操作検知モジュール２２１で複数の点でピンチイン操作またはピンチアウト操作がなされると、設定した回転軸の奥行き方向を変更する。
【００３１】
次に、本発明の実施形態におけるタブレット端末１０１によって行われる一連の処理について、図３に示すフローチャートを用いて説明する。
【００３２】
尚、この処理をタブレット端末１０１に実行させるためのプログラムは、タブレット端末１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、当該アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００３３】
ステップＳ３０１では、タブレット端末１０１は、ユーザからの指示に応じて、タブレット端末１０１の外部メモリ２１１等に記憶された設計図閲覧アプリケーションを起動する。設計図閲覧アプリケーションは、３次元モデルで作成された製品の設計図を閲覧するためのアプリケーションである。設計図閲覧アプリケーションで表示された３次元モデルは、タブレット端末１０１のタッチパネル２０９を通じて自由に閲覧することができる。
【００３４】
ステップＳ３０２では、タブレット端末１０１は、タブレット端末１０１の外部メモリ２１１等に記憶された図５に示す設計図テーブル５０１を取得する。設計図テーブル５０１には、タブレット端末１０１に記憶された設計図の一覧が格納されている。
【００３５】
設計図テーブル５０１（図５参照）は、型番５０２、製品名５０３、ファイル名５０４から構成される。型番５０２は、設計図が示す製品の型番を示す情報である。製品名５０３は、設計図が示す製品の名称を示す情報である。ファイル名５０４は、設計図のファイル名を示す情報である。ファイル名５０４が示すファイル名に基づいて、後述するステップＳ３０５で３次元モデルの設計図を取得する。設計図テーブル５０１は、タブレット端末１０１の外部メモリ２１１等の記憶領域に保存されている。
【００３６】
ステップＳ３０３では、タブレット端末１０１は、ステップＳ３０２で取得した設計図テーブル５０１に基づいて、図４に示す設計図選択画面４０１を生成し、当該設計図選択画面４０１をタブレット端末１０１のディスプレイ２１０に表示させる。設計図選択画面４０１は、表示する設計図をユーザに選択させるための画面である。設計図一覧４０２には、ステップＳ３０２で取得した設計図テーブル５０１の型番５０２、製品名５０３を表示させる。設計図一覧４０２に表示された設計図の一覧はそれぞれ選択可能である。
【００３７】
ステップＳ３０４では、タブレット端末１０１は、設計図選択画面４０１で設計図が選択され、設計図選択画面４０１に備えられたＯＫボタンが押下されたか否かを判定する。ＯＫボタンが押下されたと判定された場合には、ステップＳ３０５に処理を進める。ＯＫボタンが押下されなかったと判定された場合や、設計図が選択されていなかった場合には、設計図が選択され、ＯＫボタンが押下されるまで待機する。
【００３８】
ステップＳ３０５では、タブレット端末１０１は、ステップＳ３０３で表示された設計図選択画面４０１の設計図一覧４０２で選択された設計図を取得する。より具体的には、選択された設計図のファイル名５０４を参照し、当該設計図のファイル名を特定する。そして、当該ファイル名を持つ３次元モデルのファイルをタブレット端末１０１から検索し、ヒットしたファイルを取得する。尚、設計図テーブル５０１に設計図に対する絶対パスを記憶しておき、当該絶対パスに基づいて、３次元モデルのファイルを取得してもよい。
【００３９】
ステップＳ３０６では、タブレット端末１０１は、ステップＳ３０５で取得した設計図を、図６に示す設計図閲覧画面６０１に表示させる。設計図閲覧画面６０１は、３次元空間に、ステップＳ３０５で取得したファイルが持つ３次元モデル（設計図モデル６０２）を表示させる画面である。３次元モデルは、所定の座標に表示させる。
【００４０】
ステップＳ３０７では、タブレット端末１０１は、設計図閲覧画面６０１に備えられたＥＸＩＴボタン６０３が押下されるまで、ステップＳ３０８乃至ステップＳ３１３の処理を繰り返す。ＥＸＩＴボタン６０３が押下されたら、ステップＳ３１４に処理を進める。
【００４１】
ステップＳ３０８では、タブレット端末１０１は、タッチパネル２０９に対する入力を検知したか否かを判定する。タッチパネル２０９に対する入力を検知したと判定された場合には、ステップＳ３０９に処理を進める。そうでない場合、例えばタッチパネル２０９に対する入力を検知していない場合には、タッチパネル２０９に対する入力を検知するまで待機する。
【００４２】
ステップＳ３０９では、タブレット端末１０１は、検知した入力がＥＸＩＴボタン６０３に対する選択であったか否かを判定する。より具体的には、タッチパネル２０９が検知したタッチの位置が、ＥＸＩＴボタン６０３のある位置かどうかを判定する。ＥＸＩＴボタン６０３に対する選択であると判定した場合には、ループを抜けて、ステップＳ３１４に処理を進める。そうでない場合、例えば、ＥＸＩＴボタン６０３以外の位置にタッチされたと判定した場合には、ステップＳ３１０に処理を進める。
【００４３】
ステップＳ３１０では、タブレット端末１０１は、検知した入力が指１本でタッチされたものであったか否かを判定する。より具体的には、タッチパネル２０９が検知したタッチが１点であったか否かを判定する。指１本でタッチされたと判定した場合には、ステップＳ３１１に処理を進める。そうでない場合、例えば、指２本以上でタッチされたと判定した場合には、ステップＳ３１２に処理を進める。
【００４４】
ステップＳ３１１では、タブレット端末１０１は、指１本でタッチされたと判定したので、その指１本のタッチに応じた処理を実行する。本実施形態では、指１本でタッチされた場合には、ディスプレイ２１０に表示された設計図を構成する部品の選択と、３次元空間上において設計図の移動を行う。指１本入力処理の詳細は、後述する図７に示す。
【００４５】
ステップＳ３１２では、タブレット端末１０１は、検知した入力が指２本以上でタッチされたものであったか否かを判定する。より具体的には、タッチパネル２０９が検知したタッチが２点以上であったか否かを判定する。指２本以上でタッチされたと判定した場合には、ステップＳ３１３に処理を進める。そうでない場合には、ステップＳ３０７に処理を戻す。
【００４６】
ステップＳ３１３では、タブレット端末１０１は、指２本以上でタッチされたと判定したいので、そのタッチされた指の本数や動きに応じた処理を実行する。本実施形態では、タッチされた２点を接続する直線を回転軸とし、当該２点の間隔が広まったり、狭まったりした場合に回転軸の奥行き方向を変更する。また、２点がタッチされた状態で他の点でスライド操作がなされると、３次元モデルを回転させる。指ｎ本入力処理の詳細は、後述する図１０に示す。
【００４７】
ステップＳ３１４では、タブレット端末１０１は、ユーザからの入力によりＥＸＩＴボタン６０３が押下されたので、ステップＳ３０１で起動した設計図閲覧アプリケーションを終了させ、本一連の処理を終了する。
【００４８】
次に、タブレット端末１０１によって行われる指１本入力処理について、図７に示すフローチャートを用いて説明する。
【００４９】
尚、この処理をタブレット端末１０１に実行させるためのプログラムは、タブレット端末１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、当該アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００５０】
まず、ステップＳ７０１では、タブレット端末１０１は、タッチパネル２０９にタッチされた位置を取得する。より具体的には、タッチ操作検知モジュール２２１がタッチされた位置をディスプレイ２１０における座標値（Ｘ座標とＹ座標）として取得する。そして、取得した座標値を３次元空間上における座標値に変換する。こうすることで、ステップＳ３０６で表示された画面のどの部分がタッチされたのかを特定する。
【００５１】
ステップＳ７０２では、タブレット端末１０１は、ステップＳ７０１で取得した位置に設計図を構成する部品の３次元モデルが存在するか否かを判定する。３次元モデルで表示された設計図は、複数の部品から構成されている。つまり、当該複数の部品の３次元モデルを所定の座標位置に配置することで、設計図を構成している。この部品がタッチによって選択されたのかどうかを判定する。部品がタッチされたと検知する仕組みは、従来技術を用いるものとする。ステップＳ７０１で取得した位置に設計図を構成する部品が存在すると判定した場合には、ステップＳ７０３に処理を進める。ステップＳ７０１で取得した位置に設計図を構成する部品が存在しないと判定した場合には、ステップＳ７０４に処理を進める。
【００５２】
ステップＳ７０３では、タブレット端末１０１は、タッチされた位置に存在する部品を選択状態にする。どの部品が選択されたのかを特定する仕組みは、従来技術を用いるものとする。尚、既に他の部品が選択状態であった場合、タブレット端末１０１はそれまで選択していた部品の選択状態を解除してから、新しく選択された部品を選択状態に変更する。図８に示すように、ユーザから部品８０２に対するタッチ操作をタッチパネル２０９を通じて検知すると、部品８０２を選択状態にする。
【００５３】
ステップＳ７０４では、タブレット端末１０１は、終了要求が発生するまでステップＳ７０５乃至ステップＳ７０６を繰り返す。終了要求は、ユーザの指がタッチパネル２０９から離れるか、２本目以上の指がタッチされると発生する。
【００５４】
ステップＳ７０５では、タブレット端末１０１は、タッチされた点がスライド操作により移動したか否かを判定する。すなわち、ユーザがタッチパネル２０９にタッチしたまま、移動させたか否か（タッチされた点の座標値が変化したか否か）を判定する。タッチ操作検知モジュール２２１で検知するようにすればよい。タッチされた点がスライド操作により移動したと判定した場合には、ステップＳ７０６に処理を進める。タッチされた点がスライド操作により移動したと判定した場合には、ステップＳ７０４に処理を戻す。
【００５５】
ステップＳ７０６では、タブレット端末１０１は、３次元空間上において、ステップＳ３０６で表示された設計図の３次元モデルをスライド操作された方向に移動させる（移動手段）。例えば、図９に示すように、タッチパネル２０９に対して９０３に示すような軌跡でユーザからのスライド操作を検知する。すると、そのスライド操作がなされた方向やスライドされた距離を特定し、それらの方向や距離に応じて、設計図モデル６０２を９０４に示すような軌跡で移動させる。このように、指１本でタッチがなされた場合には、部品の選択や設計図の移動を行うことができる。
【００５６】
次に、タブレット端末１０１によって行われる指ｎ本入力処理について、図１０に示すフローチャートを用いて説明する。
【００５７】
尚、この処理をタブレット端末１０１に実行させるためのプログラムは、タブレット端末１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、当該アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００５８】
まず、ステップＳ１００１では、タブレット端末１０１は、ステップＳ７０３で選択された部品の３次元モデルの中心点の座標値を取得する。取得した中心点は、図５に示す回転パラメータテーブル５２１の部品中心点５２２に格納する。本実施形態では、中心点としたが、当該部品の３次元モデルの重心点であってもよい。中心点は３次元モデルごとに存在しているので、これを従来技術によって特定して取得する。
【００５９】
回転パラメータテーブル５２１は、部品中心点５２２、回転軸５２３から構成される。部品中心点５２２は、ユーザから選択された部品の中心点の３次元空間における座標値を示す情報である。回転軸５２３は、３次元空間に設定された回転軸の座標値を示す情報である。回転パラメータテーブル５２１は、タブレット端末１０１の外部メモリ２１１等の記憶領域に保存されている。
【００６０】
ステップＳ１００２では、タブレット端末１０１は、タッチされた２点の座標値を取得する。より具体的には、タッチ操作検知モジュール２２１がタッチされた位置をディスプレイ２１０における座標値（Ｘ座標とＹ座標）として取得する。そして、取得した座標値を３次元空間上における座標値に変換し、これを取得する。
【００６１】
ステップＳ１００３では、タブレット端末１０１は、ステップＳ１００１で取得した中心点の座標値と、ステップＳ１００２で取得したタッチされた２点の座標値に基づいて、３次元空間における３次元モデルの回転軸を設定する（回転軸設定手段）。より具体的には、ステップＳ１００２で取得したタッチされた２点のＸ座標とＹ座標を接続し、ステップＳ１００１で取得した中心点のＺ座標で奥行きを設定する。つまり、タッチされた点のＸ座標とＹ座標、そして中心点のＺ座標を持つ、３次元空間上の２点を結ぶ直線を回転軸とする。当該２点の座標値、すなわち回転軸の座標値は、回転パラメータテーブル５２１の回転軸５２３に格納する。当該２点を通っていれば回転軸の長さは特に問わない。尚、本実施形態では、タッチされた２点の座標値に基づいて回転軸を設定しているが、２点以上であればよい。２点以上の複数点を検出している場合には、１点と他の点の中間点に基づいて回転軸を設定してもよいし、その他の方法でもよい。このように、タッチ操作された少なくとも２点の位置を用いて、３次元モデルの回転軸を設定することができる。
【００６２】
ステップＳ１００４では、タブレット端末１０１は、タッチされている指が１本以下になるまで、つまり、タッチを検知している点が１点以下になるまで、ステップＳ１００５乃至ステップＳ１０１６を繰り返す。ユーザは、２本の指でタッチしたまま当該２本の指の間隔を変えたり、２本の指でタッチしたまま新たな指でスライドさせたりすることで、これをタブレット端末１０１が検知し、回転軸の調整と３次元モデルの回転を行っていく。すなわち、後述するステップＳ１００５乃至ステップＳ１０１６は、２点のタッチがなされたまま、各処理がなされる。
【００６３】
ステップＳ１００５では、タブレット端末１０１は、タッチされた２点の位置が変化したか否かを判定する。より具体的には、タッチ操作検知モジュール２２１で２点の位置が変化したか否かを検知し、それに基づいて判定する。タッチされた２点の位置が変化したと判定した場合には、ステップＳ１００６に処理を進める。タッチされた２点の位置が変化していないと判定された場合には、ステップＳ１００９に処理を進める。
【００６４】
ステップＳ１００６では、タブレット端末１０１は、位置が変化した２点の間隔が広がったのか、狭まったのかを判定する。つまり、ピンチアウト操作がなされたのか、ピンチイン操作がなされたのかを判定する。２点の間隔が広がったと判定した場合には、ステップＳ１００８に処理を進める。２点の間隔が狭まったと判定した場合には、ステップＳ１００７に処理を進める。
【００６５】
ステップＳ１００７では、タブレット端末１０１は、設定されている回転軸のＺ座標を加算する（回転軸設定手段）。つまり、３次元空間において回転軸をより手前に移動させる。加算した結果は、回転軸５２３に格納する。一方、ステップＳ１００８では、タブレット端末１０１は、設定されている回転軸のＺ座標を減算する（回転軸設定手段）。つまり、３次元空間において回転軸をより奥に移動させる（奥行き方向を変更する）。減算した結果は、回転軸５２３に格納する。２点の間隔が広がった場合と、狭まった場合に加算または減算される動作は逆でもよい。広がった場合にＺ座標を減算し、狭まった場合にＺ座標を加算してもよい。
【００６６】
このようにすることで、後述するステップＳ１００９乃至ステップＳ１０１６における３次元モデルの回転と共に、回転軸の調整をおこなうことができる。従来であれば、回転軸の設定及び調整と３次元モデルの回転は、別々の操作であった。つまり、回転軸の設定及び調整をするメニューを選択すると回転軸の設定ができ、当該設定が終了した後にユーザから回転の指示があると、３次元モデルを設定した回転軸に基づいて回転するという流れだった。しかしながら、回転した後に回転軸の設定が間違っていることに気づき、また回転軸の設定及び調整を行うメニューを開く必要があり、その操作の往復が手間となっていた。本発明では、回転軸の設定及び調整と３次元モデルの回転を、タッチされた２点の位置の変化と、当該２点とは異なる点のスライド操作に応じて行うことができる。すなわち、回転に必要な回転軸の設定及び調整と、その回転指示を両立させているので、ユーザは、直観的に操作することができる。また、従来のような操作の往復をすることなく、容易に回転軸の設定及び調整と３次元モデルの回転を行うことができる。更には、タブレット端末１０１を片手に持ち、もう片方の手だけで回転軸の設定及び調整と３次元モデルの回転を行うことができる。すなわち、ユーザは２本の指で回転軸の設定及び調整を行い、２本の指でタッチしたまま更にもう１本の指でスライド操作を受け付けると、３次元モデルを回転させることができる。最低でも３本の指があればよいので、タブレット端末１０１を片手で持っている場合でも、容易に操作できる。また、２本の指がタッチされていない状態で１本の指でスライド操作を受け付けると、３次元モデルの回転ではなく、３次元モデルの移動となる。回転と移動についても、タッチされた点の数に応じて変更することができる。
【００６７】
図１１では、回転軸の設定及び調整の概要を示している。ユーザがタッチパネル２０９で２点（１１０２と１１０３）のタッチを行うとタッチパネル２０９が検知する。すると、部品の中心点の座標値１１０７と、タッチされた２点に対応する３次元空間上の座標値に基づいて、１１０４に示すような回転軸を設定する。例えばこの回転軸を（Ｘ，Ｙ，Ｚ），（Ｘ，Ｙ，Ｚ）＝（５，−５，０），（３，５，０）とする。そして、１１０２と１１０３の間隔が変化した場合には、その変化に応じて回転軸を１１０５や１１０６のように手前や奥に移動させる。例えば２点の間隔が狭まった場合には前述した例からＺ座標を「１０」加算して、（Ｘ，Ｙ，Ｚ），（Ｘ，Ｙ，Ｚ）＝（５，−５，１０），（３，５，１０）というようにする。このようにして、回転軸の調整を行う。
【００６８】
ステップＳ１００９では、タブレット端末１０１は、検知している２点がタッチされたまま、新たに別の点がタッチされ、当該タッチされた点の位置が移動したか（スライドされたか）否かを判定する。２点がタッチされたままなのは、ステップＳ７０５で判定した移動と区別するためである。つまり、２点がタッチされた状態で新たに別の点がスライドされた場合には、回転、２点がタッチされていない状態で点がスライドされた場合には、移動となる。尚、２点がタッチされた状態で当該２点のうち１点がスライドされた場合には、前述したステップＳ１００６の判定で、２点の間隔が判定される（回転軸の調整と判定される）。検知している２点がタッチされたまま、新たに別の点がタッチされ、当該タッチされた点の位置が移動したと判定された場合には、ステップＳ１０１０に処理を進め、それ以外の操作であると判定された場合には、ステップＳ１００４に処理を戻す。尚、新たにタッチされた点は、１点以上であればよい。本実施形態では、新たにタッチされた点の数に応じて、回転させる対象を変更する。そのため、ステップＳ１００９では、検知している２点とは異なる複数の点が検知され、移動したか否かを判定してもよい。
【００６９】
ステップＳ１０１０では、タブレット端末１０１は、設定された回転軸を取得する。より具体的には、回転パラメータテーブル５２１の回転軸５２３に格納された回転軸の座標値を取得する。
【００７０】
ステップＳ１０１１では、タブレット端末１０１は、検知している２点とは異なる点のスライド方向と、当該異なる点の数（指の数）を取得する。これらは、タッチ操作検知モジュール２２１で取得する。
【００７１】
ステップＳ１０１２では、タブレット端末１０１は、ステップＳ１０１１で取得した情報に基づいて、２点を検知している状態でスライドされた新たな点の数（指の数）を判定する。つまり、ステップＳ１０１１で取得した点の数がいくつかを判定する。１点（１本）であると判定された場合には、ステップＳ１０１３に処理を進める。２点（２本）であると判定された場合には、ステップＳ１０１４に処理を進める。３点（３本）であると判定された場合には、ステップＳ１０１６に処理を進める。
【００７２】
ステップＳ１０１３では、タブレット端末１０１は、ステップＳ１０１０で取得した回転軸に基づいて、ステップＳ７０３で選択された部品が回転されるように制御する（回転手段）。回転軸を中心として、ステップＳ１０１１で取得したスライド方向に回転させる。スライド方向が回転軸と直交するような方向であれば、当該スライド方向に回転させればよいが、スライド方向が回転軸と平行するような方向であれば、回転させなくてもよい。回転軸に基づいた回転の方法は、従来技術を用いるものとする。図１２は、少なくとも２点を検知している状態で、当該２点とは異なる他の１点がスライドされた時の概要を示す。ユーザが１２０２と１２０３に示す２本の指でタッチした状態で１２０４に示す指でスライドさせると、タブレット端末１０１がこれを検知し、選択された部品である８０２が１１０４に示す回転軸に基づいて回転する。
【００７３】
ステップＳ１０１４では、タブレット端末１０１は、ステップＳ７０３で選択された部品の親部品を特定する。指２本で回転軸を設定したまま、他の指２本でスライド操作がなされたので、選択された部品ではなく、当該部品が属する親部品を回転させる。そこで、図５に示す部品テーブル５１１に基づいて、選択された部品の親部品を特定する。図５に示す部品テーブル５１１は、部品の親子関係を示したテーブルである。例えば、図５の部品テーブル５１１の２レコード目には、部品ＩＤ５１３に「ＢＨＮ−０１１」、親部品ＩＤ５１４に「ＢＨＮ−００１」が格納されている。つまり、２レコード目の部品は、「ＢＨＮ−００１」という部品を構成していることを示す。よって、選択された部品が「ＢＨＮ−０１１」であれば、親部品は「ＢＨＮ−００１」であることがわかるので、これを特定すればよい。
【００７４】
部品テーブル５１１（図５参照）は、型番５１２、部品ＩＤ５１３、親部品ＩＤ５１４、部品名５１５から構成される。型番５１２は、部品が構成する製品の型番５０２を示す情報である。部品ＩＤ５１３は、部品ごとに割り振られた識別情報である。親部品ＩＤ５１４は、当該部品の親部品である部品の部品ＩＤ５１３を示す情報である。部品名５１５は、当該部品の名称を示す情報である。設計図テーブル５０１は、タブレット端末１０１の外部メモリ２１１等の記憶領域に保存されている。
【００７５】
尚、親部品は３次元ＣＡＤにおけるアセンブリファイルのような部品であってもよいし、それ以外でもよい。
【００７６】
ステップＳ１０１５では、タブレット端末１０１は、ステップＳ１０１０で取得した回転軸に基づいて、ステップＳ１０１４で特定された親部品を回転させる（回転手段）。回転方法の詳細は、ステップＳ１０１３と同様であるので説明を省略する。尚、複数の指でスライドさせることになるので、当該複数の指でスライドされたスライド方向をそれぞれ検知し、当該それぞれのスライド方向が示すベクトルの和をスライド方向としてもよいし、どれか１つの点のスライド方向を採用してもよい。図１３は、２点を検知している状態で他の２点がスライドされた時の概要を示す。ユーザが１３０２と１３０３に示す２本の指でタッチした状態で１３０４と１３０５に示す２本の指でスライドさせると、タブレット端末１０１がこれを検知し、選択された部品の親部品である１３０７が１１０４に示す回転軸に基づいて回転する。
【００７７】
ステップＳ１０１６では、タブレット端末１０１は、ステップＳ１０１０で取得した回転軸に基づいて、ステップＳ３０６で表示した設計図全体を回転させる（回転手段）。回転軸を中心として、ステップＳ１０１１で取得したスライド方向に回転させる。指２本で回転軸を設定したまま、他の指３本でスライド操作がなされたので、選択された部品ではなく、当該部品が属する設計図全体を回転させる。回転方法の詳細は、前述したステップＳ１０１３とステップＳ１０１５と同様であるので説明を省略する。図１４は、２点を検知している状態で他の３点がスライドされた時の概要を示す。ユーザが１４０２と１４０３に示す２本の指でタッチした状態で１４０４、１４０５、１４０６に示す指でスライドさせると、タブレット端末１０１がこれを検知し、設計図全体である１４０８が１１０４に示す回転軸に基づいて回転する。
【００７８】
タッチしている指が１本以下になったと検知したら、ステップＳ１００４乃至ステップＳ１０１６のループ処理を終了させ、指ｎ本入力処理を終了する。
【００７９】
以上説明したように、本実施形態によれば、タッチパネルを備える情報処理装置において、複数の入力を検知すると、当該複数の入力に基づいて回転軸を設定し、当該回転軸で３次元モデルを回転させることが可能となるので、タッチパネルを備えた情報処理装置において、直観的に３次元モデルを操作することのできる効果を奏する。
【００８０】
次に、第２の実施形態について説明を行う。前述した実施形態では、タッチパネル上で２点の位置がタッチされた状態で、もう１点でスライド操作がなされた場合には、当該２点の位置を接続する直線を回転軸として設定し、３次元モデルを回転させる仕組みであった。第２の実施形態では、タッチパネル上で１点がタッチされた状態で、もう１点でスライド操作がなされた場合には、タッチされた１点から、スライド操作されたベクトル方向に対して直交する直線を回転軸として設定し、３次元モデルを回転させる仕組みを説明する。前述した実施形態では、最低でも合計３本の指でタッチ操作をする必要がある。しかし、第２の実施形態では最低でも合計２本の指でタッチ操作するだけで、３次元モデルの回転軸を設定して回転させることができる。以下、この説明を行う。
【００８１】
第２の実施形態でも、前述した実施形態と同様のタブレット端末１０１を用いる。そのため、タブレット端末１０１のハードウェア構成は、図１で前述したものと同様であるので、説明を省略する。
【００８２】
次に、第２の実施形態におけるタブレット端末１０１のモジュール構成を示す機能構成図について、図１５を用いて説明する。尚、図１５のタブレット端末１０１のモジュール構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。また、前述した実施形態と同様のモジュール構成であっても、実現可能である。
【００８３】
タブレット端末１０１は、オペレーティングシステム１５００、３次元ＣＡＤアプリケーション１５１０を備える。
【００８４】
オペレーティングシステム１５００は、いわゆるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）である。タブレット端末１０１を動作させるための基本的な機能を提供する。特に、第２の実施形態では、オペレーティングシステム１５００は、タッチ操作検知モジュール１５０１、画面表示モジュール１５０２を備える。このタッチ操作検知モジュール１５０１と画面表示モジュール１５０２は、前述したタッチ操作検知モジュール２２１と画面表示モジュール２２２と同様であるので説明を省略する。オペレーティングシステム１５００は、これ以外にもアプリケーションやプログラムを動作させるために必要な基本機能を提供する。
【００８５】
３次元ＣＡＤアプリケーション１５１０は、タブレット端末１０１で動作するアプリケーションである。３次元ＣＡＤアプリケーション１５１０は、いわゆるＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）のアプリケーションである。３次元ＣＡＤアプリケーション１５１０では、３次元モデルを作り上げることで、製品の設計を行える。特に、第２の実施形態では、作成した３次元モデルを表示するビューワーとしての役割を担う。３次元ＣＡＤアプリケーション１５１０は、３次元モデル回転モジュール１５１１、回転軸設定モジュール１５１２、アドオンプログラム１５２０を備える。
【００８６】
３次元モデル回転モジュール１５１１は、３次元モデルを回転させるためのモジュールである。後述する回転軸設定モジュール１５１２で設定された回転軸に基づいて、３次元モデルを回転させる。特に、第２の実施形態では、後述する３次元モデル回転指示モジュール１５２１からの指示に応じて、３次元モデルを回転させる。すなわち、３次元モデル回転モジュール１５１１は、いわゆるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）である。
【００８７】
回転軸設定モジュール１５１２は、３次元モデルの回転軸を設定するためのモジュールである。特に、第２の実施形態では、後述する回転軸設定指示モジュール１５２２からの指示に応じて、３次元モデルを回転させる。すなわち、回転軸設定モジュール１５１２もいわゆるＡＰＩである。
【００８８】
アドオンプログラム１５２０は、３次元ＣＡＤアプリケーション１５１０のアドオン（ａｄｄ−ｏｎ）である。アドイン（ａｄｄ−ｉｎ）やプラグイン（ｐｌｕｇ−ｉｎ）と同様である。３次元ＣＡＤアプリケーション１５１０では不足する機能を補うためのプログラムである。アドオンプログラム１５２０では、３次元モデル回転指示モジュール１５２１と、回転軸設定指示モジュール１５２２を備える。
【００８９】
３次元モデル回転指示モジュール１５２１は、前述した３次元モデル回転モジュール１５１１に対して３次元モデルの回転指示を与えるためのモジュールである。タッチ操作検知モジュール１５０１で検知した操作に応じて、回転指示を出す。回転指示を出す際には、回転対象の３次元モデルと、回転指示であるスライド操作の勢いや速度等のパラメータを３次元モデル回転モジュール１５１１に渡す。
【００９０】
回転軸設定指示モジュール１５２２は、前述した回転軸設定モジュール１５１２に対して回転軸を設定する指示を与えるためのモジュールである。第２の実施形態では、タッチ操作検知モジュール１５０１で複数の点のタッチ操作を検知した場合に、検知した少なくとも一点の位置から、スライド操作された点のベクトル方向に対して直交する直線を３次元モデルの回転軸とする。そのため、当該直線を回転軸設定指示モジュール１５２２で特定し、特定した直線を示すパラメータを回転軸設定モジュール１５１２に渡す。以上の、モジュール構成により、第２の実施形態を実現する。
【００９１】
次に、第２の実施形態における各処理について説明を行う。第２の実施形態では、前述した図３のステップＳ３１３に対応する図１０の各処理が前述した実施形態とは異なる。そのため、図３及び図７の各処理は、第２の実施形態についても同様であるので、説明を省略する。
【００９２】
第２の実施形態におけるタブレット端末１０１によって行われる指ｎ本入力処理について、図１６に示すフローチャートを用いて説明する。
【００９３】
尚、この処理をタブレット端末１０１に実行させるためのプログラムは、タブレット端末１０１にインストールされているアプリケーションの一部、若しくはアドオンプログラムとして用意されていてもよいし、当該アプリケーションとは別にインストールされたプログラムとして用意されていてもよい。
【００９４】
まず、ステップＳ１６０１では、タブレット端末１０１のアドオンプログラム１５２０は、前述したステップＳ７０３で選択された部品の３次元モデルの中心点の座標値の取得を３次元ＣＡＤアプリケーション１５１０に依頼し、その依頼に応じて３次元ＣＡＤアプリケーション１５１０が取得した中心点の座標値を取得する。取得した中心点の座標値は、図５に示す回転パラメータテーブル５２１の部品中心点５２２に格納する。第２の実施形態においても、中心点としたが、当該部品の３次元モデルの重心点であってもよい。中心点は３次元モデルごとに存在しているので、これを従来技術によって特定して取得する。
【００９５】
ステップＳ１６０２では、タブレット端末１０１は、タッチされている指が１本以下になるまで、つまり、タッチを検知している点が１点以下になるまで、ステップＳ１６０３乃至ステップＳ１６１２を繰り返す。第２の実施形態では、ユーザは少なくとも１本の指でタッチしたまま、他の指でスライド操作をすることにより、これらのタッチ操作をタブレット端末１０１が検知し、回転軸の設定と３次元モデルの回転を行うため、このような終了条件となっている。
【００９６】
ステップＳ１６０３では、タブレット端末１０１のアドオンプログラム１５２０は、タッチ操作検知モジュール１５０１で検知した情報に基づいて、少なくとも１点がタッチされたまま、当該１点とは異なる点の位置が移動したか（スライド操作されたか）否かを判定する。少なくとも１点がタッチされたまま、当該１点とは異なる点の位置が移動したと判定された場合には、ステップＳ１６０４に処理を進める。そうでない場合には、ステップＳ１６０２に処理を戻す。
【００９７】
ステップＳ１６０４では、タブレット端末１０１のアドオンプログラム１５２０は、タッチ操作検知モジュール１５０１で検知している、スライド操作をされていない点の座標値を取得する。より具体的には、タッチ操作検知モジュール１５０１がタッチされた位置をディスプレイ２１０における座標値（Ｘ座標とＹ座標）として取得する。そして、取得した座標値を３次元空間上における座標値に変換し、これを取得する。
【００９８】
ステップＳ１６０５では、タブレット端末１０１のアドオンプログラム１５２０は、タッチ操作検知モジュール１５０１で検知した、スライド操作のスライド方向を取得する。より具体的には、図１７に示すように、タッチ操作検知モジュール１５０１でスライド操作が開始された点である開始点１７０３と、スライド操作が終了された点である終了点１７０４を特定し、その２点を結んだベクトル方向を取得する。スライド方向の取得方法については、これに限らない。点が移動した軌跡を逐一取得し、取得した軌跡を解析した結果、出力されたベクトル方向をスライド方向としてもよいし、他の方法でもよい。
【００９９】
ステップＳ１６０６では、タブレット端末１０１のアドオンプログラム１５２０は、ステップＳ１６０４で取得した座標値と、ステップＳ１６０５で取得したスライド方向に基づいて、回転軸を設定する。図１７を用いて、詳細に説明をする。図１７の固定点１７０２が、ステップＳ１６０４で座標値を取得した点である。アドオンプログラム１５２０は、この固定点１７０２から、ステップＳ１６０５で取得したスライド方向（ベクトル方向）に対して直交する直線１７０８を特定する。この特定された直線１７０８の３次元空間上のＸ座標と、ステップＳ１６０１で取得した中心点１７０７のＺ座標とから、回転軸１７０９を特定する。Ｙ座標は無限でも固定的に座標値を持ってもよい。回転軸の長さは特に問わない。そして、特定された回転軸の各座標値を、回転パラメータテーブル５２１の回転軸５２３に格納し、この格納された回転軸５２３のパラメータを回転軸設定モジュール１５１２に渡すと、当該モジュールが受け取ったパラメータに応じて、３次元空間に回転軸を設定する。更に、スライド方向及びスライドの勢い等のパラメータを３次元モデル回転モジュール１５１１に渡すと、当該モジュールが受け取ったパラメータに応じて、３次元モデル１７０５を回転させる。
【０１００】
このように、少なくとも１点の位置から、スライド操作されたベクトル方向に対して直交する直線を３次元モデルの回転軸として設定することができるので、少なくとも２本の指で回転軸の設定と回転指示を与えることが可能となる。尚、第２の実施形態では、少なくとも１点の位置から、スライド操作されたベクトル方向に対して直交する直線を３次元モデルの回転軸として設定しているが、厳密に直交でなくてもよい。少なくとも１点の位置から、スライド操作されたベクトル方向に対して交差する直線であればよい。
【０１０１】
ステップＳ１６０７では、タブレット端末１０１のアドオンプログラム１５２０は、タッチ操作検知モジュール１５０１で検知したスライド操作の点（指）の数を取得する。スライド操作された指の数は１本に限らない。複数本でスライド操作することにより、前述した実施形態と同様に、３次元モデルを回転する際、当該３次元モデルと関連する他の３次元モデルも合わせて回転させることが可能となる。
【０１０２】
ステップＳ１６０８では、タブレット端末１０１のアドオンプログラム１５２０は、ステップＳ１６０７で取得した情報に基づいて、少なくとも１点を検知している状態でスライド操作された点の数を判定する。つまり、ステップＳ１６０７で取得した点の数がいくつかを判定する。１点（１本）であると判定された場合には、ステップＳ１６０９に処理を進める。２点（２本）であると判定された場合には、ステップＳ１６１０に処理を進める。３点（３本）であると判定された場合には、ステップＳ１６１２に処理を進める。
【０１０３】
ステップＳ１６０９では、タブレット端末１０１のアドオンプログラム１５２０は、３次元モデル回転指示モジュール１５２１から３次元モデル回転モジュール１５１１に対してスライド操作されたスライド方向やスライドの勢い等のパラメータを渡すことで、ステップＳ１６０６で設定された回転軸に基づいて、前述したステップＳ７０３で選択された部品を回転させる（回転手段）。回転軸に基づいた回転の方法は、従来技術を用いるものとする。
【０１０４】
ステップＳ１６１０では、タブレット端末１０１のアドオンプログラム１５２０は、ステップＳ７０３で選択された部品の親部品を特定する。指２本でスライド操作がなされたので、選択された部品ではなく、当該部品が属する親部品を回転させる。そこで、前述した図５に示す部品テーブル５１１に基づいて、選択された部品の親部品を特定する。特定の詳細については、前述したステップＳ１０１４と同様であるので、説明を省略する。
【０１０５】
ステップＳ１６１１では、タブレット端末１０１のアドオンプログラム１５２０は、３次元モデル回転指示モジュール１５２１から３次元モデル回転モジュール１５１１に対してスライド操作されたスライド方向やスライドの勢い、そして、ステップＳ１６１０で特定された親部品の情報等のパラメータを渡すことで、ステップＳ１６０６で設定された回転軸に基づいて、前述したステップＳ７０３で選択された部品とその親部品を回転させる（回転手段）。回転軸に基づいた回転の方法は、従来技術を用いるものとする。尚、複数の指でスライドさせることになるので、当該複数の指でスライドされたスライド方向をそれぞれ検知し、当該それぞれのスライド方向が示すベクトルの和をスライド方向としてもよいし、どれか１つの点のスライド方向を採用してもよい。回転方法の詳細は、前述したステップＳ１０１５と同様であるので説明を省略する。
【０１０６】
ステップＳ１６１２では、タブレット端末１０１のアドオンプログラム１５２０は、３次元モデル回転指示モジュール１５２１から３次元モデル回転モジュール１５１１に対してスライド操作されたスライド方向やスライドの勢い、そして設計図全体を示す情報等のパラメータを渡すことで、ステップＳ１６０６で設定された回転軸に基づいて、設計図全体を回転させる（回転手段）。回転軸に基づいた回転の方法は、従来技術を用いるものとする。指３本でスライド操作がなされたので、選択された部品ではなく、当該部品が属する設計図全体を回転させる。回転方法の詳細は、前述したステップＳ１０１６と同様であるので説明を省略する。
【０１０７】
そして、アドオンプログラム１５２０は、タッチしている指が１本以下になったことをタッチ操作検知モジュール１５０１からの情報により検知したら、ステップＳ１６０４乃至ステップＳ１６１２のループ処理を終了させ、指ｎ本入力処理を終了する。
【０１０８】
以上説明したように、第２の実施形態によれば、マルチタッチを検知可能なタッチパネルを備える情報処理装置において、少なくとも一点の位置と、スライド操作された位置とを用いて、タッチパネルに表示された３次元モデルの回転軸を設定し、当該回転軸に基づいて当該３次元モデルの回転をさせることが可能となるので、タッチパネルを備えた情報処理装置において、直感的に回転軸を設定し３次元モデルを回転することのできる効果を奏する。
【０１０９】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１１０】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１１１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１１２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１１３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１１４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１１５】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１１６】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１１７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１１８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１１９】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１２０】
１０１  タブレット端末
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆ（インターフェース）コントローラ
２０９  入力装置
２１０  ディスプレイ装置
２１１  外部メモリ
【図１】
0005594402.tif 000002
【図２】
0005594402.tif 000003
【図３】
0005594402.tif 000004
【図４】
0005594402.tif 000005
【図５】
0005594402.tif 000006
【図６】
0005594402.tif 000007
【図７】
0005594402.tif 000008
【図８】
0005594402.tif 000009
【図９】
0005594402.tif 000010
【図１０】
0005594402.tif 000011
【図１１】
0005594402.tif 000012
【図１２】
0005594402.tif 000013
【図１３】
0005594402.tif 000014
【図１４】
0005594402.tif 000015
【図１５】
0005594402.tif 000016
【図１６】
0005594402.tif 000017
【図１７】
0005594402.tif 000018