説明

組み込まれた1次元多様体経路に沿ったアイテムの自動レイアウト

【課題】組み込まれた1次元多様体経路に沿ったアイテムの自動レイアウトを提供する。
【解決手段】組み込まれた1次元多様体または経路に沿って2、3、またはn次元空間内にビジュアルアイテムをレイアウトするための座標が計算され、コンテナにおけるそのアイテムの配置のための座標が生成される。このようなメカニズムは、グラッフィックスアプリケーションによって利用することができ、また、オブジェクトまたはアイテムの場所または位置付けを決定する。コンテナ内に配置されるオブジェクトまたはアイテムの態様を記述する1組のパラメータを受け取ることに応答して、1組のxおよびy座標、またはx、y、z座標を生成して、表示することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフィックスアプリケーションに関し、詳細には、コンテナ内に組み込まれた1次元多様体経路に沿って、2次元空間、3次元空間、およびn次元空間においてアイテムをレイアウトすることに関する。
【背景技術】
【0002】
グラフィックスアプリケーションにおいて、ユーザは、頻繁にアイテムの順序付きリストとして決定論的方法でビジュアルアイテム(visualitem)を見てレイアウトすることができる必要がある。いくつかのグラフィックスアプリケーションでは、2次元アイテムが、レイアウトポリシ(layoutpolicy)に基づいて自動的にレイアウトされる。典型的には、アイテムは、左から右へ、右から左へ、上から下へ、または下から右へのパターンで、順次に2次元(通常は長方形の)コンテナ内に配置される。典型的なレイアウトポリシは、(通常は長方形の)オブジェクトが長方形のウィンドウに左から右へ配置されるフローレイアウト(flowlayout)、オブジェクトが垂直方向にレイアウトされるドックパネル(dock panel)、および、オブジェクトがテーブル形式でレイアウトされるグリッドレイアウトを含む。「グリッド(grid)」は、行および列に配列されるセルからなる。
【0003】
オブジェクトを3次元またはそれより高次元のコンテナ内にオブジェクトを配置するときに、どのようにオブジェクトがレイアウト「されるべきか」についての予想はより少なく、また制約条件もより少ない。
【発明の開示】
【発明が解決しようとする課題】
【0004】
当技術分野において、2次元空間だけでなく3次元またはそれより高次元の空間においても、ビジュアルアイテムをレイアウトするための、より柔軟な方法を提供する必要がある。
【課題を解決するための手段】
【0005】
組み込まれた1次元多様体または経路に沿って、2、3、またはn次元空間に、ビジュアルアイテムをレイアウトするためのメカニズムが提供される。1次元多様体は、連続でも不連続でもよく、コンテナ内に完全に含まれても、コンテナを超えて延長してもよい。1次元多様体を、関数、式、または点集合を定義する1組のパラメータによって定義することができる。コンテナは、2次元、3次元、またはn次元のコンテナとすることができる。
【0006】
このようなメカニズムを、グラフィックスアプリケーションによって利用することができ、オブジェクトまたはアイテムの場所または位置付けを決定することができる。オブジェクトまたはアイテムは、1組のオブジェクトまたはアイテムのうちの1つでありうる。1次元多様体を定義する1組のパラメータを受け取ることに応答して、1次元多様体をコンテナに組み込むことができる。コンテンナ内に配置されるオブジェクトまたはアイテムの態様を記述する1組のパラメータを受け取ることに応答して、1組のxおよびy、またはx、y、zの座標を生成して、表示のために標準のグラフィックスインターフェースに送ることができる。
【0007】
以上の要約ならびに次の例示的実施形態の詳細な説明は、添付の図面と併せて読むと、よりよく理解される。本発明を説明する目的のために、本発明の例示的構成を図面に示しているが、本発明は、開示の特定の方法および手段に限定されない。
【図面の簡単な説明】
【0008】
【図1】本発明の態様を実装することができる例示的コンピューティング環境を示すブロック図である。
【図2】本発明の一実施形態による、コンテナ内に組み込まれた1次元多様体に沿ってオブジェクトまたはアイテムを位置付けるための例示的システムを示すブロック図である。
【図3a】本発明の実施形態による、2次元コンテナ内における例示的1次元多様体を示す図である。
【図3b】本発明の実施形態による、2次元コンテナ内における例示的1次元多様体を示す図である。
【図3c】本発明の実施形態による、2次元コンテナ内における例示的1次元多様体を示す図である。
【図3d】本発明の実施形態による、2次元コンテナ内における例示的1次元多様体を示す図である。
【図4a】本発明の一実施形態による、3次元コンテナ内における例示的1次元多様体を示す図である。
【図4b】本発明の実施形態による、2次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図4c】本発明の実施形態による、2次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図4d】本発明の実施形態による、3次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図4e】本発明の実施形態による、3次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図4f】本発明の実施形態による、3次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図4g】本発明の一実施形態による、2次元コンテナの外部に延長する例示的1次元多様体を示す図である。
【図4h】本発明の一実施形態による、3次元コンテナの外部に延長する例示的1次元多様体を示す図である。
【図5】本発明のいくつかの実施形態による、例示的スクロールメカニズムを示す図である。
【図6】本発明の一実施形態による、位置座標を生成するための方法を示す図である。
【発明を実施するための形態】
【0009】
概観
コンテナ内またはキャンバス(canvas)上にアイテムを配列するための最も単純な方法は、各アイテムの位置および方向を指定することである。しかし、このような固定されたレイアウトスキームは、変更が発生した場合、あまり有用ではない。例えば、このようなスキームを使用して既存のキャンバス上に新しいアイテムを挿入するためには、プログラマが、新しいアイテムの位置を指定しなければならない。所望の場所にそのアイテムに十分な「ビジュアル空間(visualspace)」がない場合、プログラマは、新しいアイテムのための場所を作るために元のアイテムを再配列しなければならない。
【0010】
同様に、キャンバスの形状またはサイズが変更される場合、もはやすべてのアイテムを表示することができないおそれがある。すべてのアイテムが、可視のままである必要がある場合、アイテムの位置を再配列するコードが提供されなければならない。コンテナにすべてのアイテムを表示するのに十分な空間がない場合、そのレイアウトでは、それらのアイテムのいくつかだけを表示することがある。スクロールバーは、どのアイテムを可視にするかをユーザが選択できるようにすることができる。
【0011】
3次元(またはそれより高次元)の導入により、コンテナ内にどのようにアイテムが配置されるかが変化する。
【0012】
例示的コンピューティング環境
図1および以下の議論は、本発明を実装することができる適切なコンピューティング環境の簡潔で一般的な記述を提供することを目的とする。しかし、ハンドヘルド、ポータブル、および他のあらゆる種類のコンピューティングデバイスが、本発明と関連して使用するために企図されることを理解されたい。以下では汎用コンピュータについて説明するが、これは一例に過ぎず、本発明は、ネットワークサーバとの相互運用性および相互作用を有するシンクライアントのみを必要とする。したがって、本発明を、非常にわずかまたは最小限のクライアントリソースが関係するネットワーク化されたホストサービスの環境、例えば、クライアントデバイスがワールドワイドウェブに対するブラウザまたはインターフェースの役割をするだけのネットワーク化された環境において実装することができる。
【0013】
本発明は、必須ではないが、開発者によって使用されるアプリケーションプログラミングインターフェース(API)を介して実装される、かつ/または、ネットワークブラウザソフトウェア内に含まれてもよく、それは、クライアントワークステーション、サーバ、または他のデバイスなどの1つまたは複数のコンピュータによって実行されるプログラムモジュールのようなコンピュータ実行可能命令の一般的コンテキストで記述される。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態において所望に応じて組み合わせても分散させてもよい。さらに、本発明を、他のコンピュータシステム構成とともに実施することもできることは当業者には理解されよう。本発明と使用するために適切でありうる他の周知のコンピューティングシステム、環境、および/または構成には、以下に限定されないが、パーソナルコンピュータ(PC)、ATM、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、およびメインフレームコンピュータなどが含まれる。本発明を、通信ネットワークまたは他のデータ伝送媒体を介してリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、メモリ記憶装置を含めてローカルとリモートの両方のコンピュータ記憶媒体に、プログラムモジュールを配置することができる。
【0014】
したがって、図1は、本発明を実装することができる適切なコンピューティングシステム環境100の一例を示すが、上記で明らかなように、コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲にいかなる限定も示唆するものではない。コンピューティング環境100はまた、例示的動作環境100に示されるコンポーネントの任意の1つまたは組合せに関係するどんな依存関係または要件も有すると解釈されるべきではない。
【0015】
図1を参照すると、本発明を実装するための例示的システムは、コンピュータ110の形態で汎用コンピューティングデバイスを含んでいる。コンピュータ110のコンポーネントには、これだけに限定されないが、処理装置120、システムメモリ130、ならびに、システムメモリを含む様々なシステムコンポーネントを処置装置120に結合するシステムバス121が含まれうる。システムバス121は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどを含むいくつかのタイプのバス構造のいずれでもよい。このようなアーキテクチャには、限定ではなく例として挙げれば、ISA(業界標準アーキテクチャ)バス、MCA(マイクロチャネルアーキテクチャ)バス、EISA(拡張ISA)バス、VESA(ビデオ電子規格協会)ローカルバス、および、(メザニン(Mezzanine)バスとしても知られる)PCI(周辺コンポーネント相互接続)バスが含まれる。
【0016】
コンピュータ110は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスすることができる任意の利用可能な媒体とすることができ、それには、揮発性と不揮発性の両方の媒体、および、リムーバルと固定の両方の媒体が含まれる。限定ではなく例として挙げると、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術で実装される、揮発性と不揮発性の両方の媒体、およびリムーバルと固定の両方の媒体が含まれる。コンピュータ記憶媒体には、以下に限定されないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、あるいは、CDROM、DVD(デジタル多用途ディスク)、または他の光ディスクストレージ、あるいは、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ディスク記憶装置、あるいは、所望の情報を格納するために使用することができコンピュータ110によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、通常、搬送波または他の移送メカニズムなどの被変調データ信号として、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具体化し、また任意の情報送達媒体を含む。用語「被変調データ信号」は、信号として情報を符号化するようにセットまたは変更された1つまたは複数の信号特性を有する信号を意味する。限定ではなく例として挙げると、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の媒体の任意の組合せも、コンピュータ可読媒体の範囲に含まれることになる。
【0017】
システムメモリ130は、コンピュータ記憶媒体を、ROM(リードオンリメモリ)131およびRAM(ランダムアクセスメモリ)132などの揮発性および/または不揮発性のメモリの形態で含む。始動時などにコンピュータ110内の要素間で情報を転送する助けとなる基本ルーチンを含むBIOS(基本入出力システム)133は、通常、ROM131に格納されている。RAM132は、通常、処理装置120により、即座にアクセス可能および/または現在処理中である、データおよび/またはプログラムモジュールを含む。図1は、限定ではなく例として、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
【0018】
コンピュータ110は、他のリムーバル/固定、および揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。単に例として示すが、図1では、固定で不揮発性の磁気媒体から読み取りまたはそれに書き込むハードディスクドライブ141、リムーバルで不揮発性の磁気ディスク152から読み取りまたはそれに書き込む磁気ディスクドライブ151、および、CDROMまたは他の光媒体などリムーバルで不揮発性の光ディスク156から読み取りまたはそれに書き込む光ディスクドライブ155を示している。例示的動作環境において使用することができる他のリムーバル/固定で揮発性/不揮発性のコンピュータ記憶媒体には、これだけに限定されないが、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、半導体RAM、および半導体ROMなどが含まれる。ハードディスクドライブ141は、通常、インターフェース140などの固定メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150などのリムーバルメモリインターフェースによってシステムバス121に接続される。
【0019】
前述の図1に示すドライブおよび関連するコンピュータ記憶媒体は、コンピュータ110のための、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。例えば、図1では、ハードディスク141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じにすることも異なるようにすることもできることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、これらが少なくとも互いに異なるコピーであることを示すために、ここでは異なる番号を与えている。ユーザは、キーボード162、ならびに、通常はマウス、トラックボール、またはタッチパッドとして示されるポインティングデバイス161などの入力装置を介して、コマンドおよび情報をコンピュータ110に入力することができる。他の入力装置(図示せず)には、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが含まれうる。これらおよびその他の入力装置は、多くの場合、システムバス121に結合されたユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)など他のインターフェースおよびバス構造によって接続してもよい。
【0020】
モニタ191または他のタイプの表示装置も、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。ノースブリッジ(Northbridge)などのグラフィックインターフェース182も、システムバス121に結合することができる。ノースブリッジは、CPUまたはホスト処理装置120と通信するチップセットであり、AGP(アクセラレーテッドグラフィックスポート(acceleratedgraphics port))通信を担当する。1つまたは複数のグラフィック処理装置(GPU)184は、グラフィックインターフェース182と通信することができる。これに関連して、GPU184は、レジスタストレージのようなオンチップメモリストレージ’(on−chipmemory storage)を一般に含み、ビデオメモリ186と通信する。しかし、GPU184は、コプロセッサ(coprocessor)のほんの一例であり、したがって、様々なコプロセッサデバイスが、コンピュータ110内に含まれうる。モニタ191または他のタイプの表示装置も、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続されるが、このビデオインターフェース190は、ビデオメモリ186と通信することができる。コンピュータはまた、モニタ191に加え、スピーカ197およびプリンタ196など他の出力周辺装置を含むこともでき、これらは、出力周辺インターフェース195を介して接続することができる。
【0021】
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境で動作することもできる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることができ、図1にはメモリ記憶装置181のみが示されているが、通常、コンピュータ110に関係する上述の要素の多くまたは全部を含む。図1に示す論理接続は、LAN(ローカルエリアネットワーク)171、およびWAN(広域ネットワーク)173を含むが、他のネットワークを含むこともできる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【0022】
LANネットワーク環境で使用する場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境で使用する場合、コンピュータ110は、通常、モデム172、または、インターネットなどのWAN173を介して通信を確立する他の手段を含む。モデム172は、内蔵でも外付けでもよく、ユーザ入力インターフェース160または他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110に関して示されたプログラムモジュールまたはその部分をリモートメモリ記憶装置に格納することができる。図1に、限定ではなく例として、メモリ装置181に常駐するリモートアプリケーションプログラム185が示されている。ここに示したネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることは理解されよう。
【0023】
コンピュータ110または他のクライアントデバイスを、コンピュータネットワークの一部として展開することができることは当業者には理解されよう。この点において、本発明は、いくつかのメモリまたは記憶装置を有し、いくつかの記憶装置またはボリュームにわたって発生するいくつかのアプリケーションおよびプロセスを有する、任意のコンピュータシステムに関係する。本発明は、リモートまたはローカルストレージを有する、ネットワーク環境に展開されるサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明はまた、プログラミング言語機能、解釈、および実行機能を有する、スタンドアロンコンピューティングデバイスに適用することもできる。
【0024】
1次元多様体経路を使用するアイテムの自動レイアウト
図2は、本発明のいくつかの実施形態による、2次元、3次元、またはn次元空間におけるアイテムの自動レイアウトのための例示的システムを示す。このようなシステムは、図2の例示的コンピュータ202のような1つまたは複数のコンピュータ上に全体または一部が存在することができる。コンピュータ202には、図1に関連して説明されたコンピュータ110のようなコンピュータが含まれうる。2次元、3次元、またはn次元空間におけるアイテムの自動レイアウトのためのシステムは、以下の要素、すなわち、グラフィックス位置付けアプリケーション206、1次元多様体を記述するパラメータ208、オブジェクトまたはアイテムの位置付けおよび方向付けパラメータ210、位置付け座標212、および標準表示モジュール214のうち1つまたは複数を含むグラフィックスアプリケーション204を含むことができる。
【0025】
2次元、3次元、またはn次元コンテナ内にアイテムを配置するとき、本発明のいくつかの実施形態では、オブジェクトの先入れ先出し/後入れ後出しパラダイム(first−object−first/last−object−lastparadigm)が用いられる。本発明のいくつかの実施形態では、オブジェクトの先入れ先出し/後入れ後出しパラダイムは、空間内に組み込まれた任意の経路(例えば、任意の1次元多様体、または1次元経路または線)に沿って、オブジェクトを配置することができ、したがって、このような経路を提供することにより、オブジェクトの先入れ先出し/後入れ後出しパラダイムを用いて、オブジェクトを空間にマップするための一般的手段が可能になる。1次元多様体または経路は、開路(つまり、空間内の異なる点で開始し終了しうる)または閉路(区間内の同じ点で開始し終了する)、連続または不連続、曲線、直線、またはセグメント(区分的平滑(piece−wisesmooth))でありうる。1次元多様体は、多項式ベースでも非多項式ベースでもよく、任意の長さとすることができる。1次元多様体は、多様体が組み込まれるコンテナを超えて延長しても、多様体が組み込まれるコンテナ内に限定されてもよい。図3a〜dは、2次元空間(各310、312、314、および318)における無限にありうる経路のうちの当該の4つの経路(それぞれ、経路302、304、306、および308)を示す。
【0026】
3次元空間内にも閉路および開路が無限にあり得ることは理解されよう。図4aは、3次元空間404に組み込まれた1つのこのような閉じた環状の1次元多様体402を、1次元多様体402に沿って均一に分散されたアイテム406、408などと共に示している。本発明のいくつかの実施形態では、1次元多様体(例えば、302、304、306、308、402など)は、直線によって連結された点の集合、あるいは、ある種のより高い次数の補間関数または曲線定義関数に対する参照点として指定することができる。アイテムは、ある種の関数または方程式に従って、あるいは1次元多様体に沿って空間を割り振るためのアイテムの範囲(およびそのアイテムを取り囲むべき何らかの追加の空間)に基づいて、あるいは他の任意の関数、アルゴリズム、またはスキームによって、1次元多様体に沿って均一にランダムに配置されうる。例えば、レイアウトアルゴリズムは、アイテムの範囲および/またはアイテムの近隣の範囲の、固定値、パーセンテージ、またはある種の固定関数として指定される、各アイテムに加えて周囲の空間の最少量の幅を使用して、アイテムを配置することができる。
【0027】
アイテムのスケールまたは方向を指定することもできる。例えば、アイテムは、アイテムの上端がコンテナの上端に対して平行となるように、傾斜、回転、方向付けがなされた1次元多様体に対して垂直にすることができる(図4b、アイテム410、412などを参照のこと)。あるいは、アイテムの中心線は、経路に正接して(図4c、経路418に沿ったアイテム416の中心線414を参照のこと)、あるいは任意の関数、アルゴリズム、またはスキームに従って、方向付けることができる。
【0028】
3次元空間では、図4dに示すように、アイテムは、アイテムの上端を左に方向付けて平面に横たえることもできる。同様に、アイテムは、図4eに示すように、上端を上方にして1次元多様体に垂直にすることも、図4fに示すように、アイテムの上端を上方にしてビューア(viewer)に対して方向付けることもできる。
【0029】
したがって、本発明のいくつかの実施形態では、アイテムの方向は、ある種の点、軸、または平面に関連して指定することができ、あるいは、アイテム自体、その近隣、および/またはアイテムの近傍のある種の関数として方向付けることができる。アイテムの方向の指定の例には、アイテムをビューアの方向に向けること、3次元空間内の点に対して向けること、および、経路に対する正接(または法線)などが含まれる。アイテムは、多様体自体によって指定されるパラメータとは別のパラメータを取り込むことができる様々な規則に従って方向付けることもできる。例えば、多様体上のアイテムは、動きの速度に応じて慣性特性を示すことができる。つまり、アイテムの動きの速度に応じて、アイテムは、軌道上にあるものとしての多様体に「つるされる(hang)」質量を有するオブジェクトとしてモデル化することができ、そのとき、曲率の中心から離れるようにそれ自体を方向付けることができる。他の可能性として、オブジェクトが空間内の特定の点に対して「向いている」ままである間、多様体の正接とのアイテムの軸の直交性を強制することがある。
【0030】
図4gに示すように、1次元多様体の部分がそのコンテナの可視部分の外部に含まれるように1次元多様体を指定することによって、そのコンテナの外部の多様体の部分上のアイテムが、不可視となる。(アイテム420、422、424、および426が可視である一方、1次元多様体434に沿ったアイテム428、430、および432は、コンテナ436の外部になるため、不可視である。)図4hには、コンテナの外部に延長している同様の1次元多様体を示している。
【0031】
本発明のいくつかの実施形態では、アイテムの部分セットだけが表示される。これは、使用可能な空間に表示できることが望ましいアイテムより多くのアイテムがあるとき必要となることがある。本発明のいくつかの実施形態では、アイテムの表示される部分セットが、アイテムの完全セットを代表する。部分セットにおける第1のセットは、1次元多様体上の第1のアイテムとして定義することができる。
【0032】
本発明のいくつかの実施形態では、セットにおけるすべてのアイテムは、多様体に沿ってスクロールすることによって可視にすることができる。本発明のいくつかの実施形態では、1次元多様体に沿った位置は、線形のスクロールバーに沿った位置にマップされる。したがって、1次元多様体にわたるスクロールは、まっすぐの経路に沿った動きに変換される(図5a、5b、5c参照。)。本発明のいくつかの実施形態では、1次元多様体に沿った距離は、このようなまっすぐの経路に沿った対応する距離にマップされる(図5aおよび5b参照。)。あるいは、軸(限定としてではなく例えば、x軸)に沿った点の位置を、まっすぐの経路にマップすることができる(図5aおよび5c参照。)。他のマッピングでは、点の横座標をまっすぐの経路に沿った値として使用する、あるいは、何らかの他の一対一マッピングを提供する。2D表示上の任意の点は、多様体上の点sにマップされた任意の所与の点(x,y)(ただし、sは、多様体の連続パラメータ化(continuousparameterization)から得られる)について、(x’,y’)が(x,y)からの距離eの範囲内である場合に、(x’,y’)に対応するマップされた点s’は、必ず|s’−s|<δになるように有限の非ゼロ値εおよびδが存在するように、1次元多様体上の単一点にマップすることができる。しかし、多くの1次元多様体は、特異点を許容し、その場合、この条件が破られることは容易に証明できる。そのような場合、マッピングを改善することができる利用可能ないくつかの工夫がある。非限定的例として、いくつかをここに挙げる。一実施形態では、特異点は、完全に無視され、カーソル(または他のインジケータ)が不連続性を飛び越えることを可能にする。一実施形態では、多様体上の先行の点sと現在の点s’の間で「スプリング(spring)」が実現され、スプリングにより、それらの間の不連続なジャンプがあるときでも、sとs’の間で滑らかにカーソルを引くことができるようになる。他の実施形態では、カーソルは、点sに止まったままである。
【0033】
組み込まれた1次元多様体に沿ってコンテナ内にオブジェクトを配置するための例示的方法が図6に示されている。602で、1次元多様体に関連するまたはそれを定義するパラメータが受け取られる。1次元多様体または経路は、開路(つまり、空間内の異なる点で開始し終了しうる)または閉路(区間内の同じ点で開始し終了する)、連続または不連続、曲線、直線、またはセグメント(区分線形(piece−wise linear))でありうる。1次元多様体は、多項式ベースでも非多項式ベースでもよく、任意の長さとすることができる。1次元多様体は、1次元多様体が組み込まれるコンテナを超えて延長しても、1次元多様体が組み込まれるコンテナ内に限定されてもよい。
【0034】
604で、組み込まれた1次元多様体に沿って配置されるオブジェクトに関連するパラメータが受け取られる。アイテムのスケールまたは方向に関連するパラメータを指定することができる。例えば、アイテムは、アイテムの上端がコンテナの上端に対して平行となるように、傾斜、回転、方向付けがなされた1次元多様体に対して垂直にすることができる。あるいは、アイテムの中心線は、経路に正接して、あるいは任意の関数、アルゴリズム、またはスキームに従って、方向付けることができる。
【0035】
3次元空間では、アイテムは、アイテムの上端を左に方向付けて平面に横たえる、上端を上方にして1次元多様体に垂直にする、アイテムの上端を上方にしてビューア(viewer)に対して方向付ける、あるいは、他の任意の指定の方向に方向付けることもできる。
【0036】
したがって、本発明のいくつかの実施形態では、アイテムの方向は、ある種の点、軸、または平面に関連して指定することができ、あるいは、アイテム自体、その近隣、および/またはアイテムの近傍のある種の関数として方向付けることができる。アイテムの方向の指定の例には、アイテムをビューアに対して向けること、3次元空間における点に対して向けること、および、経路に対する正接(または法線)などが含まれる。
【0037】
1次元多様体の部分がそのコンテナの可視部分の外部に含まれるように1次元多様体を指定することによって、そのコンテナの外部の多様体の部分上のアイテムが、不可視となる。本発明のいくつかの実施形態では、アイテムの部分セットだけが表示される。これは、使用可能な空間に表示できることが望ましいアイテムより多くのアイテムがあるとき必要となることがある。本発明のいくつかの実施形態では、アイテムの表示される部分セットが、アイテムの完全セットを代表する。部分セットにおける第1のセットは、1次元多様体上の第1のアイテムとして定義することができる。
【0038】
606で、1つまたは複数のオブジェクトの配置が計算される。本発明のいくつかの実施形態では、(2次元コンテナに対する)xおよびy座標、または、(3次元コンテナに対する)x、y、z座標が計算される。608で、座標(および場合によっては1つまたは複数のオブジェクト)が、表示のために標準表示モジュールに渡される。
【0039】
本明細書に記載の様々な技術を、ハードウェアまたはソフトウェア、あるいは適切な場合はその組合せに関連して実装することができる。したがって、本発明の方法および装置、あるいはいくつかの態様またはその部分は、フロッピー(登録商標)ディスク、CD−ROM、ハードドライブ、または他の任意のマシン可読記憶媒体など有形の媒体で具体化されるプログラムコード(例えば、命令)の形態を取ることができ、プログラムコードがコンピュータなどのマシンによってロードされ実行されるとき、そのマシンは、本発明を実施するための装置となる。プログラム可能コンピュータ上でのプログラムコード実行の場合、コンピューティングデバイスは、一般に、プロセッサ、(揮発性および不揮発性メモリおよび/または記憶素子を含む)プロセッサに可読の記憶媒体、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えばデータ処理APIなどを使用することにより、本発明のドメイン特化のプログラミングモデル態様の作成および/または実装を利用することができる1つまたは複数のプログラムは、コンピュータシステムと連絡するために、高水準手続き型言語またはオブジェクト指向プログラミング言語で実装されることが好ましい。しかし、プログラムは、所望に応じて、アセンブリまたは機械語で実装することもできる。いずれにせよ、言語は、コンパイル言語でもインタープリタ言語でもよく、ハードウェア実装と組み合わせてもよい。
【0040】
本発明は、様々な図の好ましい実施形態と関連して説明されたが、本発明から逸脱することなく本発明の同じ機能を実施するために、他の同様な実施形態を使用することも、記載の実施形態に修正または追加を行うこともできる。したがって、本発明は、本発明は、どの単一の実施形態にも限定されるべきではなく、むしろ、添付の特許請求の範囲に従う幅および範囲において解釈されるべきである。
【符号の説明】
【0041】
100 コンピューティング環境
110 コンピュータ
120 処理装置
121 システムバス
130 システムメモリ
131 ROM
132 RAM
133 BIOS
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 固定不揮発性メモリインターフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 リムーバル不揮発性メモリインターフェース
151 磁気ディスクドライブ
152 磁気ディスク
155 光ディスクドライブ
156 光ディスク
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワークインターフェース
171 ローカルエリアネットワーク
172 モデム
173 広域ネットワーク
180 リモートコンピュータ
181 メモリ記憶装置
182 グラフィックインターフェース
184 GPU
185 リモートアプリケーションプログラム
186 ビデオメモリ
190 ビデオインターフェース
191 モニタ
195 出力周辺装置インターフェース
196 プリンタ
197 スピーカ
202 コンピュータ
204 グラッフィックスアプリケーション
206 ポジショナ
208 パラメータ
210 パラメータ
212 座標
214 表示
302 経路
304 経路
306 経路
308 経路
310 2次元空間
312 2次元空間
314 2次元空間
318 2次元空間
402 1次元多様体
404 1次元多様体
406 アイテム
408 アイテム
410 アイテム
412 アイテム
414 中心線
416 アイテム
418 経路
420 アイテム
422 アイテム
424 アイテム
426 アイテム
428 アイテム
430 アイテム
432 アイテム
434 1次元多様体
602 1次元多様体についてのパラメータを受け取る
604 オブジェクトについてのパラメータを受け取る
606 配置を計算する
608 表示モジュールに送る

【特許請求の範囲】
【請求項1】
コンテナ内にオブジェクトを配置することに関連するパラメータを受け取り、前記コンテナ内に組み込まれた1次元多様体に沿って前記コンテナにおける前記オブジェクトについての位置を計算するモジュールを備えることを特徴とするコンテナ内にオブジェクトを位置付けるためのシステム。
【請求項2】
前記コンテナは、2次元であることを特徴とする請求項1に記載のシステム。
【請求項3】
前記コンテナは、n次元コンテナであり、nは、2より大きいことを特徴とする請求項1に記載のシステム。
【請求項4】
前記オブジェクトは、前記1次元多様体に沿って配置される複数のオブジェクトのうちの1つであることを特徴とする請求項1に記載のシステム。
【請求項5】
前記1次元多様体は、連続、不連続、前記コンテナを超えて延長していること、または、関数によって定義されていることのうち少なくとも1つであることを特徴とする請求項1に記載のシステム。
【請求項6】
前記モジュールは、前記コンテナ内に前記1次元多様体を組み込むことに関連するパラメータを受け取ることを特徴とする請求項1に記載のシステム。
【請求項7】
コンテナ内にオブジェクトを配置するための方法であって、
組み込まれた1次元多様体に沿って前記コンテナ内に前記オブジェクトを配置することに関連するパラメータを受け取るステップと、
前記受け取られたパラメータに基づいて、前記コンテナにおける前記オブジェクトの配置を計算するステップとを備えることを特徴とする方法。
【請求項8】
前記1次元多様体を定義するパラメータを受け取るステップをさらに備えることを特徴とする請求項7に記載の方法。
【請求項9】
前記コンテナ内に、前記定義された1次元多様体を組み込むステップをさらに備えることを特徴とする請求項8に記載の方法。
【請求項10】
前記オブジェクトについての座標を生成するステップをさらに備えることを特徴とする請求項7に記載の方法。
【請求項11】
前記座標は、xおよびy座標を含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記座標は、少なくともx、y、およびz座標を含むことを特徴とする請求項10に記載の方法。
【請求項13】
前記コンテナは、n次元コンテナであり、nは、2より大きいことを特徴とする請求項7に記載の方法。
【請求項14】
前記コンテナは、2次元コンテナであることを特徴とする請求項7に記載の方法。
【請求項15】
前記オブジェクトは、前記コンテナにおける複数のオブジェクトの最初のオブジェクトであり、別のオブジェクトを追加することに応答して、前記複数のオブジェクトの少なくとも1つに対する新しい位置が計算されることを特徴とする請求項7に記載の方法。
【請求項16】
前記パラメータは、前記オブジェクトの方向またはスケールのうち1つを含むことを特徴とする請求項7に記載の方法。
【請求項17】
前記方向は、前記オブジェクトの上端が前記コンテナの端部に対して平行になるように、または前記オブジェクトの中心線が前記1次元多様体に対して平行もしくは正接するように、傾斜させること、回転させること、方向付けること、あるいは、関数もしくはアルゴリズムに従って、または点、軸、もしくは平面に対して、方向付けることのうちの1つであることを特徴とする請求項16に記載の方法。
【請求項18】
前記オブジェクトは、前記1次元多様体に沿った複数のオブジェクトのうち最初のオブジェクトであり、前記複数のオブジェクトの部分セットは、可視ではないことを特徴とする請求項7に記載の方法。
【請求項19】
前記可視ではない部分セットは、前記コンテナ外部に延長している前記1次元多様体の一部分に沿ったオブジェクトを含むことを特徴とする請求項18に記載のシステム。
【請求項20】
コンピュータ実行可能命令を含むコンピュータ可読媒体であって、
組み込まれた1次元多様体に沿ってコンテナ内にオブジェクトを配置することに関連するパラメータを受け取ること、
前記受け取られたパラメータに基づいて、前記コンテナにおける前記オブジェクトの配置および方向を計算すること、
前記オブジェクトに対する座標を生成すること、および、
前記生成された座標を表示モジュールに送ることを備えることを特徴とするコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図3c】
image rotate

【図3d】
image rotate

【図4a】
image rotate

【図4b】
image rotate

【図4c】
image rotate

【図4d】
image rotate

【図4e】
image rotate

【図4f】
image rotate

【図4g】
image rotate

【図5】
image rotate

【図6】
image rotate

【図4h】
image rotate


【公開番号】特開2012−108946(P2012−108946A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2012−32302(P2012−32302)
【出願日】平成24年2月17日(2012.2.17)
【分割の表示】特願2006−44461(P2006−44461)の分割
【原出願日】平成18年2月21日(2006.2.21)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】