JP3501821B2 - オブジェクトを動的に選択及び操作する方法 - Google Patents

オブジェクトを動的に選択及び操作する方法

Info

Publication number
JP3501821B2
JP3501821B2 JP08157193A JP8157193A JP3501821B2 JP 3501821 B2 JP3501821 B2 JP 3501821B2 JP 08157193 A JP08157193 A JP 08157193A JP 8157193 A JP8157193 A JP 8157193A JP 3501821 B2 JP3501821 B2 JP 3501821B2
Authority
JP
Japan
Prior art keywords
objects
user
wipe
segment
selection
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
Application number
JP08157193A
Other languages
English (en)
Other versions
JPH0644021A (ja
Inventor
ピー.モラン トーマス
アール.ピーダーセン エリン
ケイ.マコール マイケル
ジー.ハラズ フランク
Original Assignee
ゼロックス・コーポレーション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ゼロックス・コーポレーション filed Critical ゼロックス・コーポレーション
Publication of JPH0644021A publication Critical patent/JPH0644021A/ja
Application granted granted Critical
Publication of JP3501821B2 publication Critical patent/JP3501821B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、『オブジェクトに基づ
いたグラフィック表示のためのユーザインタフェースと
しての一般化されたワイピング(Generalized Wiping As
A User Interface For Object-Based Graphical Displ
ays)』と称する米国出願第07/869,554号と同
時出願される。 【0002】本発明は、コンピュータ制御された図形の
描画および編集のためのシステムと方法に関する。 【0003】 【従来の技術及び発明が解決しようとする課題】一般的
に、図形描画編集システムには2つの種類があり、それ
はペインティングプログラム(painting programs) と構
造化描画プログラム(structured drawing programs) と
である。ペインティングプログラムは、ユーザがライン
(または、”スプレー”パターン("spray" patterns))
をペイントすることを可能にし、そして通常は画素の2
次元配列である1つの画像に基づいた表現をユーザが消
去することを可能にする。構造化描画プログラムは、ユ
ーザが幾何学的に定義されたオブジェクトを生成し、修
正し、そして削除することを可能にする。画像表現(ima
ge representation)と区別してのオブジェクトに基づい
た表現(object-based representation) は計算に関して
の多くの利点を有するが、そのような表現のためのユー
ザインタフェースは一般的により多くの別個のアクショ
ンを用いる。多くの描画システムは、描画することを可
能とし、かつ、例えばペンに基づいた運動によって画像
を消去することを可能にするとともに、それは画素配列
画像表現に基づいて1つの画素毎に実現される。オブジ
ェクトに基づいた表現が使用される場合には、消去はオ
ブジェクトを取り囲み次に削除の操作を喚起することに
よってなされた。 【0004】オブジェクトに基づいた表現およびその他
の表現に働くプログラムとのグラフィックユーザインタ
フェースには、どのようにしてユーザが操作すべきオブ
ジェクトを選択するかの指示を発行する一般的なユーザ
インタフェースがある。ほとんどのグラフィックユーザ
インタフェースはオブジェクトを選択するための空間的
な技術を提供する。ユーザはディスプレイを横切って掃
引(スイープ)することによって長方形を定義するかま
た手書きのループを描く。その長方形またはループはデ
ィスプレイの空間的な領域を定義し、プログラムがどの
オブジェクトがその領域に包含されるかを計算し、その
包含されたオブジェクトが選択されたオブジェクトとな
る。 【0005】包含計算は、選択されるために、どのくら
いの広さのオブジェクト領域または範囲がその領域内に
適切に包含されることが必要とされるかを知っている必
要がある。事実、プログラムは包含の総量に関する有効
かつ実行可能なしきい値を設定することができ、ゆえに
これは処理しやすい問題である。これらの技術は領域内
のあらゆるオブジェクトを選択し、かつ領域外のいかな
るオブジェクトをも選択しないので、これらを純粋空間
閉鎖技術と呼ぶ。 【0006】閉鎖はグループ化(または、その他のオブ
ジェクト上の高水準構造体)によって変更されてもよ
い。もし表示されたオブジェクトの部分集合がグループ
(グループ化は目に見えるように表現される必要はな
い)に包含されるならば、ある者は選択の目的でそのグ
ループを全体として取り扱うことを望むかもしれない。
すなわち、グループ内のすべてオブジェクトが選択され
るか、あるいはなにも選択されないかのいずれかであ
る。例えば、もしグループが5つのオブジェクトを包含
し3つが純粋空間閉鎖によって選択されるならば、5つ
すべてが選択される。これは純粋空間閉鎖の変更と考え
られる。他方、もしグループを1つのオブジェクトと考
えれば、以前としてそれは純粋空間閉鎖と考えられ、そ
こではグループに関する包含基準がオブジェクトに関す
る包含基準といくぶん異なっている。 【0007】この場合には、グループは予め指定された
ものでありかつ明示的(explicit)なものでなければなら
ない。あるときにはグループ化は暗黙的(implicit)であ
り、またさらに、異なったときおよび異なった目的のた
めにはグループ化は異なっていてもよい。 【0008】本発明が目的とするものは、コンピュータ
制御されたディスプレイのスクリーン上に表示されるオ
ブジェクトのグループを連続するユーザアクションに対
して動的に選択する方法である。 【0009】本発明がさらに目的とするものは、スクリ
ーン上にオブジェクトを生成しかつお互いに有意義に関
係するオブジェクトのグループをユーザが選択するのを
助けるための入力装置を用いた表示システムである。 【0010】もう1つの本発明が目的とするものは、同
様の方法で操作されるために、ディスプレイ上のオブジ
ェクトのグループをユーザが選択することを可能とする
ユーザと表示システムとの間の新規性のあるインタフェ
ース技術である。 【課題を解決するための手段】 【0011】本発明の一態様は、ユーザが入力装置を操
作することによってコンピュータ制御されたディスプレ
イ装置に表示されたオブジェクトを動的に選択および操
作する方法であって、(a)オブジェクトセレクタによ
って選択されたオブジェクトの集合を生成するためにユ
ーザが入力装置を操作する手段を提供する段階と、
(b)空間の基準がオブジェクトセレクタに関して相対
的なオブジェクトの位置を含み、時間の基準がそれぞれ
のオブジェクトに関連する時刻を含む、表示オブジェク
トを選択するための空間−時間の選択基準を確立する段
階と、(c)オブジェクトセレクタをアクセスしてその
セレクタを少なくとも1つの表示されたオブジェクトに
関連づけて、それによってそのオブジェクトを集合に追
加する段階と、(d)段階(b)の空間−時間の選択基
準を用いることによって段階(c)で選択されたオブジ
ェクトの集合を変更する段階と、を備えたことを特徴と
するオブジェクトを動的に選択および操作する方法であ
る。 【0012】本発明は、お互いに有意義に関係するオブ
ジェクトのグループをより容易に選択するグラフィック
ユーザインタフェースのユーザを助けるための総体的な
(汎用の)一組の技術の発見に基づくものである。オブ
ジェクトは通常ユーザによって時間的に連続して生成さ
れるのに、それらは一般的にグラフィックユーザインタ
フェースによって空間的なグループ化で選択される。本
発明の1つの側面によれば、そのような空間的なグルー
プ化はオブジェクトの時間的なグループ化を考慮するこ
とによって改良される。空間的なグループ化と時間的な
グループ化の両方を組み合わせてもっとも適切なオブジ
ェクトのグループ化、すなわちユーザの意図にもっとも
合致しそうなグループ化を提供するアルゴリズムが説明
される。 【0013】ここで記述される新規性のあるオブジェク
ト選択技術は、長方形を定義することによってまたは手
書きのループを描画することによって選択されるオブジ
ェクトを取り囲むような、1つの”オブジェクトセレク
タ(object selector) ”の例として定義される、オブジ
ェクトを選択するために従来の空間的な閉鎖技術を使用
することによって、表示されたオブジェクトの画素に基
づいた画像またはオブジェクトに基づいた表現を用いる
従来のペインティングプログラムおよび構造化描画プロ
グラムに用いられてもよい。本発明が実現するものは、
選択の過程に時間的な基準を追加することであり、それ
によってユーザの意図がより簡単に達成される。 【0014】また、ここで記述される新規性のある選択
技術は、ユーザがオブジェクトセレクタのもう1つの例
であるアプリケータをディスプレイを横切って掃引して
決まった空間的基準に従ってオブジェクトを選択する援
用された米国出願第07/869,554号で説明され
る一般化されたワイピング方式にも適用することがで
き、また、その一般化されたワイピング技術は、本願で
請求される時間−空間閉鎖グループ化を理解するための
基礎的な知識として以下で詳述される。 【0015】 【実施例】図1は、1992年 5月 3日〜 7日、Monterey C
A で開催されたHuman Factors inComputing Systemsに
関する米国計算機学会(ACM) の会議の、1992年のCHI
の議事録で発表された研究論文に記述される本発明が特
に役に立つライブボード(Liveboard) として知られる大
規模な対話型ディスプレイに関する研究論文に記述され
た形態のホワイトボード10を概略的に例示する。ホワ
イトボードの詳細は本発明にとって欠くことのできない
ものではないので説明されない。ここでは、図示された
システムは、コンピュータ14によって、かつコンピュ
ータ14の制御下で決定されたオブジェクトをスクリー
ン上に投影または表示するための手段12を有する表示
スクリーン11を備える、とだけ説明するにとどめる。
ライブボードにおいて、投影手段は、スクリーン11上
に投影され表示されるオブジェクトを生成する液晶装置
15を用いてTV投影システムをシミュレートする。好
ましくはコードレスのペンのようなまたはそれに類似す
る描画装置20がシステムに結合され、またペンのいか
なる運動の開始および終了をも制御するための手段が提
供される。例えば、ディジタイザまたはマウスを用いる
場合のように、ペンは信号が接続または切断されるとき
にアクションを選択するボタン21を有する。加えて、
そのペンは、スクリーンに押しつけられるときにペンア
クションの開始または終了としてホワイトボードによっ
て認識される感圧チップスイッチ22を有してもよい。
ホワイトボードにこれらのペン信号またはコマンドを伝
達する手段はディジタイザタブレットで使用されるもの
と同様のものであってもよい。後述されるように、ワイ
ピングは連続的運動感応入力装置によって動かされるの
で、それはユーザにとって自然なワイピング運動であ
る。”連続的運動感応入力装置”という用語は、ディス
プレイ表面上を移動させることのできる入力装置(スタ
イラスのような)、またはディスプレイのカーソルに電
子的にマップされる表面上を移動させることのできる入
力装置(ペンとタブレットのような、またはマウスのよ
うな)のいかなるものをも意味するものである。ここで
は、そのようないかなる装置をも簡単のためにペンと呼
ぶことにする。 【0016】ホワイトボード10はスクリーン上のペン
20の位置を、とりわけそのXY座標を認識することが
できなければならない。このことはスクリーンの背面に
ディジタイザグリッド(図示されない)を装着すること
によって、またディジタイザグリッドと協力してペンの
位置を突き止めるための電磁気的、静電的、またはその
他の手段を備えたペンを装備することによって実現され
てもよい。 【0017】別の方法として、タッチスクリーンにおけ
るような、スクリーンの背面に配置された検出モジュー
ル25に画像化される光学的放射のビーム24を生成す
る手段をペンに装備してもよい。この好ましい実施例に
よれば、ペン20は表示スクリーンに接触させる必要は
なく、ユーザは遠隔からの位置指定およびジェスチャー
による入力のためにスクリーンから一定の距離だけ離れ
て入力することができる。このようなシステムの構成と
操作のより詳細なことは参照されたライブボードに関す
る研究論文を調査することによって理解することができ
る。 【0018】上述したように、システムは、ユーザによ
って信号が送出されたときにペンの位置を計算あるいは
決定するための適切なメモリー13を備えたコンピュー
タ14を含み、また、ペイントブラシ(Paintbrush)また
はマックペイント(Macpaint)のような既知のグラフィッ
ク描画編集システムによって用いられるものと類似した
方法によって、ユーザの制御下でスクリーン上に表示さ
れる表現を生成し記憶することができる。しかしなが
ら、ワイピング方式を用いたシステムにおいては、それ
ぞれの表現は画像に基づいた表現、すなわち2次元の画
素配列と区別してのオブジェクトに基づいた表現であ
る。このことをなすための方法はオブジェクト指向デザ
インに関する公表された文献に詳細に記述される。ワイ
ピング運動がどのように表示されたオブジェクトと相互
作用するかを理解するのを助けるための1つの例とし
て、オブジェクトの例は、例えば、オブジェクトのスク
リーン位置の座標、オブジェクトの色、オブジェクトを
定義するラインの太さ、オブジェクトフィルパターン(o
bject fill patterns)、オブジェクト生成時刻、など、
を含むことのできるデータ構造体のフィールドに記憶さ
れるオブジェクトの特性または属性を有する、C言語の
struct 文またはPascalのrecord文のようなデータ構造
体とみなすことができがある。 【0019】1つの例として、ストロークオブジェクト
のための典型的なデータ構造体が以下に示される。この
例では、C++言語のクラスが例示される。オブジェク
トはデータ構造体とそのデータに対する1組の演算によ
って記述される。 【0020】ストロークオブジェクトは次のデータによ
って記述されてもよい。 pageN ストロークが配置される原稿のページ pageX 原稿ページ上のストロークの開始位置のXY座標 pageY pageL ストロークが配置されるページの層 Nsegments ストロークの経路におけるセグメントの数(セグメント については以下で説明される) path: dx1,dy1 ストロークの形状を定義する経路のそれぞれのセグメン dx2,dy2 の長さと方向を記述するdx,dy 対のリスト dx3,dy3 dx4,dy4 . . color 3つの成分の色コード transparency 色の透明度 thickness ストロークラインの太さ line style ラインの種類(例えば、破線) bounding box ストロークを囲む最小の長方形のtop,bottom,left,およ びright の座標(これは開始位置、path、thickness か ら計算される) creation time 生成時のクロック時刻 last mod time 最終更新のクロック時刻 groups このストロークが包含されるグループのリスト tags このストロークに付与される任意のタグのリスト property list 任意の属性値の対のリスト 【0021】他の種類のオブジェクトは、そのオブジェ
クトに固有のその他のフィールドだけでなくストローク
オブジェクトと同一のいくつかのフィールドを有する。
よく知られているように、オブジェクト指向言語は、そ
れをあるいはそれらを表示するのに必要とされる方法に
よってオブジェクトを表現するデータを密閉する(encap
sulate) 。表示はオブジェクトにメッセージを送信する
オペレーティングシステムによってなされスクリーン上
にそれ自身を表示する。その他の共通の機能と同様にス
クリーン上にオブジェクトを印刷あるいは表示するこれ
らの機能を実行するためにC++言語のライブラリにお
けるルーチンが利用できる。 【0022】オブジェクトの選択はそれのいかなる属性
を使用してなされてもよい。簡単のために、背景として
オブジェクトのXY座標が空間的な選択基準として使用
される好ましい手順を説明する。このことを実現する1
つの簡単な方法は、表示されるそれぞれのオブジェクト
を表現するデータ構造体に関係づけて考えることであ
り、つまり、それの位置座標から既知の方法によって、
メモリーのオブジェクトのデータ構造体にXY座標が記
憶される境界ボックス(bounding box)を計算することで
ある。 【0023】以下の説明において、ユーザはスクリーン
上に表示される少なくとも1つのオブジェクトを生成し
ているものと仮定する。参照されるグラフィック描画プ
ログラムのように、ユーザが希望することを実行するた
めにイベントを生成してソフトウェアを起動するために
ユーザによって使用される一連のボタンまたはアイコン
をスクリーンの縁に沿って表示することは表示スクリー
ンにとって好都合なことである。図2は、本発明を実現
するための1組のボタンまたはアイコンを備えた1つの
簡単なスクリーン表示の例を例示する。左側のスクリー
ンの縁に沿ったボタン/アイコン35はペン機能を設定
し、スクリーンの底辺に沿ったボタン/アイコン36は
ワイピングオペレータを決定する。例示された例におい
ては、ペン機能は、それぞれボタン37および38に関
連づけられるDRAWおよびWIPEである。例として
のみ図示されるワイピングオペレータのボタンは、DE
LETE40、THICKEN41、THIN42、F
ILL43、COLOR44、および、UNDO45で
ある。よく知られているように、ユーザが特定のボタン
またはアイコンの上または近傍にペンを置いてペンのス
イッチまたはボタンを作動すると、コンピュータはペン
の位置からユーザによって選択された機能またはオペレ
ータを決定する。 【0024】また、図2は、描画ボタンおよび希望され
る幅設定ボタン(図示されない)を作動したのちにユー
ザによって描画されることによって生成された数個のオ
ブジェクト47、48、49をスクリーン上に図示す
る。表示されたオブジェクトは、それぞれ、ペンのスイ
ッチが作動されている間のユーザによる単一の描画スト
ロークからなる。あるいは、多角形、円、またはその他
の形状が生成されるとき、全体の形状が単一のオブジェ
クトとして取り扱われてもよい。 【0025】ユーザインタフェースとしてのワイピング
作業の方法は次のシナリオによって説明される。ペンを
持ったユーザがボタン38に触れて”ワイプモード”に
入る。システムはオブジェクトセレクタとして1つのア
プリケータを提供する。ユーザは削除オペレータ(delet
e operator) 40を選択してアプリケータに関連づける
か、または、省略時解釈によってアプリケータが削除オ
ペレータを開始して消しゴム(eraser)になる。ユーザは
ワイピングによっていくつかのオブジェクトを消去し、
そしてカラーボタン44に触れる。カラースペクトル
(図示されない)がポップアップし、ワイパーでメイク
レッドボタン(make-red button) を選択する。ここでワ
イピングはオブジェクトを赤色に変える。いくつかのオ
ブジェクトにそのようにした後、ユーザが赤色に変えら
れたオブジェクトが多すぎることに気がつく。ユーザは
ワイパーを取り消しボタン(Undo button) に”入れて(d
ips)”、取り消しをオペレータにする。そして赤色に変
えられるべきではないと考えられるオブジェクトをワイ
ピングすることによってそれらは元の色に復元される。
最後にユーザはワイプモードから出る。 【0026】より明白には、ワイピングの構成要素は以
下の通りである。 1.アプリケータ。データオブジェクトとしてのアプリ
ケータは経路領域(path region) を決定する形状と寸法
とを有する。コンピュータによって記憶されるアプリケ
ータの経路は直線セグメントの連鎖から構成され、その
終了は感知されたペンの位置である。したがって、経路
領域は経路領域セグメントの連鎖から構成される。例え
ば、長方形のカーソルは六角形(以下で説明される)の
経路領域セグメントを生じさせる。アプリケータの形状
と寸法は、好ましくは、ユーザによって定義することが
可能であり、換言すると、異なった仕事を実現するため
に変化させることができるということである。 【0027】2.選択の基準。ワイピングの概念的機能
は操作されるべきオブジェクトを選択またはグループ化
することである。基本的には、それの領域がワイプ経路
領域に交差するオブジェクトが選択され、それはアプリ
ケータの経路領域の座標との交差についてそれぞれの表
示されたオブジェクトの境界ボックスの座標を検査する
ことによってソフトウェアで簡単に実現される。しかし
ながら、交差したオブジェクトが実際に選択されるかを
判定するために使用される他の選択基準が存在する。も
っとも簡単な基準は交差しきい値であり、それはワイプ
経路領域によって交差されるオブジェクトの領域の割合
を測定するものである。もっとも寛大な基準はゼロでな
い交差しきい値であり、すなわち、アプリケータによる
オブジェクトのわずかな接触ですらそのオブジェクトを
選択させられる。厳密な100%のしきい値は通常有効では
ないが、高い、低い、および、過半数(50%) のしきい値
はそれらの用途を有する。交差しきい値はこれらの環境
下で動的に計算されることに注意されたい。触れること
によってどのようにして選択されるオブジェクトを決定
するかのより厳格な記述は以下で明らかとなる。ワイプ
が進むにつれて、ワイプ経路は成長し、ワイプがしきい
値に到達するまで1つのオブジェクトにますます交差す
る。例えば、図2はユーザによって形成されたワイプ経
路領域50を破線で例示する。しきい値がだいたい30%
に設定されていると仮定すると、1つのアッパーケース
の文字(大文字)と3つのロアーケースの文字(小文
字)の分離されたグループから構成されるオブジェクト
47が選択される。次のオブジェクト48の頭文字のア
ッパーケースの文字もまた選択される。もしオペレータ
がDELETEであれば、3つの項目のすべてが消去さ
れる。文字Bの消去はたぶん意図されないので、ここが
UNDOオペレータを文字Bに適用することによってD
ELETEオペレータが無効にされる部分である。 【0028】その他の有効な選択基準が存在し、それは
通常は作業に関して特有なものである。アプリケータ
は、通常はアプリケータが選択しようとするオブジェク
トの種類に比例した寸法と形状であるように設計され、
またユーザが定義したものであってもよい。例えば、ワ
イピングが手書きの語を横切って簡単になされるよう
に、手書きの語のストロークを選択しようとするアプリ
ケータはその語の高さよりいくぶん小さい寸法であるよ
うに作られる。この意図を与えれば、有効な選択基準は
語の一部であるには大きすぎるいかなるストロークをも
除外する。したがって、語を取り囲むボックスを描写す
るストロークがワイプされるとき、そのストロークは選
択されない。この基準は計算するのに動的な交差しきい
値より容易である。 【0029】もう1つの例は、表示されるオブジェクト
が1組の2次元の層に編成される場合である。ここで
は、特殊化された基準は、どの層にオブジェクトがある
かによってオブジェクトが選択されるフィルタである。 【0030】また、選択のために使用されてもよい時間
に基づいた基準が存在し、それは以下で記述される。 【0031】3.ワイプアクションの範囲規定(scopin
g) 。ワイピングの範囲(scope) を定義するのに使用さ
れる4つの入れ子の時間の間隔が存在する。それは、ワ
イプセッションの範囲と、オペレータの範囲と、ワイプ
ストロークの範囲と、ストロークの枝の範囲と、であ
る。(A)もっとも大きな範囲はワイプセッションであ
る。ワイプセッションは一連のワイプストロークと可能
なオペレータの変更とからなる。ワイプセッションは通
常はある種のワイプモードに出入りすることによって区
切られる。(B)ワイプセッションは少なくとも1つの
オペレータの範囲に分割される。オペレータの範囲はオ
ペレータが変更されないままでいる時間間隔である。オ
ペレータの範囲は一連のワイプストロークから構成され
る。(C)それぞれのワイプストロークはディスプレイ
表面にペン装置を接触させ(または、ペンボタンが押さ
れる)、ディスプレイ表面に沿って滑らせ、それから、
ディスプレイ表面から引き上げる(または、ボタンを離
す)ことによって定義される。もし枝が存在すれば次の
(D)で定義される枝の範囲がもっとも小さい範囲を定
義するが、もし枝が存在しなければ、ワイプストローク
の間隔がもっとも小さい範囲を定義する。(D)枝の範
囲。急な方向反転を有するストロークは反転によって”
枝(branches)”に分割される。例えば、2つの反転を備
えたストロークは3つの枝を有する。枝の範囲は枝の時
間である。例えば、上述の例では、それらの枝は、スト
ロークの開始点から第1の反転までと、第1の反転から
第2の反転までと、第2の反転からストロークの終了ま
でとである。 【0032】4.選択されるオブジェクトのグループ
化。これらの間隔は選択されるオブジェクトの自然なグ
ループ化を定義する。1つの枝によって選択されるオブ
ジェクトの組は枝グループと呼ばれ、1つのワイプスト
ロークによって選択されるオブジェクトの組はワイプス
トロークグループを形成し、1つのオペレータの範囲に
よって選択されるオブジェクトの組はオペレータグルー
プを定義し、1つのワイプセッションで選択されるオブ
ジェクトの組はワイプセッショングループを構成する。 【0033】5.適用のダイナミックス(dynamics of a
pplication) 。選択されるオブジェクトの計算は好まし
くは動的に発生する。ペン入力装置でユーザがワイプす
る間に、例えば、オブジェクトが選択基準に合致する
と、適切なリストにオブジェクトへのポインタを格納す
ることによって、ワイプストロークセグメントが生成さ
れ、それでオブジェクトが選択される。通常、オブジェ
クトが選択されるときは、オペレータがオブジェクトに
適用される。例えば、オペレータが削除であれば、実際
の消しゴムの効果のまねをして、ユーザがワイプすると
きにオブジェクトが削除される。しかしながら、オペレ
ータの適用が遅延されてもよい。遅延の1つの形態は、
ワイプストロークが完了されるまで適用を控えることで
あり、それから、オペレータをワイプストロークグルー
プに適用することである。もう1つの形態は、ワイプセ
ッションが終了されるまで遅延されることであり、それ
でオペレータをワイプセッショングループ全体に適用す
ることである。 【0034】6.ワイプのためのフィードバック。ワイ
ピングの過程の間でユーザへの聴覚および(あるいは)
視覚のフィードバックが存在してもよい。聴覚のフィー
ドバックは、ワイプストロークが生成されているとき、
オブジェクトが選択されるとき、またはオペレータが適
用されたときに、信号を送出するのに使用されてもよ
い。視覚のフィードバックがワイプストロークを見るこ
とのできるものにしてもよく(例えば、明るいマーカー
ペンが提供するような背景が透明のような)、または、
選択されるオブジェクトが種々の方法で明るくされても
よい(例えば、区別的な色または影によって)。視覚的
なフィードバックの継続期間は、通常、ワイプセッショ
ンの終了までである。 【0035】7.適用されるオペレータ。多くの異なっ
た種類のオペレータが選択されるオブジェクトに適用さ
れてもよい。このインタフェース技術と可能性の範囲と
の汎用性の認識を提供するためにそれらのいくつかの例
をあげる。 【0036】削除(Deleting)、切り取り(Cutting) 、複
写(Copying) 。すでに述べたように、選択されたオブジ
ェクトを削除することは実際の消しゴムによる消去を模
倣する。切り取ることはオブジェクトを削除するだけで
なく後に使用する(他の場所に貼り付けする(Pasting)
ような)ための”クリップボード”バッファにそれらを
保存するのにも使用される。複写は選択されるオブジェ
クトをそれらを削除することなく保存する。 【0037】選択(Selecting) 、グループ化(Groupin
g)、タグ付け(Tagging) 。ワイピングは単に選択のため
に使用されてもよい。1つのワイプセッションの後に、
そのワイプセッショングループがシステムによって後の
使用のために保存される。ワイピングはまたワイプスト
ロークグループを用いてオブジェクトをより高いレベル
の構造体にグループ化するのに使用されてもよい。例え
ば、もしオブジェクトが手書き文字のストロークであれ
ば、ワイプストロークは手書き文字をリストの項目に構
造化するのに使用されてもよい。タグ付けオペレータは
特色のあるタグをオブジェクトに付加するのに使用され
てもよく、それでワイピングがタグ付けのために使用さ
れてもよい。例えば、もしオブジェクトが手書き文字の
ストロークであれば、ワイピングは、例えば重要な観念
(idea)またはアクション項目を表現するときにこれらの
ストロークの部分集合(subsets) にタグ付けするのに使
用されてもよい。 【0038】オブジェクトの特性の変更。多くのオペレ
ータはオブジェクトの特性の値、例えば、色、位置、方
向、スケール、太さ、などを変更する。これらは直接の
(straightforward) ワイピングオペレータである。例え
ば、ウィンドウシステムにおいて、ワイピングはウィン
ドウを最大サイズからアイコンサイズまでにする収縮(s
hrink)オペレータを適用するのに使用されてもよい。 【0039】相対的変更のオペレータ。いくつかのオペ
レータはオブジェクトに相対的な変更を引き起こして、
例えば、色を1ビットだけより暗くし、オブジェクトを
1ビットだけ上に移動させ、オブジェクトを1ビットだ
け回転させ、あるいはオブジェクトを1ビットだけ太く
する。相対的なオペレータが特徴とすることは、それら
が繰り返して適用されて徐々により大きな変更をもたら
すことである。ワイピングによってこれらのオペレータ
を適用することは、何回それらを適用するかの論議を持
ち出す。自然なワイピング運動は前後にワイプすること
なので、1つのオブジェクトが同一のワイプストローク
で1回以上選択されるかもしれない。実際のオペレータ
に関してはこれは問題ではない。なぜなら、繰り返して
の適用は余分なものであるからである。1つの解決法
は、1つのワイプストローク、またはストロークの1つ
の枝、または1つのワイプセッション、の範囲内におい
てオペレータのだだ1回の適用だけを許可することであ
る。好ましい解決法はストロークのそれぞれの枝でオペ
レータを反復することである。 【0040】取り消し(Undoing) 。一般的な取り消しオ
ペレータもまたワイピングに適用されてもよい。例え
ば、もしメイクレッドオペレータ(make-red operator)
がアプリケータに付与され、ユーザがそれでいくつかの
オブジェクトをワイプしたと仮定して、ユーザが変えら
れるべきではないいくつかのオブジェクトが赤に変えら
れたことに気がついたとしたらどうであろう。これを解
決するために、取り消しオペレータがアプリケータに付
与され間違って赤に変えられたオブジェクトがワイプさ
れてもよく、その結果として、それらのオブジェクトを
それらの元の色に戻すこととなる。もう1つの例とし
て、もしオペレータが削除であり、いくつかのオブジェ
クトが誤って消去されたらどうであろう。オブジェクト
は消されているので取り消しオペレータによってワイプ
することは困難である。しかしながら、もしワイプ経路
が目に見えるものにされていれば、このことがどこに削
除されたオブジェクトが配置されていたかの指示を与
え、取り消しオペレータによってそれらの位置をワイプ
することがそれらを元に戻すこととなる。 【0041】このように、ワイピングの一般的なユーザ
インタフェース技術は、これらの構成要素の異なった値
の組み合わせによって定義される。与えられたアプリケ
ーションプログラムに関して、アプリケーションプログ
ラマーは、アプリケーションに対するワイピングユーザ
インタフェースを提供するために構成要素に関しての値
の範囲を定義してもよい。これらの選択は、ダイナミッ
クス(dynamics)を実現しかつアプリケーションプログラ
ムのユーザインタフェースの残りの部分にそれらを統合
するアーキテクチャーまたは制御構造に基づかなければ
ならない。 【0042】構成要素の値の範囲が提供されると、アプ
リケータを定義するためにそれらはユーザに利用できる
ものにされなければならない。このための1つの簡単な
標準的な技法は、アプリケータを定義するのにユーザが
使用することのできるセッションに関する設定操作の一
部として、特性シート(property sheet)を備えたアプリ
ケータに関する”ワイパーアイコン(wiper icon)”を提
供することである。ユーザはワイパーの特性シートを開
くことができ、例えば次の構成要素に関する値を設定す
ることができる。 アプリケータ 選択基準 オペレータ アプリケーションダイナミックス グループ化 フィードバック ここで、それぞれの構成要素は許可された値のメニュー
を提供する。例えば、ユーザは、注釈オブジェクト(ann
otation objects)だけを選択してそれらを”コメントリ
スト”に移動させる大きなアプリケータを有するように
ワイパーを設定し、ここで、それらのオブジェクトはワ
イプストロークでグループ化され、またダイナミックス
はそれぞれのワイプストローク後にのみ移動し、またフ
ィードバックは注釈オブジェクトが選択されるとそれら
を赤にする。 【0043】この特性シート技法はほとんどのアプリケ
ーションで必要とされる技法よりも一般的である。最低
限、ユーザはオペレータを選択することができ(でなけ
れば、それは汎用型ワイピングではない)、いちど選択
されると、その他のすべての構成要素はプログラムによ
って適切な値に設定されてもよい。したがって、ユーザ
がなすべきことはオペレータを選択することだけであ
り、これを実行することが容易なものにされてもよい。
もっとも明白な方法は、図2に示されるように、アプリ
ケーションプログラムのユーザインタフェースの一部と
してオペレータを表現するボタン、アイコン、またはメ
ニューアイテムを利用することである。ユーザはワイパ
ーアイコンを例えばボタンに移動して、そのボタンによ
って表現されるオペレータをワイパーに付与するのであ
る。 【0044】ユーザのワイピングアクションがどのよう
に表示されたオブジェクトに影響を及ぼすかをより良く
理解するために、上述された種々の側面を実現するため
に本発明で使用されるワイピングアルゴリズムを駆動す
るいくつかの種類のイベントを詳細に記述することが助
けになるであろう。これらのイベントはユーザの物理的
なアクションによって起動され、上述したようにハード
ウェアおよびソフトウェアによって検出される。好まし
い実施例におけるペンまたは通常の方法でシステムに接
続されるマウスでユーザによって影響を与えられるイベ
ントが以下に記述される。マウスの場合は、机またはテ
ーブルについていても、ユーザがホワイトボード上のオ
ブジェクトを操作することを可能にする。左側の欄は太
い文字でワイパーイベントを表し、右側の欄はそのコマ
ンドを実行するためにユーザは1つの例としてなにをし
たらよいかを説明する。 ワイプモードへ入る ユーザはワイプモードに入りたい旨の信号を送出す る。これは、例えば”ワイプモード”ボタンを押す ことによるような、いくつかの方法でなされる。 ワイプモードを出る 例えば、”描画(Draw)”ボタンを押すことによって 、ユーザはワイプモードから出て他のモードに行き たい旨の信号を送出する。 ワイパーオペレータ ユーザはワイパーによって適用されるオペレータを を設定する 示すボタンまたはアイコンに触れる。 ワイパー特性を設定 ユーザは、ボタンに触れるか、またはメニューから する ワイパーの1つの特性を設定することを選択する。 ワイパーを下ろす ユーザは入力装置を操作してワイパーがディスプレ イに”接触している”旨の信号を送出する。ペン装 置では、これはペンでディスプレイ表面に触れるこ とによってなされる。マウスでは、これはマウスボ タンを押し続けることによって信号を送出する。 ワイパーを上げる ユーザは入力装置を操作してワイパーがディスプレ イに”接触していない”旨の信号を送出する。ペン 装置では、これはペンがディスプレイ表面からペン を持ち上げることによってなされる。マウスでは、 これはマウスボタンを離すことによって信号を送出 する。 ワイパーを移動する ユーザは入力装置を操作してワイパーがディスプレ イ上の新規の位置に移動した旨の信号を送出する。 (システムは入力装置の位置を頻繁な間隔でサンプ ルして、位置が変化するたびに移動を推定する。) ペン装置では、これはディスプレイ表面に接触を保 持しながら表面上でペンを滑らせることによってな される。マウスでは、これはボタンを押し続けなが ら机の上でマウスを滑らせることによってなされる 。 ワイプ経路の反転 ユーザは入力装置をそれの以前の方向を反対にする 方向に移動させる。ソフトウェアアルゴリズムがこ れを検出するために使用されてもよい。 【0045】これらのイベントは、時間をいくつかの異
なった範囲に分割するのに使用される。 【0046】 ワイプセッション範囲 ワイプモードに入ってから出るまで。 ワイプ操作範囲 ワイプモードに入ってから第1のオペレータ設 定までか、またはオペレータ設定から次のオペ レータ設定までか、またはオペレータ設定から ワイプモードを出るまで。 ワイプストローク範囲 ワイパーを下げてから次に上げるまで。 ワイプセグメント範囲 ワイパーを下げてから第1の移動までか、また は移動から次の移動までか、または移動からワ イパーを上げるまで。 ワイプ枝範囲 ワイパーを下げてから第1の反転までか、また は反転から次の反転までか、または反転からワ イパーを上げるまで。 これらの範囲は時間間隔を占有するだけでなく、ワイピ
ングオブジェクトの生成をもおこなう。 【0047】もっとも基本的なオブジェクトはワイプス
トロークセグメントである。ワイプストロークセグメン
トはその2つの終了点によって定義される短い線分であ
り、その終了点はワイパーの2つに位置によって決定さ
れる。ワイパーは好ましくは無次元の点ではなくて、し
っかりした2次元形状である。したがって、セグメント
は太さのない理想化された線分ではなく、むしろ理想化
された線分に沿ってワイパーを滑らせることによって定
義される2次元形状である。 【0048】図3は1つの例を描写する。ワイパーが長
方形の形状であるとき、ワイプセグメントは図5(A)
に示されるように六角形の形状である。ワイパーは理想
化された位置Aから開始して、理想化された位置Bで検
出される。この移動イベントは理想化されたセグメント
〔A,B〕を定義する。しかしながら、Aにあるとき、
ワイパーは実際には長方形領域〔a1,a2,a3,a
4〕を包含する。同様に、Bにあるとき、ワイパーは領
域〔b1,b2,b3,b4〕を包含する。したがっ
て、ワイプセグメントは六角形領域〔a1,a2,a
3,b3,b4,b1〕を包含する。さらに六角形の定
義は移動の方向に依存することに注意されたい。もしB
がAの下側でありかつ左側であれば、セグメントの六角
形は〔a2,a3,a4,b4,b1,b2〕である。
これはセグメントが何であるかのもっとも簡単な例であ
ることに注意されたい。セグメントはどんな形状および
寸法のワイパーを有してもよい。ワイパーはそれが移動
されるときに向きを変えてもよい(例えば、経路ベクト
ルに一致するそれの向きを保持するために)。ワイパー
はそれが移動されるときに特性を変えてもよい(例え
ば、ワイパーは寸法を変えてもよく、またはワイパーの
操作は圧力感応入力装置に応答して定義を変えてもよ
い)。最後に、ワイプセグメント経路は必ずしも直線で
ある必要はなく、曲線であってもよい(例えば、一連の
移動の運動を滑らかにするベジェ曲線)。 【0049】ワイプストロークはセグメントの列であ
る。ストロークの形状は単なるそのセグメントすべての
形状の加算(和集合)である。 【0050】ワイプ操作は1組のワイプストロークであ
る。 【0051】ワイプセッションは1組のワイプ操作であ
る。省略時のオペレータはワイプモードに入るときに設
定されてもよいことに注意されたい。したがって、もし
ユーザが決してオペレータを再設定しなければ、セッシ
ョン全体はただ1つの操作からなる。 【0052】ワイプストローク枝はより複雑である。な
ぜなら、それは特別の機能をなすからである。まず、ワ
イプストロークは必ずしも枝を含む必要はないことに注
意されたい。反転および枝の概念は、同一の領域を前後
に(荒っぽく)ワイプするユーザの運動を捕らえること
を試みるものである。反転を伴わないワイプストローク
はただ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とを有する。ワイプ
ストロークに反転が存在する場合、付加的な枝が定義さ
れる。それぞれの枝はセグメントの部分列である。反転
は、ワイプストロークの座標を簡単に追跡して枝として
座標の反転を解釈する反転検出アルゴリズム(以下でよ
り詳細に述べられる)によって容易に検出される。 【0053】ワイピング技術の目的はディスプレイ上の
ターゲットオブジェクト(ワイプストロークのようなワ
イピイングオブジェクトからそれらのオブジェクトを区
別するためにターゲットオブジェクトと呼ぶ)を選択す
ることである。ワイピング技術の基本的な”エンジン”
はターゲットオブジェクトがワイプセグメントによって
選択されるものを決定することである。選択されたター
ゲットオブジェクトのリストはセグメントリストと呼ば
れる。 【0054】セグメントリストは直接のセグメント選択
アルゴリズムによって計算される。アルゴリズムはター
ゲットオブジェクトの表示領域がセグメントの領域に重
なっているかどうかに関してそれぞれのターゲットオブ
ジェクトを検査する(これはターゲットオブジェクトの
形状と位置およびセグメントの形状と位置についての幾
何学的な計算によってなされる)。ターゲットオブジェ
クトが選択されるかどうかは選択基準によって決定され
る。もっとも簡単な基準はターゲットオブジェクトがセ
グメントとのゼロでない重なり(non-zero overlap)を有
することである。上述したように、より複雑な選択基準
が使用されてもよい。 【0055】枝リストは構成セグメントリストの集合体
である。ストロークリストは構成枝リストの集合体であ
る。操作リストはストロークリストの集合体である。そ
してセッションリストは操作リストの集合体である。 【0056】これらのリストは、ユーザが物理的なワイ
ピングアクションをなすときにコンピュータによって動
的に蓄積されかつ記憶される。蓄積のもっとも小さな単
位はセグメントリストである。しかしながら、セグメン
トリストの新しいターゲットオブジェクトだけが役に立
つ。しかし、”新しい”ターゲットオブジェクトは異な
ったことに関するものであってもよい。それはストロー
クリストに関して新しくてもよい。ストロークリストに
すでに存在するセグメントリストのオブジェクトは”古
い”ものである。ストロークリストに存在するオブジェ
クトを取り除くことによってセグメントリストを減少さ
せることが望ましい。それの結果は(ストロークリスト
に関する)縮小セグメントリストと呼ばれる。通常は、
縮小セグメントリストのオブジェクトを操作して、つぎ
に、縮小セグメントリストのオブジェクトをストローク
リストに追加することが望ましい。 【0057】本発明で使用される適切なワイピングアル
ゴリズムの1つの例が以下で示される。いくつかのアク
ションを説明するためのコメントがアクションに続く引
用符の間に存在する。 【0058】アルゴリズムは次の変数を使用する。 SegList ターゲットオブジェクトのリスト BranchList ターゲットオブジェクトのリスト StrokeList ターゲットオブジェクトのリスト OperationList ターゲットオブジェクトのリスト SessionStrokeList StrokeListのリスト Operator 適用されるオペレータの名前 ApplyAt オペレータが適用される範囲の名前(Segment,Stro ke,Operation,またはSessionByStroke ) Feedback どのターゲットオブジェクトが選択されたかを示す オペレータの名前(例えば、Shadow,Color, など) 【0059】アルゴリズムはイベント駆動型(event-dri
ven)である。 イベント アクション Enter OperationList およびSessionStrokeList をからにする。 Down BranchListおよびStrokeListをからにする。ゼロレングスMo veイベントに関するアクションを実行する。 Move (セグメント選択アルゴリズムを用いて)新しいSegList を計 算する。 if Operator が関係しており、かつApplyAt=Segment なら: BranchListによってSegList を縮小し、 縮小SegList をBranchListに追加し、 縮小SegList にFeedbackを適用し、 縮小SegList にOperatorを適用する。 else : StrokeListによってSegList を縮小し、 縮小SegList をStrokeListに追加し、 縮小SegList にFeedbackを適用し、 if ApplyAt=Segment なら: 縮小SegList にOperatorを適用する。 if この移動がReversalであれば:(反転検出アルゴリズムを 使用して) BranchListをからにする。 Up Moveイベントに関するアクションを実行する。 StrokeListのコピーをSessionStrokeList に入れる。 if ApplyAt=Operationであれば: StrokeListにOperatorを適用する。 OperationList によってStrokeListを縮小する。 OperationList に縮小StrokeListを追加する。 Operator Operatorを指示されたオペレータの名前に設定する。 if ApplyAt=Operationであれば: OperationList にOperatorを適用する。 OperationList をからにする。 Property 適切なワイパーの特性を設定する。 Exit if ApplyAt=Operationであれば: OperationList に Operator を適用する。 if ApplyAt=SessionByStrokeであれば: SessionStrokeList に Operator を適用する。 【0060】ワイプストロークの方向の反転をどのよう
にして検出するかの例が以下に示される。これは水平方
向の反転に関してのみ検査する。それは、大きな垂直の
(ホワイトボードの寸法)表面上で腕の動きによって方
向を反転するのにもっとも簡単な方法である。したがっ
て、それはワイプストロークセグメントの水平成分(X
成分)だけを考える。つぎの4つの変数が、ワイプスト
ロークが生成されるときのそれの状態を特徴づける。 fwdX X軸の前進方向に移動した距離。 revX X軸の前進方向とは逆に移動した距離。 newX もっとも新しいセグメントの長さとX軸の
方向。 T 方向(前進または反転)を確立するための
距離のしきい値。 【0061】これらの変数はワイプストロークの前進方
向(fwdX)および反転方向(revX)の一連の感知を保持す
る。移動の”ノイズ”をフィルタするために、しきい値
(T) が使用されて反転が本当の方向の反転と考えるのに
十分な距離だけ進んだかどうかを確かめる。ワイプスト
ロークが(Downイベントによって)開始されるとき、fw
dXがゼロに初期化される。それぞれのMoveイベントで、
newXは現在の移動のストロークセグメントのX軸方向の
距離に設定される。そして、反転があったかどうかを検
出するために次の検査がなされる(TRUEは反転が存
在することを意味し、FALSEは反転が存在しないこ
とを意味する)。 if newX = 0 // X軸方向に移動がない。 then return FALSE // なにもしない。 if abs(fwdX)<T and // 前進方向がまだ確立されていない。 newX*fwdX<= 0 // 移動がない、または逆のX軸方向である。 then fwdX = newX // 新規の方向に開始。 revX = 0 return FALSE if newX*fwdX> 0 // 移動が同一のX軸方向である。 then fwdX = fwdX + newX revX = 0 return FALSE if newX*fwdX< 0 // 移動が逆のX軸方向である。 then revX = revX + newX // 反転の距離を積算する。 if abs(revX)<T // 反転の距離がしきい値より小さい。 then return FALSE // 反転としてカウントするには不十分。 else // 反転はしきい値に達している。 fwdX = revX // 前進方向を変更する。 revX = 0 return TRUE 【0062】この分野に精通した者は、本発明が上述さ
れた特定のアルゴリズムの使用に制限されないことを理
解するであろうし、また、他のアルゴリズムがここで記
述されるワイピングアクションを実現するのに容易に考
案されることがわかるであろう。その原理は簡単であ
る。つまり、ワイプオブジェクトと現時点で稼働中の選
択基準とに照らして検査することによってどのターゲッ
トオブジェクトが選択されるかを決定する。選択される
ターゲットオブジェクトを表現する関連したデータ構造
体を変更することによってワイピングアクションを実現
する。例えば、もしオペレータが削除であれば、オブジ
ェクトのデータ構造体をオブジェクトリストから取り除
き、もしオペレータがメイクレッドであれば、カラー属
性を赤に変更し、もしオペレータが収縮であれば、オブ
ジェクト構成要素の座標を再計算する、などである。 【0063】ここで、いかなるときにでもスタイラスが
どのオブジェクトに接触しているかを決定する効果的方
法を捜し出すためのより厳密な記述が以下で述べられ
る。いくつかのオブジェクトに接触しかつその他を回避
する経路を特定しているときのユーザを考える。どのオ
ブジェクトが経路上に存在するであろう?。もっとも低
いレベルにおいて、ユーザのワイプアクションは一連の
イベントとして現れる。これらのほとんどがスタイラス
が移動された新しい位置を報告してくれる。それ以上の
情報はないので、一連の直線セグメントに沿った”アプ
リケータ”カーソルの射影としてワイプ”経路”を表現
する。これらのセグメントは非常に短くてもよい。アプ
リケータカーソルとそのカーソルが交差するオブジェク
トの両方が実質的な幅を有するので、経路のいくつかの
連続的なセグメントが同一のオブジェクトに接触するこ
とがしばしば発生する。一般的に、与えられたストロー
クの期間において与えられた操作を1回以上オブジェク
トに適用することは望ましくない。 【0064】図5乃至図11を参照すると、O、カーソ
ル形状SH(図5)、および1対の点AとB(セグメン
トに一致する)、のオブジェクトの組が与えられ、オブ
ジェクトのどれかがABに沿ったSHの射影の結果とし
て生じるワイプセグメントによって接触される。簡単の
ために、xおよびy軸に平行な辺を有する長方形カーソ
ルだけを考える。以下で”長方形”という用語を用いる
場合、そのような長方形を意味するものとする。また2
つのタイプのオブジェクト、すなわち文字とストローク
だけを考える。 【0065】ABに沿った〔長方形〕SHの射影の結果
として生じる経路セグメントは特殊な種類の六角形であ
り、それの4つの辺はxおよびy軸に平行である。以下
で”六角形”という用語を用いる場合、そのようなオブ
ジェクトを意味するものとする。そのような六角形は2
つのクラスによって現れることに注意されたい。一方は
右上から左下へ進むと考えられ、他方は左上から右下へ
進むと考えられる。最初の場合には、それをNESW−
六角形と呼び、第2の場合には、それをNWSE−六角
形と呼ぶ。(完全に水平または垂直の軌道はもう1つの
〔一方の寸法がより大きい〕長方形の変形したものを提
供する。) 【0066】最初に文字を考える。もしワイプセグメン
トが文字を包含するもっとも小さい長方形である文字
の”境界ボックス”と交差するのであれば、そのワイプ
セグメントは文字と交差するという。ゆえに、問題は、
ある六角形がある長方形に交差するかどうかということ
になる。ここで図7を参照する。NESW−六角形の場
合を考えてみよう。六角形自身はそのもっとも離れた2
つの点によって定義される境界ボックスを有する。六角
形はそれ自身の境界ボックスの中にあるので、2つの境
界ボックスが交差しなければ、六角形は文字と交差する
ことができない。ゆえに、まずそのことを検査する。長
方形の交差は自明のことであるが、それぞれの境界ボッ
クスの交差は、六角形が文字の境界ボックスと交差する
ことを保証するのには不十分である。NESW−六角形
の場合、2つの過程のいずれかで誤りをおかす。これら
の状況の一方にあるときにどのようにして検出するか
?。ゆえに、文字の境界ボックスの右下角が六角形の最
上位”対角線”の”上側”にある場合(図8)、または
文字の境界ボックスの左上角が六角形の最下位”対角
線”の”下側”にある場合(図9)の2つを考える。こ
れらは計算に関しては十分に簡単である。x座標を与え
られた線分上のいかなる点のy座標も捜し出すことは簡
単なことである。ゆえに、第1の偽陽性(false positiv
e)(”上側”の場合)を検査するために、文字の境界ボ
ックスの右辺と同一の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 【0067】ここで、ワイプセグメントの六角形が任意
の”ストローク”に交差するかどうかをどのようにして
表すかを考えたい。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 【0068】まだ intersectSegAndHex() に関するアル
ゴリズムを与えること、すなわちセグメントが六角形と
交差するかどうかをどのようにして判定するかを説明す
ることが残っている。この問題を解決するには、多分、
多くの方法が存在する。ここでは本発明で実施された1
つの例を示す。任意の六角形は平面を(中央の四角が六
角形の境界ボックスである巨大な三目並べゲーム(tic-t
ac-toe game)のような)9つの領域に分割するといえ
る。ここで図10を参照する。これらの9つの領域
を(”4象限(quadrants) ”から類推して)”ノナント
(nonants) ”と呼ぶことにする。ここで、いかなるスト
ロークセグメントに対しても、ストロークセグメントの
端点(endpoints) が存在するのはこれらのどのノナント
かを判定することができる。(任意に、線を引くものが
常に中央にもっとも近いノナントに有利なものであると
仮定する。すなわち、不明確さは常に中央にもっとも近
いノナントに有利に判定されると仮定する。)参照を簡
単にするために、ノナントおよび六角形の頂点に図11
に示されるようなラベルを付ける。その間をストローク
セグメントが進む2つのノナントを与えると、交差問題
はすでに判定されている。例えば、b1からb3へ進む
セグメントは六角形と交差しなければならないし、a1
からc1に進むセグメントは六角形に交差することがで
きない。 【0069】しかし、多くの(厳密にいえば23通り
の)より複雑な場合が存在する。例えば、b1とc2と
の間のセグメントに関する交差の問題は、文字の場合に
遭遇したのと同一種類の”上側/下側”問題を引き起こ
すこととなる。すなわち、点Aがセグメントの下側かど
うかの問題である。関係するノナント対を列挙してみよ
う。判定手順の同一性によってグループ化し、ほぼ複雑
性の増加する順に並べると、それらは、 グループ1 :(a1,b3),(a2,b3),(a
2,c3) グループ2 :(a1,c2),(c3,b1),(c
2,b1) グループ3 :(a1,c3) グループ4 :(a2,c1),(a2,b1),(a
3,b1) グループ5 :(a3,c2),(b3,c2),(b
3,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つがセグメ
ントの下側であれば六角形に交差する。 【0070】つぎに、非グループXのラベルを付けられ
た残りの9つの場合を考える。まず、端点の一方だけが
b2に存在すると仮定する。もしその端点が六角形の内
部に存在すれば、明らかにセグメントは六角形と交差す
る。そうでなければ、判定基準はb2にある端点が六角
形の”上側”または”下側”にあるかどうかに依存す
る。ここでは”上側”の場合だけを記述する。なぜな
ら”下側”の場合は完全に対称だからである。他方の端
点の可能な位置が8つ存在する(b2に隣接するノナン
トのそれぞれに対して1つ)。それらを再度グループ化
する。 グループXa1 : a1 グループXa2 : b3,c3,c2 グループXa3 : a2,a3 グループXa4 : b1,c1 【0071】グループXa1はただ偽を返すのみである。
グループXa2はただ真を返すのみである。グループXa3
は、点Cがセグメントの上側にある場合のみ真を返す。
そして、グループXa4は点Bがセグメントの上側にある
場合に真を返す。 【0072】最後に、それの端点の両方がb2に存在す
るセグメントは、少なくとも一方の端点が六角形の内部
に存在するか、あるいは一方の端点が六角形の上側にあ
りかつ他方の端点が六角形の下側にある、かのいずれか
である場合のみ六角形に交差する。 【0073】ここで、セグメント−六角形交差判定手順
のわずかに抽象化された表現のみが示される。 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) 【0074】NESW−六角形のみを処理するためのア
ルゴリズムと判定手順を例示し、また概略を述べた。N
WSE−六角形を処理するための手順はまったく対称的
なものである。垂直または水平のワイプ経路軌道によっ
て生じる長方形を処理するための手順は、一般的には、
垂直のラインセグメントを処理するためのある種の単純
化および特殊化に類似する(ここではゼロによる割り算
は危険である)。 【0075】本発明によれば、ターゲットオブジェクト
の選択基準の概念は時間の側面を含むように拡張されて
もよい。 【0076】本発明のこの側面の選択基準は、ワイピン
グに適用されるとき、オブジェクトが時間的な流れにお
いてユーザによって生成される共通状況を調整(addres
s) する。描画プログラムにおいては、ユーザはオブジ
ェクトを生成し、その次に、それらのオブジェクトを編
集するのにオブジェクトを選択しなければならない。よ
り明確な例は、ユーザがペンのような入力装置でディス
プレイ上にストロークを描画することを可能とする描画
プログラムである。ストロークはオブジェクトであり、
そのオブジェクトは流れの中で生成される。さらに、人
が描画する進路に空間的なオーダライン(orderliness)
が存在することは経験的な事実である(すなわち、人
は、一般的には、ディスプレイ上の勝手な場所にストロ
ークを生成しない)。このことが、時間的な順序(tempo
ral sequence) が、ユーザの意思を表現する理路整然と
した(coherent)選択を創造するオブジェクトの暗黙のグ
ループ化の解決策であることを示唆する。 【0077】ここで、1つの例を考える。ユーザが5つ
のオブジェクトを、A、B、C、D、Eの順に生成す
る。これらは、空間的な集団の縁にオブジェクトCを備
える空間的な集団(cluster) で存在する。後に、ユーザ
は5つのオブジェクトを選択するつもりであるが、5つ
を通しての掃引アクションを実行するとき、オブジェク
トCに交差することに失敗する。純粋空間閉鎖によって
4つのオブジェクトだけが選択される。しかしながら、
プログラムは判定を助けるような時間的生成順序を用い
てオブジェクトCをも包含し、5つすべてのオブジェク
トを選択する。 【0078】時間的な順序で1組のオブジェクトを考え
れば(または、リアルタイムスタンプによって)、これ
らのすべてのオブジェクトを取り囲む時間的な間隔が計
算されてもよい。もしその時間間隔の間に生成されるす
べてのオブジェクトが捜し出されそれらが組に包含され
るならば、これが純粋時間閉鎖と呼ばれる。 【0079】しかしながら、それ自身による純粋時間閉
鎖はユーザにとって意味のあるグループ化のための信頼
性のある解決策ではない。人はしばしば”横道(side tr
ack)”に入り込む。例えば、ユーザがAおよびBを生成
し、描画の他の部分で修正されるべきものに気が付いて
Cを生成し、それから、AおよびBがあるところに戻っ
てDおよびEを生成することを続行する。この場合、C
は当然A、B、D、およびEと一緒にグループ化されな
い。これの解決策はCが他のオブジェクトから空間的に
分離されていることである。したがって、ユーザの意思
に合致する信頼性のあるグループ化を提供するために、
本発明のこの側面による組み合わせられた時間−空間閉
鎖が計算される必要がある。 【0080】このように、空間および時間の基準を組み
合わせることは種々の環境に有益である。以下では、異
なった状況に関する本発明によるアルゴリズムの例を示
す5つの事例が列挙される。これらのアルゴリズムは空
間的かつ時間的な”近接度(nearness)”検査を用い、そ
のためのアルゴリズムが5つの事例の後に記述される。 【0081】つぎの表記法と定義が用いられる。コンピ
ュータに基づいたシステムはグラフィックオブジェクト
の集合から構成される。それぞれのオブジェクトはディ
スプレイ上の位置を有する。Sはディスプレイ上の空間
的領域を指示する。その領域は多くの異なった方法でユ
ーザによって定義される(例えば、ループまたは投げ輪
を描画することによって、長方形を掃引することによっ
て、ワイプストロークによって、または点に触れること
によってさえも)。C(S)は、Sの空間的な閉鎖、す
なわちいくつかの選択基準(例えば、オブジェクトがす
べてSの中に位置するという基準)でSによって選択さ
れるディスプレイ上のオブジェクトの組を指示する。 【0082】それぞれのグラフィックオブジェクトはそ
れに関連した時刻を有する。その時刻は、生成された時
刻、最後に変更された時刻、最後に参照された時刻、な
どであってもよい。そのような時刻は通常は履歴リスト
に保持される。しかし、ここでの目的のためには、簡単
に、適切な時刻はオブジェクトの特性としてそれぞれの
オブジェクトに関連するものとする。Sに類似して、T
は時間的な領域(すなわち、時間間隔)を指示する。C
(T)はTの時間的な閉鎖、すなわちそれの関連する項
目がTに存在するオブジェクトの組を指示する。 【0083】 事例1 : 空間的選択の時間補間(interpolation) このアルゴリズムは、例えばワイプ選択がなされるよう
な状況において有益であるが、いくつかの意図されたオ
ブジェクトがワイプストロークによって捕らえ損なわれ
る。 1.Sがなんらかのユーザアクションによって与えられ
る。 2.C(S)を計算する。選択をC(S)に設定する。 3.もっとも小さな時間間隔Tを計算する。Tは選択を
包含する。 4.C(T)を計算する。 5.選択に存在しないが(空間近接度検査によって)空
間的な選択に近接しているC(T)におけるそれぞれの
オブジェクトに関して、それを選択に追加する。 6.選択に戻る。 【0084】 事例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.選択に戻る。 【0085】事例3 : 部分的な空間的包含のための
時間キュー(time cue) このアルゴリズムは、ループ選択がなされる状況および
少しのオブジェクトがループにおいて部分的にのみ選択
される(すなわち、それらがループに部分的に入ってお
り、かつ部分的に出ている)状況で有益である。アルゴ
リズムは部分的に包含されるオブジェクトが包含される
かどうかを判定する。 1.Sがなんらかのユーザアクションによって与えられ
る。 2.C(S)を計算する。選択をC(S)に設定する。 3.Sによって部分的に選択されたオブジェクト(例え
ば、S内に部分的にのみ取り囲まれたオブジェクト)の
組であるP(S)を計算する。 4.(時間的近接度検査によって)時間的に選択に近接
するP(S)内のそれぞれのオブジェクトに関して、そ
れを選択に追加する。 5.選択に戻る。 【0086】事例4 : 時間選択の拡張の空間的な検
査 このアルゴリズムは、逆方向の操作、すなわち逆の時間
順序で以前の操作を取り消す操作(例えば、”バックス
トローク”がストロークが生成された逆の順序でそれら
のストロークを消去するような)をなすときに有効であ
る。このアルゴリズムは、逆方向の操作を継続するのが
おそらく不適当となるのを検出する停止基準を提供す
る。 1.1つのオブジェクトが与えられる(通常、生成また
は操作されたもっとも最近のオブジェクト)。時間間隔
においてそのオブジェクトを単集合(singleton) の組と
考える。選択をC(T)に設定する。 2.選択におけるオブジェクトに関連する時刻のもっと
も早い時刻Tmin を捜し出す。 3.関連する時刻がTmin の直前であるオブジェクトO
を捜し出す。 4.もしOが(空間的近接度検査によって)空間的に選
択に近接していれば、Oを選択に追加してステップ2へ
戻る。 5.もしそうでなければ、選択の拡張を停止する。 【0087】この場合、処理は、オブジェクトの集合を
構成する空間的な選択から空間−時間基準を用いて集合
を変更することになる。事例4は、時間的に決定された
集合によって開始して空間−時間基準によってそれを変
更することを含む代替処理の1つの例である。代替の1
つの例は、もっとも最近に生成されたオブジェクトに関
する要求によって時間的に決定された集合をユーザが指
定することである。 【0088】事例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.もしそうでなければ、選択の解放を停止する。 【0089】空間的近接度検査 :この検査は、与えら
れたオブジェクト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 を返す。 【0090】時間的近接度検査 :この検査は、与えら
れたオブジェクトOが与えられたオブジェクトの組、つ
まり選択に時間的に”近接している”ことが真であるか
どうかを決定する。標準しきい値時間Dthreshが存在
し、オブジェクトOは常にこの範囲内で選択に時間的
に”近接している”とみなされる。他方、近接度は、選
択におけるオブジェクトの時間的な密度に関連して計算
される。D=Oから選択におけるもっとも近接なオブジ
ェクトまでの時間差分、を計算する。 if D<Dthresh、then True を返す。 if 選択がただ1つのオブジェクトを有するれば、then
Falseを返る。選択をソートする。その結果オブジェク
トは時間順にである。選択における連続するそれぞれの
i (最後は除く)に対して、 Di =Xi とXi+1 との間の時間差分、を計算。 A=Di の平均、を計算する。 S=Di の標準偏差、を計算する。 if D<(A+2*S) then Trueを返す。 else False を返す。 【0091】空間的なグループ化と時間的なグループ化
を組み合わせる前述したアルゴリズムは、多くの場合に
おいて、オブジェクトのもっとも適切なグループ化、す
なわちお互いにうまく関係しているオブジェクトのグル
ープ化、したがってユーザの意思にもっとも合致しそう
なオブジェクトのグループ化を提供することが期待でき
ることは明白であろう。いったんターゲットオブジェク
トが選択されると、それはターゲットオブジェクトのデ
ータ構造体の選択されたフィールドに値を格納すること
によってまたはターゲットオブジェクトへのポインタを
リストに格納することによって容易に設定されるが、そ
のようにして選択されたターゲットオブジェクトは上述
された方法と同様の方法で操作されてもよい。 【0092】図2は、選択されるターゲットオブジェク
トを決定するための時間−空間閉鎖を用いるいくつかの
利点を例示する。例えば、もし文字”ipe”が文字”
W”を生成してすぐに生成されたならば、物理的に分離
されているにもかかわらず、”W”および”ipe”は
両方とも同一のオブジェクト47の一部であると考えら
れる。対照的に、文字”B”は後で生成されたと考える
と、たとえワイプストローク50が”B”に交差してい
てもそれは選択されない。同様な方法は、3つの分離し
たストロークセグメントから作られていても、単一のオ
ブジェクトとして文字”OK”を取り扱われるようにす
る。 【0093】 【発明の効果】空間−時間基準は、自動的に適用される
ように通常はユーザインタフェースプログラムに組み込
まれる。しかしながら、ユーザが空間−時間メカニズム
の制御を与えてもよい。例えば、図2は空間−時間メカ
ニズムのパラメータを設定するための2つのボタン60
および61を示す。したがって、ワイプボタン38がユ
ーザによってクリックされ、それに続いてグループ空間
ボタン60がクリックされるとき、ワイパー近接度、適
用範囲、などのような純粋空間閉鎖に望まれるパラメー
タをユーザが選択することを可能にするメニューがポッ
プアップされる。ユーザがグループ時間ボタン61をク
リックすると、メニューがポップアップされてユーザが
どの時間基準を選択された空間基準と組み合わせるかを
選択することを可能にする。それのもっとも簡単な適用
においては、ユーザはオブジェクト選択に対して時間的
近接度検査を確立するために上で列挙された5つのアル
ゴリズムの1つを選択する。時間的な選択の側面を空間
的な選択の側面に組み合わせるその他の方法もまた本発
明の一部であると考えられる。 【0094】このように、その時またはいつか後の結合
処理に対する選択のために表示されるオブジェクトを自
然にグループ化する方法として、ユーザとコンピュータ
制御されたディスプレイとの間の新規性のあるグラフィ
ックユーザインタフェースが記述された。ここで記述さ
れたインタフェース技術は、特に研究発表に使用される
形態のホワイトボードすなわち図式の手書き写生を可能
にするその能力に対して、およびお互いに考えを交換す
るためのその他同種類のものに有益である。
【図面の簡単な説明】 【図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・・・ボタン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル ケイ.マコール アメリカ合衆国 カリフォルニア州 94025 メンロ パーク ユクリッド アベニュー 1987 (72)発明者 フランク ジー.ハラズ アメリカ合衆国 カリフォルニア州 95060 サンタ クルズ ブラッドリー ドライブ 130 (56)参考文献 特開 平3−48975(JP,A) 特開 平3−71270(JP,A) 特開 平2−230378(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 11/80 G06F 3/00 G06F 3/14 G09G 5/36 CSDB(日本国特許庁)

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】 ユーザが入力装置を操作することによっ
    てコンピュータ制御されたディスプレイ装置に表示され
    たオブジェクトを動的に選択および操作する方法であっ
    て、 (a)オブジェクトセレクタによって選択されたオブジ
    ェクトの集合を生成するためにユーザが入力装置を操作
    する手段を提供する段階と、 (b)空間の基準がオブジェクトセレクタに関して相対
    的なオブジェクトの位置を含み、時間の基準がそれぞれ
    のオブジェクトに関連する時刻を含む、表示オブジェク
    トを選択するための空間−時間の選択基準を確立する段
    階と、 (c)オブジェクトセレクタをアクセスしてそのセレク
    タを少なくとも1つの表示されたオブジェクトに関連づ
    けて、それによってそのオブジェクトを集合に追加する
    段階と、 (d)段階(b)の空間−時間の選択基準を用いること
    によって段階(c)で選択されたオブジェクトの集合を
    変更する段階と、 を備えたことを特徴とするオブジェクトを動的に選択お
    よび操作する方法。
JP08157193A 1992-04-15 1993-04-08 オブジェクトを動的に選択及び操作する方法 Expired - Fee Related JP3501821B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US869559 1986-06-02
US07/869,559 US5404439A (en) 1992-04-15 1992-04-15 Time-space object containment for graphical user interface

Publications (2)

Publication Number Publication Date
JPH0644021A JPH0644021A (ja) 1994-02-18
JP3501821B2 true JP3501821B2 (ja) 2004-03-02

Family

ID=25353794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08157193A Expired - Fee Related JP3501821B2 (ja) 1992-04-15 1993-04-08 オブジェクトを動的に選択及び操作する方法

Country Status (4)

Country Link
US (1) US5404439A (ja)
EP (1) EP0566294B1 (ja)
JP (1) JP3501821B2 (ja)
DE (1) DE69330979T2 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108288A (ja) * 1991-10-17 1993-04-30 Fuji Xerox Co Ltd 情報分類支援装置
EP0566293B1 (en) * 1992-04-15 2003-07-16 Xerox Corporation Graphical drawing and editing systems and methods therefor
US5568604A (en) * 1992-12-31 1996-10-22 U S West Technologies, Inc. Method and system for generating a working window in a computer system
US5754808A (en) * 1993-09-29 1998-05-19 Hitachi Software Engineering Co., Ltd Method for implementing a program for an object-oriented programming system using graphics
US5513271A (en) * 1993-11-24 1996-04-30 Xerox Corporation Analyzing an image showing a proportioned parts graph
US5659639A (en) * 1993-11-24 1997-08-19 Xerox Corporation Analyzing an image showing editing marks to obtain category of editing operation
US5563991A (en) * 1993-11-24 1996-10-08 Xerox Corporation Using an image showing a perimeter relationship representation to obtain data indicating a relationship among distinctions
DE69414423T2 (de) * 1994-07-28 1999-04-01 Hewlett Packard Co Vorrichtung zur datenverwaltung
JP3357760B2 (ja) * 1995-03-16 2002-12-16 株式会社東芝 文字図形入力編集装置
DE19543959C2 (de) * 1995-11-25 2000-04-20 P & I Gmbh Computergestützte Projektionsvorrichtung
DE19546749C1 (de) * 1995-12-14 1997-07-24 Friedemann Weber Zeichentisch zur Darstellung und Bearbeitung von Computeranwendungen
US5930813A (en) * 1995-12-21 1999-07-27 Adobe Systems Incorporated Method and system for designating objects
US5801699A (en) * 1996-01-26 1998-09-01 International Business Machines Corporation Icon aggregation on a graphical user interface
JP3378900B2 (ja) * 1996-06-25 2003-02-17 富士通株式会社 オブジェクト編集方法,オブジェクト編集システム及び記録媒体
US5946696A (en) * 1996-05-31 1999-08-31 Microsoft Corporation Object property lists
US5956468A (en) * 1996-07-12 1999-09-21 Seiko Epson Corporation Document segmentation system
US5774119A (en) * 1996-08-14 1998-06-30 International Business Machines Corporation Graphical interface method, apparatus and application for selection of target object
US6195096B1 (en) 1996-08-14 2001-02-27 International Business Machines Corporation Graphical interface method, apparatus and application for creating and modifying a multiple-value text list
US6104395A (en) * 1996-08-14 2000-08-15 International Business Machines Corporation Graphical interface method, apparatus and application for opening window of all designated container objects
US5872568A (en) * 1996-08-14 1999-02-16 International Business Machines Corporation Application and method for creating a list from pre-defined and user values
US5781193A (en) * 1996-08-14 1998-07-14 International Business Machines Corporation Graphical interface method, apparatus and application for creating multiple value list from superset list
US5867157A (en) * 1996-08-14 1999-02-02 International Business Machines Corporation Graphical interface method, apparatus and application for creating and modifying a list of values with multiple components
US5774120A (en) * 1996-08-14 1998-06-30 International Business Machines Corporation Refresh and select-all actions in graphical user interface
US5818444A (en) * 1996-08-14 1998-10-06 International Business Machines Corporation Method, apparatus and application for object selective but global attribute modification
US5784057A (en) * 1996-08-14 1998-07-21 International Business Machines Corporation Dynamically modifying a graphical user interface window title
US6026417A (en) * 1997-05-02 2000-02-15 Microsoft Corporation Desktop publishing software for automatically changing the layout of content-filled documents
US5977973A (en) * 1997-05-14 1999-11-02 Microsoft Corporation Window linking
US5889523A (en) * 1997-11-25 1999-03-30 Fuji Xerox Co., Ltd. Method and apparatus for dynamically grouping a plurality of graphic objects
US6396005B2 (en) 1998-06-15 2002-05-28 Rodgers Technology Center, Inc. Method and apparatus for diminishing grid complexity in a tablet
US6459442B1 (en) * 1999-09-10 2002-10-01 Xerox Corporation System for applying application behaviors to freeform data
US7391422B1 (en) 1999-12-22 2008-06-24 Adobe Systems Incorporated Method and apparatus for painting groups of objects
EP1111543A3 (en) * 1999-12-22 2002-11-27 Adobe Systems, Inc. Method and apparatus for painting groups of objects
US6897853B2 (en) * 2000-11-10 2005-05-24 Microsoft Corp. Highlevel active pen matrix
US7602991B2 (en) * 2001-10-24 2009-10-13 Nik Software, Inc. User definable image reference regions
WO2003036558A1 (en) 2001-10-24 2003-05-01 Nik Multimedia, Inc. User definable image reference points
FI115422B (fi) * 2001-11-15 2005-04-29 Nokia Corp Menetelmä tietojen käsittelemiseksi päätelaitteessa ja päätelaite
US7299424B2 (en) 2002-05-14 2007-11-20 Microsoft Corporation Lasso select
US7050632B2 (en) * 2002-05-14 2006-05-23 Microsoft Corporation Handwriting layout analysis of freeform digital ink input
EP1574976B1 (en) * 2004-03-12 2009-05-06 Dassault Systèmes A process for selecting and handling objects in a computer-aided design system
US8134575B2 (en) * 2004-09-30 2012-03-13 Microsoft Corporation Maintaining graphical presentations based on user customizations
US7779362B1 (en) * 2005-09-02 2010-08-17 Adobe Systems Inc. Methods and apparatus for selecting objects by state
US8181122B2 (en) * 2007-07-30 2012-05-15 Perceptive Pixel Inc. Graphical user interface for large-scale, multi-user, multi-touch systems
JP2009116824A (ja) * 2007-11-09 2009-05-28 Canon Inc 描画編集システム及びそのグループ化処理方法、プログラム
EP2564298A4 (en) * 2010-04-26 2015-05-27 Smart Technologies Ulc METHOD OF HANDLING OBJECTS FOR PRESENTING NOTES IN AN INTERACTIVE INPUT SYSTEM AND INTERACTIVE INPUT SYSTEM FOR CARRYING OUT THIS METHOD
US20130125066A1 (en) * 2011-11-14 2013-05-16 Microsoft Corporation Adaptive Area Cursor
US9323431B2 (en) 2012-05-31 2016-04-26 Multitouch Oy User interface for drawing with electronic devices
US9411461B2 (en) * 2012-10-17 2016-08-09 Adobe Systems Incorporated Moveable interactive shortcut toolbar and unintentional hit rejecter for touch input devices
KR101337872B1 (ko) * 2013-04-04 2013-12-06 주식회사 디오텍 잉크 텍스트 데이터 편집장치 및 잉크 텍스트 데이터 편집방법
JP6043019B2 (ja) * 2013-11-19 2016-12-14 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム
US20170090713A1 (en) * 2015-09-29 2017-03-30 International Business Machines Corporation Adjusting eraser size in drawing applications
US10387747B2 (en) * 2017-06-26 2019-08-20 Huddly As Intelligent whiteboard collaboratio systems and methods
US20200050342A1 (en) * 2018-08-07 2020-02-13 Wen-Chieh Geoffrey Lee Pervasive 3D Graphical User Interface
US10796086B2 (en) * 2018-08-25 2020-10-06 Microsoft Technology Licensing, Llc Selectively controlling modification states for user-defined subsets of objects within a digital document

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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
US4823285A (en) * 1985-11-12 1989-04-18 Blancato Vito L Method for displaying hairstyles
US5072412A (en) * 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
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
US5117351A (en) * 1988-10-21 1992-05-26 Digital Equipment Corporation Object identifier generator for distributed computer system
CA2003687C (en) * 1989-03-13 1999-11-16 Richard Edward Shelton Forms manager

Also Published As

Publication number Publication date
EP0566294A3 (en) 1995-09-06
US5404439A (en) 1995-04-04
DE69330979T2 (de) 2002-04-04
EP0566294A2 (en) 1993-10-20
JPH0644021A (ja) 1994-02-18
EP0566294B1 (en) 2001-10-24
DE69330979D1 (de) 2001-11-29

Similar Documents

Publication Publication Date Title
JP3501821B2 (ja) オブジェクトを動的に選択及び操作する方法
JP3789946B2 (ja) オブジェクトを動的に選択及び操作する方法
US11960706B2 (en) Item selection using enhanced control
CN101278251B (zh) 交互式大规模触摸面系统
JP6074170B2 (ja) 近距離動作のトラッキングのシステムおよび方法
US8799821B1 (en) Method and apparatus for user inputs for three-dimensional animation
KR101098015B1 (ko) 무접촉식 동작 기반의 입력
Bérard The magic table: Computer-vision based augmentation of a whiteboard for creative meetings
JP3997566B2 (ja) 描画装置、及び描画方法
CN111475097B (zh) 一种笔迹选择方法、装置、计算机设备和存储介质
JP2013037675A5 (ja)
US10180714B1 (en) Two-handed multi-stroke marking menus for multi-touch devices
CN103440033B (zh) 一种基于徒手和单目摄像头实现人机交互的方法和装置
CN1947087A (zh) 在多触点触摸屏上操作虚拟对象的控制器
CN102096548A (zh) 采用触控式显示器复制对象的方法和系统
CN114625255B (zh) 面向可视化视图构建的徒手交互方法、可视化视图构建装置和存储介质
Moscovich et al. A multi-finger interface for performance animation of deformable drawings
Iacolina et al. Natural Interaction and Computer Graphics Applications.
Upasana et al. Virtual mouse with RGB colored tapes
Alavi A Framework for Optimal In-Air Gesture Recognition in Collaborative Environments
Fukuchi Concurrent Manipulation of Multiple Components on Graphical User Interface
JP2022146853A (ja) 表示装置、プログラム、表示方法、表示システム
CN117950533A (zh) 投影装置的遥控交互方法、装置及计算机可读储存介质
Liu et al. Using domain specific language for large screen game interaction
Maged et al. PolyPie: A Novel Interaction Techniques For Large Touch Surfaces With Extended Wall Displays

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031203

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071212

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081212

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091212

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101212

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101212

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees