(57)【特許請求の範囲】
【請求項１】
描画オブジェクトのためのシステム（１００）であって、
少なくとも１つのプロセッサ（１０２）を有しており、該少なくとも１つのプロセッサ（１０２）は、以下のようにコンフィギュレーションされている、すなわち、
・ディスプレイデバイス（１０８）によりワークスペース（１１４）上に表示された複数の先行オブジェクト（１１２）のタイプとサイズとを表すデータ、および、前記複数の先行オブジェクト（１１２）が前記ワークスペース（１１４）上に供給される順番を指定するデータに少なくとも部分的に基づき、入力デバイス（１１０）を介した少なくとも１つの入力（１１６）が、以下のような追加オブジェクト（１２２）に対応する、ということを決定し、すなわち該追加オブジェクト（１２２）は、前記先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応する決められたタイプを有しており、かつ前記先行オブジェクトのうち前記少なくとも１つの先行オブジェクトに対応するという点について予め定められた許容範囲内にあるサイズを有するものであり、
・前記決定に応答して前記ディスプレイデバイスに、前記少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有する前記追加オブジェクトの代わりに、前記ワークスペース上に置換オブジェクト（１２６）を表示させる、
描画オブジェクトのためのシステム（１００）。
【請求項２】
前記少なくとも１つのプロセッサは、
前記追加オブジェクトのタイプを決定し、それぞれ異なるタイプの複数の先行オブジェクトを含む複数の先行オブジェクトから成る集合から、前記追加オブジェクトと同じタイプを有する複数の先行オブジェクトから成る候補集合（１３４）を選択する、
ようにコンフィギュレーションされており、
前記少なくとも１つのプロセッサは、
前記少なくとも１つの先行オブジェクトを決定するために、前記追加オブジェクトのサイズおよび形状を、前記候補集合内の前記複数の先行オブジェクトの個々のサイズおよび形状と比較する、
ようにコンフィギュレーションされている、
請求項１記載のシステム。
【請求項３】
前記複数の先行オブジェクトを表すデータが、メモリ（１０６）、ストレージデバイス（７２６）、またはメモリ（１０６）とストレージデバイス（７２６）との組み合わせ、のうちの少なくとも１つに記憶されており、前記データはそれぞれ、前記複数の先行オブジェクトのタイプ、サイズ、形状およびポジション、ならびに各先行オブジェクトが前記ワークスペースに供給された個々の順番を指定し、
前記少なくとも１つのプロセッサは、
前記置換オブジェクトの個々のタイプ、サイズ、形状およびポジションを含むように、かつ前記置換オブジェクトが前記複数の先行オブジェクトのうち最新の先行オブジェクトであることを表すよう、記憶された前記データを変更する、
ようにコンフィギュレーションされている、
請求項２記載のシステム。
【請求項４】
前記少なくとも１つのプロセッサは、
先行オブジェクトの予め定められた最大数、前記順番、前記先行オブジェクトのポジションに対し相対的な前記追加オブジェクトのポジション、またはこれらの任意の組み合わせ、のうちの少なくとも１つに少なくとも部分的に基づき、前記追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない前記候補集合内に含まれるよう、所定量の複数の先行オブジェクトを選択する、
ようにコンフィギュレーションされている、
請求項３記載のシステム。
【請求項５】
前記少なくとも１つのプロセッサは、以下のようにコンフィギュレーションされている、すなわち、
・前記追加オブジェクト（４０４）と、前記候補集合内の前記先行オブジェクト（４０２）のうち少なくとも２つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されている、という点について予め定められた許容範囲内にある、ということを決定し、
・該決定に応答して、前記置換オブジェクトと、前記先行オブジェクトのうち前記少なくとも２つの先行オブジェクトとが、同じサイズおよび形状を有し、かつ等間隔で整列されているよう、前記置換オブジェクト（４０６）を前記ディスプレイデバイスにより表示させる、
請求項２から４までのいずれか１項記載のシステム。
【請求項６】
前記少なくとも１つのプロセッサは、以下のようにコンフィギュレーションされている、すなわち、
・前記追加オブジェクト（５０４）と、前記先行オブジェクトのうち少なくとも１つの先行オブジェクト（５０２）とが、同じサイズおよび形状を有しかつ互いに鏡像である、という点について予め定められた許容範囲内にある、ということを決定し、
・該決定に応答して、前記少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有しかつ前記少なくとも１つの先行オブジェクトの鏡像である前記追加オブジェクトの代わりに、前記置換オブジェクト（５０６）を前記ディスプレイデバイスにより表示させる、
請求項２から５までのいずれか１項記載のシステム。
【請求項７】
メモリと、アプリケーションソフトウェアコンポーネントと、少なくとも１つの前記入力デバイスおよび前記ディスプレイデバイスから成るタッチスクリーンとを含み、
前記アプリケーションソフトウェアコンポーネントは命令を含んでおり、該命令は、前記メモリに格納されて前記少なくとも１つのプロセッサにより実行されると、前記少なくとも１つのプロセッサに、ユーザによる前記タッチスクリーンのタッチを介して受信した入力に応答して、前記タッチスクリーン上に前記追加オブジェクトと前記置換オブジェクトと前記複数の先行オブジェクトとを表示させるようにし、
前記アプリケーションソフトウェアコンポーネントは、ＣＡＤソフトウェアアプリケーションに対応しており、該ＣＡＤソフトウェアアプリケーションは、前記タッチスクリーンを介した前記入力に少なくとも部分的に基づき、ＣＡＤ描画を生成するように動作する、
請求項１から６までのいずれか１項記載のシステム。
【請求項８】
前記追加オブジェクトおよび前記先行オブジェクトのタイプは、幾何学的プリミティブタイプまたは幾何学的形状タイプに対応する、
請求項１から７までのいずれか１項記載のシステム。
【請求項９】
描画オブジェクトのための方法であって、当該方法は以下のステップを含む、すなわち、
ａ）少なくとも１つのプロセッサのオペレーションによって、ディスプレイデバイス（１０８）によりワークスペース（１１４）上に表示された複数の先行オブジェクト（１１２）のタイプおよびサイズを表すデータ、および、前記複数の先行オブジェクト（１１２）が前記ワークスペース（１１４）上に供給される順番を指定するデータに少なくとも部分的に基づき、少なくとも１つの入力デバイス（１１０）を介した少なくとも１つの入力（１１６）が、以下のような追加オブジェクト（１２２）に対応する、ということを決定するステップであって、すなわち該追加オブジェクト（１２２）は、前記先行オブジェクトのうち前記少なくとも１つの先行オブジェクトに対応する決められたタイプを有しており、かつ前記先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応するという点について予め定められた許容範囲内にあるサイズを有するものである、ステップと、
ｂ）前記少なくとも１つのプロセッサのオペレーションにより、前記ステップａ）に応答して前記ディスプレイデバイスに、前記少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有する前記追加オブジェクトの代わりに、前記ワークスペース上に置換オブジェクト（１２６）を表示させるステップと、
を含む、
描画オブジェクトのための方法。
【請求項１０】
前記ステップａ）は、
ｃ）前記少なくとも１つのプロセッサのオペレーションにより、前記追加オブジェクトのタイプを決定するステップと、
ｄ）前記少なくとも１つのプロセッサのオペレーションにより、それぞれ異なるタイプの先行オブジェクトを含む複数の先行オブジェクトから成る集合から、前記追加オブジェクトと同じタイプを有する複数の先行オブジェクトから成る候補集合（１３４）を選択するステップと、
ｅ）前記少なくとも１つのプロセッサのオペレーションにより、前記少なくとも１つの先行オブジェクトを決定するために、前記追加オブジェクトのサイズおよび形状を、前記候補集合内の前記先行オブジェクトの個々のサイズおよび形状と比較するステップと、
を含む、
請求項９記載の方法。
【請求項１１】
前記複数の先行オブジェクトを表すデータが、メモリ（１０６）、ストレージデバイス（７２６）、またはメモリ（１０６）とストレージデバイス（７２６）との組み合わせ、のうちの少なくとも１つに記憶されており、前記データはそれぞれ、前記複数の先行オブジェクトのタイプ、サイズ、形状およびポジション、ならびに各先行オブジェクトが前記ワークスペースに供給された個々の順番を指定し、
さらに当該方法は、
ｆ）前記少なくとも１つのプロセッサのオペレーションにより、前記置換オブジェクトの個々のタイプ、サイズ、形状およびポジションを含むように、かつ前記置換オブジェクトが前記複数の先行オブジェクトのうち最新の先行オブジェクトであることを表すよう、記憶された前記データを変更するステップ、
を含む、
請求項１０記載の方法。
【請求項１２】
前記ステップｄ）は、
先行オブジェクトの予め定められた最大数、前記順番、前記先行オブジェクトのポジションに対し相対的な前記追加オブジェクトのポジション、またはこれらの任意の組み合わせ、のうちの少なくとも１つに少なくとも部分的に基づき、前記追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない前記候補集合内に含まれるよう、所定量の複数の先行オブジェクトを選択するステップ、
を含む、
請求項１１記載の方法。
【請求項１３】
前記ステップａ）は、
ｇ）前記少なくとも１つのプロセッサのオペレーションにより、前記追加オブジェクト（４０４）と、前記候補集合内の前記先行オブジェクト（４０２）のうち少なくとも２つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されている、という点について予め定められた許容範囲内にある、ということを決定する、
ステップを含み、
前記ステップｂ）は、
前記ステップｇ）に応答して、前記置換オブジェクトと、前記先行オブジェクトのうち少なくとも２つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されているように、前記置換オブジェクト（４０６）を前記ディスプレイデバイスにより表示させるステップ、
を含む、
請求項９から１２までのいずれか１項記載の方法。
【請求項１４】
前記ステップａ）は、
ｇ）前記少なくとも１つのプロセッサのオペレーションにより、前記追加オブジェクト（５０４）と、前記少なくとも１つの先行オブジェクト（５０２）とが、同じサイズおよび形状を有しかつ互いに鏡像である、という点について予め定められた許容範囲内にある、ということを決定する、
ステップを含み、
前記ステップｂ）は、
ｈ）前記ステップｇ）に応答して、前記少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有しかつ前記少なくとも１つの先行オブジェクトの鏡像である前記追加オブジェクトの代わりに、前記置換オブジェクト（５０６）を前記ディスプレイデバイスにより表示させるステップ、
を含む、
請求項９から１３までのいずれか１項記載の方法。
【請求項１５】
タッチスクリーンが、前記少なくとも１つの入力デバイスとディスプレイデバイスとを有し、前記追加オブジェクトおよび前記先行オブジェクトのタイプは、幾何学的プリミティブタイプまたは幾何学的形状タイプに対応する、
請求項９から１４までのいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にいえば、コンピュータ支援による設計、視覚化および製造システム、製品データマネージメント（ＰＤＭ）システム、製品ライフサイクルマネージメント（“ＰＬＭ”）システム、ならびに製品および他の項目のデータを生成および管理するために用いられる同等のシステム（これらをまとめて製品システムと称する）に関する。
【０００２】
背景技術
コンピュータ支援設計（ＣＡＤ）システムおよび他のタイプの描画システムは、製品の図面を生成可能なグラフィカルユーザインタフェース（ＧＵＩ）を含むことができる。かかるグラフィカルユーザインタフェースは、改善によって恩恵を受けることができる。
【０００３】
概要
ここで開示する様々な実施形態には、ＣＡＤシステムまたは他のタイプの描画システムにおいてオブジェクトを描画するために用いることのできるシステムおよび方法が含まれる。１つの例によれば、システムは少なくとも１つのプロセッサを含むことができる。少なくとも１つのプロセッサを、以下のようにコンフィギュレーションすることができる。すなわち、ワークスペース上でディスプレイデバイスにより表示された複数の先行オブジェクトのタイプとサイズを表すデータに少なくとも部分的に基づき、入力デバイスを介した少なくとも１つの入力が、以下のような追加オブジェクトに対応する、ということを決定する。すなわちこの追加オブジェクトは、複数の先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応する決められたタイプを有しており、かつ複数の先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応する、という点について予め定められた許容範囲内のサイズを有するものである。少なくとも１つのプロセッサを、これに応答して、少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスがワークスペース上で置換オブジェクトを表示するように、コンフィギュレーションすることもできる。
【０００４】
別の例によれば、少なくとも１つのプロセッサのオペレーションにより実施される様々なアクションを、１つの方法に含めることができる。かかる方法は、ワークスペース上でディスプレイデバイスにより表示された複数の先行オブジェクトのタイプとサイズを表すデータに少なくとも部分的に基づき、入力デバイスを介した少なくとも１つの入力が以下のような追加オブジェクトに対応する、ということを決定するステップを含むことができる。すなわちこの追加オブジェクトは、複数の先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応する決められたタイプを有しており、かつ複数の先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応する、という点について予め定められた許容範囲内のサイズを有するものである。同様にこの決定に応答して、この例示的な方法は、少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスがワークスペース上で置換オブジェクトを表示するステップ、を含むことができる。
【０００５】
さらに別の例として、（たとえばストレージデバイスにおけるソフトウェアコンポーネントなどのように）実行時に少なくとも１つのプロセッサに上述の方法を実施させる実行可能な命令によってコーディングされた、非一時的なコンピュータ読み取り可能媒体を挙げることができる。
【０００６】
これまでの記載は、以下の詳細な説明を当業者がよりよく理解できるよう、本開示の技術的特徴をどちらかといえば大雑把に略述したものである。各請求項の要旨を成す本開示の付加的な特徴および利点については、以下で述べることにする。当業者であれば理解できるように、当業者は開示された着想および特定の実施形態を、本開示と同じ目的を成し遂げるための変更または他の構造の設計のベースとして、ただちに使用することができる。さらに当業者であれば、かかる等価の構造が最も広い形態において本開示の着想および範囲から逸脱しないことを理解するであろう。
【０００７】
以下の発明の詳細な説明に入る前に、本明細書全体を通して用いられる可能性のあるいくつかの用語や表現について、ここで定義しておくのがよいと思われる。たとえば用語「含む」および「有する」ならびにそれらの派生語は、制限なく含有を意味する。単数形である「１つの」および「前記の」は複数形も同様に含むことを意図しており、このことは文脈によって明らかにそうではないことを指さないかぎりあてはまる。さらにここで用いられる用語「および／または」は、関連する一覧項目のうちの１つまたは複数のありとあらゆる可能な組み合わせのことを指し、かつそれらを包含するものである。用語「または」は、文脈によって明らかに別のことを指さないかぎり、「および／または」の意味を含む。表現「と対応づけられた」および「それと対応づけられた」ならびにそれらの派生語は、含む、中に含まれている、相互接続されている、含有する、中に含有されている、に接続されている、または、と接続されている、に結合されている、または、と結合されている、と通信可能である、と共同する、交互配置する、並置する、に近接している、に結び付けられている、または、と結び付けられている、有する、を所有している、または同等のものを意味することができる。
【０００８】
同様に、様々な要素、機能またはアクションを表すために、ここでは「第１の」、「第２の」、「第３の」といった用語が使われる場合もあるが、これらの用語によってそれらの要素、機能またはアクションが限定されるものではない。むしろこれらの数形容詞は、それぞれ異なる要素、機能またはアクションを互いに区別するために用いられる。たとえば、本開示の範囲から逸脱することなく、第１の要素、機能またはアクションを、第２の要素、機能またはアクションと称してもいいし、同様に第２の要素、機能またはアクションを、第１の要素、機能またはアクションと称してもよい。
【０００９】
これらに加え、１つまたは複数の機能またはプロセスを実施するように「プロセッサがコンフィギュレーションされている」といった表現は、ソフトウェア、ファームウェアおよび／または結線された回路を介して、それらの機能またはプロセスを実施するように、プロセッサの動作がコンフィギュレーションされている、ということを意味することができる。たとえば、ある機能／プロセスを実施するようにコンフィギュレーションされたプロセッサを、その機能／プロセスをプロセッサに実行させるようにプログラミングされたソフトウェア／ファームウェアを能動的に実行するプロセッサに対応するものとすることができ、かつ／または、その機能／プロセスを実施するためにプロセッサにより実行されるように使用可能なメモリまたはストレージデバイス内に、ソフトウェア／ファームウェアを有するプロセッサに対応するものとすることができる。さらにここで述べておくと、１つまたは複数の機能またはプロセスを実施するように「コンフィギュレーションされている」プロセッサを、それらの機能またはプロセスを実施するために特別に製造されたまたは「配線された」プロセッサ回路に対応するものとすることができる（たとえばＡＳＩＣまたはＦＰＧＡ設計）。
【００１０】
用語「に隣接する」は、ある要素が別の要素と相対的に近いが、その要素とは接触していないこと、または文脈により明らかに別のことを指していないかぎり、その要素が別の部分と接触していないこと、を意味する。
【００１１】
いくつかの用語および表現に対する定義は、本明細書全体にわたって規定されるものであり、当業者であれば理解できるように、かかる定義は、大部分の事例ではないにしても数多くの事例において、ここで定義した用語および表現の以前の使用にも将来の使用にも適用される。いくつかの用語は、幅広い種類の実施形態を含むことができるけれども、添付の特許請求の範囲は、それらの用語を特定の実施形態に明確に限定している場合もある。
【図面の簡単な説明】
【００１２】
【図１】描画オブジェクトを容易にする１つの例示的なシステムを示す機能ブロック図である。
【図２】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
【図３】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
【図４】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
【図５】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
【図６】描画オブジェクトを容易にする例示的な方法論を示すフローチャートである。
【図７】１つの実施形態を実現可能なデータ処理システムを示すブロック図である。
【００１３】
詳細な説明
次に、描画システムに属する様々な技術について、図面を参照しながら説明する。それらの図中、同様の構成要素は全体を通じて同じ参照符号によって表されている。本開示の基本原理を記述するために、以下で説明する図面および種々の実施形態が用いられているが、これらは例示の目的で用いたにすぎず、いかなるかたちであっても本開示の範囲の限定を意図したものではない。当業者であれば理解できるように、本開示の基本原理を、適切に構成された任意の装置において実現することができる。ここで理解されたいのは、特定のシステム構成要素によって実行されるものと記載された機能を、複数の構成要素によって実施することができる、という点である。同様にたとえば、複数の構成要素によって実行されるものと記載された機能を実施するために、１つの構成要素をコンフィギュレーションしてもよい。本願の数多くの革新的な着想について、具体例として挙げた非限定的な実施形態を参照しながら説明する。
【００１４】
（ＣＡＤシステムなどのような）描画システムの多くの形態は、様々なタイプのビジュアルオブジェクトを操作するために動作する。かかるビジュアルオブジェクトとして、直線分、円弧、曲線およびスプラインなどのような幾何学的プリミティブを挙げることができる。かかるビジュアルオブジェクトとしてさらに、円、正方形、矩形、球、円錐、円筒、立方体、直方体などのような２Ｄ形状および３Ｄ形状を挙げることもできる。かかるビジュアルオブジェクトとしてさらに、複雑な２Ｄ構造または３Ｄ構造を形成するために、比較的単純なビジュアルオブジェクトの組み合わせを挙げることができる。したがって一般に、描画オブジェクトを、（たとえば表示画面などのような）ディスプレイデバイスにより表示可能な任意のタイプのグラフィカルオブジェクトに対応させることができ、そのようなオブジェクトを、入力デバイスによる入力を介して、形状、サイズ、配向および／またはポジションに関して、視覚的に操作することができる。
【００１５】
図１を参照すると、オブジェクトの描画および操作を容易にする例示的なシステム１００が示されている。システム１００は少なくとも１つのプロセッサ１０２を含むことができ、このプロセッサは、本明細書で説明する種々の特徴を実施するために、メモリ１０６から１つまたは複数のアプリケーションソフトウェアコンポーネント１０４を実行するように、コンフィギュレーションされている。アプリケーションソフトウェアコンポーネント１０４は、ＣＡＤソフトウェアアプリケーションなどのような描画ソフトウェアアプリケーションまたはその一部を含むことができる。かかるＣＡＤソフトウェアアプリケーションは、ユーザによって与えられた入力に少なくとも部分的に基づき、ＣＡＤ図面を生成するように動作可能である。
【００１６】
本明細書で説明する機能の少なくともいくつかを含むように適合可能なＣＡＤ／ＣＡＭ／ＣＡＥソフトウェアの一例として、Siemens Product Lifecycle Management Software Inc. (Plano, Texas)から市販されているNX suite of applicationsが挙げられる。ただしここで理解されたいのは、かかる描画ソフトウェアアプリケーションを、他のタイプの描画ソフトウェアに対応させることができ、そのようなソフトウェアには、ベクタベースのイラストレーションソフトウェア、プレゼンテーションソフトウェア、図表作成ソフトウェア、ワードプロセッシングアプリケーション、ゲーム、ビジュアルプログラミングツール、および／または、オブジェクトの描画および操作を伴う他の任意のタイプのソフトウェアが含まれる、という点である。
【００１７】
既述のシステムは、少なくとも１つの（表示画面などのような）ディスプレイデバイス１０８と、少なくとも１つの入力デバイス１１０とを含むことができる。たとえばプロセッサ１０２を、入力デバイスとディスプレイデバイスの双方として用いられるタッチスクリーンを含むハウジング内に組み込むことができる。かかるシステムの例として、携帯電話、タブレットおよびノート型コンピュータを挙げることができる。ただし、例示的な実施形態が他のタイプの入力デバイスおよびディスプレイデバイスを用いてもよい、という点を理解されたい。たとえばシステムは、ＬＣＤモニタまたはプロジェクタといったタッチスクリーンを含まない表示画面を備えたディスプレイデバイスを含むことができる。さらにシステムは、オブジェクトを操作するための入力を与える他のタイプの入力デバイスを用いることができ、たとえばマウス、ポインタ、タッチパッド、ドローイングタブレット、トラックボール、ジョイスティック、キーパッド、キーボード、カメラ、モーションセンシングデバイス、または本明細書で説明する入力を与えることのできる他の任意のタイプの入力デバイスを用いることができる。
【００１８】
さらにここで述べておくと、本明細書で説明するプロセッサを、本明細書で説明するディスプレイデバイスおよび入力デバイスとは離れた場所にあるサーバ内に配置させてもよい。かかる例によれば、既述のディスプレイデバイスおよび入力デバイスを、クライアントデバイス内に含めてもよく、このクライアントデバイスは、（インターネットを含むことのできる）有線または無線のネットワークを介してサーバ（および／またはサーバ上で実行されるバーチャルマシン）と通信する。いくつかの実施形態によれば、かかるクライアントデバイスはたとえば、入力デバイスからサーバへ入力を送信し、かつサーバから視覚情報を受信してディスプレイデバイスにより表示する目的で、リモートデスクトップアプリケーションを実行することができ、またはサーバと共にリモートデスクトッププロトコルを実行することができる。かかるリモートデスクトッププロトコルの例として、Teradici社のPCoIP、Microsoft社のRDPおよびRFBプロトコルが挙げられる。かかる例によれば、本明細書で説明するプロセッサを、サーバのプロセッサにおいて実行されるバーチャルマシンのバーチャルプロセッサに対応させることができる。
【００１９】
図１には、ディスプレイデバイス１０８における複数の異なるビュー（Ａ〜Ｃ）が概略的に描かれており、これらのビューは、入力デバイス１１０を介して受信した様々な入力に応答して、プロセッサ１０２により表示させられたものである。たとえばディスプレイデバイス１０８のビューＡの場合、入力デバイス１１０を介して受信した描画入力１１６に応答して、ディスプレイデバイス１０８がワークスペース１１４上にビジュアルオブジェクト１１２を表示させるように、プロセッサ１０２を（たとえば既述のアプリケーションソフトウェアコンポーネント１０４を介するなどして）コンフィギュレーションすることができる。かかるワークスペース１１４を、二次元の背景表面に対応させることができ、この表面上で、アプリケーションソフトウェアコンポーネント１０４のグラフィカルユーザインタフェースにおいて、オブジェクトが描画され、表示され、操作される。ただしここで理解されたいのは、３Ｄ描画のために、ワークスペースを三次元空間の二次元ビューに対応させることもでき、そこにおいてオブジェクトが、アプリケーションソフトウェアコンポーネント１０４のグラフィカルユーザインタフェースを用いて、視覚的に描画され、表示され、操作される、という点である。さらに別の例として、３Ｄワークスペースにおいて３Ｄ描画のレンダリングのために、３Ｄディスプレイを使用することもできる。
【００２０】
例示的な実施形態によれば、ディスプレイデバイス１０８を介して表示されるビジュアルオブジェクト１１２は、入力デバイス１１０を介した描画入力１１６に応答して描画完了状態にしておくことができる先行オブジェクト１１８を含むことができる。先行オブジェクト１１８各々は、所定のタイプとサイズを有することができる。それら先行オブジェクトのタイプとサイズを表すオブジェクトデータ１４０を、プロセッサ１０２によって決定することができ、メモリ１０６（および／または描画ファイルなどのようないくつかの他のデータの場合にはストレージデバイス）に記憶させることができる。
【００２１】
さらに、ワークスペース上の先行オブジェクトを、いくつかの先行時点でそれぞれ異なるプロセッサ、ディスプレイデバイスおよび入力デバイスにより描画され、目下のプロセッサ１０２を介してロードされたファイルに保存され、ディスプレイ１０８に表示されていたものとすることもできる、という点も理解されたい。同様に、先行オブジェクトを、インポート、ペースト、ロード、および／または先行オブジェクトをワークスペースに表示させる他の任意のタイプのオペレーションを介して、ワークスペース上に配置させることができる、という点も理解されたい。さらに先行オブジェクトを、入力デバイス１１０を介した入力によりさらに操作されていた、ワークスペース上にロードされたオブジェクトに対応させることができる。
【００２２】
ある１つのオブジェクトに対応させるために決定することができるオブジェクトタイプデータの例として、以下のような幾何学的プリミティブタイプを挙げることができる。すなわち、直線、曲線、または直線の視覚的表現から決定可能な他の任意のプリミティブタイプ。ある１つのオブジェクトのために決定することのできるオブジェクトタイプデータの例としてさらに、以下のような幾何学的形状タイプを挙げることもできる。すなわち、矩形、三角形、他の多角形、円、楕円、および／または１つのオブジェクトを含む１つまたは複数の線のコンフィギュレーションから一貫して認識可能な他の任意の形状。同様に、ある１つのオブジェクトに対応するように決定することのできるサイズデータの例として、以下を挙げることができる。すなわち、オブジェクトの幅および高さ（たとえば矩形の場合）、オブジェクトの直径（たとえば円、楕円の場合）、製品（たとえば三角形または他の多角形など）の辺各々の長さおよび／または各辺間の角度、および／またはオブジェクトのサイズディメンションの定量化に使用することのできるその他の測定データ。
【００２３】
ディスプレイデバイスのビューＢに示されているように、入力デバイス１１０を介して、少なくとも１つの入力１２０を受信し、それに応答してディスプレイデバイス１０８が追加オブジェクト１２２を出力するように、プロセッサをコンフィギュレーションすることができる。追加オブジェクト１２２を描画するための入力１２０の供給をユーザが停止したときに、追加オブジェクトのタイプとサイズを決定するように、プロセッサをコンフィギュレーションすることができる。たとえば、入力デバイスがタッチスクリーンに該当するならば、ユーザが自身の指１３６（またはスタイラスペン）をタッチスクリーン表面から持ち上げたときに、アプリケーションソフトウェアコンポーネントが１つのイベントを受信することができ、それによりソフトウェアコンポーネントをトリガして、追加オブジェクト１２２のタイプとサイズの決定を開始させる。同様にマウスなどの入力デバイスについても、マウスボタンのアップイベント、または追加オブジェクトの少なくとも一部分が完成したことを表す他の入力に対応する検出イベントを受信すると、追加オブジェクトのタイプとサイズを決定するように、プロセッサをコンフィギュレーションすることができる。
【００２４】
追加オブジェクトを、以前は存在しなかったワークスペース上の描画入力／ディジタルインキ入力により認識された新たなに描画されたオブジェクトに対応させることができる、という点を理解されたい。ただし、追加オブジェクトを、目下何らかの手法で操作されている先行して存在していたオブジェクトに該当させることもできる、という点も理解されたい。このため、操作された先行オブジェクトを、本明細書で説明する追加オブジェクトに該当させてもよい。
【００２５】
これらの点に加え、追加オブジェクトを複数の異なる描画イベントで完成させてもよく、それらのイベントにおいてそのオブジェクトを描画するために、指、スタイラスペンまたはマウスが（別個のタッチまたはマウスクリックを介して）それぞれ異なる時点で用いられる、という点も理解されたい。したがって１つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネント１０４は、追加オブジェクトに対し別個に付加、消去および／または変更が行われるたびに、追加オブジェクトのタイプおよび形状を再評価することができる。
【００２６】
１つの例示的な実施形態によれば、プロセッサ１０２を以下のようにコンフィギュレーションすることができる。すなわち、複数の先行オブジェクト１１８のタイプとサイズを表すデータに少なくとも部分的に基づき、少なくとも１つの入力１２０が以下のような追加オブジェクト１２２に対応している、ということを決定するようにコンフィギュレーションすることができる。すなわちこの追加オブジェクト１２２は、先行オブジェクトの少なくとも１つに対応する決定されたタイプと、先行オブジェクトのうち少なくとも１つのオブジェクトに対応するという点について予め定められた許容範囲内のサイズとを有する。
【００２７】
たとえば図１に示されているように、追加オブジェクト１２２が矩形タイプのオブジェクトに対応する一般的な形状を有する、ということを決定するように、プロセッサをコンフィギュレーションすることができる。プロセッサは、先行オブジェクト１１２を表すデータから、先行オブジェクト１１８のうち少なくとも１つのオブジェクト１２４も矩形タイプのオブジェクトに対応する、ということを決定することができる。さらにこれらに加えて、追加オブジェクト１２２のサイズディメンションを決定し、それらのサイズディメンションを、対応する同じ矩形オブジェクトタイプの少なくとも１つの先行オブジェクト１２４について以前に決定されたサイズディメンションデータと比較する、ようにプロセッサをコンフィギュレーションすることができる。さらに、追加オブジェクトの矩形のサイズディメンション（幅および高さ）が、先行オブジェクト１２４と同じサイズを有するという点で１０％以内（または他の許容範囲内）にある、ということを決定するように、プロセッサをコンフィギュレーションすることができる。
【００２８】
先行オブジェクトは複数の異なるタイプの形状を含むことができる、という点を理解されたい。たとえば図１に示されているように、先行オブジェクトは、円タイプ１２８、２つのタイプの矩形タイプ１２４，１３０、および三角形タイプ１３２の描画オブジェクトを含む。この場合、追加オブジェクトのタイプを決定し、それぞれ異なるタイプの複数の先行オブジェクトを含む先行オブジェクト１１２のいっそう大きな集合から、追加オブジェクト１２２と同じタイプ（たとえば矩形タイプ）の先行オブジェクトの候補集合１３４を選択するように、プロセッサをコンフィギュレーションすることができる。かかる候補集合１３４は、共通のサイズまたは異なるサイズを有する２つ以上の先行オブジェクトを含むことができる。このため、追加オブジェクトのサイズを、候補集合１３４内の先行オブジェクト１２４，１３０の個々のサイズと比較して、候補集合内の少なくとも１つの先行オブジェクト１２４が追加オブジェクトにぴったりとマッチしている、ということを決定するように、プロセッサをコンフィギュレーションすることができる。
【００２９】
ディスプレイデバイス１０８のビューＣに示されているように、上述の決定（オブジェクトタイプおよび予め定められた許容範囲内のオブジェクトサイズのマッチ）に基づき、少なくとも１つの先行オブジェクト１２４に対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスが置換オブジェクト１２６をワークスペース１１４上に出力するように、少なくとも１つのプロセッサをコンフィギュレーションすることができる。
【００３０】
このようにすることでユーザは、完璧な対称的形状とはいえない形状（たとえば１つの矩形の対辺が同じ長さではない、かつ／または互いに完全に平行ではない）を、ワークスペース上にフリーハンド描画することができる。アプリケーションソフトウェアコンポーネント１０４はプロセッサに対し、（種々の線、頂点および他の描画フィーチャの配向およびロケーションに基づき）どのオブジェクトタイプが描画されたオブジェクトに最もぴったりマッチしているのか、を識別する形状認識アルゴリズムを実行させることができる。
【００３１】
ただし追加オブジェクトを、決定された同じタイプのオブジェクトのいっそう滑らかに描画されたバージョンと単に置き換えるのではなく、追加オブジェクトを、決定された少なくとも１つの先行オブジェクトとマッチするサイズを有する滑らかに描画されたバージョンと置き換えるように、少なくとも１つのプロセッサをコンフィギュレーションすることができる。同様に、追加オブジェクトが複数の先行オブジェクトのうち１つの先行オブジェクトについて予め定められた許容範囲内になければ、プロセッサはオリジナルの追加オブジェクトをワークスペース上に残すことができ、またはその追加オブジェクトを、複数の先行オブジェクトのうち１つの先行オブジェクトのサイズではなく、追加オブジェクトとおおよそ同じサイズを有するいっそう滑らかに描画された置換オブジェクトの形状と、置換することができる、という点も理解されたい。
【００３２】
１つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、（ワークスペースに加え）コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、どのようなサイズで置換オブジェクト１２６を形成するのかを決定するために、描画されたいずれの先行オブジェクトがサイズに関して十分に類似しているのかの決定に使用するために、かかるサイズ許容範囲を設定および変更することができる。かかる許容範囲を、パーセンテージ範囲（たとえば１０％以内）、距離（たとえば０．１９インチ／５ｍｍ以内）、ピクセルサイズ（たとえば２５ピクセル以内）、角度配向（たとえば１０度以内）、または描画されたオブジェクトのディメンションの比較に使用可能な他の任意の値の範囲によって、指定することができる。
【００３３】
１つの実施形態によれば、置換オブジェクト１２６は、複数の先行オブジェクト１１２のうち１つの先行オブジェクトになることができる。このためプロセッサを、メモリ１０６または他の場所に記憶されているオブジェクトデータ１４０をアップデートし、あとで描画される（または変更される）他の何らかのオブジェクトに対応づけられたタイプおよびサイズとの比較に用いるために、置換オブジェクト１２６に対応づけられたタイプおよびサイズを含むように、コンフィギュレーションすることができる。
【００３４】
これらに加え、ワークスペース１１４上に各オブジェクトが描画された（または変更された）順番をオブジェクトデータ１４０中に含むように、プロセッサをコンフィギュレーションすることができる。かかる順番のデータを、各オブジェクトに割り当てられた漸増する順序番号、オブジェクトが描画／変更された時点のタイムスタンプ、および／または、オブジェクトが描画／変更された相対的な順序を決定するために使用できる他の任意のデータ、に対応させることができる。同様にプロセッサを、描画された各オブジェクトが配置されているワークスペース１１４上のポジションを表すポジションデータをオブジェクトデータ１４０内に含むように、コンフィギュレーションすることができる。よって、置換オブジェクトのためにプロセッサは、置換オブジェクトのオブジェクトタイプ、サイズおよびポジション、ならびに最も新しい描画／変更されたオブジェクトである置換オブジェクトを表す順番データ、を含むように、オブジェクトデータ１４０を変更することができる。
【００３５】
例示的な実施形態によれば、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合１３４内に含まれるよう、所定量の複数の先行オブジェクトを選択するように、プロセッサ１０２をコンフィギュレーションすることができる。かかる最大数を、メモリ１０６または他の何らかのストレージロケーションに記憶された先行オブジェクトの予め定められた最大数に対応させることができる。１つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、候補集合１３４内に含まれるように、先行オブジェクトの予め定められたかかる最大数を設定および変更することができる。
【００３６】
たとえば図２には、ディスプレイデバイス１０８によって与えられたワークスペース１１４の例示的なビュー２００（Ａ〜Ｃ）が示されている。ビューＡの場合、ワークスペース１１４は、それぞれ異なるタイプ（円、三角形、矩形）の１０個の先行オブジェクト２０２を含んでいる。例示の目的でこれらのオブジェクト各々は、各オブジェクトが描画された個々の順番の番号を含んでいる。ビューＢの場合、ワークスペース１１４に、円タイプの追加オブジェクト２０４が付加されている。
【００３７】
この例において、予め定められた先行オブジェクトの最大数が５という値に対応しているのであれば、アプリケーションソフトウェアコンポーネント１０４は、円に対応する候補集合の先行オブジェクトを選択することになり、それらは円というオブジェクトタイプの最も新しい５つの先行オブジェクトである。よって、この例の場合、候補集合には、先行オブジェクト２０６，２０８，２１０，２１２および２１４が含まれることになるが、先行の円２１６は含まれない。
【００３８】
既述のとおり、アプリケーションソフトウェアコンポーネント１０４は、追加オブジェクト２０４のサイズ（たとえば直径）を、５つの先行オブジェクトから成る候補集合のサイズ（たとえば直径）と比較する。図２のディスプレイデバイス１０８のビューＣに示されているように、追加オブジェクトのサイズが、候補先行オブジェクトのうち少なくとも１つのオブジェクトのサイズに対応するという点について予め定められた閾値内にあれば、プロセッサはその追加オブジェクトを、候補集合内の先行オブジェクトのうち少なくとも１つのオブジェクトと同じサイズの置換オブジェクト２１８と置換することになる。追加オブジェクトが、２つの異なるサイズの先行オブジェクトについて許容範囲内にあるならば、置換オブジェクトが最新の先行オブジェクトまたは最も近いサイズの先行オブジェクトのディメンションを使うように、プロセッサをコンフィギュレーションすることができる。
【００３９】
さらに別の例示的な実施形態によれば、先行オブジェクトのポジションに対し相対的な追加オブジェクトのポジションに少なくとも部分的に基づき、追加オブジェクトと同じタイプの先行オブジェクトの総数よりも少ない候補集合内に含まれるよう、所定量の複数の先行オブジェクトを選択するように、プロセッサをコンフィギュレーションすることができる。
【００４０】
たとえば図２を参照すると、同じタイプのいずれの先行オブジェクト２０２が追加オブジェクト２０４から予め定められた距離内にあるのかを決定するよう、プロセッサをコンフィギュレーションすることができる。かかる予め定められた距離を、追加オブジェクトの中心部に関して半径距離に対応させることができる。たとえば図２には、いずれの先行オブジェクトが追加オブジェクト２０４の予め定められた半径（たとえば４インチ／１０．２ｃｍ）以内にあるのかが、破線円２２０で示されている。この例によれば、オブジェクト２０８および２１０だけが、（少なくとも部分的に）予め定められた距離（すなわち破線円２２０）内にある円タイプのオブジェクトに対応している。したがってこれら２つの先行オブジェクトのみが、追加オブジェクト２０４と比較される候補集合に対応している。
【００４１】
同様に理解されたいのは、他の例において、予め定められた距離を、追加オブジェクトの予め定められた水平方向距離内の垂直方向辺によって規定され、かつ追加オブジェクトの予め定められた垂直方向距離内の水平方向辺によって規定されたボックスに対応させてもよい、という点である。さらに別の例示的な実施形態によれば、予め定められたいずれのオブジェクトが追加オブジェクトの予め定められた範囲内にあるのかを決定するために、他の空間的グループ分けを用いてもよい。
【００４２】
１つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、候補集合内に含まれるように先行オブジェクトが選択される予め定められた上述の距離を、設定および変更することができる。
【００４３】
同様に理解されたいのは、例示的な実施形態によれば、追加オブジェクトから予め定められた距離を有すること、および／または、ワークスペースに付加された最新の先行オブジェクトの予め定められた個数内にあること、に基づき、いずれの先行オブジェクトが候補集合内に含まれるようにするのかを選択することができる、という点である。
【００４４】
さらに別の例示的な実施形態によれば、追加オブジェクトと、候補集合内の先行オブジェクトのうち少なくとも２つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されているという点について予め定められた許容範囲内にあることを決定するように、プロセッサ１０２をコンフィギュレーションすることができる。この決定に応答してプロセッサは、置換オブジェクトと、先行オブジェクトのうち少なくとも２つの先行オブジェクトが、同じサイズおよび形状を有し、かつ等間隔で整列されているように、ディスプレイデバイスによって置換オブジェクトを表示させることができる。
【００４５】
たとえば図３には、ディスプレイデバイス１０８によって与えられたワークスペース１１４の例示的なビュー３００（Ａ〜Ｃ）が示されている。ビューＡの場合、ワークスペース１１４は、離間された同じタイプ（たとえば三角形）の２つの先行オブジェクト３０２を含んでいる。これらのオブジェクト各々は同じサイズを有し、これらのオブジェクトは水平方向に整列されている。したがってこれらのオブジェクトのためのオブジェクトデータ１４０は、これらのオブジェクトの垂直方向ポジションに関して同じ垂直座標を含むことができる。
【００４６】
ビューＢの場合、ワークスペース１１４に、三角形タイプの追加オブジェクト３０４が付加されている。既述のようにプロセッサは、先行オブジェクトの双方が同じオブジェクトタイプをもち、追加オブジェクト３０４のサイズに対応するサイズを有するという点について予め定められた許容範囲内にある、ということを決定するように動作可能である。プロセッサはさらに、追加オブジェクト３０４と先行オブジェクト３０２とに対して決定されたポジションデータに応答して、追加オブジェクト３０４の垂直方向ポジションが、先行オブジェクト３０２の垂直方向ポジションから予め定められた距離内にある、ということを決定することができる。ビューＣに示されているように、この決定に応答して、追加オブジェクト３０４を、先行オブジェクトと同じサイズおよび垂直方向ポジションを有する置換オブジェクト３０６と置換するように、プロセッサをコンフィギュレーションすることができる。
【００４７】
プロセッサはさらに、追加オブジェクト３０４と先行オブジェクト３０２に対して決定されたポジションデータに応答して、各先行オブジェクト３０２間の水平方向間隔が、追加オブジェクト３０４と最も近い先行オブジェクト３０８との間の水平方向間隔について予め定められた距離内にある、ということを決定することができる。ビューＣに示されているように、この決定に応答して、各先行オブジェクト３０２が離間されているのと等距離で置換オブジェクト３０６が先行オブジェクト３０８から離間されるよう、置換オブジェクト３０６を配置するように、プロセッサをコンフィギュレーションすることができる。
【００４８】
同様に、同じサイズおよびタイプの先行オブジェクトに関して相応の整列および間隔を有する置換オブジェクトのポジションを決定する目的で、たとえば垂直方向または対角線方向に離間されたオブジェクトの整列などのように、オブジェクトの集合に関してこれとは別の整列および離間関係を決定するように、プロセッサをコンフィギュレーションすることができる、という点も理解されたい。
【００４９】
１つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、以下のような予め定められた許容範囲（たとえば０．２５インチ／０．６４ｃｍ以内または他の距離内など）を設定および変更することができる。すなわちこの許容範囲内で、追加オブジェクトが同じタイプの先行オブジェクトに関して同じ垂直方向ポジションおよび／または間隔を有するか否か、が決定される。
【００５０】
これらに加え、さらに別の例示的な実施形態によれば、追加オブジェクトと、候補集合内の先行オブジェクトのうち複数の（たとえば４個の）先行オブジェクトが、同じサイズおよび形状（および配向）を有し、かつそれぞれ異なるように整列および／またはそれぞれ異なるように離間されて描画されたオブジェクトの繰り返しパターンで整列および／または離間されている、という点について予め定められた許容範囲内にある、ということを決定するように、プロセッサをコンフィギュレーションすることができる。この決定に応答してプロセッサは、置換オブジェクトと複数の先行オブジェクトとが、同じサイズおよび形状（および配向）を有し、かつ置換パターンが置換オブジェクトの付加を継続できるようにする相互の整列および／または間隔を有するように、ディスプレイデバイスにより置換オブジェクトを表示させることができる。
【００５１】
たとえば図４には、ディスプレイデバイス１０８によって与えられたワークスペース１１４の例示的なビュー４００（Ａ〜Ｃ）が示されている。ビューＡの場合、ワークスペース１１４は、離間された同じタイプ（たとえば曲線）の４つの先行オブジェクト４０２を含んでいる。これらのオブジェクト各々は、同じサイズ（および同じ曲線形状と配向）を有し、かつ離間された２つの垂直方向ポジションと、交互に変化する間隔とを水平方向で繰り返している。したがってこれらのオブジェクトに対するオブジェクトデータ１４０は、これらのオブジェクトの垂直方向ポジションに関して、交互に変化する２つの異なる垂直座標を含むことができ、さらにポジションデータによって、これらのオブジェクト間の間隔が、第１の狭い方の間隔と第２の広い方の間隔とを繰り返す、ということを表すことができる。
【００５２】
曲線タイプのオブジェクト（および他のタイプのオブジェクト）は、線の曲率に応じてそれぞれ異なる形状を有する可能性があるので、追加オブジェクトをかかる先行オブジェクトと比較する目的で、少なくとも１つのプロセッサは、先行オブジェクトに対するオブジェクトデータにおいて形状データを決定し記憶することもできる。曲線の場合、かかるデータは線の曲率量を含むことができる。（不規則な多角形などのように）もっと複雑な形状の場合、形状データは、線の相対的なロケーション、形状を形づくる線のサイズ、および／または、追加オブジェクトとの比較に用いるために形状を定量化する他のデータ、を含むことができる。
【００５３】
また、曲線タイプのオブジェクト（および他のタイプのオブジェクト）は、それぞれ異なる回転角で配向できることから、少なくとも１つのプロセッサは、先行オブジェクトに対するオブジェクトデータにおいて配向データも決定して記憶させることができる。曲線タイプのオブジェクトの場合、かかる配向データは、曲線終点間の角度を含むことができる。ただし、それぞれ異なるタイプのオブジェクトは、オブジェクトの配向を決定するためにそれぞれ異なる判定基準を含むことができる、という点を理解されたい。
【００５４】
よって、オブジェクトのサイズを比較することに加えて、先行オブジェクト４０２の曲線の曲率量および配向を決定するように、プロセッサをコンフィギュレーションすることができる（それらのデータをオブジェクトデータ１４０の一部として記憶させることができる）。さらにプロセッサを、追加オブジェクト４０４に対応する曲率量および配向を決定するように、コンフィギュレーションすることもできる。
【００５５】
図４のビューＢには、ワークスペース１１４に付加された曲線タイプの追加オブジェクト４０４が示されている。この例によればプロセッサは、先行オブジェクト４０２が同じオブジェクトタイプを有しており、かつ追加オブジェクト４０４のサイズ、形状および配向に対応するサイズ、形状および配向を有する、という点について予め定められた許容範囲内にある、ということを決定するように動作可能である。
【００５６】
よって、図４のビューＣに示されているようにプロセッサは、先行オブジェクト４０２と同じサイズ、形状および配向を有する置換オブジェクト４０６によって追加オブジェクト４０４を置き換えるように、動作可能である。
【００５７】
これらに加えプロセッサは、追加オブジェクト４０４と先行オブジェクト４０２とに対して決定されたポジションデータに応答して、追加オブジェクト４０４の水平方向と垂直方向のポジションが、垂直方向で交互に変化する先行オブジェクト４０２のパターンを継続するポジションにあり、かつ各オブジェクト間で交互に変化する間隔パターンを継続する、という点について予め定められた距離内にある、ということを決定することができる。ビューＣに示されているように、この決定に応答して、先行オブジェクトの集合と置換オブジェクトとが、先行オブジェクトに対応づけられた決められたポジションパターンをもち続けるように、追加オブジェクト４０４を１つのポジションにおいて置換オブジェクト４０６と置換するように、プロセッサをコンフィギュレーションすることができる。
【００５８】
同様に、置換オブジェクトのポジションを決定する目的で、オブジェクトの集合に関して（曲線の次に続くパターンなど）さらに別の空間的パターンを決定するように、プロセッサをコンフィギュレーションすることができる、という点も理解されたい。さらに既述のコンフィギュレーショングラフィカルユーザインタフェースコントロールによって、予め定められた以下のような許容範囲（たとえば５インチ／１．２７ｃｍ以内または他の距離内など）を設定および変更することもできる。すなわちこの許容範囲内で、追加オブジェクトが先行オブジェクトの空間的パターン配置内に含まれるべき一般的なロケーション内にあるか否か、が決定される。
【００５９】
これまでの例によって示してきたのは、単純な形状を、ワークスペース上の先行オブジェクトに対応する置換オブジェクトによって置換する、というものである。また、もっと複雑な形状を有する追加オブジェクトを、同様に対応する先行オブジェクトと置き換えるように、アプリケーションソフトウェアコンポーネントが動作可能である、という点も理解されたい。
【００６０】
これらに加え、組み合わせられていっそう複雑な１つのオブジェクトを形成する個々のプリミティブタイプオブジェクトに対し、適切な置換オブジェクトを見つけるようにするために、プリミティブレベル（線、円、円弧、楕円、スプライン）で動作するように、例示的な実施形態をコンフィギュレーションすることができる。この例によれば、ワークスペースに付加された追加プリミティブタイプオブジェクト各々を、同じタイプ（たとえば線、円、円弧、楕円、スプライン）の先行プリミティブタイプオブジェクトと比較して、同じサイズ、配向および／または曲率を有するという点について許容範囲内にある１つの先行プリミティブタイプオブジェクトを見つけ、追加プリミティブタイプオブジェクトに対する置換オブジェクトとして用いる。換言すれば、一連の個々の線／曲線をワークスペース上に付加していくことで、いっそう複雑な形状が構築されていくときに、完成した線／曲線という点について許容範囲内にある先行の線／曲線に基づき、完成した線／曲線各々を置換線／曲線とただちに置き換えるように、アプリケーションソフトウェアを動作させることができる。
【００６１】
いっそう複雑な形状を複数のプリミティブタイプオブジェクトから描画するユーザの能力をさらに支援するために、プロセッサを以下のようにコンフィギュレーションすることができる。すなわち、１つまたは複数の先行プリミティブタイプオブジェクトと共線、平行および／または垂直であるという点について予め定められた許容範囲内にある、ワークスペース上の１つまたは複数の先行プリミティブタイプオブジェクトと共線、平行および／または平行な新たなポジションへ、（線などのような）追加プリミティブタイプオブジェクトを迅速に動かす（移動させる）ように、プロセッサをコンフィギュレーションすることができる。たとえば、追加楕円が先行楕円と平行であるという点について予め定められた許容範囲内にあるならば、楕円タイプオブジェクトを迅速に動かして、追加楕円の軸をワークスペース上の先行楕円と平行にすることができる。
【００６２】
さらに別の例によれば、追加オブジェクトをワークスペース上の先行オブジェクトの鏡像配置と置換するように、プロセッサをコンフィギュレーションすることができる。たとえば図５には、ディスプレイデバイス１０８によって与えられたワークスペース１１４の例示的なビュー５００（Ａ〜Ｂ）が示されている。ビューＡの場合、ワークスペース１１４は、先行オブジェクト５０２と追加オブジェクト５０４とを含んでいる。この例によれば、プロセッサは、追加オブジェクトと先行オブジェクトが同じサイズおよび形状を有しかつ互いに鏡像である、という点について予め定められた許容範囲内にある、ということを決定するようにコンフィギュレーションされている。
【００６３】
ビューＢに示されているように、この決定に応答して、追加オブジェクト５０４を、先行オブジェクトに対応するサイズおよび形状を有しかつ先行オブジェクトの鏡像である置換オブジェクト５０６と置換するように、プロセッサをコンフィギュレーションすることができる。
【００６４】
次に図６を参照しながら、種々の例示的な方法論について呈示し説明する。これらの方法論を、１つのシーケンス内で実施される一連のアクションとして説明するけれども、これらの方法論はこのシーケンスの順序によって限定されるものではない、という点を理解されたい。たとえばいくつかのアクションを、ここで説明するのとは異なる順序で生じさせてもよい。これに加え、あるアクションを他のアクションと同時に生じさせてもよい。しかもいくつかの事例においては、ここで説明する方法論を実現するために、すべてのアクションが必要とされるわけでもない。
【００６５】
ここで特に述べておきたいのは、本開示には、完全に機能的なシステムおよび／または一連のアクションに関連した説明が含まれているけれども、当業者であれば理解できるように、本開示におけるメカニズムおよび／または説明するアクションの少なくとも一部分は、機械で使用可能な、コンピュータで使用可能な、またはコンピュータで読み取り可能な、非一時的媒体内に含まれるコンピュータにより実行可能な命令として、任意の種類の形態で配布可能なものであること、さらに本開示は、特定のタイプの命令、信号担体または記憶媒体が使用されようとも、そのような配布物を実際に実行するために等しく適用されること、である。機械で使用可能／読み取り可能またはコンピュータで使用可能／読み取り可能な非一時的媒体の例を以下に挙げておく：ＲＯＭ、ＥＰＲＯＭ、磁気テープ、フロッピーディスク、ハードディスクドライブ、ＳＳＤ、フラッシュメモリ、ＣＤ、ＤＶＤおよびブルーレイディスク。コンピュータで実行可能な命令として、ルーチン、サブルーチン、プログラム、アプリケーション、モジュール、ライブラリ、実行スレッド、および／またはこれらと同等のもの、を挙げることができる。さらに、方法論のアクションの結果を、コンピュータ読み取り可能媒体に記憶することができ、ディスプレイデバイスに表示することができ、および／または同等のことを実施することができる。
【００６６】
図６を参照すると、オブジェクトの描画を容易にする方法論６００が示されている。ステップ６０２においてこの方法をスタートさせることができ、ステップ６０４において、この方法論は以下のアクションを含むことができる。すなわち、ａ）少なくとも１つのプロセッサのオペレーションにより、ワークスペース上でディスプレイデバイスにより表示された複数の先行オブジェクトのタイプとサイズを表すデータに少なくとも部分的に基づき、入力デバイスを介した少なくとも１つの入力が、以下のような追加オブジェクトに対応する、ということを決定する。すなわちこの追加オブジェクトは、複数の先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応する決められたタイプを有しており、かつ複数の先行オブジェクトのうち少なくとも１つの先行オブジェクトに対応する、という点について予め定められた許容範囲内のサイズを有するものである。
【００６７】
これに加え方法論６００は、以下のアクション６０６を含むことができる。すなわち、ｂ）少なくとも１つのプロセッサのオペレーションにより、アクションａ）に応答して、少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスによりワークスペース上に置換オブジェクトを表示させる。ステップ６０８において、この方法論を終了させることができる。
【００６８】
これらに加え、方法論６００は、システム１００に関してこれまで説明してきた他のアクションおよび特徴を含むことができる。たとえば既述のようにこの方法論は、以下のことを含むことができる。すなわち、追加オブジェクトのタイプを決定し、種々のタイプの複数の先行オブジェクトを含む複数の先行オブジェクトから成るいっそう大きい集合から、追加オブジェクトと同じタイプを有する複数の先行オブジェクトから成る候補集合を選択する。さらにこれに加えこの方法論は、以下のことを含むことができる。すなわち、追加オブジェクトのサイズおよび形状を、候補集合内の複数の先行オブジェクトの個々のサイズおよび形状と比較して、少なくとも１つの先行オブジェクトを決定する。
【００６９】
複数の先行オブジェクトを表すデータを、メモリ、ストレージデバイス、またはそれらの組み合わせのうちの少なくとも１つに記憶することもでき、かかるデータはそれぞれ以下を特定することができる。すなわち、複数の先行オブジェクトのタイプ、サイズ、形状およびポジション、ならびに各々がワークスペースに供給された個々の順番。この方法論は以下を含むことができる。すなわち、記憶されたデータを変更して、置換オブジェクトの個々のタイプ、サイズ、形状およびポジションを含むようにし、さらに置換オブジェクトが複数の先行オブジェクトのうち最新のものである、ということを表すようにする。
【００７０】
例示的な実施形態によれば、この方法論はさらに以下を含むこともできる。すなわち、予め定められた最大数の先行オブジェクトに少なくとも部分的に基づき、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合内に含まれるように、所定量の複数の先行オブジェクトを選択する。かかるアクションを以下に対応させることもできる。すなわち、先行オブジェクトが描画された順番に少なくとも部分的に基づき、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合内に含まれるように、所定量の複数の先行オブジェクトを選択する。
【００７１】
さらに別の例示的な実施形態によれば、この方法論は以下を含むことができる。すなわち、先行オブジェクトのポジションに対し相対的な追加オブジェクトのポジションに少なくとも部分的に基づき、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合内に含まれるように、所定量の複数の先行オブジェクトを選択する。
【００７２】
さらにこの方法論は以下を含むこともできる。すなわち、追加オブジェクトと、候補集合内の先行オブジェクトのうち少なくとも２つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されている、という点について予め定められた許容範囲内にある、ということを決定する。この決定に応答して、この方法論は以下を含むことができる。すなわち、置換オブジェクトと、先行オブジェクトのうち少なくとも２つの先行オブジェクトとが、同じサイズおよび形状を有し、かつ等間隔で整列されているように、ディスプレイデバイスによって置換オブジェクトを表示させることができる。
【００７３】
さらに別の例によれば、この方法論は以下を含むことができる。すなわち、追加オブジェクトと、候補集合内の先行オブジェクトのうち少なくとも４つの先行オブジェクトとが、同じサイズおよび形状を有し、かつそれぞれ異なるように整列および／またはそれぞれ異なるように離間されて描画されたオブジェクトの繰り返しパターンにおいて整列および／または離間されたものである、という点について予め定められた許容範囲内にある、ということを決定する。この決定に応答して、この方法論は以下を含むことができる。すなわち、置換オブジェクトと、先行オブジェクトのうち少なくとも４つの先行オブジェクトとが、同じサイズおよび形状を有し、かつ置換パターンが置換オブジェクトの付加を継続できるようにする相互の整列および／または間隔を有するように、ディスプレイデバイスにより置換オブジェクトを表示させる。
【００７４】
別の例によれば、この方法論は以下を含むことができる。すなわち、追加オブジェクトと少なくとも１つの先行オブジェクトとが、同じサイズおよび形状を有しかつ互いに鏡像であるという点について予め定められた許容範囲内にある、ということを決定する。これに応答して、この方法論は以下を含むことができる。すなわち、少なくとも１つの先行オブジェクトに対応するサイズおよび形状を有しかつ少なくとも１つの先行オブジェクトの鏡像である先行オブジェクトの代わりに、ディスプレイデバイスに置換オブジェクトを表示させる。
【００７５】
既述のとおり、これらの方法に対応づけられたかかるアクションを、１つまたは複数のプロセッサによって実行することができる。かかる１つまたは複数のプロセッサを、１つまたは複数のデータ処理システムに含めることができ、このデータ処理システムはたとえば、上述のアクションが１つまたは複数のプロセッサによって実施されるように動作するソフトウェアコンポーネントを実行する。１つの例示的な実施形態によれば、かかるソフトウェアコンポーネントを、Java, JavaScript, Python, C, C#, C++などのようなソフトウェア環境／言語／フレームワークにおいて、またはここで説明したアクションおよび特徴を実行するようにコンフィギュレーションされたコンポーネントおよびグラフィカルユーザインタフェースを生成可能な他の任意のソフトウェアツールにおいて、記述することができる。
【００７６】
図７には、データ処理システム７００（コンピュータシステムとも称する）のブロック図が示されている。このシステムに、たとえば本明細書で説明したプロセスを実行するためにソフトウェアまたは他の何らかの手段によって動作がコンフィギュレーションされたＰＬＭ、ＣＡＤおよび／または描画システムの一部分として、１つの実施形態を実装することができる。この図に描かれたデータ処理システムは、少なくとも１つのプロセッサ７０２（たとえばＣＰＵ）を含んでおり、これを１つまたは複数のブリッジ／コントローラ／バス７０４（たとえばノースブリッジ、サウスブリッジ）と接続することができる。バス７０４の１つとして、PCI Expressバスなどのような１つまたは複数のＩ／Ｏバスを挙げることができる。図示の例によれば、様々なバスに接続されるものとして、メインメモリ７０６（ＲＡＭ）およびグラフィックスコントローラ７０８を挙げることができる。グラフィックスコントローラ７０８を、１つまたは複数のディスプレイデバイス７１０と接続することができる。同様にここで述べておきたいのは、いくつかの実施形態によれば、１つまたは複数のコントローラ（たとえばグラフィックス、サウスブリッジ）を（同じチップまたはダイにおける）ＣＰＵと統合できる、という点である。ＣＰＵアーキテクチャの例には、ＩＡ−３２、ｘ８６−６４およびＡＲＭプロセッサアーキテクチャが含まれる。
【００７７】
１つまたは複数のバスに接続される他の周辺機器として、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、セルラネットワークおよび／または他の有線または無線のネットワーク７１４と接続するように動作する通信コントローラ７１２（イーサネットコントローラ、ＷｉＦｉコントローラ、セルラコントローラ）、または通信機器を挙げることができる。
【００７８】
種々のバスに接続されるさらに別のコンポーネントとして、１つまたは複数のＩ／Ｏコントローラ７１６、たとえばＵＳＢコントローラ、ブルートゥースコントローラ、および／または（スピーカおよび／またはマイクロフォンと接続される）専用オーディオコントローラなどを挙げることができる。同様に、様々な周辺機器を（種々のＵＳＢポートを介して）ＵＳＢコントローラに接続することができる、という点も理解されたい。それらの周辺機器として、入力デバイス７１８（たとえばキーボード、マウス、タッチスクリーン、トラックボール、カメラ、マイクロフォン、スキャナ）、出力デバイス７２０（たとえばプリンタ、スピーカ）、あるいは入力を供給するまたはデータ処理システムからの出力を受信するように動作する他の任意のタイプのデバイスが挙げられる。さらに、入力デバイスまたは出力デバイスと呼ばれる多くのデバイスが、入力を供給することができ、かつデータ処理システムとの通信の出力を受信することができる、という点を理解されたい。さらに理解されたいのは、Ｉ／Ｏコントローラ７１６に接続される他の周辺ハードウェア７２２として、データ処理システムと通信するようにコンフィギュレーションされた任意のタイプのデバイス、機械またはコンポーネントを挙げることができる、という点である。
【００７９】
種々のバスに接続される付加的なコンポーネントとして、１つまたは複数のストレージコントローラ７２４（たとえばＳＡＴＡ）を挙げることができる。ストレージコントローラをストレージデバイス７２６と接続することができ、たとえば１つまたは複数のストレージドライブ、および／または機械で使用可能または機械で読み取り可能な任意の適切な非一時的ストレージ媒体とすることができる任意の対応するリムーバル媒体、などと接続することができる。例として挙げられるのは、不揮発性デバイス、揮発性デバイス、リードオンリーデバイス、書き込み可能デバイス、ＲＯＭ、ＥＰＲＯＭ、磁気テープストレージ、フロッピーディスクドライブ、ハードディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、フラッシュメモリ、光ディスクドライブ（ＣＤ、ＤＶＤ、ブルーレイ）、および他の公知の光学的、電気的、または磁気的なストレージデバイスドライブおよび／またはコンピュータ媒体である。いくつかの例によれば、ＳＳＤなどのようなストレージデバイスを、PCI ExpressバスなどのようなＩ／Ｏバス７０４へ、ダイレクトに接続することもできる。
【００８０】
本開示の１つの実施形態によるデータ処理システムとして、オペレーティングシステム７２８、ソフトウェア／ファームウェア７３０、およびデータストア７３２（これらをストレージデバイス７２６に記憶させることができる）を挙げることができる。かかるオペレーションシステムは、コマンドラインインタフェース（ＣＬＩ）シェルおよび／またはグラフィカルユーザインタフェース（ＧＵＩ）シェルを採用することができる。ＧＵＩシェルは、複数のディスプレイウィンドウをグラフィカルユーザインタフェースにおいて同時に表示させることができ、各ディスプレイウィンドウによって、それぞれ異なるアプリケーションに対するインタフェースが提供され、または同じアプリケーションの異なるインスタンスに対するインタフェースが提供される。マウスまたはタッチスクリーンなどのようなポインティングデバイスによって、ユーザはグラフィカルユーザインタフェースのカーソルまたはポインタを操作することができる。この場合、カーソル／ポインタのポジションを変更することができ、かつ／または、望ましいレスポンスを生じさせるために、マウスボタンのクリックまたはタッチスクリーンのタッチといったイベントを発生させることができる。データ処理システムにおいて使用することのできるオペレーティングシステムの例として、Microsoft Windows, Linux, UNIX, iOSおよびAndroidオペレーティングシステムを挙げることができる。
【００８１】
通信コントローラ７１２を（データ処理システム７００の一部ではない）ネットワーク７１４に接続することができ、このネットワークを、インターネットを含め当業者に周知の任意のパブリックまたはプライベートのデータ処理システムネットワークまたはそれらのネットワークの組み合わせとすることができる。データ処理システム７００はネットワーク７１４を介して、（やはりデータ処理システム７００の一部ではない）サーバ７３４などのような１つまたは複数の他のデータ処理システムと通信することができる。ただし、１つの択一的なデータ処理システムを、分散システムの一部として実装された複数のデータ処理システムに対応させることができ、そのような分散システムにおいて、複数のデータ処理システムに対応づけられた複数のプロセッサを、１つまたは複数のネットワークコネクションを介して通信状態にすることができ、それらのプロセッサは、単一のデータ処理システムによって実施されるものとして説明したタスクを、共同で実施することができる。よって、１つのデータ処理システムについて言及するときには、かかるシステムを、ネットワークを介して互いに通信状態にある分散システム内に構築された複数のデータ処理システム全体にわたって実装されたものとしてもよい、という点を理解されたい。
【００８２】
なお、用語「コントローラ」とは、このデバイスがハードウェア、ファームウェア、ソフトウェア、またはそれらのうち少なくとも２つの何らかの組み合わせとして実現されていようが、少なくとも１つのオペレーションをコントロールする任意のデバイス、システムまたはそれらの一部分のことを意味する。さらにここで述べておきたいのは、いずれかの特定のコントローラと結び付けられた機能を、ローカルであろうとリモートであろうと、集中させてもよいし分散させてもよい、という点である。
【００８３】
これらに加え、データ処理システムを、バーチャルマシンアーキテクチャまたはクラウド環境においてバーチャルマシンとして実装することができる、という点を理解されたい。たとえばプロセッサ７０２および付随するコンポーネントを、１つまたは複数のサーバのバーチャルマシン環境において実行される１つのバーチャルマシンに対応させることができる。バーチャルマシンアーキテクチャの例として挙げられるのは、VMware ESCi, Microsoft Hyper- V, Xenおよび KVMである。
【００８４】
当業者であれば理解できるように、データ処理システムについて図示したハードウェアを、特定の実装形態に合わせて変更することができる。たとえばこの例におけるデータ処理システム７００を、コンピュータ、ワークステーションおよび／またはサーバに対応させることができる。ただしここで理解されたいのは、データ処理システムの択一的な実施形態を、相応のコンポーネントまたは択一的なコンポーネントによってコンフィギュレーションすることができる、という点であり、たとえば携帯電話、タブレット、コントローラボード、またはデータを処理しかつデータ処理システム、コンピュータ、プロセッサおよび／または本明細書で説明したコントローラのオペレーションと対応づけられた、本明細書で説明した機能および特徴を実施するように動作する他の任意のシステムの形態として、コンフィギュレーションすることができる。図示されている実施例は、例示目的で示されているにすぎず、本開示に関して構造上の制限を意図したものではない。
【００８５】
本明細書で用いた用語「コンポーネント」および「システム」は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの組み合わせを包含することを意図している。したがってたとえば、システムまたはコンポーネントをプロセス、プロセッサ上で実行されるプロセス、またはプロセッサとすることができる。これらに加え、コンポーネントまたはシステムを、単一のデバイス上に局所化してもよいし、複数のデバイスにわたって分散させてもよい。
【００８６】
同様に、ここで用いられているプロセッサは、データを処理するためにハードウェア回路、ソフトウェアおよび／またはファームウェアを介してコンフィギュレーションされた任意の電子デバイスに相応する。たとえば、本明細書で説明したプロセッサを、マイクロプロセッサ、ＣＰＵ、ＦＰＧＡ、ＡＳＩＣ、あるいは、コントローラボード、コンピュータ、サーバ、携帯電話、および／または他の任意のタイプの電子デバイスの形態を有することができるデータ処理システムにおいてデータを処理可能である他の任意の集積回路（ＩＣ）または他のタイプの回路、のうちの１つまたは複数（またはこれらの組み合わせ）に対応させることができる。
【００８７】
さらに当業者であれば理解できるとおり、簡潔かつ明瞭にするため、本開示に用いるために適したあらゆるデータ処理システムの構造およびオペレーションのすべてを、本明細書において描いたわけではなく、または説明したわけではない。そうではなく、データ処理システムのうち、本開示に特有のところだけを、または本開示の理解に必要なところだけを、描いて説明したにすぎない。データ処理システム７００の構造およびオペレーションのその他の部分は、この分野で周知の現在行われている様々な実装形態および実施手法の任意のものに適合させることができる。
【００８８】
これまで本開示の例示的な実施形態について詳しく説明してきたが、当業者であれば理解できるように、最も広い形態としての本開示の着想および範囲を逸脱することなく、様々な変更、置き換え、変形ならびに本明細書で開示した改善を行うことができる。
【００８９】
本願の記載内容のいずれも、何らかの特定の部材、ステップ、アクションまたは機能が特許請求の範囲に含まれなければならない必須の要素である、という趣旨で読まれるべきではない。本発明の範囲は、特許付与された請求項によってのみ定められるものである。しかも、厳密な語「のための手段」の次に分詞が続かないのであれば、これらの請求項のいずれも、ミーンズ・プラス・ファンクション・クレーム（means plus function claim）の構造が適用されることを意図したものではない。
【図１】
0006542389.tif 000002
【図２】
0006542389.tif 000003
【図３】
0006542389.tif 000004
【図４】
0006542389.tif 000005
【図５】
0006542389.tif 000006
【図６】
0006542389.tif 000007
【図７】
0006542389.tif 000008