(57)【要約】【課題】本発明は、３次元コンピュータグラフィックス表示装置において、利用者が複数のオブジェクトを容易に配置できるオブジェクト配置装置を提供することを目的とする。【解決手段】オブジェクト配置装置１０において座標空間設定部１１０はオブジェクトの配置を指定するための座標空間を設定し、座標空間定義記憶部１２０は前記座標空間の定義情報を記憶し、位置座標設定部１３０はオブジェクトの位置座標を設定し、位置座標記憶部１４０は前記オブジェクトの位置座標を記憶し、配置情報生成部１５０は、前記座標空間の定義情報と前記オブジェクトの位置座標からオブジェクトの座標変換情報を生成する。オブジェクト配置装置は利用者が配置用座標空間における位置座標を指定することにより、基準となる座標空間上にオブジェクトを配置するための座標変換情報を生成することが出来る。【選択図】　図１
2004145797.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトの配置を指定するための座標空間の定義情報を設定する座標空間設定手段と、
前記座標空間設定手段で設定された座標空間の定義情報を記憶する座標空間定義記憶手段と、
オブジェクトの位置座標を設定する位置座標設定手段と、
前記位置座標設定手段で設定されたオブジェクトの位置座標を記憶する位置座標記憶手段と、
前記座標空間定義記憶手段に記憶されている座標空間の定義情報と前記位置座標記憶手段に記憶されているオブジェクトの位置座標からオブジェクトの座標変換情報を生成する配置情報生成手段を有することを特徴とするオブジェクト配置装置。
【請求項２】
前記座標空間設定手段は、
座標空間を定義する関数を設定する関数設定手段と、
前記関数の入力となる定数値を設定する定数設定手段を有し、
関数と定数値を座標空間の定義情報とすることを特徴とする請求項１に記載のオブジェクト配置装置。
【請求項３】
前記配置情報生成手段は、
座標変換情報を記憶する配置状態記憶手段と、
前記座標空間定義記憶手段に記憶されている座標空間の定義情報と前記位置座標記憶手段に記憶されているオブジェクトの位置座標からオブジェクトの座標変換情報を生成する座標変換情報生成手段と、
前記座標変換情報生成手段で生成されたオブジェクトの座標変換情報と前記配置状態記憶手段に記憶されている座標変換情報を合成した座標変換情報を生成し、前記合成した座標変換情報で前記配置状態記憶手段に記憶されている座標変換情報を更新する座標変換情報合成手段を有することを特徴とする請求項１に記載のオブジェクト配置装置。
【請求項４】
ＧＵＩ環境を有する情報端末であって、
請求項１に記載のオブジェクト配置装置を有し、
ユーザの入力もしくは通信回線を介して得た情報に基いて生成されたオブジェクトをオブジェクト配置装置を用いて配置し、表示することを特徴とする情報端末。
【請求項５】
オブジェクト配置装置は、表示すべきオブジェクトの内容、若しくは量に応じて、自動的にオブジェクトの配置を決定することを特徴とする、請求項４記載の情報端末。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元コンピュータグラフィックス表示装置におけるオブジェクト配置装置に関するものであり、特に、利用者が複数のオブジェクトの配置を指定するオブジェクト配置装置に関わる。
【０００２】
【従来の技術】
従来、３次元コンピュータグラフィックス表示装置において、利用者がオブジェクトの配置を指定する場合、基準となる座標系におけるオブジェクトの座標変換情報を設定しなければならなかった。この基準となる座標系は、ワールド座標系と呼ばれ、３次元コンピュータグラフィックス表示装置における計算上の基準となる座標系であり、ＸＹＺ直交座標系で表現される。座標変換情報は、（１）４行４列の行列、（２）スケーリング変換、回転変換、平行移動変換の座標変換パラメータ、などにより表現される情報であり、この座標変換情報の数値を利用者が直接入力するには、煩雑な計算が必要であり、困難であった。このような背景のもと、オブジェクトの配置方法に関して、これまでにも、様々な工夫がなされてきた。第１の従来技術として、複数のオブジェクトを規則的に配置することを容易化するために、基準となるオブジェクトを設定して、そのオブジェクトの座標系を基準に他のオブジェクトを配置する方法がある（例えば、特許文献１参照）。また、第２の従来技術として、球面状や円筒状の配置を容易化するために、配置を指定する際の座標系として、直交座標系、極座標系、円柱座標系の３種類の中から選択するものがある（例えば、特許文献２参照。）。
【０００３】
【特許文献１】
特開２０００−２０７５６号公報
【特許文献２】
特開平６−２３１２２６号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、前記の従来技術では、（１）配置の際に使用する座標系が、直交座標系、円柱座標系、極座標系などに限定されている、（２）オブジェクトの位置座標、向き、大きさを同時に設定することができない、（３）オブジェクトの配置変更時に突然表示が切り替わるため、どのように配置変更されたのか理解できない場合が生じる、などの課題を有していた。
【０００５】
また、近年、小画面で高性能の携帯、ＰＤＡ等が普及し、小さい表示面積により多くの情報を見やすく表示するためのＧＵＩ環境、アプリケーションの提供が必要となりつつある。
【０００６】
本発明は、これらの従来課題を解決するものであり、３次元コンピュータグラフィックス表示装置において、複数のオブジェクトを容易に配置することができ、また、時間的に徐々に配置を変更できるオブジェクト配置装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
（１）前記従来課題を解決するために、本発明のオブジェクト配置装置は、オブジェクトの配置を指定するための座標空間の定義情報を設定する座標空間設定手段と、前記座標空間設定手段で設定された座標空間の定義情報を記憶する座標空間定義記憶手段と、オブジェクトの位置座標を設定する位置座標設定手段と、前記位置座標設定手段で設定されたオブジェクトの位置座標を記憶する位置座標記憶手段と、前記座標空間定義記憶手段に記憶されている座標空間の定義情報と前記位置座標記憶手段に記憶されているオブジェクトの位置座標からオブジェクトの座標変換情報を生成する配置情報生成手段を有することを特徴とする。
【０００８】
（２）前記（１）のオブジェクト配置装置において、前記座標空間設定手段は、座標空間を定義する関数を設定する関数設定手段と、前記関数の入力となる定数値を設定する定数設定手段を有し、関数と定数値を座標空間の定義情報としても良い。
【０００９】
（３）前記（１）のオブジェクト配置装置において、前記配置情報生成手段は、座標変換情報を記憶する配置状態記憶手段と、前記座標空間定義記憶手段に記憶されている座標空間の定義情報と前記位置座標記憶手段に記憶されているオブジェクトの位置座標からオブジェクトの座標変換情報を生成する座標変換情報生成手段と、前記座標変換情報生成手段で生成されたオブジェクトの座標変換情報と前記配置状態記憶手段に記憶されている座標変換情報を合成した座標変換情報を生成し、前記合成した座標変換情報で前記配置状態記憶手段に記憶されている座標変換情報を更新する座標変換情報合成手段を備えても良い。
【００１０】
【発明の実施の形態】
以下、本発明の一実施の形態のオブジェクト配置装置について、図面を参照しながら説明する。図１は本発明の一実施の形態におけるオブジェクト配置装置を示すものである。図１のオブジェクト配置装置１０は、利用者からの入力に応じて、オブジェクトの配置情報を生成する装置である。
【００１１】
この配置情報は、オブジェクトを配置する際に必要となる、基準となる座標系における座標変換情報である。
【００１２】
図１に示すように、オブジェクト配置装置１０は、座標空間設定部１１０、座標空間定義記憶部１２０、位置座標設定部１３０、位置座標記憶部１４０、配置情報生成部１５０により構成される。オブジェクト配置装置１０は、具体的にはプロセッサ、プログラムを記憶しているＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、作業用のＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）等のソフトウェア及びハードウェアにより実現される。前記各部の間におけるデータの受け渡しは、ＲＡＭ等のハードウェアを介して行われる。
【００１３】
座標空間設定部１１０は、利用者からの入力に応じて、オブジェクトの配置を指定するための座標空間（以下、配置用座標空間）を設定するものであり、座標空間定義記憶部１２０に対して、前記配置用座標空間の定義情報を出力する。以下、詳細に説明する。座標空間設定部１１０は、関数設定部１１１と定数設定部１１２を有する。
【００１４】
関数設定部１１１は、利用者からの入力により、配置用座標空間を定義する関数を設定し、定数設定部１１２は、利用者からの入力により、前記関数の入力となる定数値を設定する。
【００１５】
配置用座標空間は、利用者がオブジェクトの位置座標を入力する際に使用する３次元座標空間であり、位置座標を入力とし、座標変換情報を出力とする関数ｆによって定義される。前記関数ｆは、利用者が設定する位置座標をＰ、オブジェクトの座標変換情報をスケーリング変換Ｓ、回転変換Ｒ、平行移動変換Ｔによって表現したとき、次式で表現することが出来る。
【００１６】
（Ｓ、Ｒ、Ｔ）＝ｆ（Ｐ）
配置用座標空間を導入することにより、利用者は位置座標Ｐを入力するだけで、基準となる座標系における、オブジェクトの座標変換情報を決定することができる。また、前記関数ｆは、利用者によって設定可能な定数値を持つ。定数値の一例としては、配置用座標空間の３つの座標軸に関するスケーリング係数の設定に使用することができる。これにより、同じ関数によって表現された配置用座標空間であっても、配置するオブジェクトの個数や並べる位置関係に応じて、座標軸のスケールを変更することができ、オブジェクトの位置座標の指定を容易にすることができる。
【００１７】
ここで、配置用座標空間を定義する関数の一例を使用して、配置用座標空間に関して、さらに詳細に説明する。図３（ａ）は直交座標系における座標軸と、次式で表される半径１の円筒状曲面を表している。
【００１８】
Ｘ２＋Ｚ２＝１、−１≦Ｙ≦１
この曲面を基準に、オブジェクトを配置する一例を使用して説明する。まず、利用者は配置用座標空間を定義する関数を定義する。ここでは、この関数を、位置座標Ｐ（Ｐｘ、Ｐｙ、Ｐｚ）を入力し、スケーリング変換Ｓ（Ｓｘ、Ｓｙ、Ｓｚ）、回転移動変換Ｒ（Ｒｘ、Ｒｙ、Ｒｚ）、平行移動変換Ｔ（Ｔｘ、Ｔｙ、Ｔｚ）、を出力する関数として表現する。また、配置用座標空間の定数として、スケーリング変数Ｇ（Ｇｘ、Ｇｙ、Ｇｚ）を設定する。これは、配置座標空間の３つの座標軸に関するスケーリング変換のパラメータである。このとき、以下の３つの条件を満たす配置用座標空間を定義する関数ｆは次のように定義できる。
【００１９】
＜条件＞
Ｙ軸方向のスケーリング係数Ｇｙに応じて、オブジェクトを等倍縮小させるように、オブジェクトのスケールＳを設定
オブジェクトのＺ軸方向が円筒面の法線方向となり、オブジェクトのＹ軸が円筒面の中心軸の方向となるように、オブジェクトの向きＲを設定
Ｐｘが円筒の回転角方向、Ｐｙが円筒面の高さ方向、Ｐｚが円筒面の半径方向に対応し、Ｐｚ＝０のとき円筒面上、Ｐｚ＝−Ｇｚのとき円筒中心となるように、オブジェクトの位置Ｔを設定（図３（ｂ）参照）
＜関数定義＞
Ｓｘ　＝　１／Ｇｙ
Ｓｙ　＝　１／Ｇｙ
Ｓｚ　＝　１／Ｇｙ
Ｒｘ　＝　０
Ｒｙ　＝　１８０＊Ｐｘ／Ｇｘ
Ｒｚ　＝　０
Ｔｘ　＝　（１＋Ｐｚ／Ｇｚ）＊　ｓｉｎｆ（１８０＊Ｐｘ／Ｇｘ）
Ｔｙ　＝　Ｐｙ／Ｇｙ
Ｔｚ　＝　（１＋Ｐｚ／Ｇｚ）＊　ｃｏｓｆ（１８０＊Ｐｘ／Ｇｘ）
ただし、回転に関する単位はすべて度であり、ｓｉｎｆ（ｘ）は正弦関数、ｃｏｓｆ（ｘ）は余弦関数を表す。
【００２０】
この関数の定義によると、図３（ａ）のＸＹＺ座標空間における点Ａ（０，０，１）、点Ｂ（１、０、０）は、図（ｂ）の配置用座標空間における点Ａ（０，０，０）、点Ｂ（Ｇｘ／２、０、０）となる。配置用座標空間における座標値は、前記スケール係数Ｇに依存した値となるため、オブジェクトを配置したい数に応じて、Ｇを設定することで、位置座標の指定を単純な値とすることができる。位置座標の指定に関して、さらに詳しく説明するため、図４（ａ）に示す一辺の長さが２の、板状のオブジェクト２つを、図３（ｂ）中の点Ａ、Ｂの位置に配置する一例を説明する。まず、配置用座標空間の座標軸の範囲を考慮し、関数の定数値であるスケーリング係数を（Ｇｘ、Ｇｙ、Ｇｚ）＝（２、３、１）と設定する。
【００２１】
次に、この配置用座標空間における、オブジェクトの位置座標として、点Ａ（０、０、０）、点Ｂ（１、０、０）を指定することで、図４（ｂ）のようなオブジェクトの配置を実現できる。
【００２２】
以上のように、配置用座標空間を導入することによって、単純な位置座標を設定するだけで、複雑なオブジェクトの座標変換情報（位置、向き、大きさ）を決定することができる。なお、位置座標の設定に関しては、位置座標設定部１３０の説明として後述する。
【００２３】
関数設定部１１１は、関数をプログラミング言語によって記述して入力しても良いし、あらかじめ登録された関数の中から選択して使用しても良い。前記関数定義の一例として、プログラム言語上の関数によって記述した場合、Ｃ言語の表記を使用すると、
ｖｏｉｄ　ｆ（Ｖ　＊Ｓ、Ｖ　＊Ｒ、Ｖ　＊Ｔ、Ｖ　Ｐ、Ｖ　Ｇ）；
のように定義することが出来る。このとき、Ｖは、Ｘ、Ｙ、Ｚの３要素の構造体を表しており、スケーリング係数（定数値）Ｇと位置座標Ｐを入力し、座標変換情報Ｓ、Ｒ、Ｔを出力する関数ｆを表す。なお、この記述例では、入力する情報（位置座標Ｐとスケーリング係数Ｇ）と出力する情報（座標変換情報Ｓ，Ｒ，Ｔ）を、関数の引数として定義してあるが、これらの情報は、ＲＡＭなどに記憶されていれば、どのような形で受け渡ししてもよい。
【００２４】
座標空間定義記憶部１２０は、座標空間設定部１１０から入力された座標空間の定義情報を記憶するものである。座標空間の定義情報は、配置用座標空間を定義する関数を実行するために必要な、メモリ上のアドレス（ポインタ）の情報や、関数が使用する定数値の情報などからなる。
【００２５】
位置座標設定部１３０は、前記配置用座標空間上の座標値を、配置するオブジェクトを識別するための情報（例えば、ＩＤ番号など）と関連付けて入力し、位置座標記憶部１４０に出力する。複数のオブジェクトの情報を同時に設定しても良いし、オブジェクト毎に別々に設定しても良い。
【００２６】
位置座標記億部１４０は、位置座標設定部１３０から入力されたオブジェクトの位置座標データと、対応するオブジェクトを識別するための情報（例えば、ＩＤ番号など）と関連付けて記憶するものである。
【００２７】
配置情報生成部１５０は、座標空間の定義情報とオブジェクトの位置座標から、オブジェクトの座標変換情報を生成するものである。生成した座標変換情報は、４行４列の行列であっても良いし、座標変換（スケーリング、回転、平行移動）に関するパラメータであっても良い。以下、詳細に説明する。配置情報生成部１５０は、座標変換情報生成部１５１、配置状態記憶部１５２、座標変換情報合成部１５３を有する。
【００２８】
座標変換情報生成部１５１は、位置座標記億部１４０からオブジェクトの位置座標を取得し、座標空間定義記憶部１２０から配置用座標空間を定義する関数のポインタと関数が使用する定数値を取得する。オブジェクトの位置座標と、関数の定数値を適用して、関数を呼び出すことにより、オブジェクトの座標変換情報を生成し、これを座標変換情報合成部１５３に出力する。
【００２９】
配置状態記憶部１５２は、オブジェクトの座標変換情報を、オブジェクトを識別する情報（例えば、ＩＤ番号など）と関連付けて記憶するものである。
【００３０】
座標変換情報合成部１５３は、配置状態記憶部１５２に記憶された座標変換情報（以下、座標変換情報１）を取得し、座標変換情報生成部から取得した座標変換情報（以下、座標変換情報２）の配置状態に一定の割合で近づくような座標変換情報を算出することにより、２つの座標変換情報を合成する。この計算は、具体的には、座標変換情報１と座標変換情報２が示す位置、向き、大きさの情報を補間計算した結果から、座標変換情報を生成する。補間計算で使用する重みは、それぞれの座標変換情報を生成した時間の差分を元に決定する。これにより、配置変更時に、突然配置が切り替わるのではなく、一定の速度で、配置を変更することができる。なお、前記時間の差分は、実時間に基づいて算出しても良いし、あらかじめ設定された一定値を使用しても良い。生成した座標変換情報は、配置状態記憶部１５２に渡され、記憶されているオブジェクトの座標変換情報を更新する。また、この座標変換情報は、オブジェクト配置装置１０が生成する最終的な配置情報となる。
【００３１】
オブジェクト配置装置１０によって生成された、オブジェクトの配置情報を使用することにより、コンピュータグラフィックス装置は、利用者の意図する配置でオブジェクトを表示することができる。
【００３２】
なお、上記の実施の形態では、Ｃ言語によって記述された、特定の曲面状の座標空間を対象に説明してきたが、本発明は、上記プログラミング言語や、上記配置用座標空間に限定されない。
【００３３】
以上のように構成されたオブジェクト配置装置について、図２に示すフローチャートを使用して、本発明の処理の流れを説明する。
【００３４】
まず、利用者が、配置用座標空間の定義情報とオブジェクトの位置座標を入力することで（ステップＳ１０、ステップＳ２０）、それぞれ、位置座標記憶部１４０、座標空間定義記憶部１２０の内容が更新される。ただし、利用者からの入力がない場合は、入力を待たずに、次の処理（ステップＳ３０〜）に進む。
【００３５】
次に、配置情報生成部１５０が、位置座標記億部１４０からオブジェクトの位置座標を取得し、座標空間定義記憶部１２０から座標空間の定義情報を取得する。前記オブジェクトの位置座標と前記座標空間の定義情報からオブジェクトの座標変換情報を生成し（ステップＳ４０）、配置状態記憶部１５２から取得した座標変換情報（ステップＳ５０）との補間計算により、オブジェクトの座標変換情報を生成する（ステップＳ６０）。最後に、前記生成した座標変換情報で配置状態記憶部１５２に記憶されているオブジェクトの座標変換情報を更新する（ステップＳ７０）。
【００３６】
配置情報生成部１５０の処理（ステップＳ３０〜ステップＳ８０）を、すべてのオブジェクトに関して繰り返すことで、オブジェクト配置装置１０の処理は終了する。
【００３７】
なお、本処理は、コンピュータグラフィックス装置における描画処理の中で呼ばれるものであり、描画する時間の間隔で繰り返し呼び出されるものである。
【００３８】
以下の実施の形態では、携帯電話における、ＧＵＩを例にとり、本発明におけるオブジェクト配置装置の具体的使用例を示す。
【００３９】
今日、携帯電話は電話機能のみならず、アドレス帳、文章作成（メーラー）、インターネット閲覧等様々な機能を有している。
【００４０】
例えば電話帳を表示する際、従来は図４Ａに示すような平面状に表示し、画面をはみ出す情報があっても、矢印キー等を用いてスクロールさせて表示させるのが常である。ユーザーは電話帳にどれだけの情報があるのか、直感的には把握しにくい。
【００４１】
そこで、表示すべき電話帳の内容が多いとき、図４（ｂ）に示すような円筒座標に切り替え、かつ、表示量が増えるにつれ円筒の曲率を大きくするようにオブジェクト配置装置が自動で配置を決定する。
【００４２】
このようにすれば、より直感的に電話帳の表示量を把握でき、また、欲しい情報にたどり着くまでのスクロール量をも直感的に把握できるようになる。
【００４３】
なお、本発明は必ずしも、携帯電話やＧＵＩに限定されるものではなく、ＰＣ等におけるＧＵＩや様々なアプリケーションにも応用可能である。
【００４４】
【発明の効果】
本発明のオブジェクト配置装置は、利用者のイメージする配置方法に応じた配置用座標空間と、配置用座標空間における位置座標の２つの情報を設定することにより、オブジェクトの座標変換情報を生成することを特徴とする。本構成によれば、利用者が直感的にイメージする配置を、配置用座標空間という形で定義することが可能であり、また、位置座標の指定により、オブジェクト配置の細かい調整も可能となる。
【００４５】
また、本発明の配置用座標空間の定義情報は、オブジェクトの位置座標からオブジェクトの座標変換情報を生成する関数と、関数の入力となる定数値とすることを特徴とする。配置用座標空間を任意の関数により定義できるため、円柱座標系や極座標系などの代表的な座標系以外でも、様々な座標空間を扱うことが可能である。また、関数の定数値を変更することにより、同じ関数の定義であっても、位置座標が表す配置の意味を変更することが出来る。これらは、数学的な関数によって表現できる座標空間を基準として、複数のオブジェクトを規則的に配置する場合に有効である。
【００４６】
さらに、本構成によれば、記憶してある座標変換情報と、新たに生成した座標変換情報を合成することにより、時間的に徐々に配置を変更することができる。時間的に徐々に配置を変化させて、オブジェクトを表示することにより、オブジェクトが配置されている状態の理解を助ける効果があり、対話的なオブジェクト配置装置などにも有効である。
【図面の簡単な説明】
【図１】本発明の一実施の形態におけるオブジェクト配置装置を示す図
【図２】本発明の一実施の形態におけるオブジェクト配置処理を示すフローチャート
【図３】（ａ）直交座標系における円筒面を説明するための概念図
（ｂ）円筒面状の配置用座標空間を説明するための概念図
【図４】（ａ）配置するオブジェクトを説明するための概念図
（ｂ）オブジェクトを配置した結果を説明するための概念図
【符号の説明】
１０　オブジェクト配置装置
１１０　座標空間設定部
１１１　関数設定部
１１２　定数設定部
１２０　座標空間定義記憶部
１３０　位置座標設定部
１４０　位置座標記憶部
１５０　配置情報生成部
１５１　座標変換情報生成部
１５２　配置状態記憶部
１５３　座標変換情報合成部
【図１】
2004145797.tif 000003
【図２】
2004145797.tif 000004
【図３】
2004145797.tif 000005
【図４】
2004145797.tif 000006