(57)【要約】      （修正有）【課題】組み込まれた１次元多様体経路に沿ったアイテムの自動レイアウトを提供する。【解決手段】組み込まれた１次元多様体または経路に沿って２、３、またはｎ次元空間内にビジュアルアイテムをレイアウトするための座標が計算され、コンテナにおけるそのアイテムの配置のための座標が生成される。このようなメカニズムは、グラッフィックスアプリケーションによって利用することができ、また、オブジェクトまたはアイテムの場所または位置付けを決定する。コンテナ内に配置されるオブジェクトまたはアイテムの態様を記述する１組のパラメータを受け取ることに応答して、１組のｘおよびｙ座標、またはｘ、ｙ、ｚ座標を生成して、表示することができる。【選択図】図２
2006268840.tif 000002
【特許請求の範囲】
【請求項１】
コンテナ内にオブジェクトを配置することに関連するパラメータを受け取り、前記コンテナ内に組み込まれた１次元多様体に沿って前記コンテナにおける前記オブジェクトについての位置を計算するモジュールを備えることを特徴とするコンテナ内にオブジェクトを位置付けるためのシステム。
【請求項２】
前記コンテナは、２次元であることを特徴とする請求項１に記載のシステム。
【請求項３】
前記コンテナは、ｎ次元コンテナであり、ｎは、２より大きいことを特徴とする請求項１に記載のシステム。
【請求項４】
前記オブジェクトは、前記１次元多様体に沿って配置される複数のオブジェクトのうちの１つであることを特徴とする請求項１に記載のシステム。
【請求項５】
前記１次元多様体は、連続、不連続、前記コンテナを超えて延長していること、または、関数によって定義されていることのうち少なくとも１つであることを特徴とする請求項１に記載のシステム。
【請求項６】
前記モジュールは、前記コンテナ内に前記１次元多様体を組み込むことに関連するパラメータを受け取ることを特徴とする請求項１に記載のシステム。
【請求項７】
コンテナ内にオブジェクトを配置するための方法であって、
組み込まれた１次元多様体に沿って前記コンテナ内に前記オブジェクトを配置することに関連するパラメータを受け取るステップと、
前記受け取られたパラメータに基づいて、前記コンテナにおける前記オブジェクトの配置を計算するステップとを備えることを特徴とする方法。
【請求項８】
前記１次元多様体を定義するパラメータを受け取るステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
前記コンテナ内に、前記定義された１次元多様体を組み込むステップをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記オブジェクトについての座標を生成するステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項１１】
前記座標は、ｘおよびｙ座標を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記座標は、少なくともｘ、ｙ、およびｚ座標を含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記コンテナは、ｎ次元コンテナであり、ｎは、２より大きいことを特徴とする請求項７に記載の方法。
【請求項１４】
前記コンテナは、２次元コンテナであることを特徴とする請求項７に記載の方法。
【請求項１５】
前記オブジェクトは、前記コンテナにおける複数のオブジェクトの最初のオブジェクトであり、別のオブジェクトを追加することに応答して、前記複数のオブジェクトの少なくとも１つに対する新しい位置が計算されることを特徴とする請求項７に記載の方法。
【請求項１６】
前記パラメータは、前記オブジェクトの方向またはスケールのうち１つを含むことを特徴とする請求項７に記載の方法。
【請求項１７】
前記方向は、前記オブジェクトの上端が前記コンテナの端部に対して平行になるように、または前記オブジェクトの中心線が前記１次元多様体に対して平行もしくは正接するように、傾斜させること、回転させること、方向付けること、あるいは、関数もしくはアルゴリズムに従って、または点、軸、もしくは平面に対して、方向付けることのうちの１つであることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記オブジェクトは、前記１次元多様体に沿った複数のオブジェクトのうち最初のオブジェクトであり、前記複数のオブジェクトの部分セットは、可視ではないことを特徴とする請求項７に記載の方法。
【請求項１９】
前記可視ではない部分セットは、前記コンテナ外部に延長している前記１次元多様体の一部分に沿ったオブジェクトを含むことを特徴とする請求項１８に記載のシステム。
【請求項２０】
コンピュータ実行可能命令を含むコンピュータ可読媒体であって、
組み込まれた１次元多様体に沿ってコンテナ内にオブジェクトを配置することに関連するパラメータを受け取ること、
前記受け取られたパラメータに基づいて、前記コンテナにおける前記オブジェクトの配置および方向を計算すること、
前記オブジェクトに対する座標を生成すること、および、
前記生成された座標を表示モジュールに送ることを備えることを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックスアプリケーションに関し、詳細には、コンテナ内に組み込まれた１次元多様体経路に沿って、２次元空間、３次元空間、およびｎ次元空間においてアイテムをレイアウトすることに関する。
【背景技術】
【０００２】
グラフィックスアプリケーションにおいて、ユーザは、頻繁にアイテムの順序付きリストとして決定論的方法でビジュアルアイテム（ｖｉｓｕａｌ  ｉｔｅｍ）を見てレイアウトすることができる必要がある。いくつかのグラフィックスアプリケーションでは、２次元アイテムが、レイアウトポリシ（ｌａｙｏｕｔ  ｐｏｌｉｃｙ）に基づいて自動的にレイアウトされる。典型的には、アイテムは、左から右へ、右から左へ、上から下へ、または下から右へのパターンで、順次に２次元（通常は長方形の）コンテナ内に配置される。典型的なレイアウトポリシは、（通常は長方形の）オブジェクトが長方形のウィンドウに左から右へ配置されるフローレイアウト（ｆｌｏｗ  ｌａｙｏｕｔ）、オブジェクトが垂直方向にレイアウトされるドックパネル（ｄｏｃｋ  ｐａｎｅｌ）、および、オブジェクトがテーブル形式でレイアウトされるグリッドレイアウトを含む。「グリッド（ｇｒｉｄ）」は、行および列に配列されるセルからなる。
【０００３】
オブジェクトを３次元またはそれより高次元のコンテナ内にオブジェクトを配置するときに、どのようにオブジェクトがレイアウト「されるべきか」についての予想はより少なく、また制約条件もより少ない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
当技術分野において、２次元空間だけでなく３次元またはそれより高次元の空間においても、ビジュアルアイテムをレイアウトするための、より柔軟な方法を提供する必要がある。
【課題を解決するための手段】
【０００５】
組み込まれた１次元多様体または経路に沿って、２、３、またはｎ次元空間に、ビジュアルアイテムをレイアウトするためのメカニズムが提供される。１次元多様体は、連続でも不連続でもよく、コンテナ内に完全に含まれても、コンテナを超えて延長してもよい。１次元多様体を、関数、式、または点集合を定義する１組のパラメータによって定義することができる。コンテナは、２次元、３次元、またはｎ次元のコンテナとすることができる。
【０００６】
このようなメカニズムを、グラフィックスアプリケーションによって利用することができ、オブジェクトまたはアイテムの場所または位置付けを決定することができる。オブジェクトまたはアイテムは、１組のオブジェクトまたはアイテムのうちの１つでありうる。１次元多様体を定義する１組のパラメータを受け取ることに応答して、１次元多様体をコンテナに組み込むことができる。コンテンナ内に配置されるオブジェクトまたはアイテムの態様を記述する１組のパラメータを受け取ることに応答して、１組のｘおよびｙ、またはｘ、ｙ、ｚの座標を生成して、表示のために標準のグラフィックスインターフェースに送ることができる。
【０００７】
以上の要約ならびに次の例示的実施形態の詳細な説明は、添付の図面と併せて読むと、よりよく理解される。本発明を説明する目的のために、本発明の例示的構成を図面に示しているが、本発明は、開示の特定の方法および手段に限定されない。
【発明を実施するための最良の形態】
【０００８】
概観
コンテナ内またはキャンバス（ｃａｎｖａｓ）上にアイテムを配列するための最も単純な方法は、各アイテムの位置および方向を指定することである。しかし、このような固定されたレイアウトスキームは、変更が発生した場合、あまり有用ではない。例えば、このようなスキームを使用して既存のキャンバス上に新しいアイテムを挿入するためには、プログラマが、新しいアイテムの位置を指定しなければならない。所望の場所にそのアイテムに十分な「ビジュアル空間（ｖｉｓｕａｌ  ｓｐａｃｅ）」がない場合、プログラマは、新しいアイテムのための場所を作るために元のアイテムを再配列しなければならない。
【０００９】
同様に、キャンバスの形状またはサイズが変更される場合、もはやすべてのアイテムを表示することができないおそれがある。すべてのアイテムが、可視のままである必要がある場合、アイテムの位置を再配列するコードが提供されなければならない。コンテナにすべてのアイテムを表示するのに十分な空間がない場合、そのレイアウトでは、それらのアイテムのいくつかだけを表示することがある。スクロールバーは、どのアイテムを可視にするかをユーザが選択できるようにすることができる。
【００１０】
３次元（またはそれより高次元）の導入により、コンテナ内にどのようにアイテムが配置されるかが変化する。
【００１１】
例示的コンピューティング環境
図１および以下の議論は、本発明を実装することができる適切なコンピューティング環境の簡潔で一般的な記述を提供することを目的とする。しかし、ハンドヘルド、ポータブル、および他のあらゆる種類のコンピューティングデバイスが、本発明と関連して使用するために企図されることを理解されたい。以下では汎用コンピュータについて説明するが、これは一例に過ぎず、本発明は、ネットワークサーバとの相互運用性および相互作用を有するシンクライアントのみを必要とする。したがって、本発明を、非常にわずかまたは最小限のクライアントリソースが関係するネットワーク化されたホストサービスの環境、例えば、クライアントデバイスがワールドワイドウェブに対するブラウザまたはインターフェースの役割をするだけのネットワーク化された環境において実装することができる。
【００１２】
本発明は、必須ではないが、開発者によって使用されるアプリケーションプログラミングインターフェース（ＡＰＩ）を介して実装される、かつ／または、ネットワークブラウザソフトウェア内に含まれてもよく、それは、クライアントワークステーション、サーバ、または他のデバイスなどの１つまたは複数のコンピュータによって実行されるプログラムモジュールのようなコンピュータ実行可能命令の一般的コンテキストで記述される。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態において所望に応じて組み合わせても分散させてもよい。さらに、本発明を、他のコンピュータシステム構成とともに実施することもできることは当業者には理解されよう。本発明と使用するために適切でありうる他の周知のコンピューティングシステム、環境、および／または構成には、以下に限定されないが、パーソナルコンピュータ（ＰＣ）、ＡＴＭ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、およびメインフレームコンピュータなどが含まれる。本発明を、通信ネットワークまたは他のデータ伝送媒体を介してリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、メモリ記憶装置を含めてローカルとリモートの両方のコンピュータ記憶媒体に、プログラムモジュールを配置することができる。
【００１３】
したがって、図１は、本発明を実装することができる適切なコンピューティングシステム環境１００の一例を示すが、上記で明らかなように、コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲にいかなる限定も示唆するものではない。コンピューティング環境１００はまた、例示的動作環境１００に示されるコンポーネントの任意の１つまたは組合せに関係するどんな依存関係または要件も有すると解釈されるべきではない。
【００１４】
図１を参照すると、本発明を実装するための例示的システムは、コンピュータ１１０の形態で汎用コンピューティングデバイスを含んでいる。コンピュータ１１０のコンポーネントには、これだけに限定されないが、処理装置１２０、システムメモリ１３０、ならびに、システムメモリを含む様々なシステムコンポーネントを処置装置１２０に結合するシステムバス１２１が含まれうる。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどを含むいくつかのタイプのバス構造のいずれでもよい。このようなアーキテクチャには、限定ではなく例として挙げれば、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（ビデオ電子規格協会）ローカルバス、および、（メザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られる）ＰＣＩ（周辺コンポーネント相互接続）バスが含まれる。
【００１５】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスすることができる任意の利用可能な媒体とすることができ、それには、揮発性と不揮発性の両方の媒体、および、リムーバルと固定の両方の媒体が含まれる。限定ではなく例として挙げると、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術で実装される、揮発性と不揮発性の両方の媒体、およびリムーバルと固定の両方の媒体が含まれる。コンピュータ記憶媒体には、以下に限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、あるいは、ＣＤＲＯＭ、ＤＶＤ（デジタル多用途ディスク）、または他の光ディスクストレージ、あるいは、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ディスク記憶装置、あるいは、所望の情報を格納するために使用することができコンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、通常、搬送波または他の移送メカニズムなどの被変調データ信号として、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具体化し、また任意の情報送達媒体を含む。用語「被変調データ信号」は、信号として情報を符号化するようにセットまたは変更された１つまたは複数の信号特性を有する信号を意味する。限定ではなく例として挙げると、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の媒体の任意の組合せも、コンピュータ可読媒体の範囲に含まれることになる。
【００１６】
システムメモリ１３０は、コンピュータ記憶媒体を、ＲＯＭ（リードオンリメモリ）１３１およびＲＡＭ（ランダムアクセスメモリ）１３２などの揮発性および／または不揮発性のメモリの形態で含む。始動時などにコンピュータ１１０内の要素間で情報を転送する助けとなる基本ルーチンを含むＢＩＯＳ（基本入出力システム）１３３は、通常、ＲＯＭ１３１に格納されている。ＲＡＭ１３２は、通常、処理装置１２０により、即座にアクセス可能および／または現在処理中である、データおよび／またはプログラムモジュールを含む。図１は、限定ではなく例として、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１７】
コンピュータ１１０は、他のリムーバル／固定、および揮発性／不揮発性のコンピュータ記憶媒体を含むこともできる。単に例として示すが、図１では、固定で不揮発性の磁気媒体から読み取りまたはそれに書き込むハードディスクドライブ１４１、リムーバルで不揮発性の磁気ディスク１５２から読み取りまたはそれに書き込む磁気ディスクドライブ１５１、および、ＣＤ  ＲＯＭまたは他の光媒体などリムーバルで不揮発性の光ディスク１５６から読み取りまたはそれに書き込む光ディスクドライブ１５５を示している。例示的動作環境において使用することができる他のリムーバル／固定で揮発性／不揮発性のコンピュータ記憶媒体には、これだけに限定されないが、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、半導体ＲＡＭ、および半導体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は、通常、インターフェース１４０などの固定メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０などのリムーバルメモリインターフェースによってシステムバス１２１に接続される。
【００１８】
前述の図１に示すドライブおよび関連するコンピュータ記憶媒体は、コンピュータ１１０のための、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。例えば、図１では、ハードディスク１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じにすることも異なるようにすることもできることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、これらが少なくとも互いに異なるコピーであることを示すために、ここでは異なる番号を与えている。ユーザは、キーボード１６２、ならびに、通常はマウス、トラックボール、またはタッチパッドとして示されるポインティングデバイス１６１などの入力装置を介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力装置（図示せず）には、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが含まれうる。これらおよびその他の入力装置は、多くの場合、システムバス１２１に結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（ユニバーサルシリアルバス）など他のインターフェースおよびバス構造によって接続してもよい。
【００１９】
モニタ１９１または他のタイプの表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。ノースブリッジ（Ｎｏｒｔｈｂｒｉｄｇｅ）などのグラフィックインターフェース１８２も、システムバス１２１に結合することができる。ノースブリッジは、ＣＰＵまたはホスト処理装置１２０と通信するチップセットであり、ＡＧＰ（アクセラレーテッドグラフィックスポート（ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ））通信を担当する。１つまたは複数のグラフィック処理装置（ＧＰＵ）１８４は、グラフィックインターフェース１８２と通信することができる。これに関連して、ＧＰＵ１８４は、レジスタストレージのようなオンチップメモリストレージ’（ｏｎ−ｃｈｉｐ  ｍｅｍｏｒｙ  ｓｔｏｒａｇｅ）を一般に含み、ビデオメモリ１８６と通信する。しかし、ＧＰＵ１８４は、コプロセッサ（ｃｏｐｒｏｃｅｓｓｏｒ）のほんの一例であり、したがって、様々なコプロセッサデバイスが、コンピュータ１１０内に含まれうる。モニタ１９１または他のタイプの表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続されるが、このビデオインターフェース１９０は、ビデオメモリ１８６と通信することができる。コンピュータはまた、モニタ１９１に加え、スピーカ１９７およびプリンタ１９６など他の出力周辺装置を含むこともでき、これらは、出力周辺インターフェース１９５を介して接続することができる。
【００２０】
コンピュータ１１０は、リモートコンピュータ１８０など１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク化された環境で動作することもできる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードとすることができ、図１にはメモリ記憶装置１８１のみが示されているが、通常、コンピュータ１１０に関係する上述の要素の多くまたは全部を含む。図１に示す論理接続は、ＬＡＮ（ローカルエリアネットワーク）１７１、およびＷＡＮ（広域ネットワーク）１７３を含むが、他のネットワークを含むこともできる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【００２１】
ＬＡＮネットワーク環境で使用する場合、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用する場合、コンピュータ１１０は、通常、モデム１７２、または、インターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内蔵でも外付けでもよく、ユーザ入力インターフェース１６０または他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示されたプログラムモジュールまたはその部分をリモートメモリ記憶装置に格納することができる。図１に、限定ではなく例として、メモリ装置１８１に常駐するリモートアプリケーションプログラム１８５が示されている。ここに示したネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることは理解されよう。
【００２２】
コンピュータ１１０または他のクライアントデバイスを、コンピュータネットワークの一部として展開することができることは当業者には理解されよう。この点において、本発明は、いくつかのメモリまたは記憶装置を有し、いくつかの記憶装置またはボリュームにわたって発生するいくつかのアプリケーションおよびプロセスを有する、任意のコンピュータシステムに関係する。本発明は、リモートまたはローカルストレージを有する、ネットワーク環境に展開されるサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明はまた、プログラミング言語機能、解釈、および実行機能を有する、スタンドアロンコンピューティングデバイスに適用することもできる。
【００２３】
１次元多様体経路を使用するアイテムの自動レイアウト
図２は、本発明のいくつかの実施形態による、２次元、３次元、またはｎ次元空間におけるアイテムの自動レイアウトのための例示的システムを示す。このようなシステムは、図２の例示的コンピュータ２０２のような１つまたは複数のコンピュータ上に全体または一部が存在することができる。コンピュータ２０２には、図１に関連して説明されたコンピュータ１１０のようなコンピュータが含まれうる。２次元、３次元、またはｎ次元空間におけるアイテムの自動レイアウトのためのシステムは、以下の要素、すなわち、グラフィックス位置付けアプリケーション２０６、１次元多様体を記述するパラメータ２０８、オブジェクトまたはアイテムの位置付けおよび方向付けパラメータ２１０、位置付け座標２１２、および標準表示モジュール２１４のうち１つまたは複数を含むグラフィックスアプリケーション２０４を含むことができる。
【００２４】
２次元、３次元、またはｎ次元コンテナ内にアイテムを配置するとき、本発明のいくつかの実施形態では、オブジェクトの先入れ先出し／後入れ後出しパラダイム（ｆｉｒｓｔ−ｏｂｊｅｃｔ−ｆｉｒｓｔ／ｌａｓｔ−ｏｂｊｅｃｔ−ｌａｓｔ  ｐａｒａｄｉｇｍ）が用いられる。本発明のいくつかの実施形態では、オブジェクトの先入れ先出し／後入れ後出しパラダイムは、空間内に組み込まれた任意の経路（例えば、任意の１次元多様体、または１次元経路または線）に沿って、オブジェクトを配置することができ、したがって、このような経路を提供することにより、オブジェクトの先入れ先出し／後入れ後出しパラダイムを用いて、オブジェクトを空間にマップするための一般的手段が可能になる。１次元多様体または経路は、開路（つまり、空間内の異なる点で開始し終了しうる）または閉路（区間内の同じ点で開始し終了する）、連続または不連続、曲線、直線、またはセグメント（区分的平滑（ｐｉｅｃｅ−ｗｉｓｅ  ｓｍｏｏｔｈ））でありうる。１次元多様体は、多項式ベースでも非多項式ベースでもよく、任意の長さとすることができる。１次元多様体は、多様体が組み込まれるコンテナを超えて延長しても、多様体が組み込まれるコンテナ内に限定されてもよい。図３ａ〜ｄは、２次元空間（各３１０、３１２、３１４、および３１８）における無限にありうる経路のうちの当該の４つの経路（それぞれ、経路３０２、３０４、３０６、および３０８）を示す。
【００２５】
３次元空間内にも閉路および開路が無限にあり得ることは理解されよう。図４ａは、３次元空間４０４に組み込まれた１つのこのような閉じた環状の１次元多様体４０２を、１次元多様体４０２に沿って均一に分散されたアイテム４０６、４０８などと共に示している。本発明のいくつかの実施形態では、１次元多様体（例えば、３０２、３０４、３０６、３０８、４０２など）は、直線によって連結された点の集合、あるいは、ある種のより高い次数の補間関数または曲線定義関数に対する参照点として指定することができる。アイテムは、ある種の関数または方程式に従って、あるいは１次元多様体に沿って空間を割り振るためのアイテムの範囲（およびそのアイテムを取り囲むべき何らかの追加の空間）に基づいて、あるいは他の任意の関数、アルゴリズム、またはスキームによって、１次元多様体に沿って均一にランダムに配置されうる。例えば、レイアウトアルゴリズムは、アイテムの範囲および／またはアイテムの近隣の範囲の、固定値、パーセンテージ、またはある種の固定関数として指定される、各アイテムに加えて周囲の空間の最少量の幅を使用して、アイテムを配置することができる。
【００２６】
アイテムのスケールまたは方向を指定することもできる。例えば、アイテムは、アイテムの上端がコンテナの上端に対して平行となるように、傾斜、回転、方向付けがなされた１次元多様体に対して垂直にすることができる（図４ｂ、アイテム４１０、４１２などを参照のこと）。あるいは、アイテムの中心線は、経路に正接して（図４ｃ、経路４１８に沿ったアイテム４１６の中心線４１４を参照のこと）、あるいは任意の関数、アルゴリズム、またはスキームに従って、方向付けることができる。
【００２７】
３次元空間では、図４ｄに示すように、アイテムは、アイテムの上端を左に方向付けて平面に横たえることもできる。同様に、アイテムは、図４ｅに示すように、上端を上方にして１次元多様体に垂直にすることも、図４ｆに示すように、アイテムの上端を上方にしてビューア（ｖｉｅｗｅｒ）に対して方向付けることもできる。
【００２８】
したがって、本発明のいくつかの実施形態では、アイテムの方向は、ある種の点、軸、または平面に関連して指定することができ、あるいは、アイテム自体、その近隣、および／またはアイテムの近傍のある種の関数として方向付けることができる。アイテムの方向の指定の例には、アイテムをビューアの方向に向けること、３次元空間内の点に対して向けること、および、経路に対する正接（または法線）などが含まれる。アイテムは、多様体自体によって指定されるパラメータとは別のパラメータを取り込むことができる様々な規則に従って方向付けることもできる。例えば、多様体上のアイテムは、動きの速度に応じて慣性特性を示すことができる。つまり、アイテムの動きの速度に応じて、アイテムは、軌道上にあるものとしての多様体に「つるされる（ｈａｎｇ）」質量を有するオブジェクトとしてモデル化することができ、そのとき、曲率の中心から離れるようにそれ自体を方向付けることができる。他の可能性として、オブジェクトが空間内の特定の点に対して「向いている」ままである間、多様体の正接とのアイテムの軸の直交性を強制することがある。
【００２９】
図４ｇに示すように、１次元多様体の部分がそのコンテナの可視部分の外部に含まれるように１次元多様体を指定することによって、そのコンテナの外部の多様体の部分上のアイテムが、不可視となる。（アイテム４２０、４２２、４２４、および４２６が可視である一方、１次元多様体４３４に沿ったアイテム４２８、４３０、および４３２は、コンテナ４３６の外部になるため、不可視である。）図４ｈには、コンテナの外部に延長している同様の１次元多様体を示している。
【００３０】
本発明のいくつかの実施形態では、アイテムの部分セットだけが表示される。これは、使用可能な空間に表示できることが望ましいアイテムより多くのアイテムがあるとき必要となることがある。本発明のいくつかの実施形態では、アイテムの表示される部分セットが、アイテムの完全セットを代表する。部分セットにおける第１のセットは、１次元多様体上の第１のアイテムとして定義することができる。
【００３１】
本発明のいくつかの実施形態では、セットにおけるすべてのアイテムは、多様体に沿ってスクロールすることによって可視にすることができる。本発明のいくつかの実施形態では、１次元多様体に沿った位置は、線形のスクロールバーに沿った位置にマップされる。したがって、１次元多様体にわたるスクロールは、まっすぐの経路に沿った動きに変換される（図５ａ、５ｂ、５ｃ参照。）。本発明のいくつかの実施形態では、１次元多様体に沿った距離は、このようなまっすぐの経路に沿った対応する距離にマップされる（図５ａおよび５ｂ参照。）。あるいは、軸（限定としてではなく例えば、ｘ軸）に沿った点の位置を、まっすぐの経路にマップすることができる（図５ａおよび５ｃ参照。）。他のマッピングでは、点の横座標をまっすぐの経路に沿った値として使用する、あるいは、何らかの他の一対一マッピングを提供する。２Ｄ表示上の任意の点は、多様体上の点ｓにマップされた任意の所与の点（ｘ，ｙ）（ただし、ｓは、多様体の連続パラメータ化（ｃｏｎｔｉｎｕｏｕｓ  ｐａｒａｍｅｔｅｒｉｚａｔｉｏｎ）から得られる）について、（ｘ’，ｙ’）が（ｘ，ｙ）からの距離ｅの範囲内である場合に、（ｘ’，ｙ’）に対応するマップされた点ｓ’は、必ず｜ｓ’−ｓ｜＜δになるように有限の非ゼロ値εおよびδが存在するように、１次元多様体上の単一点にマップすることができる。しかし、多くの１次元多様体は、特異点を許容し、その場合、この条件が破られることは容易に証明できる。そのような場合、マッピングを改善することができる利用可能ないくつかの工夫がある。非限定的例として、いくつかをここに挙げる。一実施形態では、特異点は、完全に無視され、カーソル（または他のインジケータ）が不連続性を飛び越えることを可能にする。一実施形態では、多様体上の先行の点ｓと現在の点ｓ’の間で「スプリング（ｓｐｒｉｎｇ）」が実現され、スプリングにより、それらの間の不連続なジャンプがあるときでも、ｓとｓ’の間で滑らかにカーソルを引くことができるようになる。他の実施形態では、カーソルは、点ｓに止まったままである。
【００３２】
組み込まれた１次元多様体に沿ってコンテナ内にオブジェクトを配置するための例示的方法が図６に示されている。６０２で、１次元多様体に関連するまたはそれを定義するパラメータが受け取られる。１次元多様体または経路は、開路（つまり、空間内の異なる点で開始し終了しうる）または閉路（区間内の同じ点で開始し終了する）、連続または不連続、曲線、直線、またはセグメント（区分線形  （ｐｉｅｃｅ−ｗｉｓｅ  ｌｉｎｅａｒ））でありうる。１次元多様体は、多項式ベースでも非多項式ベースでもよく、任意の長さとすることができる。１次元多様体は、１次元多様体が組み込まれるコンテナを超えて延長しても、１次元多様体が組み込まれるコンテナ内に限定されてもよい。
【００３３】
６０４で、組み込まれた１次元多様体に沿って配置されるオブジェクトに関連するパラメータが受け取られる。アイテムのスケールまたは方向に関連するパラメータを指定することができる。例えば、アイテムは、アイテムの上端がコンテナの上端に対して平行となるように、傾斜、回転、方向付けがなされた１次元多様体に対して垂直にすることができる。あるいは、アイテムの中心線は、経路に正接して、あるいは任意の関数、アルゴリズム、またはスキームに従って、方向付けることができる。
【００３４】
３次元空間では、アイテムは、アイテムの上端を左に方向付けて平面に横たえる、上端を上方にして１次元多様体に垂直にする、アイテムの上端を上方にしてビューア（ｖｉｅｗｅｒ）に対して方向付ける、あるいは、他の任意の指定の方向に方向付けることもできる。
【００３５】
したがって、本発明のいくつかの実施形態では、アイテムの方向は、ある種の点、軸、または平面に関連して指定することができ、あるいは、アイテム自体、その近隣、および／またはアイテムの近傍のある種の関数として方向付けることができる。アイテムの方向の指定の例には、アイテムをビューアに対して向けること、３次元空間における点に対して向けること、および、経路に対する正接（または法線）などが含まれる。
【００３６】
１次元多様体の部分がそのコンテナの可視部分の外部に含まれるように１次元多様体を指定することによって、そのコンテナの外部の多様体の部分上のアイテムが、不可視となる。本発明のいくつかの実施形態では、アイテムの部分セットだけが表示される。これは、使用可能な空間に表示できることが望ましいアイテムより多くのアイテムがあるとき必要となることがある。本発明のいくつかの実施形態では、アイテムの表示される部分セットが、アイテムの完全セットを代表する。部分セットにおける第１のセットは、１次元多様体上の第１のアイテムとして定義することができる。
【００３７】
６０６で、１つまたは複数のオブジェクトの配置が計算される。本発明のいくつかの実施形態では、（２次元コンテナに対する）ｘおよびｙ座標、または、（３次元コンテナに対する）ｘ、ｙ、ｚ座標が計算される。６０８で、座標（および場合によっては１つまたは複数のオブジェクト）が、表示のために標準表示モジュールに渡される。
【００３８】
本明細書に記載の様々な技術を、ハードウェアまたはソフトウェア、あるいは適切な場合はその組合せに関連して実装することができる。したがって、本発明の方法および装置、あるいはいくつかの態様またはその部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン可読記憶媒体など有形の媒体で具体化されるプログラムコード（例えば、命令）の形態を取ることができ、プログラムコードがコンピュータなどのマシンによってロードされ実行されるとき、そのマシンは、本発明を実施するための装置となる。プログラム可能コンピュータ上でのプログラムコード実行の場合、コンピューティングデバイスは、一般に、プロセッサ、（揮発性および不揮発性メモリおよび／または記憶素子を含む）プロセッサに可読の記憶媒体、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えばデータ処理ＡＰＩなどを使用することにより、本発明のドメイン特化のプログラミングモデル態様の作成および／または実装を利用することができる１つまたは複数のプログラムは、コンピュータシステムと連絡するために、高水準手続き型言語またはオブジェクト指向プログラミング言語で実装されることが好ましい。しかし、プログラムは、所望に応じて、アセンブリまたは機械語で実装することもできる。いずれにせよ、言語は、コンパイル言語でもインタープリタ言語でもよく、ハードウェア実装と組み合わせてもよい。
【００３９】
本発明は、様々な図の好ましい実施形態と関連して説明されたが、本発明から逸脱することなく本発明の同じ機能を実施するために、他の同様な実施形態を使用することも、記載の実施形態に修正または追加を行うこともできる。したがって、本発明は、本発明は、どの単一の実施形態にも限定されるべきではなく、むしろ、添付の特許請求の範囲に従う幅および範囲において解釈されるべきである。
【図面の簡単な説明】
【００４０】
【図１】本発明の態様を実装することができる例示的コンピューティング環境を示すブロック図である。
【図２】本発明の一実施形態による、コンテナ内に組み込まれた１次元多様体に沿ってオブジェクトまたはアイテムを位置付けるための例示的システムを示すブロック図である。
【図３ａ】本発明の実施形態による、２次元コンテナ内における例示的１次元多様体を示す図である。
【図３ｂ】本発明の実施形態による、２次元コンテナ内における例示的１次元多様体を示す図である。
【図３ｃ】本発明の実施形態による、２次元コンテナ内における例示的１次元多様体を示す図である。
【図３ｄ】本発明の実施形態による、２次元コンテナ内における例示的１次元多様体を示す図である。
【図４ａ】本発明の一実施形態による、３次元コンテナ内における例示的１次元多様体を示す図である。
【図４ｂ】本発明の実施形態による、２次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図４ｃ】本発明の実施形態による、２次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図４ｄ】本発明の実施形態による、３次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図４ｅ】本発明の実施形態による、３次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図４ｆ】本発明の実施形態による、３次元コンテナ内における例示的オブジェクトの方向を示す図である。
【図４ｇ】本発明の一実施形態による、２次元コンテナの外部に延長する例示的１次元多様体を示す図である。
【図４ｈ】本発明の一実施形態による、３次元コンテナの外部に延長する例示的１次元多様体を示す図である。
【図５】本発明のいくつかの実施形態による、例示的スクロールメカニズムを示す図である。
【図６】本発明の一実施形態による、位置座標を生成するための方法を示す図である。
【符号の説明】
【００４１】
１００  コンピューティング環境
１１０  コンピュータ
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１３３  ＢＩＯＳ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  固定不揮発性メモリインターフェース
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  リムーバル不揮発性メモリインターフェース
１５１  磁気ディスクドライブ
１５２  磁気ディスク
１５５  光ディスクドライブ
１５６  光ディスク
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  リモートコンピュータ
１８１  メモリ記憶装置
１８２  グラフィックインターフェース
１８４  ＧＰＵ
１８５  リモートアプリケーションプログラム
１８６  ビデオメモリ
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺装置インターフェース
１９６  プリンタ
１９７  スピーカ
２０２  コンピュータ
２０４  グラッフィックスアプリケーション
２０６  ポジショナ
２０８  パラメータ
２１０  パラメータ
２１２  座標
２１４  表示
３０２  経路
３０４  経路
３０６  経路
３０８  経路
３１０  ２次元空間
３１２  ２次元空間
３１４  ２次元空間
３１８  ２次元空間
４０２  １次元多様体
４０４  １次元多様体
４０６  アイテム
４０８  アイテム
４１０  アイテム
４１２  アイテム
４１４  中心線
４１６  アイテム
４１８  経路
４２０  アイテム
４２２  アイテム
４２４  アイテム
４２６  アイテム
４２８  アイテム
４３０  アイテム
４３２  アイテム
４３４  １次元多様体
６０２  １次元多様体についてのパラメータを受け取る
６０４  オブジェクトについてのパラメータを受け取る
６０６  配置を計算する
６０８  表示モジュールに送る
【図１】
2006268840.tif 000003
【図２】
2006268840.tif 000004
【図３ａ】
2006268840.tif 000005
【図３ｂ】
2006268840.tif 000006
【図３ｃ】
2006268840.tif 000007
【図３ｄ】
2006268840.tif 000008
【図４ａ】
2006268840.tif 000009
【図４ｂ】
2006268840.tif 000010
【図４ｃ】
2006268840.tif 000011
【図４ｄ】
2006268840.tif 000012
【図４ｅ】
2006268840.tif 000013
【図４ｆ】
2006268840.tif 000014
【図４ｇ】
2006268840.tif 000015
【図４ｈ】
2006268840.tif 000016
【図５】
2006268840.tif 000017
【図６】
2006268840.tif 000018