JP3789946B2 - オブジェクトを動的に選択及び操作する方法 - Google Patents
オブジェクトを動的に選択及び操作する方法 Download PDFInfo
- Publication number
- JP3789946B2 JP3789946B2 JP08157093A JP8157093A JP3789946B2 JP 3789946 B2 JP3789946 B2 JP 3789946B2 JP 08157093 A JP08157093 A JP 08157093A JP 8157093 A JP8157093 A JP 8157093A JP 3789946 B2 JP3789946 B2 JP 3789946B2
- Authority
- JP
- Japan
- Prior art keywords
- objects
- applicator
- user
- wipe
- displayed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Position Input By Displaying (AREA)
Description
【産業上の利用分野】
本発明は、『グラフィックユーザインタフェースのための時間−空間のオブジェクトの包含(Time-Space Object Containment For Graphical User Interface)』と称する米国出願第07/869,559号と同日出願される。
【0002】
本発明は、コンピュータ制御された図形の描画および編集のためのシステムと方法に関し、より詳細には、オブジェクト指向ディスプレイ表現に基づいたそのような描画編集システムに関する。
【0003】
【従来の技術及び発明が解決しようとする課題】
一般的に、図形描画編集システムには2つの種類があり、それはペインティングプログラム(painting programs) と構造化描画プログラム(structured drawing programs) とである。ペインティングプログラムは、ユーザがライン(または、”スプレー”パターン("spray" patterns))をペイントすることを可能にし、そして通常は画素の2次元配列である1つの画像に基づいた表現をユーザが消去することを可能にする。構造化描画プログラムは、ユーザが幾何学的に定義されたオブジェクトを生成し、修正し、そして削除することを可能にする。画像表現(image representation)と区別してのオブジェクトに基づく表現(object-based representation) は計算に関しての多くの利点を有するが、そのような表現のためのユーザインタフェースは一般的により多くの別個の(離散的)アクションを用い、そのことはユーザにとってより使いづらいものであった。特に、ノート型ディスプレイからホワイトボード型ディスプレイまでの種々の寸法のディスプレイに対するペン(または、スタイラス)入力装置を備えたコンピュータシステムに関しては困難な問題を有する。多くの描画システムは、描画することを可能とし、かつ、例えばペンに基づいた運動によって画像を消去することを可能にするとともに、それは画素配列画像表現に基づいて1つの画素毎に実現される。オブジェクトに基づく表現が使用される場合には、消去は、あるオブジェクトの周囲にループを描いて次に削除操作を喚起するような別個のアクションによってなされる。
【0004】
この問題はグループでの会議および発表会を支援するための大規模な対話型ディスプレイにとってはより不都合なものである。1つの例は、1992年 5月 3日〜 7日、Monterey CA で開催されたHuman Factors in Computing Systemsに関する米国計算機学会(ACM) の会議の、1992年のCHIの議事録で発表された研究論文に記述されるライブボード(Liveboard) である。そのライブボードはディスプレイのための画素マップに基づく表現を必要とするビットマップペインティングプログラムを用いるものである。これはオブジェクトを取り扱う際の柔軟性を非常に制限するものである。
【0005】
本発明が目的とするものは、スクリーン上に表示されるオブジェクトを入力装置を用いて動的に選択しかつ操作する方法である。
【0006】
本発明がさらに目的とするものは、オブジェクトに基づいた表現を生成しかつ修正するための入力装置を用いた表示システムである。
【0007】
もう1つの本発明が目的とするものは、1つの運動で1つあるいは複数のオブジェクトを操作するための自然な手と腕の運動を利用することのできる連続運動感応入力装置を備えた表示システムである。
【0008】
本発明がさらに目的とするものは、ユーザとオブジェクトに基づいた表現を用いた表示システムとの間の新規のインタフェース技術であり、それは、それが多様な高速かつ動的な表示の選択および操作を可能にするので強力であることを特徴とするが、それにもかかわらずそれは選択および操作がありふれたユーザアクションを備えるので自然なものである。
【0009】
本発明は、オブジェクトに基づいた表現を用い、かつシステム表示スクリーン上に表示されるオブジェクトを選択し操作するための入力装置を有する表示システムを取り扱うものである。
【課題を解決するための手段】
【0010】
本発明の請求項1に記載の態様は、ユーザが入力装置を操作することによってコンピュータ制御されたディスプレイ装置に表示されている複数のオブジェクトを動的に選択および操作する方法であって、前記表示されている複数のオブジェクトが、オブジェクトに基づく表現の一つの集合として記憶装置に記憶されている少なくとも一つのオブジェクトを含み、前記方法が、(a)ユーザがアプリケータにアクセスするための手段を提供する工程と、(b)オペレータをアプリケータに関連させる手段を提供する工程と、(c)ディスプレイの一部分を横切って関連するオペレータを備えたアプリケータを掃引してアプリケータの掃引経路を定義する工程と、(d)アプリケータを掃引することによって定義された前記掃引経路において、コンピュータに認識されたオブジェクトが最初に表示された時間と他の表示されているオブジェクトが最初に表示された時間との間の関係を含む基準によって設定された範囲内に存在するオブジェクトを選択する工程と、(e)工程(d)で選択された表示されているオブジェクトの全体に前記オペレータによって影響を与える工程と、(f)工程(e)の実施後に、前記アプリケータの再掃引によって与えた前記影響を取り消す工程と、を含むことを特徴とするオブジェクトを動的に選択および操作する方法である。
さらに本発明の請求項2に記載の態様は、ユーザが入力装置を操作することによってコンピュータ制御されたディスプレイ装置に表示されている複数のオブジェクトを動的に選択および操作するコンピュータベースの方法であって、前記表示されている複数のオブジェクトがオブジェクトベースのデータ構造の一つの集合として記憶手段に記憶されている少なくとも一つのオブジェクトを含み、前記少なくとも一つのオブジェクトそれぞれが前記表示されている複数のオブジェクトの表現であって、前記方法が、(1)前記入力装置に入力された前記ユーザの動きを追従可能なコンピュータオブジェクトであるアプリケータにアクセスする手段を前記ユーザに提供する工程と、(2)表示されているオブジェクトに適用されると前記表示されているオブジェクト全体の性質に影響を及ぼすかまたは前記性質を変更可能な少なくとも一つのオペレータを前記アプリケータにリンクするコンピュータ手段を提供する工程と、(3)前記アプリケータのための掃引経路をディスプレイ装置の一部の上に形成するワイプストロークの複数セグメントの列を定義するために、前記リンクされたオペレータから独立して前記ディスプレイ装置の前記一部を横切るように前記アプリケーターを物理的に動かすオペレータ工程であって、前記コンピュータ手段が前記ワイプストロークの複数セグメントそれぞれの位置の識別及び記憶を実施可能であり、前記ワイプストロークの複数セグメントそれぞれの前記位置が、前記表示された複数のオブジェクトの複数の位置について相対的に前記掃引経路を作る、前記工程と、(4)前記ワイプストロークの複数のセグメントの列が定義されると、前記ワイプストロークの前記列におけるそれぞれのセグメントについて、前記アプリケータを物理的に動かすことで形成された前記掃引経路から、空間的基準を満足するオブジェクトの生成から所定の長さの時間内に作られた複数のオブジェクトを含む基準に基づいた所定距離内に存在する全ての表示されている複数のオブジェクトをコンピュータによって認識する工程と、(5)コンピュータによって前記操作によってリンクされたオペレータを、工程(4)において識別された前記複数の表示オブジェクトのそれぞれにのみ適用することによって、前記表示オブジェクトを前記ユーザに見えるように表現している前記データ構造を変更する工程と、を含み、前記工程(1)から工程(5)の複数工程がコンピュータを用いたワイプセッションの間実施され、前記実施が、前記アプリケーターの突然の逆方向の操作が存在するかまたは逆方向の操作を存在させずに前記アプリケーターを物理的に動かすことを含む、コンピュータベースの方法である。
【0011】
本発明の1つの側面によれば、ユーザの制御下において1つのアプリケータ(applicator)が提供される。そのアプリケータはユーザの制御下での1つのオブジェクトである。アプリケータの位置は、スクリーン上に表示される場合、例えば入力装置としてのペンまたはマウスによるユーザの運動に追随する。もしペンが、例えば、ディスプレイ表面上を掃引されれば、2次元(2−D)のアプリケータオブジェクトがペンによって描かれる経路に沿って掃引される。そのアクションは、ホワイトボードの表面のワイピング(wiping)のために布またはスポンジを移動させることに類似しており、したがってそれはユーザにとっては自然なワイピング運動である。このワイピングアクションからのディスプレイへの作用は、ユーザによってアプリケータと関連づけられるオペレータ(operator)の性質に依存し、また表示されたどのオブジェクトが選択されかつ操作されるかについてユーザが決めた基準に依存する。
【0012】
本発明のもう1つの側面によれば、アプリケータは表示されたオブジェクトに影響を及ぼすことができる複数のオペレータの1つに関連づけられている。例えば、グループ化し(grouping)、削除し(deleting)、カットし(cutting) 、複写し(copying) 、選択し(selecting) 、色づけし(coloring)、位置づけし(positioning) 、または取り消す(undoing) ような、多くの種類のオペレータが用いられてもよい。この同一の自然なペンのようなワイピングアクションを複数の異なったオブジェクトに影響するアクションに関連づける能力がこの発明的な技術の効力と一貫性を向上させるのである。
【0013】
本発明のさらにもう1つの側面によれば、ワイピングアクションによって影響されるオブジェクトは、好ましくは、ユーザコマンドが欠落している場合に有効な省略時の基準によってユーザによって決定されるものであってもよい。使用される基準は多様な環境にわたるものである。例えば、2次元のワイピング運動によって交差するすべてのオブジェクトが選択されてもよく、あるいは、最小の共通部分またはしきい値の共通部分を満足するオブジェクトだけが選択されてもよい。また、使用される基準は、選択に関して、ワイピング運動から一定の距離の範囲内にあるすべてのオブジェクトを包含してもよく、あるいは、お互いが一定の時間間隔の範囲内に生成されたすべてのオブジェクトを包含してもよく、あるいは、任意述語(arbitrary predicate) によってフィルタされたオブジェクトを包含してもよい。
【0014】
現在用いられているペインティングプログラムはいくつかのワイプのようなアクション(すなわち、ペインティング)を可能とするが、それらのプログラムは画像に基づいた表現にペインティングするのである。本発明は、オブジェクトに基づいた表現にワイピング技術を適用し、そうすることによって、ワイピングによって適用されるオペレータの範囲を一般化する。したがって、画像に基づいた表現とオブジェクトに基づいた表現との間の差異が本発明にとっては重要である。
【0015】
オブジェクトに基づいた表現は独立して記述されたオブジェクトの集合から構成される。”オブジェクト”という用語はアプリケーション領域のセマンティックな(意味論的)側面(semantic aspect) を表現する(例えば、ワードプロセッサーでの文字、語、および文節、描画システムでのストローク、プロジェクト管理システムでの時間的なイベントおよび従属性(temporal events and dependencies)、など)。それぞれのオブジェクトは、そのオブジェクトの1組の特性を記述するデータ構造体によって表現される。特性は、位置的および視覚的属性だけでなく抽象的属性(abstract attributes) およびアプリケーション固有属性をも表現してもよい。それぞれのオブジェクトはポインターあるいは識別子によって固有にアドレスすることができ、したがって、オブジェクトはそれらの記述によってお互いを参照してもよい。また、オブジェクト間の関係または条件(constraints) を記述するオブジェクトがあってもよい。したがって、記述されたオブジェクトはいくつかの有益な特徴を有する。例えば、
1.オブジェクトは空間に任意に分散されてよい。
2.オブジェクトは空間的にお互いに重なり合ってもよい。
3.オブジェクトは空間の新規の位置に移動せしめられてもよい。
4.オブジェクトは表現から削除されてもよい。
5.新規のオブジェクトはいかなる空間的な位置にある表現にも追加されてもよい。
6.オブジェクトは、任意の計算によって変更されるそれ自身の物理的および抽象的な特性の両方を有してもよい。
【0016】
すべてのオブジェクトは単一のリストとして集合されることだけを必要とする。なぜなら、オブジェクトはそれ自身がどのようにそれらが空間的に調和するかを完全に記述するからである。オブジェクトに基づいた表現は、ディスプレイのハードウェアおよびソフトウェアを用いてオブジェクトをスクリーン上に表示するために、ポストスクリプト(PostScript)のような手順的知識表現(procedural representations)かまたは画素配列のような画像に基づいた表現のいずれかに翻訳される。ユーザがオブジェクトに基づいた表現を操作することを可能にするために、スクリーン座標による入力が特定のオブジェクトにマッピングしなおされてもよい。そして、オブジェクトに対する結果としてのいかなる変更も新規のディスプレイに再翻訳される。
【0017】
画像に基づいた表現は、密集した(すなわち、空間全体にフィル(fill)された、即ち、空間を充填する)セルからなる空間構造(compact cellular spatial structure)からなり、通常(限定はされないが)、矩形状セルの2次元配列である。”画素”と呼ばれるそれぞれのセルは画像の小さな唯一の空間領域を表現する。画素はただそれらの領域の視覚的な特徴を記述するだけである(画素のデータ構造体においてたとえ他の特性を記録することが可能でも)。画像表現はしばしば複数の層からなり、それぞれの層は独立した配列であり、画像は異なった層のそれぞれの画素を組み合わせることによって構成される。画素はオブジェクトに類似するように思えるが、画素はオブジェクトに関して先に列挙された6つの特徴を満足することができない。
【0018】
画像に基づいた表現は直接に表示されてもよく、またそれらはスクリーン座標によるユーザからの入力に応答して操作されてもよい。しかしながら、画像に基づいた表現に対する操作が入力に隣接する画素に影響を及ぼし、かつ空間的に隣接する画素への影響を広める点において、画像に基づいた表現に対する操作は入力に関して”局部的”であることに制限される。例えば、”スプレー”操作はスプレー入力点からある距離の範囲内にある画素の色を変更する。”ブリード(bleed) ”操作は入力点の色を変更し、隣接する画素に減少せしめられた輝度による色の変更を適用し、色の変更がなくなるまでこの処理を続行する。そして”フィル(fill)”操作は入力点の画素の色を変更し、なんらかの”境界色(boundary color)”(例えば、黒)に遭遇するまで反復して隣接する画素に変更を広げる。
【0019】
オブジェクトを表現しながら画素の組を識別するために、画像に基づいた表現を開始し、そして表現に”認識”操作を適用することは可能である。もしこのことがなされてこれらの認識されたオブジェクトを表現するためのデータ構造体が生成されるならば、このデータ構造体はオブジェクトに基づいた表現であると考えられる。
【0020】
【実施例】
図1は、参照されたライブボードの研究論文に記述された形態の本発明が特に有効なホワイトボード10を概略的に図示する。ホワイトボードの詳細は本発明にとって欠くことのできないものではないので説明されない。ここでは、図示されたシステムは、コンピュータ14によって、かつコンピュータ14の制御下で決定されたオブジェクトをスクリーン上に投影または表示するための手段12を有する表示スクリーン11を備える、とだけ説明するにとどめる。ライブボードにおいて、投影手段は、スクリーン11上に投影され表示されるオブジェクトを生成する液晶装置15を用いてTV投影システムをシミュレートする。好ましくはコードレスのペンのようなまたはそれに類似する描画装置20がシステムに結合され、またペンのいかなる運動の開始および終了をも制御するための手段を備える。例えば、ディジタイザまたはマウスを用いる場合のように、ペンは信号が接続または切断されるときにアクションを選択するボタン21を有する。加えて、そのペンは感圧チップスイッチ22を有し、ペンアクション信号の開始または終了としてホワイトボードによって認識されるスクリーンに押しつけられるときに、そのスイッチ22はアクションを選択する。ホワイトボードにこれらのペン信号またはコマンドを伝達する手段はディジタイザタブレットで使用されるものと同様のものであってもよい。後述されるように、ワイピングは連続的運動感応入力装置によって動かされるので、それはユーザにとって自然なワイピング運動である。”連続的運動感応入力装置”という用語は、ディスプレイ表面上を移動させることのできる入力装置(スタイラスのような)、またはディスプレイのカーソルに電子的にマップされる表面上を移動させることのできる入力装置(ペンとタブレットのような、またはマウスのような)のいかなるものをも意味するものである。ここでは、そのようないかなる装置をも簡単のためにペンと呼ぶことにする。
【0021】
ホワイトボード10はスクリーン上のペン20の位置を、とりわけそのXY座標を認識することができなければならない。このことはスクリーンの背面にディジタイザグリッド(図示されない)を装着することによって、またディジタイザグリッドと協力してペンの位置を突き止めるための電磁気的、静電的、またはその他の手段を備えたペンを装備することによって実現されてもよい。
【0022】
別の方法として、タッチスクリーンにおけるような、スクリーンの背面に配置された検出器モジュール25に画像化される光学的放射のビーム24を生成する手段をペンに装備してもよい。この好ましい実施例によれば、ペン20は表示スクリーンに接触させる必要はなく、ユーザは遠隔からの位置指定およびジェスチャーによる入力のためにスクリーンから一定の距離だけ離れて入力することができる。このようなシステムの構成と操作のより詳細なことは参照されたライブボードに関する研究論文を調査することによって理解することができる。
【0023】
上述したように、システムは、ユーザによって信号が送出されたときにペンの位置を計算あるいは決定するための適切なメモリー13を備えたコンピュータ14を含み、また、ペイントブラシ(Paintbrush)またはマックペイント(Macpaint)のような既知のグラフィック描画編集システムによって用いられるものと類似した方法によって、ユーザの制御下でスクリーン上に表示される表現を生成し記憶することができる。しかしながら、本発明のシステムにおいては、それぞれの表現は画像に基づいた表現と区別してのオブジェクトに基づくものである。このことをなすための方法はオブジェクト指向デザインに関する公表された文献に詳細に記述される。ワイピング運動がどのように表示されたオブジェクトと相互作用するかを理解するのを助けるための1つの例として、オブジェクトの例は、例えば、オブジェクトのスクリーン位置の座標、オブジェクトの色、オブジェクトを定義するラインの太さ、オブジェクトフィルパターン(object fill patterns)、オブジェクト生成時刻、など、を含むことのできるデータ構造体のフィールドに記憶されるオブジェクトの特性または属性を有する、C言語の struct 文またはPascal(パスカル)のrecord文のようなデータ構造体とみなすことができがある。
【0024】
1つの例として、ストロークオブジェクトのための典型的なデータ構造体が以下に示される。この例では、C++言語のクラスが例示される。オブジェクトはデータ構造体とそのデータに対する1組の演算によって記述される。
【0025】
【0026】
他の種類のオブジェクトは、そのオブジェクトに固有のその他のフィールドだけでなくストロークオブジェクトと同一のいくつかのフィールドを有する。よく知られているように、オブジェクト指向言語は、それをあるいはそれらを表示するのに必要とされる方法によってオブジェクトを表現するデータを密閉する(encapsulate) 。表示はオブジェクトにメッセージを送信するオペレーティングシステムによってなされスクリーン上にそれ自身を表示する。その他の共通の機能と同様にスクリーン上にオブジェクトを印刷あるいは表示するこれらの機能を実行するためにC++言語のライブラリにおけるルーチンが利用できる。
【0027】
オブジェクトの選択はそれのいかなる属性を使用してなされてもよい。簡単のために、オブジェクトのXY座標が選択基準として使用される好ましい手順を説明する。このことを実現する1つの簡単な方法は、表示されるそれぞれのオブジェクトを表現するデータ構造体に関係づけて考えることであり、つまり、それの位置座標から既知の方法によって、メモリーのオブジェクトのデータ構造体にXY座標が記憶される境界ボックス(bounding box)を計算することである。
【0028】
以下の説明において、ユーザはスクリーン上に表示される少なくとも1つのオブジェクトを生成しているものと仮定する。参照されるグラフィック描画プログラムのように、ユーザが希望することを実行するためにイベント(事象)を生成してソフトウェアを起動するためにユーザによって使用される一連のボタンまたはアイコンをスクリーンの縁に沿って表示することは表示スクリーンにとって好都合なことである。図2は、本発明を実現するための1組のボタンまたはアイコンを備えた1つの簡単なスクリーン表示の例を例示する。左側のスクリーンの縁に沿ったボタン/アイコン35はペン機能を設定し、スクリーンの底辺に沿ったボタン/アイコン36はワイピングオペレータを決定する。例示された例においては、ペン機能は、それぞれボタン37および38に関連づけられるDRAWおよびWIPEと、図示されないその他の機能とである。例としてのみ図示されるワイピングオペレータのボタンは、DELETE40、THICKEN41、THIN42、FILL43、COLOR44、および、UNDO45である。よく知られているように、ユーザが特定のボタンまたはアイコンの上または近傍にペンを置いてペンのスイッチまたはボタンを作動すると、コンピュータはペンの位置からユーザによって選択された機能またはオペレータを決定する。
【0029】
また、図2は、描画ボタンおよび希望される幅設定ボタン(図示されない)を作動したのちにユーザによって描画されることによって生成された数個のオブジェクト47、48、49をスクリーン上に図示する。表示されたオブジェクトは、それぞれ、ペンのスイッチが作動されている間のユーザによる単一の描画ストロークからなる。あるいは、多角形、円、またはその他の形状が生成されるとき、全体の形状が単一のオブジェクトとして取り扱われてもよい。
【0030】
ユーザインタフェースとしてのワイピング作業の方法は次のシナリオによって説明される。ペンを持ったユーザがボタン38に触れて”ワイプモード”に入る。システムが1つのアプリケータを提供する。ユーザは削除オペレータ(delete operator) 40を選択してアプリケータに関連づけるか、または、省略時解釈によってアプリケータが削除オペレータを開始して消しゴム(eraser)になる。ユーザはワイピングによっていくつかのオブジェクトを消去し、そしてカラーボタン44に触れる。カラースペクトル(図示されない)がポップアップし、ワイパーでメイクレッドボタン(make-red button) を選択する。ここでワイピングはオブジェクトを赤色に変える。いくつかのオブジェクトにそのようにした後、ユーザが赤色に変えられたオブジェクトが多すぎることに気がつく。ユーザはワイパーを取り消しボタン(Undo button) に”入れて(dips)”、取り消しをオペレータにする。そして赤色に変えられるべきではないと考えられるオブジェクトをワイピングすることによってそれらは元の色に復元される。最後にユーザはワイプモードから出る。
【0031】
より明白には、ワイピングの構成要素は以下の通りである。
1.アプリケータ。データオブジェクトとしてのアプリケータは経路領域(path region) を決定する形状と寸法とを有する。コンピュータによって記憶されるアプリケータの経路は直線セグメントの連鎖から構成され、その終了は感知されたペンの位置である。したがって、経路領域は経路領域セグメントの連鎖から構成される。例えば、長方形のカーソルは六角形(以下で説明される)の経路領域セグメントを生じさせる。アプリケータの形状と寸法は、好ましくは、ユーザによって定義することが可能であり、換言すると、異なった仕事を実現するために変化させることができるということである。
【0032】
2.選択の基準。ワイピングの概念的機能は操作されるべきオブジェクトを選択またはグループ化することである。基本的には、それの領域がワイプ経路領域に交差するオブジェクトが選択され、それはアプリケータの経路領域の座標との交差についてそれぞれの表示されたオブジェクトの境界ボックスの座標を検査することによってソフトウェアで簡単に実現される。しかしながら、交差したオブジェクトが実際に選択されるかを判定するために使用される他の選択基準が存在する。もっとも簡単な基準は交差しきい値であり、それはワイプ経路領域によって交差されるオブジェクトの領域の割合を測定するものである。もっとも寛大な基準はゼロでない交差しきい値であり、すなわち、アプリケータによるオブジェクトのわずかな接触ですらそのオブジェクトを選択させられる。厳密な100%のしきい値は通常有効ではないが、高い、低い、および、過半数(50%) のしきい値はそれらの用途を有する。交差しきい値はこれらの環境下で動的に計算されることに注意されたい。触れることによってどのようにして選択されるオブジェクトを決定するかのより厳格な記述は以下で明らかとなる。ワイプが進むにつれて、ワイプ経路は成長し、ワイプがしきい値に到達するまで1つのオブジェクトにますます交差する。例えば、図2はユーザによって形成されたワイプ経路領域50を破線で例示する。しきい値がだいたい30% に設定されていると仮定すると、1つのアッパーケースの文字(大文字)と3つのロアーケースの文字(小文字)の分離されたグループから構成されるオブジェクト47が選択される。次のオブジェクト48の頭文字のアッパーケースの文字もまた選択される。もしオペレータがDELETEであれば、3つの項目のすべてが消去される。文字Bの消去はたぶん意図されないので、ここがUNDOオペレータを文字Bに適用することによってDELETEオペレータが無効にされる部分である。
【0033】
その他の有効な選択基準が存在し、それは通常は作業に関して特有なものである。アプリケータは、通常はアプリケータが選択しようとするオブジェクトの種類に比例した寸法と形状であるように設計される。例えば、ワイピングが手書きの語を横切って簡単になされるように、手書きの語のストロークを選択しようとするアプリケータはその語の高さよりいくぶん小さい寸法であるように作られる。この意図を与えれば、有効な選択基準は語の一部であるには大きすぎるいかなるストロークをも除外する。したがって、語を取り囲むボックスを描写するストロークがワイプされるとき、そのストロークは選択されない。この基準は計算するのに動的な交差しきい値より容易である。
【0034】
もう1つの例は、表示されるオブジェクトが1組の2次元の層に編成される場合である。ここでは、特殊化された基準は、どの層にオブジェクトがあるかによってオブジェクトが選択されるフィルタである。
【0035】
また、選択のために使用されてもよい時間に基づいた基準が存在し、それは以下で記述される。
【0036】
3.ワイプアクションの範囲規定(scoping) 。ワイピングの範囲(scope) を定義するのに使用される4つの入れ子の時間の間隔が存在する。それは、ワイプセッションの範囲と、オペレータの範囲と、ワイプストロークの範囲と、ストロークの枝の範囲と、である。(A)もっとも大きな範囲はワイプセッションである。ワイプセッションは一連のワイプストロークと可能なオペレータの変更とからなる。ワイプセッションは通常はある種のワイプモードに出入りすることによって区切られる。(B)ワイプセッションは少なくとも1つのオペレータの範囲に分割される。オペレータの範囲はオペレータが変更されないままでいる時間間隔である。オペレータの範囲は一連のワイプストロークから構成される。(C)それぞれのワイプストロークはディスプレイ表面にペン装置を接触させ(または、ペンボタンが押される)、ディスプレイ表面に沿って滑らせ、それから、ディスプレイ表面から引き上げる(または、ボタンを離す)ことによって定義される。もし枝が存在すれば次の(D)で定義される枝の範囲がもっとも小さい範囲を定義するが、もし枝が存在しなければ、ワイプストロークの間隔がもっとも小さい範囲を定義する。(D)枝の範囲。急な方向反転を有するストロークは反転によって”枝(branches)”に分割される。例えば、2つの反転を備えたストロークは3つの枝を有する。枝の範囲は枝の時間である。例えば、上述の例では、それらの枝は、ストロークの開始点から第1の反転までと、第1の反転から第2の反転までと、第2の反転からストロークの終了までとである。
【0037】
4.選択されたオブジェクトのグループ化。これらの間隔は選択されるオブジェクトの自然なグループ化を定義する。1つの枝によって選択されるオブジェクトの組は枝グループと呼ばれ、1つのワイプストロークによって選択されるオブジェクトの組はワイプストロークグループを形成し、1つのオペレータの範囲によって選択されるオブジェクトの組はオペレータグループを定義し、1つのワイプセッションで選択されるオブジェクトの組はワイプセッショングループを構成する。
【0038】
5.適用(アプリケーション)のダイナミックス(dynamics of application) 。選択されるオブジェクトの計算は好ましくは動的に発生する。ペン入力装置でユーザがワイプする間に、例えば、オブジェクトが選択基準に合致すると、適切なリストにオブジェクトへのポインタを格納することによって、ワイプストロークセグメントが生成され、それでオブジェクトが選択される。通常、オブジェクトが選択されるときは、オペレータがオブジェクトに適用される。例えば、オペレータが削除であれば、実際の消しゴムの効果のまねをして、ユーザがワイプするときにオブジェクトが削除される。しかしながら、オペレータの適用が遅延されてもよい。遅延の1つの形態は、ワイプストロークが完了されるまで適用を控えることであり、それから、オペレータをワイプストロークグループに適用することである。もう1つの形態は、ワイプセッションが終了されるまで遅延されることであり、それでオペレータをワイプセッショングループ全体に適用することである。
【0039】
6.ワイプのためのフィードバック。ワイピングの過程の間でユーザへの聴覚および(あるいは)視覚のフィードバックが存在してもよい。聴覚のフィードバックは、ワイプストロークが生成されているとき、オブジェクトが選択されるとき、またはオペレータが適用されたときに、信号を送出するのに使用されてもよい。視覚のフィードバックがワイプストロークを見ることのできるものにしてもよく(例えば、明るいマーカーペンが提供するような背景が透明のような)、または、選択されるオブジェクトが種々の方法で明るくされてもよい(例えば、区別的な色または影によって)。視覚的なフィードバックの継続期間は、通常、ワイプセッションの終了までである。
【0040】
7.適用されるオペレータ。多くの異なった種類のオペレータが選択されるオブジェクトに適用されてもよい。このインタフェース技術と可能性の範囲との汎用性の認識を提供するためにそれらのいくつかの例をあげる。
【0041】
削除(Deleting)、切り取り(Cutting) 、複写(Copying) 。すでに述べたように、選択されるオブジェクトを削除することは実際の消しゴムによる消去を模倣する。切り取ることはオブジェクトを削除するだけでなく後に使用する(他の場所に貼り付けする(Pasting) ような)ための”クリップボード”バッファにそれらを保存するのにも使用される。複写は選択されるオブジェクトをそれらを削除することなく保存する。
【0042】
選択(Selecting) 、グループ化(Grouping)、タグ付け(Tagging) 。ワイピングは単に選択のために使用されてもよい。1つのワイプセッションの後に、そのワイプセッショングループがシステムによって後の使用のために保存される。ワイピングはまたワイプストロークグループを用いてオブジェクトをより高いレベルの構造体にグループ化するのに使用されてもよい。例えば、もしオブジェクトが手書き文字のストロークであれば、ワイプストロークは手書き文字をリストの項目に構造化するのに使用されてもよい。タグ付けオペレータは特色のあるタグをオブジェクトに付加するのに使用されてもよく、それでワイピングがタグ付けのために使用されてもよい。例えば、もしオブジェクトが手書き文字のストロークであれば、ワイピングは、例えば重要な観念(idea)またはアクション項目を表現するときにこれらのストロークの部分集合(subsets) にタグ付けするのに使用されてもよい。
【0043】
オブジェクトの特性の変更。多くのオペレータはオブジェクトの特性の値、例えば、色、位置、方向、スケール、太さ、などを変更する。これらは直接の(straightforward) ワイピングオペレータである。例えば、ウィンドウシステムにおいて、ワイピングはウィンドウを最大サイズからアイコンサイズまでにする収縮(shrink)オペレータを適用するのに使用されてもよい。
【0044】
相対的変更のオペレータ。いくつかのオペレータはオブジェクトに相対的な変更を引き起こして、例えば、色を1ビットだけより暗くし、オブジェクトを1ビットだけ上に移動させ、オブジェクトを1ビットだけ回転させ、あるいはオブジェクトを1ビットだけ太くする。相対的なオペレータが特徴とすることは、それらが繰り返して適用されて徐々により大きな変更をもたらすことである。ワイピングによってこれらのオペレータを適用することは、何回それらを適用するかの論議を持ち出す。自然なワイピング運動は前後にワイプすることなので、1つのオブジェクトが同一のワイプストロークで1回以上選択されるかもしれない。実際のオペレータに関してはこれは問題ではない。なぜなら、繰り返しての適用は余分なものであるからである。1つの解決法は、1つのワイプストローク、またはストロークの1つの枝、または1つのワイプセッション、の範囲内においてオペレータのだだ1回の適用だけを許可することである。好ましい解決法はストロークのそれぞれの枝でオペレータを反復することである。
【0045】
取り消し(Undoing) 。一般的な取り消しオペレータもまたワイピングに適用されてもよい。例えば、もしメイクレッドオペレータ(make-red operator) がアプリケータに付与され、ユーザがそれでいくつかのオブジェクトをワイプしたと仮定して、ユーザが変えられるべきではないいくつかのオブジェクトが赤に変えられたことに気がついたとしたらどうであろう。これを解決するために、取り消しオペレータがアプリケータに付与され間違って赤に変えられたオブジェクトがワイプされてもよく、その結果として、それらのオブジェクトをそれらの元の色に戻すこととなる。もう1つの例として、もしオペレータが削除であり、いくつかのオブジェクトが誤って消去されたらどうであろう。オブジェクトは消されているので取り消しオペレータによってワイプすることは困難である。しかしながら、もしワイプ経路が目に見えるものにされていれば、このことがどこに削除されたオブジェクトが配置されていたかの指示を与え、取り消しオペレータによってそれらの位置をワイプすることがそれらを元に戻すこととなる。
【0046】
このように、ワイピングの一般的なユーザインタフェース技術は、これらの構成要素の異なった値の組み合わせによって定義される。与えられたアプリケーションプログラムに関して、アプリケーションプログラマーは、アプリケーションに対するワイピングユーザインタフェースを提供するために構成要素に関しての値の範囲を定義してもよい。これらの選択は、ダイナミックス(dynamics)を実現しかつアプリケーションプログラムのユーザインタフェースの残りの部分にそれらを統合するアーキテクチャーまたは制御構造に基づかなければならない。
【0047】
構成要素の値の範囲が提供されると、それらはユーザに利用できるものにされなければならない。このための1つの簡単な標準的な技法は、アプリケータを定義するのにユーザが使用することのできるセッションに関する設定操作の一部として、特性シート(property sheet)を備えたアプリケータに関する”ワイパーアイコン(wiper icon)”を提供することである。ユーザはワイパーの特性シートを開くことができ、例えば次の構成要素に関する値を設定することができる。
アプリケータ
選択基準
オペレータ
アプリケーションダイナミックス
グループ化
フィードバック
ここで、それぞれの構成要素は許可された値のメニューを提供する。例えば、ユーザは、注釈オブジェクト(annotation objects)だけを選択してそれらを”コメントリスト”に移動させる大きなアプリケータを有するようにワイパーを設定し、ここで、それらのオブジェクトはワイプストロークでグループ化され、またダイナミックスはそれぞれのワイプストローク後にのみ移動し、またフィードバックは注釈オブジェクトが選択されるとそれらを赤にする。
【0048】
この特性シート技法はほとんどのアプリケーションで必要とされる技法よりも一般的である。最低限、ユーザはオペレータを選択することができ(でなければ、それは汎用型ワイピングではない)、いちど選択されると、その他のすべての構成要素はプログラムによって適切な値に設定されてもよい。したがって、ユーザがなすべきことはオペレータを選択することだけであり、これを実行することが容易なものにされてもよい。もっとも明白な方法は、図2に示されるように、アプリケーションプログラムのユーザインタフェースの一部としてオペレータを表現するボタン、アイコン、またはメニューアイテムを利用することである。ユーザはワイパーアイコンを例えばボタンに移動して、そのボタンによって表現されるオペレータをワイパーに付与するのである。
【0049】
ユーザのワイピングアクションがどのように表示されたオブジェクトに影響を及ぼすかをより良く理解するために、上述された種々の側面を実現するために本発明で使用されるワイピングアルゴリズムを駆動するいくつかの種類のイベントを詳細に記述することが助けになるであろう。これらのイベントはユーザの物理的なアクションによって起動され、上述したようにハードウェアおよびソフトウェアによって検出される。好ましい実施例におけるペンまたは通常の方法でシステムに接続されるマウスでユーザによって影響を与えられるイベントが以下に記述される。マウスの場合は、机またはテーブルについていても、ユーザがホワイトボード上のオブジェクトを操作することを可能にする。左側の欄は太い文字でワイパーイベントを表し、右側の欄はそのコマンドを実行するためにユーザは1つの例としてなにをしたらよいかを説明する。
【0050】
これらのイベントは、時間をいくつかの異なった範囲に分割するのに使用される。
【0051】
【0052】
もっとも基本的なオブジェクトはワイプストロークセグメントである。ワイプストロークセグメントはその2つの終了点によって定義される短い線分であり、その終了点はワイパーの2つに位置によって決定される。ワイパーは好ましくは無次元の点ではなくて、しっかりした2次元形状である。したがって、セグメントは太さのない理想化された線分ではなく、むしろ理想化された線分に沿ってワイパーを滑らせることによって定義される2次元形状である。
【0053】
図3は1つの例を描写する。ワイパーが長方形の形状であるとき、ワイプセグメントは図6に示されるように六角形の形状である。ワイパーは理想化された位置Aから開始して、理想化された位置Bで検出される。この移動イベントは理想化されたセグメント〔A,B〕を定義する。しかしながら、Aにあるとき、ワイパーは実際には長方形領域〔a1,a2,a3,a4〕を包含する。同様に、Bにあるとき、ワイパーは領域〔b1,b2,b3,b4〕を包含する。したがって、ワイプセグメントは六角形領域〔a1,a2,a3,b3,b4,b1〕を包含する。さらに六角形の定義は移動の方向に依存することに注意されたい。もしBがAの下側でありかつ左側であれば、セグメントの六角形は〔a2,a3,a4,b4,b1,b2〕である。これはセグメントが何であるかのもっとも簡単な例であることに注意されたい。セグメントはどんな形状および寸法のワイパーを有してもよい。ワイパーはそれが移動されるときに向きを変えてもよい(例えば、経路ベクトルに一致するそれの向きを保持するために)。ワイパーはそれが移動されるときに特性を変えるてもよい(例えば、ワイパーは寸法を変えてもよく、またはワイパーの操作は圧力感応入力装置に応答して定義を変えてもよい)。最後に、ワイプセグメント経路は必ずしも直線である必要はなく、曲線であってもよい(例えば、一連の移動の運動を滑らかにするベジェ曲線)。
【0054】
ワイプストロークはセグメントの列である。ストロークの形状は単なるそのセグメントすべての形状の加算(和集合)である。
【0055】
ワイプ操作は1組のワイプストロークである。
【0056】
ワイプセッションは1組のワイプ操作である。省略時のオペレータはワイプモードに入るときに設定されてもよいことに注意されたい。したがって、もしユーザが決してオペレータを再設定しなければ、セッション全体はただ1つの操作からなる。
【0057】
ワイプストローク枝はより複雑である。なぜなら、それは特別の機能をなすならである。まず、ワイプストロークは必ずしも枝を含む必要はないことに注意されたい。反転および枝の概念は、同一の領域を前後に(荒っぽく)ワイプするユーザの運動を捕らえることを試みるものである。反転を伴わないワイプストロークはただ1つの枝のみを有する。図4は考えられる2つのワイプストロークを示す。図4(A)に示されるワイプストローク52は、ストロークが左から右へ1つの方向に進むときの1つの枝を有する。左から右へ(54から57へ)、そして右から左へ(55から58へ)、そして最後に再度左から右へ(56へ)ユーザが明らかに前後にワイプしている図4(B)に示されるワイプストローク53は、3つの枝54−57、55−58、および56と、2つの反転57および58とを有する。ワイプストロークに反転が存在する場合、付加的な枝が定義される。それぞれの枝はセグメントの部分列である。反転は、ワイプストロークの座標を簡単に追跡して枝として座標の反転を解釈する反転検出アルゴリズム(以下でより詳細に述べられる)によって容易に検出される。
【0058】
ワイピング技術の目的はディスプレイ上のターゲットオブジェクト(ワイプストロークのようなワイピイングオブジェクトからそれらのオブジェクトを区別するためにターゲットオブジェクトと呼ぶ)を選択することである。ワイピング技術の基本的な”エンジン”はターゲットオブジェクトがワイプセグメントによって選択されるものを決定することである。選択されたターゲットオブジェクトのリストはセグメントリストと呼ばれる。
【0059】
セグメントリストは直接のセグメント選択アルゴリズムによって計算される。アルゴリズムはターゲットオブジェクトの表示領域がセグメントの領域に重なっているかどうかに関してそれぞれのターゲットオブジェクトを検査する(これはターゲットオブジェクトの形状と位置およびセグメントの形状と位置についての幾何学的な計算によってなされる)。ターゲットオブジェクトが選択されるかどうかは選択基準によって決定される。もっとも簡単な基準はターゲットオブジェクトがセグメントとのゼロでない重なり(non-zero overlap)を有することである。上述したように、より複雑な選択基準が使用されてもよい。
【0060】
枝リストは構成セグメントリストの集合体である。ストロークリストは構成枝リストの集合体である。操作リストはストロークリストの集合体である。そしてセッションリストは操作リストの集合体である。
【0061】
これらのリストは、ユーザが物理的なワイピングアクションをなすときにコンピュータによって動的に蓄積されかつ記憶される。蓄積のもっとも小さな単位はセグメントリストである。しかしながら、セグメントリストの新しいターゲットオブジェクトだけが役に立つ。しかし、”新しい”ターゲットオブジェクトは異なったことに関するものであってもよい。それはストロークリストに関して新しくてもよい。ストロークリストにすでに存在するセグメントリストのオブジェクトは”古い”ものである。ストロークリストに存在するオブジェクトを取り除くことによってセグメントリストを減少させることが望ましい。それの結果は(ストロークリストに関する)縮小セグメントリストと呼ばれる。通常は、縮小セグメントリストのオブジェクトを操作して、つぎに、縮小セグメントリストのオブジェクトをストロークリストに追加することが望ましい。
【0062】
本発明で使用される適切なワイピングアルゴリズムの1つの例が以下で示される。いくつかのアクションを説明するためのコメントがアクションに続く引用符の間に存在する。
【0063】
【0064】
【0065】
ワイプストロークの方向の反転をどのようにして検出するかの例が以下に示される。これは水平方向の反転に関してのみ検査する。それは、大きな垂直の(ホワイトボードの寸法)表面上で腕の動きによって方向を反転するのにもっとも簡単な方法である。したがって、それはワイプストロークセグメントの水平成分(X成分)だけを考える。つぎの4つの変数が、ワイプストロークが生成されるときのそれの状態を特徴づける。
fwdX X軸の前進方向に移動した距離。
revX X軸の前進方向とは逆に移動した距離。
newX もっとも新しいセグメントの長さとX軸の方向。
T 方向(前進または反転)を確立するための距離のしきい値。
【0066】
これらの変数はワイプストロークの前進方向(fwdX)および反転方向(revX)の一連の感知を保持する。移動の”ノイズ”をフィルタするために、しきい値(T) が使用されて反転が本当の方向の反転と考えるのに十分な距離だけ進んだかどうかを確かめる。ワイプストロークが(Downイベントによって)開始されるとき、fwdXがゼロに初期化される。それぞれのMoveイベントで、newXは現在の移動のストロークセグメントのX軸方向の距離に設定される。そして、反転があったかどうかを検出するために次の検査がなされる(TRUEは反転が存在することを意味し、FALSEは反転が存在しないことを意味する)。
【0067】
当業者は、本発明が上述された特定のアルゴリズムの使用に制限されないことを理解するであろうし、また、他のアルゴリズムがここで記述されるワイピングアクションを実現するのに容易に考案されることがわかるであろう。その原理は簡単である。つまり、ワイプオブジェクトと現時点で稼働中の選択基準とに照らして検査することによってどのターゲットオブジェクトが選択されるかを決定する。選択されるターゲットオブジェクトを表現する関連したデータ構造体を変更することによってワイピングアクションを実現する。例えば、もしオペレータが削除であれば、オブジェクトのデータ構造体をオブジェクトリストから取り除き、もしオペレータがメイクレッドであれば、カラー属性を赤に変更し、もしオペレータが収縮であれば、オブジェクト構成要素の座標を再計算する、などである。
【0068】
ここで、いかなるときにでもスタイラスがどのオブジェクトに接触しているかを決定する効果的方法を捜し出すためのより厳密な記述が以下で述べられる。いくつかのオブジェクトに接触しかつその他を回避する経路を特定しているときのユーザを考える。どのオブジェクトが経路上に存在するか?もっとも低いレベルにおいて、ユーザのワイプアクションは一連のイベントとして現れる。これらのほとんどがスタイラスが移動された新しい位置を報告してくれる。それ以上の情報はないので、一連の直線セグメントに沿った”アプリケータ”カーソルの射影としてワイプ”経路”を表現する。これらのセグメントは非常に短くてもよい。アプリケータカーソルとそのカーソルが交差するオブジェクトの両方が実質的な幅を有するので、経路のいくつかの連続的なセグメントが同一のオブジェクトに接触することがしばしば発生する。一般的に、与えられたストロークの期間において与えられた操作を1回以上オブジェクトに適用することは望ましくない。
【0069】
図5乃至図11を参照すると、O、カーソル形状SH(図5)、および1対の点AとB(セグメントに一致する)、のオブジェクトの組が与えられ、オブジェクトのどれかがABに沿ったSHの射影の結果として生じるワイプセグメントによって接触される。簡単のために、xおよびy軸に平行な辺を有する長方形カーソルだけを考える。以下で”長方形”という用語を用いる場合、そのような長方形を意味するものとする。また2つのタイプのオブジェクト、すなわち文字とストロークだけを考える。
【0070】
ABに沿った〔長方形〕SHの射影の結果として生じる経路セグメントは特殊な種類の六角形であり、それの4つの辺はxおよびy軸に平行である。以下で”六角形”という用語を用いる場合、そのようなオブジェクトを意味するものとする。そのような六角形は2つのクラスによって現れることに注意されたい。一方は右上から左下へ進むと考えられ、他方は左上から右下へ進むと考えられる。最初の場合には、それをNESW−六角形と呼び、第2の場合には、それをNWSE−六角形と呼ぶ。(完全に水平または垂直の軌道はもう1つの〔一方の寸法がより大きい〕長方形の変形したものを提供する。)
【0071】
最初に文字を考える。もしワイプセグメントが文字を包含するもっとも小さい長方形である文字の”境界ボックス”と交差するのであれば、そのワイプセグメントは文字と交差するという。ゆえに、問題は、ある六角形がある長方形に交差するかどうかということになる。ここで図7を参照する。NESW−六角形の場合を考えてみよう。六角形自身はそのもっとも離れた2つの点によって定義される境界ボックスを有する。六角形はそれ自身の境界ボックスの中にあるので、2つの境界ボックスが交差しなければ、六角形は文字と交差することができない。ゆえに、まずそのことを検査する。長方形の交差は自明のことであるが、それぞれの境界ボックスの交差は、六角形が文字の境界ボックスと交差することを保証するのには不十分である。NESW−六角形の場合、2つの過程のいずれかで誤りをおかす。これらの状況の一方にあるときにどのようにして検出するか?。ゆえに、文字の境界ボックスの右下角が六角形の最上位”対角線”の”上側”にある場合(図8)、または文字の境界ボックスの左上角が六角形の最下位”対角線”の”下側”にある場合(図9)の2つを考える。これらは計算に関しては十分に簡単である。x座標を与えられた線分上のいかなる点のy座標も捜し出すことは簡単なことである。ゆえに、第1の偽陽性(false positive)(”上側”の場合)を検査するために、文字の境界ボックスの右辺と同一のx座標値を有する最上位対角線上の点について調べる。もしボックスの底辺がこのy座標値より小さければ、偽陽性が得られる。”下側”の偽陽性に関して同様の検査をなす。ゆえに、ここでの文字−セグメント交差決定手順はC++言語で記述すると以下のようになる。
charBB = boundingBox(character)
hexBB = boundingBox(hexagon)
if (not intersect(charBB,hexBB))
return FALSE
if (bottom(charBB)<yAtX(rightEdge(charBB),topDiagonal(hexagon)))
return FALSE
if (top(charBB) > YAtx(leftEdge(charBB),bottomDiagonal(hexagon))
return FALSE
return TRUE
【0072】
ここで、ワイプセグメントの六角形が任意の”ストローク”に交差するかどうかをどのようにして表すかを考えたい。1つのストロークは、すべてが同じ幅のいくつかの数の連続するラインセグメントからなる。明らかに、1つのストロークはそれの少なくとも1つのセグメントが六角形と交差する場合に六角形と交差する。ゆえに、セグメントに沿って進むだけで十分であり、それによって、セグメントが六角形に交差するかどうかをそれぞれについて問い合わせる。容易に見落とされる項目がある。六角形の幅だけでなく(多分大きいであろう)ストロークの幅も考慮すべきことに注意しなければならない。ユーザが消しゴムでストロークに接触したとたんにそのストロークが消去されるべきかを最初に述べるので、カーソルがストロークの”中央”をヒットするまではそれは待たないであろう。しかし、このことは相当に難しい計算を意味する。大幅に引き下げた計算価格でそれを解決するために、十分に近似することを選択する。太いラインが太い六角形と交差するかどうかを判定する代わりに、非常に細いラインが格別に太い六角形と交差するかどうかを判定することを選択する。正確にいえば、ラインの幅によって六角形を拡張する。非常に異常な場合を除いてすべての場合、これはほぼ同様の結果を与えるであろう。ストローク−六角形交差問題のための高レベル判定手順はC++言語で記述すると以下のようになる。
strokeBB = boundingBox(stroke)
hex = extend(hexagon,width(stroke))
hexBB = boundingBox(hex)
if (not intersect(strokeBB,hexBB)) /* 簡単なものに関する境界ボックス検査*/
return FALSE
for (i = 1 ; i<= numberOfSegments(stroke), ++ i)
if (intersectSegAndHex(strokeSegment(i,stroke),hex))
return TRUE
return FALSE
【0073】
まだ intersectSegAndHex() に関するアルゴリズムを与えること、すなわちセグメントが六角形と交差するかどうかをどのようにして判定するかを説明することが残っている。この問題を解決するには、多分、多くの方法が存在する。ここでは本発明で実施された1つの例を示す。任意の六角形は平面を(中央の四角が六角形の境界ボックスである巨大な三目並べゲーム(tic-tac-toe game)のような)9つの領域に分割するといえる。ここで図10を参照する。これらの9つの領域を(”4象限(quadrants) ”から類推して)”ノナント(nonants) ”と呼ぶことにする。ここで、いかなるストロークセグメントに対しても、ストロークセグメントの端点(endpoints) が存在するのはこれらのどのノナントかを判定することができる。(任意に、線を引くものが常に中央にもっとも近いノナントに有利なものであると仮定する。すなわち、不明確さは常に中央にもっとも近いノナントに有利に判定されると仮定する。)参照を簡単にするために、ノナントおよび六角形の頂点に図11に示されるようなラベルを付ける。その間をストロークセグメントが進む2つのノナントを与えると、交差問題はすでに判定されている。例えば、b1からb3へ進むセグメントは六角形と交差しなければならないし、a1からc1に進むセグメントは六角形に交差することができない。
【0074】
しかし、多くの(厳密にいえば23通りの)より複雑な場合が存在する。例えば、b1とc2との間のセグメントに関する交差の問題は、文字の場合に遭遇したのと同一種類の”上側/下側”問題を引き起こすこととなる。すなわち、点Aがセグメントの下側かどうかの問題である。関係するノナント対を列挙してみよう。判定手順の同一性によってグループ化し、ほぼ複雑性の増加する順に並べると、それらは、
グループ1 :(a1,b3),(a2,b3),(a2,c3)
グループ2 :(a1,c2),(c3,b1),(c2,b1)
グループ3 :(a1,c3)
グループ4 :(a2,c1),(a2,b1),(a3,b1)
グループ5 :(a3,c2),(b3,c2),(b3,c1)
グループ6 :(a3,c1)
非グループX :(b2,任意の領域)
である。これらのグループを順に考えよう。グループ1に対するここでの手順は、点Dがセグメントの上側である場合に真を返す。グループ2に対しては点Aがセグメントの下側であれば真を返す。グループ3に対しては点Dがセグメントの上側でかつ点Aがセグメントの下側である場合に真を返す。グループ4に対しては点Bまたは点Cのいずれかがセグメントの上側であれば真を返す。グループ5に対しては点Eまたは点Fのいずれかがセグメントの下側であれば真を返す。グループ6でのセグメントは、点Bおよび点Cの少なくとも1つがセグメントの上側でかつ点Eおよび点Fの少なくとも1つがセグメントの下側であれば六角形に交差する。
【0075】
つぎに、非グループXのラベルを付けられた残りの9つの場合を考える。まず、端点の一方だけがb2に存在すると仮定する。もしその端点が六角形の内部に存在すれば、明らかにセグメントは六角形と交差する。そうでなければ、判定基準はb2にある端点が六角形の”上側”または”下側”にあるかどうかに依存する。ここでは”上側”の場合だけを記述する。なぜなら”下側”の場合は完全に対称だからである。他方の端点の可能な位置が8つ存在する(b2に隣接するノナントのそれぞれに対して1つ)。それらを再度グループ化する。
グループXa1 : a1
グループXa2 : b3,c3,c2
グループXa3 : a2,a3
グループXa4 : b1,c1
【0076】
グループXa1はただ偽を返すのみである。グループXa2はただ真を返すのみである。グループXa3は、点Cがセグメントの上側にある場合のみ真を返す。そして、グループXa4は点Bがセグメントの上側にある場合に真を返す。
【0077】
最後に、それの端点の両方がb2に存在するセグメントは、少なくとも一方の端点が六角形の内部に存在するか、あるいは一方の端点が六角形の上側にありかつ他方の端点が六角形の下側にある、かのいずれかである場合のみ六角形に交差する。
【0078】
ここで、セグメント−六角形交差判定手順のわずかに抽象化された表現のみが示される。
if (segment is entirely above,below,left,or right of b2)
retunr FALSE
つぎに、両方の端点のノナントを判定し、どのグループにあるかを検査する。
if (Group1)
return pointAbove(D,segment)
if (Group2)
return pointBelow(A,segment)
if (Group3)
return pointAbove(D,segment) && pointBelow(A,segment)
if (Group4)
return pointAbove(B,segment) ||pointAbove(C,segment)
if (Group5)
return pointBelow(E,segment) ||pointBelow(F,segment)
if (Group6)
return (pointAbove(B,segment)||pointAbove(C,segment) &&
(pointBelow(E,segment)||pointBelow(F,segment))
return decideUngroupX(segment,hexagon)
また、 decideUngroupX() のアルゴリズムは、
if (a b2 endpoint is both below BC and above EF) /*六角形内部*/ return TRUE
if (both endpoints are inside b2)
return pointAbove(oneEndpoint,BC)&&(pointBelow(theOther,EF)
if (the b2 endpoint is above BC)
b2にない端点のノナントを判定し、またグループを判定する。
if (GroupXa1)
return FALSE
if (GroupXa2)
return TRUE
if (GroupXa3)
return pointAbove(C,segment)
if (GroupXa4)
return pointAbove(B,segment)
else /* b2の端点がEFの下側*/
b2にない端点のノナントを判定し、またグループを判定する。
if (GroupXb1) /* c3 */
return FALSE
if (GroupXb2) /* a1,a2,またはb1*/
return TRUE
if (GroupXb3) /* a3またはb3 */
return pointBelow(E,segment)
if (GroupXb4) /* c2またc1 */
return pointBelow(F,segment)
【0079】
NESW−六角形のみを処理するためのアルゴリズムと判定手順を例示し、また概略を述べた。NWSE−六角形を処理するための手順はまったく対称的なものである。垂直または水平のワイプ経路軌道によって生じる長方形を処理するための手順は、一般的には、垂直のラインセグメントを処理するためのある種の単純化および特殊化に類似する(ここではゼロによる割り算は危険である)。
【0080】
ワイピングアクションに関するターゲットオブジェクトの選択基準の概念が拡張されて時間の側面を包含してもよい。このことは、オブジェクトに基づいた表現のためのグラフィックユーザインターフェースの一般化されたつぎの論議からよりよく理解されるであろう。
【0081】
オブジェクトに基づいた表現に作用するプログラムとのグラフィックユーザインタフェースにおいては、ユーザがどのようにしてオブジェクトを選択して操作を施すかの指示を発行する一般的なユーザインタフェースが存在する。ほとんどのグラフィックユーザインタフェースはオブジェクトを選択するための空間的な技術を提供する。ユーザは、長方形を定義しまたは手書きループを描画するためにディスプレイを横切って掃引する。その長方形またはループはディスプレイの空間的な領域を定義し、プログラムがどのオブジェクトが領域に包含されるかを計算し、結果として、これらが選択されたオブジェクトになる。
【0082】
その包含の計算は、選択されるためにはどの程度の広さのオブジェクトの面積または大きさが領域内に適切に含まれることを必要とするかを知る必要がある。実際には、プログラムは包含の総量に関する有効かつ実行可能なしきい値を設定することができるので、これは処理することのできる問題である。
【0083】
これらの技術は領域内のあらゆるオブジェクトを選択し領域外のいかなるオブジェクトをも選択しないので、これらを純粋空間閉鎖技術(pure spatial closure techniques) と呼ぶ。記述される限りのワイピングもまた純粋空間閉鎖技術である。なぜなら選択がワイプ経路領域と呼ばれる空間領域内の包含によって決定されるからである。
【0084】
閉鎖はグループ化(または、オブジェクト上の他の高水準構造体)によって変更されてもよい。表示されたオブジェクトの部分集合がグループに含まれるのであれば(グループ化は必ずしも視覚的に表現されたものではない)、そのグループを選択のために全体として取り扱いたいかもしれない。つまり、グループのすべてのオブジェクトが選択されるか、またはグループの1つも選択されないかのいずれかである。例えば、もしグループが5つのオブジェクトを含み純粋空間閉鎖によって3つが選択されれば、5つすべてが選択される。このことは純粋空間閉鎖の変更と考えられる。他方、もしグループが1つのオブジェクトとみなされれば、それはまだ、グループに対する包含基準が複数のオブジェクトに対する基準といくぶん異なる純粋空間閉鎖と考えられる。
【0085】
この場合、グループは予め指定されたものでありかつ明示されたものでなければならない。ときどき、グループ化は暗黙なものであり、さらにグループ化は異なった時にそして異なった目的のために異なったものであってもよい。
【0086】
本発明のこの側面の選択基準は、ワイピングに適用されるとき、オブジェクトが時間的な流れにおいてユーザによって生成される共通状況を調整(address) する。描画プログラムにおいては、ユーザはオブジェクトを生成し、その次に、それらのオブジェクトを編集するのにオブジェクトを選択しなければならない。より明確な例は、ユーザがペンのような入力装置でディスプレイ上にストロークを描画することを可能とする描画プログラムである。ストロークはオブジェクトであり、そのオブジェクトは流れの中で生成される。さらに、人が描画する進路に空間的なオーダライン(orderliness) が存在することは経験的な事実である(すなわち、人は、一般的には、ディスプレイ上の勝手な場所にストロークを生成しない)。このことが、時間的な順序(temporal sequence) が、ユーザの意思を表現する理路整然とした(coherent)選択を創造するオブジェクトの暗黙のグループ化の解決策であることを示唆する。
【0087】
ここで、1つの例を考える。ユーザが5つのオブジェクトを、A、B、C、D、Eの順に生成する。これらは、空間的な集団の縁にオブジェクトCを備える空間的な集団(cluster) 、又はクラスタ、で存在する。後に、ユーザは5つのオブジェクトを選択するつもりであるが、5つを通しての掃引アクションを実行するとき、オブジェクトCに交差することに失敗する。純粋空間閉鎖によって4つのオブジェクトだけが選択される。しかしながら、プログラムは判定を助けるような時間的生成順序を用いてオブジェクトCをも包含し、5つすべてのオブジェクトを選択する。
【0088】
時間的な順序で1組のオブジェクトを考えれば(または、リアルタイムスタンプによって)、これらのすべてのオブジェクトを取り囲む時間的な間隔が計算されてもよい。もしその時間間隔の間に生成されるすべてのオブジェクトが捜し出されそれらが組に包含されるならば、これが純粋時間閉鎖と呼ばれる。
【0089】
しかしながら、それ自身による純粋時間閉鎖はユーザにとって意味のあるグループ化のための信頼性のある解決策ではない。人はしばしば”横道(side track)”に入り込む。例えば、ユーザがAおよびBを生成し、描画の他の部分で修正されるべきものに気が付いてCを生成し、それから、AおよびBがあるところに戻ってDおよびEを生成することを続行する。この場合、Cは当然A、B、D、およびEと一緒にグループ化されない。これの解決策はCが他のオブジェクトから空間的に分離されていることである。したがって、ユーザの意思に合致する信頼性のあるグループ化を提供するために、本発明のこの側面による組み合わせられた時間−空間閉鎖が計算される必要がある。
【0090】
このように、空間および時間の基準を組み合わせることは種々の環境に有益である。以下では、異なった状況に関するアルゴリズムの例を示す5つの事例が列挙される。これらのアルゴリズムは空間的かつ時間的な”近接度(nearness)”検査を用い、そのためのアルゴリズムが5つの事例の後に記述される。
【0091】
つぎの表記法と定義が用いられる。コンピュータに基づいたシステムはグラフィックオブジェクトの収集から構成される。それぞれのオブジェクトはディスプレイ上の位置を有する。Sはディスプレイ上の空間的領域を指示する。その領域は多くの異なった方法でユーザによって定義される(例えば、ループまたは投げ輪を描画することによって、長方形を掃引することによって、ワイプストロークによって、または点に触れることによってさえも)。C(S)は、Sの空間的な閉鎖、すなわちいくつかの選択基準(例えば、オブジェクトがすべてSの中に位置するという基準)でSによって選択されるディスプレイ上のオブジェクトの組を指示する。
【0092】
それぞれのグラフィックオブジェクトはそれに関連した時刻を有する。その時刻は、生成された時刻、最後に変更された時刻、最後に参照された時刻、などであってもよい。そのような時刻は通常は履歴リストに保持される。しかし、ここでの目的のためには、簡単に、適切な時刻はオブジェクトの特性としてそれぞれのオブジェクトに関連するものとする。Sに類似して、Tは時間的な領域(すなわち、時間間隔)を指示する。C(T)はTの時間的な閉鎖、すなわちそれの関連する項目がTに存在するオブジェクトの組を指示する。
【0093】
事例1 : 空間的選択の時間補間(interpolation)
このアルゴリズムは、例えばワイプ選択がなされるような状況において有益であるが、いくつかの意図されたオブジェクトがワイプストロークによって捕らえ損なわれる。
1.Sがなんらかのユーザアクションによって与えられる。
2.C(S)を計算する。選択をC(S)に設定する。
3.もっとも小さな時間間隔Tを計算する。Tは選択を包含する。
4.C(T)を計算する。
5.選択に存在しないが(空間近接度検査によって)空間的な選択に近接しているC(T)におけるそれぞれのオブジェクトに関して、それを選択に追加する。
6.選択に戻る。
【0094】
事例2 : 空間的選択の時間外挿(extrapolation)
このアルゴリズムは事例1と同様の状況に有益である。これは事例1が用いられた直後に用いられてもよい。
1.Sがなんらかのユーザアクションによって与えられる。
2.C(S)を計算する。選択をC(S)に設定する。
3.選択におけるオブジェクトに関連する時刻のもっとも早い時刻Tmin を捜し出す。
4.それの関連する時刻がTmin より以前であるオブジェクトOを捜し出す。
5.もしオブジェクトOが(時間的近接度検査によって)時間的に選択に近接しており、かつ(空間的近接度検査によって)空間的に選択に近接していれば、オブジェクトOを選択に追加してステップ3に戻る。
6.選択におけるオブジェクトに関連する時刻のもっとも遅い時刻Tmax を捜し出す。
7.関連する時刻がTmax より以降であるオブジェクトOを捜し出す。
8.もしオブジェクトOが(時間的近接度検査によって)時間的に選択に近接しており、かつ(空間的近接度検査によって)空間的に選択に近接していれば、オブジェクトOを選択に追加してステップ6に戻る。
9.選択に戻る。
【0095】
事例3 : 部分的な空間的包含のための時間キュー(time cue)
このアルゴリズムは、ループ選択がなされる状況および少しのオブジェクトがループにおいて部分的にのみ選択される(すなわち、それらがループに部分的に入っており、かつ部分的に出ている)状況で有益である。アルゴリズムは部分的に包含されるオブジェクトが包含されるかどうかを判定する。
1.Sがなんらかのユーザアクションによって与えられる。
2.C(S)を計算する。選択をC(S)に設定する。
3.Sによって部分的に選択されたオブジェクト(例えば、S内に部分的にのみ取り囲まれたオブジェクト)の組であるP(S)を計算する。
4.(時間的近接度検査によって)時間的に選択に近接するP(S)内のそれぞれのオブジェクトに関して、それを選択に追加する。
5.選択に戻る。
【0096】
事例4 : 時間選択の拡張の空間的な検査
このアルゴリズムは、逆方向の操作、すなわち逆の時間順序で以前の操作を取り消す操作(例えば、”バックストローク”がストロークが生成された逆の順序でそれらのストロークを消去するような)をなすときに有効である。このアルゴリズムは、逆方向の操作を継続するのがおそらく不適当となるのを検出する停止基準を提供する。
1.1つのオブジェクトが与えられる(通常、生成または操作されたもっとも最近のオブジェクト)。時間間隔においてそのオブジェクトを単集合(singleton) の組と考える。選択をC(T)に設定する。
2.選択におけるオブジェクトに関連する時刻のもっとも早い時刻Tmin を捜し出す。
3.関連する時刻がTmin の直前であるオブジェクトOを捜し出す。
4.もしOが(空間的近接度検査によって)空間的に選択に近接していれば、Oを選択に追加してステップ2へ戻る。
5.もしそうでなければ、選択の拡張を停止する。
【0097】
この場合、処理は、オブジェクトの収集を構成する空間的な選択から空間−時間基準を用いて収集を変更することになる。事例4は、時間的に決定された収集によって開始して空間−時間基準によってそれを変更することを含む代替処理の1つの例である。代替の1つの例は、もっとも最近に生成されたオブジェクトに関する要求によって時間的に決定された収集をユーザが指定することである。
【0098】
事例5 : 時間を用いた空間的な選択の解放(disentanglement)
このアルゴリズムは、オブジェクトの2つのグループが空間的に絡み合わされた状況で有益であるが、2つのグループが時間で集団化された状況(例えば、句(phrase)が時間でしっかりとストロークを集団化するグループを提供するように書かれ、後に、句の注釈が元の句に非常に近接して書かれる)では有益ではない。もしユーザがその注釈を空間的に選択することを試みれば、元の句の一部分を包含しないことは困難であろう。なぜなら、それらは空間的に絡み合わされているからである。
1.Sがなんらかのユーザアクションによって与えられる。
2.C(S)を計算する。選択をC(S)に設定する。
3.オブジェクトの関連する時刻で選択におけるオブジェクトをソートする。
4.ソートされた選択における隣接するオブジェクト間の時刻の差分を計算する。
5.選択における隣接するオブジェクト間のもっとも大きな時刻差分Dmax を捜し出す。
6.ソートされた選択においてDmax が発生した位置で選択を部分集合の選択1と選択2に分割する。
7.ユーザが選択1または選択2を選択したいかどうかをユーザに問い合わせる。
8.もし答えが選択1または選択2のいずれかであれば、答え(選択1または選択2)に選択を設定してステップ5に戻る。
9.もしそうでなければ、選択の解放を停止する。
【0099】
空間的近接度検査 :
この検査は、与えられたオブジェクトOが与えられたオブジェクトの組、つまり選択に空間的に”近接している”ことが真であるかどうかを決定する。標準しきい値距離Dthreshが存在し、オブジェクトOは常にこの範囲内で選択に”近接している”とみなされる。他方、近接度は、選択におけるオブジェクトの空間的な密度に関連して計算される。
D=Oから選択におけるもっとも近接なオブジェクトまでの距離、を計算。
if D<Dthresh、then True を返す。
if 選択がただ1つのオブジェクトを有するれば、then Falseを返る。
temp = 選択のコピー
tempのそれぞれのXi に対して、
Mi =Xi からtempのもっとも近接するオブジェクトまでの距離、を計算。
Xi をtempから除去する。
A=Mi の平均、を計算する。
S=Mi の標準偏差、を計算する。
if D<(A+2*S)
then Trueを返す。
else False を返す。
【0100】
時間的近接度検査 :
この検査は、与えられたオブジェクトOが与えられたオブジェクトの組、つまり選択に時間的に”近接している”ことが真であるかどうかを決定する。標準しきい値時間Dthreshが存在し、オブジェクトOは常にこの範囲内で選択に時間的に”近接している”とみなされる。他方、近接度は、選択におけるオブジェクトの時間的な密度に関連して計算される。
D=Oから選択におけるもっとも近接なオブジェクトまでの時間差分、を計算する。
if D<Dthresh、then True を返す。
if 選択がただ1つのオブジェクトを有するれば、then Falseを返る。
選択をソートする。その結果オブジェクトは時間順にである。
選択における連続するそれぞれのXi (最後は除く)に対して、
Di =Xi とXi+1 との間の時間差分、を計算。
A=Di の平均、を計算する。
S=Di の標準偏差、を計算する。
if D<(A+2*S)
then Trueを返す。
else False を返す。
【0101】
空間的なグループ化と時間的なグループ化を組み合わせる前述したアルゴリズムは、多くの場合において、オブジェクトのもっとも適切なグループ化、すなわちお互いにうまく関係しているオブジェクトのグループ化、したがってユーザの意思にもっとも合致しそうなオブジェクトのグループ化を提供することが期待できることは明白であろう。いったんターゲットオブジェクトが選択されると、それはターゲットオブジェクトのデータ構造体の選択されたフィールドに値を格納することによってまたはターゲットオブジェクトへのポインタをリストに格納することによって容易に設定されるが、そのようにして選択されたターゲットオブジェクトは上述された方法と同様の方法で操作されてもよい。
【0102】
図2は、選択されるターゲットオブジェクトを決定するための時間−空間閉鎖を用いるいくつかの利点を例示する。例えば、もし文字”ipe”が文字”W”を生成してすぐに生成されたならば、物理的に分離されているにもかかわらず、”W”および”ipe”は両方とも同一のオブジェクト47の一部であると考えられる。対照的に、文字”B”は後で生成されたと考えると、たとえワイプストローク50が”B”に交差していてもそれは選択されない。同様な方法は、3つの分離したストロークセグメントから作られていても、単一のオブジェクトとして文字”OK”を取り扱われるようにする。
【0103】
【発明の効果】
このように、ユーザとコンピュータ制御ディスプレイとの間の新規性のあるインタフェースが記述された。そこではユーザの自然なワイピンイグアクションが、その時あるいはその後の結合した取り扱いの選択のために表示されたオブジェクトを自然にグループ化する方法として用いられることができる。同様のワイピングまたは身振りによる運動が選択されるオブジェクトに非常に多様なアクションをなすのに使用されてもよいので、調和した、しかし強力なインタフェース技術を生み出すこととなる。その技術は、ユーザの意思を実現するための、例えば与えられたまたは設定されたアプリケータの空間領域または時間領域の範囲内にないオブジェクトを取り除くための種々のフィルタリング方式に容易に役に立つのである。ここで記述されたインタフェース技術は、特に研究発表に使用される形態のホワイトボードすなわち図式の手書き写生を可能にするその能力に対して、およびお互いに考えを交換するためのその他同種類のものに有益である。
【図面の簡単な説明】
【図1】本発明が使用されるコンピュータ制御されたホワイトボードの1つの形態を例示するブロック構成図である。
【図2】スクリーンの2つの縁に表示されるソフトウェア制御された選択ボタンまたはアイコンメニューと、ディスプレイ上のいくつかのオブジェクトと、を表示したスクリーン表示の前面図である。
【図3】AからBに移動しているワイパーアプリケータオブジェクトの1つの形態(長方形)を例示する。
【図4】(A)及び(B)は、2つのワイピングストロークを図示し、一方が反転すなわち枝を有し、他方が反転すなわち枝を有しない。
【図5】本発明を実現するためのターゲット検出アルゴリズムの1つの形態の派生を例示する。
【図6】本発明を実現するためのターゲット検出アルゴリズムの1つの形態の派生を例示する。
【図7】本発明を実現するためのターゲット検出アルゴリズムの1つの形態の派生を例示する。
【図8】本発明を実現するためのターゲット検出アルゴリズムの1つの形態の派生を例示する。
【図9】本発明を実現するためのターゲット検出アルゴリズムの1つの形態の派生を例示する。
【図10】本発明を実現するためのターゲット検出アルゴリズムの1つの形態の派生を例示する。
【図11】本発明を実現するためのターゲット検出アルゴリズムの1つの形態の派生を例示する。
【符号の説明】
10・・・ホワイトボード
11・・・表示スクリーン
12・・・投影表示手段
13・・・メモリー
14・・・コンピュータ
15・・・液晶装置
20・・・ペン
21・・・ボタン
22・・・スイッチ
24・・・ビーム
25・・・検出モジュール
35〜36・・・ボタン/アイコン
37〜45・・・ボタン
Claims (2)
- ユーザが入力装置を操作することによってコンピュータ制御されたディスプレイ装置に表示されている複数のオブジェクトを動的に選択および操作する方法であって、前記表示されている複数のオブジェクトが、オブジェクトに基づく表現の一つの集合として記憶装置に記憶されている少なくとも一つのオブジェクトを含み、前記方法が、
(a)ユーザがアプリケータにアクセスするための手段を提供する工程と、
(b)オペレータをアプリケータに関連させる手段を提供する工程と、
(c)ディスプレイの一部分を横切って関連するオペレータを備えたアプリケータを掃引してアプリケータの掃引経路を定義する工程と、
(d)アプリケータを掃引することによって定義された前記掃引経路において、コンピュータに認識されたオブジェクトが最初に表示された時間と他の表示されているオブジェクトが最初に表示された時間との間の関係を含む基準によって設定された範囲内に存在するオブジェクトを選択する工程と、
(e)工程(d)で選択された表示されているオブジェクトの全体に前記オペレータによって影響を与える工程と、
(f)工程(e)の実施後に、前記アプリケータの再掃引によって与えた前記影響を取り消す工程と、
を含むことを特徴とするオブジェクトを動的に選択および操作する方法。 - ユーザが入力装置を操作することによってコンピュータ制御されたディスプレイ装置に表示されている複数のオブジェクトを動的に選択および操作するコンピュータベースの方法であって、前記表示されている複数のオブジェクトがオブジェクトベースのデータ構造の一つの集合として記憶手段に記憶されている少なくとも一つのオブジェクトを含み、前記少なくとも一つのオブジェクトそれぞれが前記表示されている複数のオブジェクトの表現であって、前記方法が、
(1)前記入力装置に入力された前記ユーザの動きを追従可能なコンピュータオブジェクトであるアプリケータにアクセスする手段を前記ユーザに提供する工程と、
(2)表示されているオブジェクトに適用されると前記表示されているオブジェクト全体の性質に影響を及ぼすかまたは前記性質を変更可能な少なくとも一つのオペレータを前記アプリケータにリンクするコンピュータ手段を提供する工程と、
(3)前記アプリケータのための掃引経路をディスプレイ装置の一部の上に形成するワイプストロークの複数セグメントの列を定義するために、前記リンクされたオペレータから独立して前記ディスプレイ装置の前記一部を横切るように前記アプリケーターを物理的に動かすオペレータ工程であって、前記コンピュータ手段が前記ワイプストロークの複数セグメントそれぞれの位置の識別及び記憶を実施可能であり、前記ワイプストロークの複数セグメントそれぞれの前記位置が、前記表示された複数のオブジェクトの複数の位置について相対的に前記掃引経路を作る、前記工程と、
(4)前記ワイプストロークの複数のセグメントの列が定義されると、前記ワイプストロークの前記列におけるそれぞれのセグメントについて、前記アプリケータを物理的に動かすことで形成された前記掃引経路から、空間的基準を満足するオブジェクトの生成から所定の長さの時間内に作られた複数のオブジェクトを含む基準に基づいた所定距離内に存在する全ての表示されている複数のオブジェクトをコンピュータによって認識する工程と、
(5)コンピュータによって前記操作によってリンクされたオペレータを、工程(4)において識別された前記複数の表示オブジェクトのそれぞれにのみ適用することによって、前記表示オブジェクトを前記ユーザに見えるように表現している前記データ構造を変更する工程と、
を含み、
前記工程(1)から工程(5)の複数工程がコンピュータを用いたワイプセッションの間実施され、前記実施が、前記アプリケーターの突然の逆方向の操作が存在するかまたは逆方向の操作を存在させずに前記アプリケーターを物理的に動かすことを含む、
コンピュータベースの方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US86955492A | 1992-04-15 | 1992-04-15 | |
US869554 | 1992-04-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0644006A JPH0644006A (ja) | 1994-02-18 |
JP3789946B2 true JP3789946B2 (ja) | 2006-06-28 |
Family
ID=25353783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08157093A Expired - Fee Related JP3789946B2 (ja) | 1992-04-15 | 1993-04-08 | オブジェクトを動的に選択及び操作する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5548705A (ja) |
EP (1) | EP0566293B1 (ja) |
JP (1) | JP3789946B2 (ja) |
DE (1) | DE69333096T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2325804A2 (en) | 2009-11-20 | 2011-05-25 | Ricoh Company, Ltd. | Image-drawing processing system, server, user terminal, image-drawing processing method, program, and storage medium |
JP2017027136A (ja) * | 2015-07-16 | 2017-02-02 | 株式会社ブレイン | 店舗システムとそのプログラム |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348800A (ja) | 1993-06-02 | 1994-12-22 | Canon Inc | 画像処理方法及び装置 |
US5680548A (en) * | 1994-12-02 | 1997-10-21 | Xcellenet, Inc. | Systems and methods for work assignment and distribution from a server to remote/mobile nodes |
JP3378900B2 (ja) | 1996-06-25 | 2003-02-17 | 富士通株式会社 | オブジェクト編集方法,オブジェクト編集システム及び記録媒体 |
JPH1178369A (ja) * | 1997-09-03 | 1999-03-23 | Plus Kogyo Kk | 表示システム |
US6151611A (en) * | 1997-10-31 | 2000-11-21 | Hewlett-Packard Company | System for editing graphical data based upon relative time of entry |
US6055552A (en) * | 1997-10-31 | 2000-04-25 | Hewlett Packard Company | Data recording apparatus featuring spatial coordinate data merged with sequentially significant command data |
US5889523A (en) * | 1997-11-25 | 1999-03-30 | Fuji Xerox Co., Ltd. | Method and apparatus for dynamically grouping a plurality of graphic objects |
US6018346A (en) * | 1998-01-12 | 2000-01-25 | Xerox Corporation | Freeform graphics system having meeting objects for supporting meeting objectives |
US6377288B1 (en) * | 1998-01-12 | 2002-04-23 | Xerox Corporation | Domain objects having computed attribute values for use in a freeform graphics system |
US6509912B1 (en) * | 1998-01-12 | 2003-01-21 | Xerox Corporation | Domain objects for use in a freeform graphics system |
US6396005B2 (en) | 1998-06-15 | 2002-05-28 | Rodgers Technology Center, Inc. | Method and apparatus for diminishing grid complexity in a tablet |
US6859909B1 (en) * | 2000-03-07 | 2005-02-22 | Microsoft Corporation | System and method for annotating web-based documents |
US6711586B1 (en) | 2000-07-17 | 2004-03-23 | William Mitchell Wells | Methods and systems for providing information based on similarity |
US6897853B2 (en) * | 2000-11-10 | 2005-05-24 | Microsoft Corp. | Highlevel active pen matrix |
ATE454657T1 (de) * | 2001-05-31 | 2010-01-15 | Empower Technologies Inc | System und verfahren zur dateneingabe in ein datenverarbeitungsgerät auf pen-basis |
JP2005527880A (ja) * | 2001-10-24 | 2005-09-15 | ニック マルチメディア インク | ユーザ定義可能な画像参照ポイント |
US7602991B2 (en) * | 2001-10-24 | 2009-10-13 | Nik Software, Inc. | User definable image reference regions |
US20030214531A1 (en) * | 2002-05-14 | 2003-11-20 | Microsoft Corporation | Ink input mechanisms |
US7158675B2 (en) | 2002-05-14 | 2007-01-02 | Microsoft Corporation | Interfacing with ink |
US8166388B2 (en) | 2002-05-14 | 2012-04-24 | Microsoft Corporation | Overlaying electronic ink |
US7925987B2 (en) * | 2002-05-14 | 2011-04-12 | Microsoft Corporation | Entry and editing of electronic ink |
US20030214553A1 (en) * | 2002-05-14 | 2003-11-20 | Microsoft Corporation | Ink regions in an overlay control |
US7137077B2 (en) * | 2002-07-30 | 2006-11-14 | Microsoft Corporation | Freeform encounter selection tool |
US20040119762A1 (en) * | 2002-12-24 | 2004-06-24 | Fuji Xerox Co., Ltd. | Systems and methods for freeform pasting |
US7187378B2 (en) * | 2003-05-14 | 2007-03-06 | Microsoft Corp. | Determining the convex hull of convex polygons with congruent corresponding angles |
US7436535B2 (en) | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
US20050125717A1 (en) * | 2003-10-29 | 2005-06-09 | Tsakhi Segal | System and method for off-line synchronized capturing and reviewing notes and presentations |
US7834819B2 (en) | 2004-04-01 | 2010-11-16 | Polyvision Corporation | Virtual flip chart method and apparatus |
US7948448B2 (en) | 2004-04-01 | 2011-05-24 | Polyvision Corporation | Portable presentation system and methods for use therewith |
US20050289453A1 (en) * | 2004-06-21 | 2005-12-29 | Tsakhi Segal | Apparatys and method for off-line synchronized capturing and reviewing notes and presentations |
US7227551B2 (en) * | 2004-12-23 | 2007-06-05 | Apple Inc. | Manipulating text and graphic appearance |
JP4881048B2 (ja) * | 2006-04-03 | 2012-02-22 | キヤノン株式会社 | 情報処理装置および情報処理方法および情報処理プログラム |
TWI328185B (en) * | 2006-04-19 | 2010-08-01 | Lg Electronics Inc | Touch screen device for potable terminal and method of displaying and selecting menus thereon |
KR20070113022A (ko) * | 2006-05-24 | 2007-11-28 | 엘지전자 주식회사 | 사용자 입력에 반응하는 터치스크린 장치 및 이의 작동방법 |
KR20070113018A (ko) * | 2006-05-24 | 2007-11-28 | 엘지전자 주식회사 | 터치스크린 장치 및 그 실행방법 |
KR101269375B1 (ko) | 2006-05-24 | 2013-05-29 | 엘지전자 주식회사 | 터치스크린 장치 및 이의 이미지 표시방법 |
KR101327581B1 (ko) * | 2006-05-24 | 2013-11-12 | 엘지전자 주식회사 | 터치스크린 장치 및 이의 작동방법 |
US20090213086A1 (en) * | 2006-04-19 | 2009-08-27 | Ji Suk Chae | Touch screen device and operating method thereof |
KR20070113025A (ko) * | 2006-05-24 | 2007-11-28 | 엘지전자 주식회사 | 터치스크린 장치 및 이의 작동방법 |
TW200805131A (en) * | 2006-05-24 | 2008-01-16 | Lg Electronics Inc | Touch screen device and method of selecting files thereon |
US7979809B2 (en) * | 2007-05-11 | 2011-07-12 | Microsoft Corporation | Gestured movement of object to display edge |
JP4533943B2 (ja) * | 2008-04-28 | 2010-09-01 | 株式会社東芝 | 情報処理装置、表示制御方法およびプログラム |
TWI400630B (zh) * | 2008-08-11 | 2013-07-01 | Imu Solutions Inc | 選擇裝置及方法 |
US8867779B2 (en) * | 2008-08-28 | 2014-10-21 | Microsoft Corporation | Image tagging user interface |
US8396246B2 (en) * | 2008-08-28 | 2013-03-12 | Microsoft Corporation | Tagging images with labels |
KR101569176B1 (ko) * | 2008-10-30 | 2015-11-20 | 삼성전자주식회사 | 오브젝트 실행 방법 및 장치 |
US20110163944A1 (en) * | 2010-01-05 | 2011-07-07 | Apple Inc. | Intuitive, gesture-based communications with physics metaphors |
US8839150B2 (en) | 2010-02-10 | 2014-09-16 | Apple Inc. | Graphical objects that respond to touch or motion input |
GB2485221A (en) * | 2010-11-05 | 2012-05-09 | Promethean Ltd | Selection method in dependence on a line traced between contact points |
JP6217058B2 (ja) * | 2012-05-09 | 2017-10-25 | セイコーエプソン株式会社 | 画像表示システム |
KR20140111497A (ko) * | 2013-03-11 | 2014-09-19 | 삼성전자주식회사 | 터치 스크린의 화면에 표시된 아이템을 삭제하는 방법, 저장 매체 및 휴대 단말 |
US9927965B2 (en) * | 2015-08-28 | 2018-03-27 | Siemens Product Lifecycle Management Inc. | Object selection system and method |
US20170090713A1 (en) | 2015-09-29 | 2017-03-30 | International Business Machines Corporation | Adjusting eraser size in drawing applications |
US10755029B1 (en) | 2016-01-05 | 2020-08-25 | Quirklogic, Inc. | Evaluating and formatting handwritten input in a cell of a virtual canvas |
US10264213B1 (en) | 2016-12-15 | 2019-04-16 | Steelcase Inc. | Content amplification system and method |
US10387747B2 (en) * | 2017-06-26 | 2019-08-20 | Huddly As | Intelligent whiteboard collaboratio systems and methods |
JP7314719B2 (ja) * | 2019-08-28 | 2023-07-26 | 株式会社リコー | 表示装置、表示方法、プログラム |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4633436A (en) * | 1983-12-16 | 1986-12-30 | International Business Machines Corp. | Real-time rub-out erase for an electronic handwriting facility |
US4686522A (en) * | 1985-02-19 | 1987-08-11 | International Business Machines Corporation | Method of editing graphic objects in an interactive draw graphic system using implicit editing actions |
US4683468A (en) * | 1985-03-11 | 1987-07-28 | International Business Machines Corp. | Method for manipulation of graphic sub-objects in an interactive draw graphic system |
US4698625A (en) * | 1985-05-30 | 1987-10-06 | International Business Machines Corp. | Graphic highlight adjacent a pointing cursor |
US4815029A (en) * | 1985-09-23 | 1989-03-21 | International Business Machines Corp. | In-line dynamic editor for mixed object documents |
US4823285A (en) * | 1985-11-12 | 1989-04-18 | Blancato Vito L | Method for displaying hairstyles |
US4809201A (en) * | 1985-12-02 | 1989-02-28 | Schlumberger Systems, Inc. | Graphic display region defining technique |
US4785399A (en) * | 1987-03-03 | 1988-11-15 | International Business Machines Corporation | Shaping geometric objects by cumulative translational sweeps |
US5072412A (en) * | 1987-03-25 | 1991-12-10 | Xerox Corporation | User interface with multiple workspaces for sharing display system objects |
US4847605A (en) * | 1987-04-27 | 1989-07-11 | International Business Machines Corporation | Picking in a graphics system |
US4952932A (en) * | 1987-04-30 | 1990-08-28 | Canon Kabushiki Kaisha | Information input apparatus |
US4984152A (en) * | 1987-10-06 | 1991-01-08 | Bell Communications Research, Inc. | System for controlling computer processing utilizing a multifunctional cursor with decoupling of pointer and image functionalities in space and time |
US5027291A (en) * | 1987-11-24 | 1991-06-25 | International Business Machines Corporation | Application exit for potentially pickable primitives in a graphics system |
US5159664A (en) * | 1988-07-06 | 1992-10-27 | Hitachi Ltd. | Graphic display apparatus |
US5021976A (en) * | 1988-11-14 | 1991-06-04 | Microelectronics And Computer Technology Corporation | Method and system for generating dynamic, interactive visual representations of information structures within a computer |
US5252951A (en) * | 1989-04-28 | 1993-10-12 | International Business Machines Corporation | Graphical user interface with gesture recognition in a multiapplication environment |
US5157384A (en) * | 1989-04-28 | 1992-10-20 | International Business Machines Corporation | Advanced user interface |
US5129083A (en) * | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Conditional object creating system having different object pointers for accessing a set of data structure objects |
US5211564A (en) * | 1989-07-19 | 1993-05-18 | Educational Testing Service | Computerized figural response testing system and method |
US5208909A (en) * | 1989-10-23 | 1993-05-04 | International Business Machines Corporation | Pre-drawing pick detection in a graphics display system |
GB9002475D0 (en) * | 1990-02-05 | 1990-04-04 | Crosfield Electronics Ltd | Electronic brush generation |
US5371845A (en) * | 1990-04-27 | 1994-12-06 | Ashlar, Inc. | Technique for providing improved user feedback in an interactive drawing system |
US5063600A (en) * | 1990-05-14 | 1991-11-05 | Norwood Donald D | Hybrid information management system for handwriting and text |
US5299307A (en) * | 1990-08-17 | 1994-03-29 | Claris Corporation | Controls for drawing images on computer displays |
US5307452A (en) * | 1990-09-21 | 1994-04-26 | Pixar | Method and apparatus for creating, manipulating and displaying images |
US5231698A (en) * | 1991-03-20 | 1993-07-27 | Forcier Mitchell D | Script/binary-encoded-character processing method and system |
US5250929A (en) * | 1991-07-29 | 1993-10-05 | Conference Communications, Inc. | Interactive overlay-driven computer display system |
US5241624A (en) * | 1991-10-03 | 1993-08-31 | International Business Machines Corporation | Method for determining a user selected group of data objects for the propagation of attribute values |
US5404439A (en) * | 1992-04-15 | 1995-04-04 | Xerox Corporation | Time-space object containment for graphical user interface |
-
1993
- 1993-04-05 EP EP93302647A patent/EP0566293B1/en not_active Expired - Lifetime
- 1993-04-05 DE DE69333096T patent/DE69333096T2/de not_active Expired - Lifetime
- 1993-04-08 JP JP08157093A patent/JP3789946B2/ja not_active Expired - Fee Related
-
1995
- 1995-02-27 US US08/394,919 patent/US5548705A/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2325804A2 (en) | 2009-11-20 | 2011-05-25 | Ricoh Company, Ltd. | Image-drawing processing system, server, user terminal, image-drawing processing method, program, and storage medium |
US9805486B2 (en) | 2009-11-20 | 2017-10-31 | Ricoh Company, Ltd. | Image-drawing processing system, server, user terminal, image-drawing processing method, program, and storage medium |
JP2017027136A (ja) * | 2015-07-16 | 2017-02-02 | 株式会社ブレイン | 店舗システムとそのプログラム |
Also Published As
Publication number | Publication date |
---|---|
EP0566293A3 (en) | 1995-04-19 |
DE69333096D1 (de) | 2003-08-21 |
JPH0644006A (ja) | 1994-02-18 |
EP0566293A2 (en) | 1993-10-20 |
DE69333096T2 (de) | 2004-02-12 |
EP0566293B1 (en) | 2003-07-16 |
US5548705A (en) | 1996-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3789946B2 (ja) | オブジェクトを動的に選択及び操作する方法 | |
EP0566294B1 (en) | Graphical drawing and editing method and system | |
US9207858B2 (en) | Method and apparatus for drawing and erasing calligraphic ink objects on a display surface | |
EP3019930B1 (en) | Interactive digital displays | |
US9141134B2 (en) | Utilization of temporal and spatial parameters to enhance the writing capability of an electronic device | |
CN101278251B (zh) | 交互式大规模触摸面系统 | |
US7499047B2 (en) | Ink editing architecture | |
US8132125B2 (en) | Freeform encounter selection tool | |
US20120326995A1 (en) | Virtual touch panel system and interactive mode auto-switching method | |
CN111475097B (zh) | 一种笔迹选择方法、装置、计算机设备和存储介质 | |
AU2010219367B2 (en) | Ink collection and rendering | |
JPH0793527A (ja) | オブジェクト指向グラフィック入力及びディスプレイシステム | |
IL269869B2 (en) | Live ink presence for real-time collaboration | |
Gupta et al. | A real time controlling computer through color vision based touchless mouse | |
Mali et al. | Finger Mouse Movement | |
WO2023184083A1 (zh) | 一种智能图形联想的方法及智能交互显示设备 | |
WO2023050079A1 (zh) | 一种显示设备及其菜单栏的显示方法 | |
Iacolina et al. | Natural Interaction and Computer Graphics Applications. | |
CN115033164A (zh) | 一种基于电子白板橡皮擦擦除电子数据的方法 | |
Hammond | Natural sketch recognition in UML class diagrams | |
Zhang et al. | Research on dynamic gesture recognition algorithm based on multi-touch human-computer interaction devices in classroom teaching | |
CN117631880A (zh) | 一种准确计算擦除效果的方法 | |
DE hANG | WEBCAM-BASED MARKER TRACKING APPLICATION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040611 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060330 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090407 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110407 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120407 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120407 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |