JP2005092447A - ウインドウの制御方法 - Google Patents

ウインドウの制御方法 Download PDF

Info

Publication number
JP2005092447A
JP2005092447A JP2003323442A JP2003323442A JP2005092447A JP 2005092447 A JP2005092447 A JP 2005092447A JP 2003323442 A JP2003323442 A JP 2003323442A JP 2003323442 A JP2003323442 A JP 2003323442A JP 2005092447 A JP2005092447 A JP 2005092447A
Authority
JP
Japan
Prior art keywords
pointer
window
movement
line segment
vertex
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.)
Granted
Application number
JP2003323442A
Other languages
English (en)
Other versions
JP4111897B2 (ja
Inventor
Mitsuharu Tsukiori
光春 月折
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2003323442A priority Critical patent/JP4111897B2/ja
Priority to EP04019193A priority patent/EP1517227A3/en
Priority to US10/925,912 priority patent/US20050060658A1/en
Publication of JP2005092447A publication Critical patent/JP2005092447A/ja
Application granted granted Critical
Publication of JP4111897B2 publication Critical patent/JP4111897B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance

Abstract

【目的】 操作対象とする枠線や頂点にポイント位置を正確に位置付ける操作を行うことなく操作対象を特定し、ウインドウの拡大縮小および移動を容易に行うこと。
【構成】 ポインタの移動位置を順次取得し、テーブルに記憶するステップと、前記テーブルに記憶したポインタの移動位置情報を連結して求められる前記ポインタの移動軌跡の一部が制御対象のウインドウの枠線に交差しているかを判定し、交差している場合、a.交差するウインドウの枠線の数、b.交差する枠線の端点座標の数から成る要素をチェックし、これらの要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識し、操作対象とするウインドウ枠または頂点を決定するステップと、操作対象として決定したウインドウ枠または頂点を、前記認識した命令に従い、ポインタの移動量に対応して移動して拡大、縮小、移動するステップを備える。
【選択図】 図1

Description

本発明は、画面に表示されたウインドウをポインタによるジェスチャ操作で簡単に拡大または縮小または移動するようにしたウインドウの制御方法に関するものである。
図形の拡大縮小または移動などの操作を行うアプリケーションには、図形を囲む矩形を表示し、さらにこの矩形の頂点や辺の中央に目印を表示し、もしくは図形の頂点に目印を表示し、拡大縮小や移動といった操作はこれらの目印にポインティングデバイスによって位置が指定されるカーソルを合わせ、任意の方向にドラッグすることにより実現されるものがある。
また、多くのウインドウシステムで表示されるウインドウは矩形であり、各辺にカーソルを合わせてポインティングデバイスをドラッグすることにより、カーソルを合わせた辺に対向する辺の位置と長さが固定された状態で水平方向または垂直方向に拡大縮小ができ、さらに頂点を含む一定の範囲にカーソルを合わせてポインティングデバイスをドラッグすることにより、その頂点に向かい合った頂点の位置を固定した状態で水平方向または垂直方向あるいは水平垂直方向に拡大縮小できるものがある(特許文献1参照)。
特開平6−103013号公報
拡大縮小、または移動、最大化、最小化を行う場合には、上記のポインティングデバイスを用いて、枠線や頂点といった非常に狭い範囲にカーソルやポイントを合わせる必要があるため、合わせ方によっては意図していない別の枠線が指定されたり、また意図している操作とは異なる操作になってしまうという問題がある。
特に、電子黒板システムのように、ホワイトボードで構成される画面上にウインドウを投影表示し、その投影表示されたウインドウ内でポイントデバイス(電子ペン)により図形描画などの各種の操作を行う場合、まず、ポイントデバイスのポイント位置を認識するための座標系と投影表示するウインドウ枠の座標系の原点座標の位置合わせを行うが、その位置合わせ後に、ホワイトボード自体の位置が振動や人の接触等によってずれた場合、前記2つの座標系の原点座標がずれてしまう。このような状態では、ウインドウの拡大または縮小を行うために、投影表示されたウインドウの枠線または頂点位置にポイントデバイスのポイント位置を正確に位置付けたとしても、認識されるポイント位置は操作者が指定した枠線または頂点位置で指定した以外のものとなってしまい、このため、操作者が意図した枠線または頂点を認識させ、拡大縮小を行うためには、2つの座標系の原点座標のずれを意識してポイント操作を行うことが必要になり、拡大縮小操作を行う上での操作性が低下してしまうといった問題が生じていた。
また、特許文献1で本願発明者らが提案している方法にあっては、ウインドウ枠の移動ができず、さらにはウインドウ枠の任意の頂点を可動対象とした対角方向への拡大縮小操作ができないという問題がある。
本発明の目的は、操作対象とする枠線や頂点にポイント位置を正確に位置付ける操作を行うことなく操作対象を特定し、ウインドウの拡大縮小および移動を容易に行うことができるウインドウの制御方法を提供することにある。
上記目的を達成するために、本発明に係る方法は、画面上の任意の位置を指定可能なポインタ装置を用いてウインドウシステムにおけるウインドウの枠の大きさ及び画面上での位置を制御する方法であって、
前記ポインタ装置のポインタの移動操作が開始されてから該ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了するまでの前記ポインタの移動位置を順次取得し、テーブルに記憶する第1のステップと、
前記テーブルに記憶したポインタの移動位置情報を連結して求められる前記ポインタの移動軌跡の一部が制御対象のウインドウの枠線に交差しているかを判定し、交差している場合、
a.交差するウインドウの枠線の数
b.交差する枠線の端点座標の数
から成る要素をチェックし、これらの要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識すると共に、操作対象とするウインドウ枠または頂点を決定する第2のステップと、
操作対象として決定したウインドウ枠または頂点を、前記認識した命令に従い、前記ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了した位置方向に、移動操作終了までのポインタの移動量に対応して移動して拡大、縮小、移動する第3のステップとを備えることを特徴とする。
また、前記第2のステップにおいて、前記要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の最大化、最小化の命令に該当するかをさらに認識し、最大化、最小化の命令に該当する場合には、前記第3のステップに代えて、ウインドウ枠全体を予め設定された大きさに最大化、最小化することを特徴とする。
本発明によれば、画面上の任意の点を指定可能なポインタ装置のポインタを移動し、その移動軌跡により、例えば、ウインドウ枠の4隅の頂点の1つを囲むようなジェスチャ操作を行うことにより操作対象を指定し、さらにその操作対象を移動させることによって、その移動量に対応した大きさだけ、ポインタの移動方向に拡大縮小するようにしたため、ウインドウの頂点にポインタカーソルを正確に位置付ける操作を行う必要がなくなる。
同様に、ポインタの移動軌跡により、例えば、ウインドウの4隅の辺の1つを囲むようなジェスチャ操作を行うことにより操作対象とする枠の1つを指定し、さらにその操作対象を移動させることによって、その移動量に対応した量だけ、ポインタの移動方向にウインドウ全体を移動するようにしたため、ウインドウの枠線にポインタカーソルを正確に位置付ける操作を行う必要がなくなる。
これにより、ウインドウの拡大縮小や移動などの操作性が向上する。特に、電子黒板システムのように、ホワイトボードで構成される画面上におけるポインタの認識位置座標系とウインドウを投影表示する投影座標系の原点座標がずれ易いシステムにおいては、投影表示されるポインタカーソルとポインタ装置のポイント位置とのずれを意識せずに操作することが可能になり、ウインドウを拡大縮小、移動する場合の操作性が向上するという効果がある。
以下、本発明の実施の形態について図面に基づき説明する。
本発明においては、画面上の任意の点を指定可能なポインタ装置のポインタカーソルを移動し、その移動軌跡により、例えば、ウインドウ枠の4隅の頂点の1つを囲むようなジェスチャ操作を行うことにより操作対象を指定し、さらにその操作対象を移動させる操作を行うことによって、その移動量に対応した大きさだけ、移動方向に拡大縮小する。
詳しくは、ウインドウ枠の拡大縮小または画面上での移動を行う場合の操作対象として、ウインドウの頂点や枠を指定する。その際に、操作対象の頂点やウインドウ枠の一部をポインタの移動軌跡によって囲むようなジェスチャ操作を行う。そして、そのジェスチャ操作によるポインタの移動軌跡の座標列をメモリのテーブルに順次記憶させ、移動軌跡が交差するまでの軌跡を構成する軌跡線分と、ウインドウ枠を構成する線分が交差するかどうかを調べ、交差する場合は、ウインドウ枠を構成する枠線の端点座標(始点座標と終点座標)を記憶する。そして、交差するウインドウ枠線の数、交差するウインドウ枠線の端点座標の数から成る要素をチェックし、これらの要素の組合わせによってポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識すると共に、操作対象とするウインドウ枠または頂点を決定する。次に、操作対象として決定したウインドウ枠または頂点を、認識した命令に従い、ポインタの移動軌跡が交差したのち移動操作が終了した位置方向に、移動操作が終了するまでのポインタの移動量に対応して移動して拡大縮小、移動する。
記憶されたウインドウ枠線の本数が2本以上で、これらのウインドウ枠線が3個の異なる座標からのみ構成されている場合は、2本の線分の交点である1つの頂点が操作対象として指定されたと判断する。このとき、各ウインドウ枠線を構成する座標のうち、共通な座標が交点の座標である。
記憶されたウインドウ枠線の本数が2本以上で、これらのウインドウ枠線が2個の異なる座標からのみ構成されている場合は、この2個の座標からなるウインドウ枠線が操作対象として指定されたと判断する。
操作内容すなわち拡大縮小と移動のいずれを選択するかは、交差するウインドウ枠線の数、交差するウインドウ枠線の端点座標の数で決定するが、その割り当ては任意でよい。
なお、交差するウインドウ枠線の端点座標が4つ以上存在する場合は操作対象を確定しない。
図1〜図3は、本発明におけるウインドウの拡大縮小、移動、最大化、最小化の操作方法の概要を示す説明図であり、図1(a)は頂点A〜DからなるウインドウW0の頂点Dを操作対象に指定して拡大する方法、図1(c)はウインドウW0の辺(枠線)CDを操作対象に指定して図の右方向に拡大する方法、図2(a)はウインドウW0の頂点Dと辺CDを操作対象に指定してウインドウ全体を画面上の任意の位置に移動する方法、図2(b)はウインドウW0の辺(枠線)CDを操作対象に指定してウインドウ全体を画面上の上、下、左、右のいずれかの方向に移動する方法、図3(a)はウインドウW0の辺(枠線)CDを操作対象に指定してウインドウW0を最大化する方法、図3(b)はウインドウW0の辺(枠線)AB、ADを操作対象に指定してウインドウW0を最小化する方法を示す図である。
図1(a)において、ポインタ装置のボタン(例えばマウスの左ボタン)を押した状態でポインタカーソルを移動し、その移動軌跡Lcにより、ウインドウW0の頂点Dを囲むようなジェスチャ操作を行うことにより操作対象となる頂点Dを指定し、さらにその操作対象の頂点を移動させる操作を行う。この操作によって、ポインタカーソルの移動軌跡Lcが交差したならば、操作対象として頂点Dが指定されたことが認識される。そして、ポインタカーソルの移動軌跡LcがウインドウW0の辺に交差した際に、どの辺と交差したかを交差する都度記憶し、かつその辺の端点座標の数を記憶する。
図1(a)の例では、移動軌跡Lcに交差したウインドウW0の枠線の数は辺AD,CDの2本であり、それらの端点座標はA,C,Dの3つであると認識される。
そこで、この場合の操作は図4のコマンド定義に示すように、頂点Dを操作対象としたウインドウW0の拡大縮小コマンドとして判定される。
図1(b)に示すように、ポイントカーソルの移動軌跡Lcが交点Pで交差したのち、ポインタカーソルの移動軌跡Lcがさらにx、y方向にΔx、Δyだけ移動した時点でポインタ装置のボタン(例えばマウスの左ボタン)が離されてポインタの移動操作が終了したことが検出されると、ウインドウW0の水平方向の辺AD、BCがΔxだけ拡大、垂直方向の辺AB,CDがΔyだけ拡大され、図1(a)のW1で示すようなウインドウとして表示される。
この場合、操作対象に指定された頂点Dの対角となる頂点Bが固定点として拡大される。
なお、ウインドウが拡大されるか、縮小されるかは、移動軌跡Lcの交点Pを基準点としたポインタカーソルの移動量に依存する。すなわち、Δx、Δyが共に正の場合にはx方向、y方向に拡大され、Δx、Δyが共に負の場合には、x方向およびy方向に縮小される。Δxのみが負の場合には、x方向のみが縮小され、y方向は拡大される。
なお、移動量Δx、Δyは、詳しくは、移動軌跡Lcの交点Pを作成する要因となった移動位置P+1を基準に算出される。
また、拡大または縮小したウインドウの描画は、ポインタカーソルの移動軌跡が交点Pで交差した時点以降で、ポインタカーソルの移動にリアルタイムに追随させて行うことが望ましい。ポインタカーソルの移動に追随させてウインドウW0を描画するようにした場合、所望の大きさになるまでポインタカーソルを移動させながら大きさが適切であるかをリアルタイムで確認することができる。この場合には、所望の大きさになった時点でポインタのボタンを離して拡大縮小操作を停止させることになる。なお、ポインタ装置のボタンが離された時点(移動操作の終了指示がなされた時点)で描画を開始するようにしてもよい。
図1(c)において、ウインドウW0の辺(枠線)CDを操作対象に指定して図の右方向に拡大する場合、ポインタ装置のボタン(例えばマウスの左ボタン)を押した状態でポインタカーソルを移動し、その移動軌跡により、ウインドウW0の辺(枠線)CDの一部を囲むようなジェスチャ操作を行うことにより操作対象となる辺(枠線)CDを指定し、さらにその操作対象の辺(枠線)CDを移動させる操作を行う。この操作によって、ポインタカーソルの移動軌跡が交差したならば、操作対象として辺(枠線)CDが指定されたことが認識される。そして、ポインタの移動軌跡が交差したウインドウ枠線の数は、1回目の交差で辺DCDが認識され、2回目の交差で同じ辺CDが認識されることから、移動軌跡が交差したウインドウの枠は辺CDおよび辺CDの2本であり、それらの辺の端点座標はC,Dの2つであると認識される。
そこで、この場合の操作は図4のコマンド定義に示すように、辺CDを操作対象としたウインドウW0の拡大縮小コマンドとして判定される。
1つの辺CDを操作対象とした拡大縮小コマンドでは、ポイントカーソルの移動軌跡が交点Pで交差したのち、ポインタカーソルの移動軌跡がさらにx、y方向にΔx、Δyだけ移動した時点でポインタ装置のボタン(例えばマウスの左ボタン)が離されると、ウインドウW0の辺CDが、この辺CDに対向する辺ABを固定の辺として、図の右方向にΔxだけ拡大され、図1(c)のW1で示すようなウインドウとして表示される。
この図1(c)の拡大縮小コマンドでは、ウインドウW0を図の左右方向および上下方向に拡大または縮小することができる。図1(a)の拡大縮小コマンドとの相違は、ウインドウW0の対角方向に拡大縮小するものではないということである。拡大されるか、縮小されるかは、図1(a)の場合と同様に、Δx、Δyに依存する。
次に、図2(a)において、ポインタ装置のボタン(例えばマウスの左ボタン)を押した状態でポインタカーソルを移動し、その移動軌跡Lcにより、ウインドウW0の辺CDおよび頂点Dと辺CDの一部を囲むようなジェスチャ操作を行う。
この操作によって、ポインタカーソルの移動軌跡Lcが交点Pで交差したならば、操作対象として頂点Dが指定されたことが認識される。そして、ポインタカーソルの移動軌跡Lcが交差したウインドウ枠線の数は、1回目の交差で辺ADが認識され、2回目の交差で辺CDが認識され、3回目の交差で辺CDが認識されることから、辺AD,CD、CDの3本であり、それらの端点座標はA,C,Dの3つであると認識される。
そこで、この場合の操作は図4のコマンド定義に示すように、頂点Dを操作対象としたウインドウW0の全方位方向の移動コマンドとして判定される。
図2(a)の移動コマンドでは、ポイントカーソルの移動軌跡Lcが交点Pで交差したのち、ポインタカーソルの移動軌跡Lcがさらにx、y方向にΔx、Δyだけ移動した時点でポインタ装置のボタン(例えばマウスの左ボタン)が離されると、頂点DがΔx、Δyだけ画面上で移動し、図2(a)のW1で示すようなウインドウとして表示される。
この場合、ウインドウW0の頂点A,B,C,Dの相対座標が固定されたまま、画面上で全方位方向に移動する。ウインドウW0の画面上での変位位置は、Δx、Δyに依存し、移動軌跡の交点Pを基準としてΔx、Δyが共に負の場合には、−x方向(図の左方向)、−y方向(図の下方向)にウインドウW0が現在位置から変位する。
次に図2(b)において、ポインタ装置のボタン(例えばマウスの左ボタン)を押した状態でポインタカーソルを移動し、その移動軌跡Lcにより、ウインドウW0の辺CDを囲むようなジェスチャ操作を行うことにより操作対象となる辺CDを指定し、さらにその操作対象の辺CDを移動させる操作を行う。この操作によって、ポインタカーソルの移動軌跡Lcが交点Pで交差したならば、操作対象として辺CDが指定されたことが認識される。そして、ポインタの移動軌跡Lcが交差したウインドウ枠線の数は、1回目の交差で辺CDが認識され、2回目の交差で同じ辺CDが認識され、3回目の交差でさらに辺CDが認識されることから、同じ辺CDの3本であり、それらの端点座標はC,Dの2つであると認識される。
そこで、この場合の操作は図4のコマンド定義に示すように、辺CDを操作対象としたウインドウの移動コマンドとして判定される。
図2(b)の移動コマンドでは、ポイントカーソルの移動軌跡Lcが交点Pで交差したのち、ポインタカーソルの移動軌跡Lcがさらにx、y方向にΔx、Δyだけ移動した時点でポインタ装置のボタン(例えばマウスの左ボタン)が離されると、辺CDが図の右方向にΔxだけ移動し、ウインドウW0全体が図の右方向にΔxだけ画面上で移動し、図2(b)のW1で示すようなウインドウとして表示される。この場合、ウインドウW0の頂点A,B,C,Dの相対座標が固定されたまま、画面上で移動する。
この図2(b)の辺方向の移動コマンドにおいては、操作対象として指定された辺のX座標値が同じならば、X方向(図の左右方向)の移動とし、操作対象として指定された辺のY座標値が同じならば、Y方向(図の上下方向)の移動とする。図2(a)の移動コマンドとの相違は、図の上下左右方向の移動だけであり、ウインドウW0の対角方向を含む全方位方向の移動ではないということである。ウインドウの移動量は、移動軌跡Lcが交点Pで交差した後の交点Pを基準とした移動量Δx、Δyに依存する。ウインドウW0を画面右方向に移動させる場合、辺CD(またはAB)を指定し、移動軌跡Lcが図2(b)に示すように右向きとなるように操作する。すると、移動軌跡Lcの交点Pを基準とした移動量は+Δxとなり、ウインドウW0は画面右方向に移動される。
ウインドウW0を画面上方向に移動させる場合、辺AD(またはBC)を指定し、移動軌跡Lcが画面上向きとなるように操作する。すると、移動軌跡Lcの交点Pを基準とした移動量は+Δyとなり、ウインドウW0は画面上方向に移動される。
次に図3(a)において、ポインタ装置のボタン(例えばマウスの左ボタン)を押した状態でポインタカーソルを移動し、その移動軌跡Lcにより、ウインドウW0の辺CDの一部を4回通過するようなジェスチャ操作を行うことにより操作対象となる辺CDを指定する操作を行う。この操作によって、ポインタカーソルの移動軌跡Lcが交点Pで交差したならば、操作対象として辺CDが指定されたことが認識される。そして、ポインタの移動軌跡が交差したウインドウ枠線の数は辺DC(1回目)、辺CD(2回目)、辺CD(3回目)、辺CD(4回目)であることから、辺CDの4本であり、それらの端点座標はC,Dの2つであると認識される。
そこで、この場合の操作は図5のコマンド定義に示すように、ウインドウ全体を操作対象とした最大化コマンドとして判定される。
この最大化コマンドでは、ウインドウW0が予め設定されている最大サイズに変更され、Wmaxとして表示される。
次に図3(b)において、ポインタ装置のボタン(例えばマウスの左ボタン)を押した状態でポインタカーソルを移動し、その移動軌跡Lcにより、ウインドウW0の辺AB,ADの一部をそれぞれ2回通過するようなジェスチャ操作を行うことにより操作対象となる辺AB,ADを指定する操作を行う。この操作によって、ポインタカーソルの移動軌跡Lcが交点Pで交差したならば、操作対象として辺AB,ADが指定されたことが認識される。そして、ポインタの移動軌跡が交差したウインドウ枠線の数は辺AD(1回目)、辺AB(2回目)、辺AB(3回目)、辺AD(4回目)であることから、辺AB,ADがそれぞれ2回ずつの4本であり、それらの端点座標はA,B,Dの3であると認識される。
そこで、この場合の操作は図5のコマンド定義に示すように、ウインドウ全体を操作対象とした最小化コマンドとして判定される。
この最小化コマンドでは、ウインドウW0が予め設定されている最小サイズに変更され、Wminとして表示される。
図4および図5は、本発明におけるウインドウの拡大縮小および移動を行うための操作コマンドの定義例を示すものであり、図4(a)は全方位方向の拡大縮小を行う場合の定義例、図4(b)は全方位方向でウインドウ全体を移動させる場合の定義例、図4(c)は左右上下方向のみの拡大縮小を行う場合の定義例、図4(d)は画面上におけるウインドウの現在位置を左右上下方向のみに移動させる場合の定義例、図5(a)は最大化を行う場合の定義例、図5(b)は最小化を行う場合の定義例である。
図4(a)における全方位方向の拡大縮小を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分(辺)と交差した場合に記憶される線分の本数が「2」、交差する線分の端点座標の数が「3」であった場合、それぞれの線分に共通する端点位置の頂点を操作対象とする全方位方向の拡大縮小コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図4(a)の(1)または(2)に示すようなものがある。
図4(b)の全方位方向でウインドウ全体を移動させる場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分(辺)と交差した場合に記憶される線分の本数が「3」、交差する線分の端点座標の数が「2」であった場合、それぞれの線分に共通する端点位置の頂点を操作対象とする全方位方向の移動コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図4(b)の(1)または(2)に示すようなものがある。
図4(c)の左右上下方向のみの拡大縮小を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分(辺)を交差した場合に記憶される線分の本数が「2」、交差する線分の端点座標の数が「2」であった場合、端点座標で示された線分を操作対象とする辺方向の拡大縮小コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図4(c)の(1)または(2)に示すようなものがある。
図4(d)の画面上におけるウインドウの現在位置を左右上下方向のみに移動させる場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分(辺)と交差した場合に記憶される線分の本数が「3」、交差する線分の端点座標の数が「2」であった場合、端点座標で示された線分を操作対象とする辺方向の移動コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図4(d)の(1)または(2)に示すようなものがある。
図5(a)の最大化を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分(辺)と交差した場合に記憶される線分の本数が「4」、交差する線分の端点座標の数が「2」であった場合、ウインドウ全体を操作対象とする最大化コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図5(a)の(1)または(2)または(3)に示すようなものがある。
図5(b)の最小化を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分(辺)を交差した場合に記憶される線分の本数が「4」、交差する線分の端点座標の数が「3」であった場合、ウインドウ全体を操作対象とする最小化コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図5(d)の(1)に示すようなものがある。
なお、図4および図5に例示したポインタカーソルの移動軌跡の例は、典型的なものを示したものに過ぎず、これに限定されるものではない。
本発明においては、ポインタカーソルの移動軌跡がウインドウの線分(辺)と交差した場合に記憶される線分の本数、交差する線分の端点座標の数に基づいて、拡大縮小コマンドか、移動コマンドかが判定される。
図6は、本発明の一実施の形態を示すシステム構成図である。ここで示す構成は、例えばホワイトボードを表示画面とする電子黒板システムに適用することができるものである。
図6において、この実施の形態のシステムは、表示画面に表示された図形やウインドウ枠を操作するポインタ装置1と、ポインタ装置1からポインタデータを入力するためのポインタデータ入力部2と、ポインタデータを記憶するためのポインタデータ記憶部3およびポインタデータテーブル7と、ポインタデータを連結して求められるポインタカーソルの移動軌跡によりウインドウ枠の操作対象および操作内容を判定するウインドウ操作判定部4と、表示するウインドウ枠のデータが格納されるウインドウデータテーブル8と、ウインドウ操作判定部4によって確定したウインドウの操作対象と操作内容によってウインドウを拡大縮小または移動させる拡大縮小移動処理部5と、ウインドウや図形を表示するための処理を行うウインドウ表示部6と、ウインドウや図形を表示する表示装置9と、ポインタカーソルの移動軌跡とウインドウ枠の辺が交差したときのウインドウ枠の辺の情報を記憶する交差記録テーブル10と、操作対象および操作内容を記憶する操作対象操作内容記憶領域11と、ポインタカーソルの軌跡データの入力が完了する契機となった座標と操作対象の辺または点との差分を記憶する座標差分記憶領域12が設けられている。
以上の構成において、図7(a)に示す頂点A,B,C,Dから成る4角形のウインドウW0を、図8(b)に示す形状のウインドウ頂点A,B,C’,D’から成るウインドウW1に拡大する例について説明する。
図1(b)において説明したように、ウインドウを辺方向に拡大する場合、ポイントカーソルの移動軌跡Lcが交点Pで交差したのち、ポインタカーソルの移動軌跡Lcがさらにx、y方向にΔx、Δyだけ移動した時点でポインタ装置のボタン(例えばマウスの左ボタン)が離されてポインタの移動操作が終了したことが検出されると、ウインドウW0の水平方向の辺AD、BCがΔxだけ拡大、垂直方向の辺AB,CDがΔyだけ拡大される。
図7(a)において、ポインタ装置1で発生したデータは、ポインタ入力部2により受け取られ、ポインタデータ記憶部3に渡される。ポインタデータ記憶部3は、何個目のポインタデータかを判定しポインタデータテーブル7に格納する。
最初の3個のポインタデータp0,p1,p2は、そのまま格納される。図8(a)は、ポインタデータテーブル7に3個のポインタデータp0,p1,p2のx座標値とy座標値が記憶された状態を示している。
4個目のポインタデータp3が入力されたとき、ポインタデータ記憶部3は過去に入力されたポインタデータから線分p0−p1、線分p1−p2、線分p2−p3を作成し、最後の線分p2−p3がそれよりも前の線分と交差していないかどうか調べる。
図7(a)では線分p2−p3はそれよりも前の線分と交差しないので、ポインタデータp3はポインタデータテーブル7の4番目に格納される。図8(b)にこの状態のポインタデータテーブル7の記憶内容を示している。
5個目のポインタデータp4が入力されたときも交差しないので、ポインタデータp4はポインタデータテーブルの5番目に図8(c)に示すように格納される。
6個目のポインタデータp5が入力されると、線分p4−p5は線分p0−p1と交差するため、ポインタデータp5をポインタデータテーブルの6番目に格納して、軌跡データの入力が完了する。図8(d)にこの状態のポインタデータテーブル7の記憶内容を示している。
図形操作判定部4は、軌跡データの入力の完了を受けて、表示されている頂点ABCDからなるウインドウW0の各辺と、軌跡データから作成される線分が交差していないかどうか調べる。
まず、線分p0−p1がポインタデータテーブル7から作成され、辺AB、辺BC、辺CD、辺DAのそれぞれの辺と交差するかどうか調べる。次に、線分p1−p2が作成され、同様にウインドウW0の各辺と交差するかどうかが調べる。同様に、線分p2−p3、線分p3−p4、線分p4−p5についても行う。この結果、線分p1−p2が辺CDと交差する。そこで、図9(a)に示すように、交差記録テーブル10の1番目に辺CDの始点と終点すなわち(xC,yC)と(xD,yD)を記憶し、また線分p3−p4が辺CDと交差するので、図9(b)に示すように、交差記録テーブル10の2番目に辺CDの始点と終点すなわち(xC,yC)と(xD,yD)を記録し、交差記録テーブル10への記録を完了する。
次に、交差記録テーブル10に何種類の端点座標が格納されているか調べる。記録されている端点座標は、C(xC,yC)と、D(xD,yD)であることから、2種類の端点座標が格納されていることが判明するので、操作対象は辺CDであり、交差記録テーブル10に記録されている線の本数は2本であるから、操作内容は拡大縮小であることが確定する。
そこで、確定した操作対象と操作内容を図10に示すように操作対象操作内容記憶領域11に書き込む。
さらに、軌跡データの入力が完了する契機となったポイントデータp5の座標を、拡大縮小移動操作の基点xBase、yBaseとして座標差分記憶領域12に格納する(図11)。
操作対象と操作内容が確定したならば、ポインタデータ入力部2は入力したポインタデータを拡大縮小移動処理部5に送る。したがって、ポインタデータp6が拡大縮小移動処理部5に送られる。
拡大縮小移動処理部5は、ポインタデータp6を受け取ると、拡大縮小移動操作の基点(xBase,yBase)との差分を計算し、図11の座標差分記憶領域12にΔxとΔyとして格納する。
拡大縮小移動処理部5は、辺CDの始点座標と終点座標のx座標が同じである場合は辺CDのx座標にΔxを加え、始点座標と終点座標のy座標が同じである場合は辺CDのy座標にΔyを加える。これによって、拡大縮小後の辺CDの始点座標C’は(xC+Δx,yC)となり、終点座標D’は(xD+Δx,yD)となる。
ここで求めた座標C’とD’によって、ウインドウデータテーブル8の座標CとDの座標を図12(a)から図12(b)に示すような値に変更する。
これにより、ウインドウW0は四角形ABC’D’に拡大される。ウインドウ表示部6は、ウインドウデータテーブル8を参照して拡大後の四角形ABC’D’を図7(b)のように表示装置9に表示する。
図13〜図29は図形の拡大縮小と移動を行うためのフローチャートである。
例として、図14に示す頂点ABCDからなるウインドウW0のデータが、図30(a)のようにウインドウデータテーブル8に格納されており、図14のpsの位置でポインタ装置1を操作して、p0,p1,p2,p3,p4,p5の順で座標データが発生する場合についてフローチャートの説明を行なう。
なお、ウインドウW0のデータは左上の頂点から反時計回りの順にウインドウデータテーブル8に格納されているものとする。
最初にポインタ装置1から発生する座標を入力して図30(b)の軌跡線分テーブルを作成する。この後、図31(a)の作業領域CKに0をセットする(ステップ1001)。CKは、図30(b)の軌跡線分テーブルのインデックスである。
次に、ポインタ装置1から座標データを1個取得する(ステップ1002)。
取得した座標を図30(b)の軌跡線分テーブルのCK番目の始点にセットする(ステップ1003)。先頭の座標である場合は終点のセットをスキップする(ステップ1004)。
次に、前回までに入力された座標がある場合、今回入力した座標を終点座標として図29(b)の軌跡線分テーブルのCK−1番目の終点にセットする(ステップ1005)。
次に、図31(a)の作業領域CKの値を1だけ増加させる(ステップ1006)。
軌跡線分の本数が2個未満の場合はステップ1002に戻る(ステップ1007)。
次に、図31(a)の作業領域iに0をセットする(ステップ1008)。iは、最初の軌跡線分から最後の軌跡線分の1本前までの線分を列挙するための軌跡線分テーブルにおけるインデックスである。
最後の軌跡線分の1本前まで列挙されたらステップ1002に戻る(ステップ1009)。
次に、軌跡線分テーブルのi番目の線分と、最後の軌跡線分(軌跡線分テーブルのCK−2番目に記録された線分)が交差するかどうかを調べる。交差している場合はポインタ装置1からの座標入力を終了し(ステップ1010)、図31(a)の作業領域CKの内容を1だけ減らすことにより、CKの内容を軌跡線分の本数とし(ステップ1012)、ステップ1021の処理へ分岐する。今回の例では、ポインタ装置1から座標p5が入力された時点で、線分p0−01と線分p4−p5が交差するため、ポインタ装置1からの座標入力が終了し、軌跡線分テーブルの内容は図30(b)のようになり、図31(a)の作業領域CKの内容はステップ1012の処理を経て「5」となる。
ステップ1010において、2つの線分が交差しない場合は、図31(a)の作業領域iの内容を1だけ増加させ、ステップ1009に戻る(ステップ1011)。
ステップ1021(図15)では、図31(a)に示す作業領域izdにゼロをセットする。izdは、ウインドウW0の図形データを参照するときのインデックスである。
次に、図31(a)に示す作業領域icに0をセットする。icは、図30(d)に示す交差線分テーブルのインデックスである(ステップ1022)。
次に、ウインドウW0を構成する図形データの個数を、図31(a)に示す作業領域CZDにセットする。今回の例では1つのウインドウW0のみ格納されているため、CZDには1がセットされる(ステップ1023)。
次にizd<CZD化を判定する。今、izdは0であるため、ステップ1024の判定は真となる。
真の場合、izd番目の図形データを取り出す。今、izdは0なので、ウインドウW0の図形データが取り出される(ステップ1025)。
次の座標データを取り出すために、izdを1だけ増加させる(ステップ1026)。
図形データのx位置とy位置により、図30(c)に示す図形線分テーブルを作成する。ここでは線分AB,線分BC,線分CD,線分DAの4本の線からなる図形線分テーブルが作成され、その本数(4本)が図31(a)に示す作業領域CZにセットされる(ステップ1027)。
次に、図31(a)に示す作業領域izに0をセットする。izは、図形線分テーブルのインデックスである(ステップ1028)。
次に、iz<CZかを判定する。今、izは0であるため、ステップ1029の判定は真となる。
真の場合、図31(a)に示す作業領域ikに0をセットする。ikは、軌跡線分テーブルのインデックスである(ステップ1030)。
次に、ik<CKかを判定する。今、ikは0なので、ステップ1011の判定は真となる。
真の場合、図形線分テーブルのiz番目の線分と、軌跡線分テーブルのik番目の線分が交差するかどうか調べる。今、iz=0,ik=0なので、図形線分ABと軌跡線分p0−p1が交差するかどうか調べる。この2つの線分は図14の例では交差しないため、ステップ1033の判定は偽となり、ステップ1036でik(軌跡線分テーブルのインデックス)を1だけ増加させてステップ1031に戻る。もしもステップ1033の判定が真の場合、すなわち2つの線分が交差する場合は、図形線分テーブルのiz番目の線分を構成する座標を図30(d)の交差線分テーブルのic番目にセットし、(ステップ1034)、ic(図30(d)の交差線分テーブルのインデックス)を1だけ増加させ(ステップ1035)、ik(軌跡線分テーブルのインデックス)を1だけ増加させてステップ1031に戻る。
このようにステップ1031,1033,1034,1035,1036によって、軌跡線分テーブルに格納された線分が列挙され、図形線分テーブルのiz番目の線分と交差するかどうかが調べられ、交差する場合は図形線分テーブルのiz番目の線分を構成する座標が、交差線分テーブルに記録される。
今、iz=0であるから、図形線分ABと軌跡線分p0−p1,p1−p2,p2−p3,p3−p4,p4−p5がそれぞれ交差するかどうか調べられる結果、軌跡線分p1−p2が交差することが判明し、図形線分ABを構成する座標すなわち(Ax,Ay)と(Bx,By)が交差線分テーブル(図30(d))に記憶される。
軌跡線分の列挙の終了はステップ1031によって判定され、この条件判定結果が偽の場合は図31(a)に示す作業領域iz(図形線分テーブルのインデックス)の内容を1だけ増加させ、ステップ1029に戻る。
今、iz=1であるため、ステップ1029の条件判定結果は真となり、ステップ1030,1031,1033,1034,1035,1036によって軌跡線分が列挙され、図形線分テーブルのiz番目すなわち図形線分BCとの交差が調べられる。
以後、同様に図形線分CD(iz=2)と図形線分DA(iz=3)について軌跡線分との交差が調べられる(ステップ1029〜1036)。
図形線分の列挙はiz=4になったときステップ1029によって終了し、ステップ1024に戻って次の図形データの有無がチェックされる。今、izd=1かつCZD=1であるため、ステップ1024の条件判定結果は偽となり、図16のステップ1050へ進む。この時点で図形線分と軌跡線分の交差チェックが完了する。
図5の処理では、交差線分テーブルにセットされた線分の本数によりそれぞれの処理に分岐する(ステップ1050,1051,1052)
すなわち、交差線分テーブルにセットされた線分の本数が2本の場合は図17に示すステップ1053が開始される。
2本の線分は、何種類の座標から構成されているか調べ、図30(a)に示す作業領域nにセットする(ステップ1053)。
nが2のときは2種類の座標から2本の線分が構成されており、2本の線分は同一であり、この線分(図形の辺)を指定した拡大縮小操作とする(ステップ1054,1055)。
nが3のときは3種類の座標から2本の線分が構成されており、共通な座標が1個存在し、この共通の座標(図形の頂点)を指定した拡大縮小操作とする(ステップ1056,1057)。
交差線分テーブルにセットされた線分の本数が3本の場合は、図18に示すステップ1058が開始される。
ここでは、3本の線分は、何種類の座標から構成されているか調べ、図31(a)に示す作業領域nにセットする(ステップ1058)。
nが2のときは2種類の座標から2本の線分が構成されており、3本の線分は同一であり、この線分(図形の辺)を指定した移動操作とする(ステップ1059,1060)。
nが3のときは3種類の座標から3本の線分が構成されており、共通な座標が1個存在し、この共通の座標(図形の頂点)を指定した移動操作とする(ステップ1061,1062)。
交差線分テーブルにセットされた線分の本数が4本の場合は、図19に示すステップ1063が開始される。
ここでは、4本の線分は、何種類の座標から構成されているか調べ、図31(a)に示す作業領域nにセットする(ステップ1063)。
nが2のときは2種類の座標から4本の線分が構成されており、4本の線分は同一であり、この線分(図形の辺)を含む図形全体を指定した最大化操作とする(ステップ1064,1065)。
nが3のときは3種類の座標から4本の線分が構成されており、共通な座標が1個存在し、この共通の座標(図形の頂点)を指定した最小化操作とする(ステップ1066,1067)。
図14の例では交差線分テーブルには2本の線分がセットされ、3種類の座標すなわち(Ax,Ay),(Bx,By),(Dx,Dy)から構成され、このうち(Ax,Ay)が共通な座標であるため、頂点(Ax,Ay)を操作対象とした拡大縮小操作となる。
次に、図20のステップ1093では、移動や拡大縮小を行なう際の座標差分を計算するときに使用する原点座標をそれぞれxBase,yBaseにセットする。
ステップ1068,1069,1094,1095により、操作内容毎にそれぞれの処理に分岐する。
操作内容が移動である場合、図21のステップ1070に分岐する。ステップ1070では、移動操作の開始処理であり、iに0をセットする。i=0の場合は移動のための座標の指定が行なわれなかったことを、i=1の場合は少なくとも1個の座標が移動のために指定されたことを示す。
ステップ1071は、ポインタ装置1の状態を確認するものであり、移動操作の終了(例えばボタンを離すなど)を判定している。移動操作が終了している場合は、図23のステップ1082へジャンプする。
移動操作が終了していない場合、ステップ1072はポインタ装置1から座標を入力し、作業領域px,pyにセットする。この例では、p6のx座標がpxにセットされ、p6のy座標がpyにセットされる。
続くステップ1073では、現在入力した座標が、原点座標(xBase,yBase)からどれだけ変化したかを計算し、その結果をdx,dyにセットする。
ステップ1074では、移動中の図形の表示に関するものであり、i=0で移動のための座標が初めて入力されたときはステップ1093が実行され、最初に表示されていた図形データが非表示となる。i=0でなく、移動のための座標が2個目以後は、ステップ1075が実行され、移動中の図形が非表示となる。そして、図22のステップ1076に進む。
図22のステップ1076では作業領域nに0をセットする。nは図形線分テーブルのインデックスとして使用する。
ステップ1077では、図形線分テーブルのエントリが全て列挙されたかどうか(n<CZ)を判定する。全て列挙されたらステップ1080へジャンプする。
全て列挙されていない場合、ステップ1093に進み、操作対象が頂点であるかどうかを判定する。頂点である場合は、ステップ1078を実行し、図形線分テーブル(図30(c))のn番目の始点のx座標とy座標にそれぞれdxとdyを加えたものを図31(b)の作業用図形線分テーブルのn番目の始点にセットする。
ステップ1093の判定が偽の場合、操作対象は辺であるのでステップ1090に進む。ステップ1090では辺の始点座標と終点座標のそれぞれのx座標が同じかどうか判定する。同じである場合はステップ1091を実行し、図形線分テーブルのn番目の始点のx座標にdxを加えたものを図31(b)の作業用図形線分テーブルの始点のx座標にセットし、図形線分テーブルのn番目の始点のyを作業用図形線分テーブルの始点のy座標にセットする。
ステップ1090の判定が偽の場合、辺の始点座標と終点座標のy座標が同じであるので、ステップ1092を実行し、図形線分テーブルのn番目の始点のy座標にdyを加えたものを図31(b)の作業用図形線分テーブルの始点のy座標にセットし、図形線分テーブルのn番目の始点のxを作業用図形線分テーブルの始点のx座標にセットする。
次に、ステップ1079では図形線分テーブルのインデックスnを1だけ増加させ、ステップ1077に戻る。
一方、ステップ1077の判定が偽の場合は、図形線分テーブルのエントリを全て列挙したことになるので、ステップ1080を実行し、作業用図形線分テーブルの始点座標のみを使用して図形を表示する。
ステップ1081では、移動後の図形が少なくとも1回表示されたことを示すために、iに1をセットする。
図21に戻り、ステップ1071の判定が偽になった場合は、ポインタ装置1に対して操作完了の指示が行なわれたことになるので、図23のステップ1082の判定(i=0)を実行する。ここでは移動後の図形が少なくとも1回表示されていることが判定されたらステップ1083を実行し、図形データ移動後の座標に更新する。
図20に戻り、ステップ1069で操作内容が拡大縮小であると判定された場合、図24のステップ1100に進む。図24のステップ1100は拡大縮小処理の開始処理であり、まず、作業領域iに0をセットし、拡大縮小後の図形が一度も表示されていないことを記憶する。
次に、ステップ1101ではポインタ装置1で拡大縮小操作の終了を指示されていないかどうかを判定する。指示されていない場合、ステップ1102でポインタ装置1から座標を1個入力し、px,pyにセットする。指示されている場合、図27のステップ1126に進む。
ステップ1103では、入力した座標と拡大縮小の起点となる座標(xBase,yBase)の差分を計算し、dx,dyにセットする。
ステップ1104では、過去に拡大縮小後の図形を表示したことがあるかどうか(i=0)を判定する。真の場合はizd番目の図形を非表示にする(ステップ1106)。偽の場合は図31(b)の作業用図形線分テーブルの始点座標により表示されている図形を非表示にし(ステップ1105)、図25のステップ1107に進む。
図25のステップ1107では、図形線分テーブルの内容を図31(b)の作業用図形線分テーブルにコピーする。作業用図形線分テーブルの一部を変更することで、拡大縮小を実現する。
ステップ1108で4は、操作対象が辺であるか頂点であるか(n=2)を判定するものである。辺の場合(n=2)はステップ1109が実行され、選択された辺の始点座標が図形線分テーブルの何番目のエントリの始点座標として格納されているかを調べ、そのインデックスをnにセットする(ステップ1109,1110,1111)。
ステップ1112では、選択された辺の始点と終点のx座標が同一かどうか判定し、真の場合は作業用図形線分テーブルのn番目エントリの始点のx座標にdxを加える(ステップ1113)。これにより、縦の辺が操作対象として選択された場合はその辺を水平方向に移動することにより図形の拡大縮小が実現される。
ステップ1112の判定が偽の場合は、選択された辺の始点と終点のy座標が同一であることになるので、作業用図形線分テーブルのn番目のエントリの始点のy座標にdyを加える(ステップ1114)。これにより、横の辺が操作対象として選択された場合はその辺を垂直方向に移動することにより図形の拡大縮小が実現される。
ステップ1108の判定が偽の場合は、頂点を指定した拡大縮小操作であり、操作対象の頂点座標が図形線分テーブルの何番目の始点座標と同じか調べ、そのインデックスをnにセットする(ステップ1115,1116,1117)。
ステップ1118ではnは偶数か否か、すなわち操作対象の頂点が左上または右下にあるのか、右上または左下にあるのかを判定する。図形線分テーブルの始点座標は、図形の左上から反時計周りの順に頂点が記憶されているので、nが偶数か奇数かを判定することにより、操作対象の頂点が左上または右下にあるのか、右上または左下にあるのかが判定できる。
ステップ1118の判定結果が真の場合はnは偶数であるので、ステップ1119が実行され、jに操作対象の頂点から反時計方向に見て次の頂点のインデックスをセットし、kに操作対象の頂点から時計方向にみて次の頂点のインデクスをセットする(ステップ1119)。
ステップ1118の判定が偽の場合、nは奇数であり、kに操作対象の頂点から反時計方向に見て次の頂点のインデックスをセットし、jに操作対象の頂点から時計方向にみて次の頂点のインデクスをセットする(ステップ1120)。この後、ステップ1121に進む。
ステップ1121では、作業用図形線分テーブルのn番目の始点のx座標とy座標にそれぞれdx,dyを加算する。これにより、選択された頂点はポインタの移動差分だけ移動する。
次のステップ1122では、作業用図形線分テーブルのj番目の始点のx座標にdxを加算する。これにより、選択された頂点を含む縦方向の辺は、ポインタの移動差分のうち水平方向にだけ移動する。
ステップ1123は、作業用図形線分テーブルのk番目の始点のy座標にdyを加算するものである。これにより、選択された頂点を含む横方向の変は、ポインタの移動差分のうち垂直方向にだけ移動する。次に、図26のステップ1124に進む。
ステップ1124では、作成された作業用図形線分テーブルの始点座標を使用して拡大縮小後の図形を表示する。
ステップ1125では、iに1をセットして、少なくとも1回、拡大縮小後の図形が表示されたことを記憶する。この後、図24のステップ1101に戻る。
図24のステップ1101において、ポインタ装置1の状態は差憂さ完了状態でなかったと判定された場合、図27のステップ1126に進む。
図27のステップ1126は少なくとも1回、拡大縮小後の図形が表示されたかどうかを判定するものであり、この判定が偽の場合は少なくとも1回拡大縮小後の図形が表示されたことを意味するので、作業用図形線分テーブルの始点座標の内容で、izd番目の図形データを更新する(ステップ1127)。
図20に戻り、操作内容が最大化であることが判明した場合、図28のステップ1200に進む。
図28のステップ1200では、最大化するウィンドウの4つの頂点の位置を取得し、作業用図形線分テーブルの0番目の始点座標にセットする。
ステップ1201では、izd番目の図形データにより現在表示されている図形を非表示にする。
ステップ1202では、最大化したウィンドウの4つの頂点の座標によりizd番目の図形データを更新する。
ステップ1203では、最大化されたウィンドウ(izd番目の図形データ)を表示する。
図20に戻り、操作内容が最小化であることが判明した場合、図29のステップ1300に進む。ステップ1300は最小化するウィンドウの4つの頂点の位置を取得し、にセットする。
ステップ1301では、izd番目の図形データにより現在表示されている図形を非表示にする。
ステップ1302では、最小化したウィンドウの4つの頂点の座標(作業用図形線分テーブルの0番目の始点座標)によりizd番目の図形データを更新する。
ステップ1303は、最小化されたウィンドウを表示する。
以上の処理により、図4(a)の拡大縮小操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図32(a)〜(c)に示すように、操作対象のウインドウW0がW1に拡大縮小される。
また、図4(c)の拡大縮小操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図32(d)〜(f)に示すように、操作対象のウインドウW0がW1に拡大縮小される。
また、図4(b)の移動操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図33(a)の破線で示すように、操作対象のウインドウW0が現在位置から上下左右方向の位置のウインドウW1に移動される。
また、図4(d)の移動操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図33(b)の破線で示すように、操作対象のウインドウW0が現在位置から左右上下方向および斜め方向の全方位方向の位置のウインドウW1に移動される。
本発明のおけるウインドウの拡大縮小方法におけるポインタ操作の仕方を示す説明図である。 本発明のおけるウインドウの移動方法におけるポインタ操作の仕方を示す説明図である。 本発明のおけるウインドウの最大化または最小化方法におけるポインタ操作の仕方を示す説明図である。 本発明のおけるウインドウの制御方法におけるコマンド定義を示す図である。 本発明のおけるウインドウの制御方法におけるコマンド定義を示す図である。 本発明の一実施形態を示すブロック図である。 図形の拡大縮小操作の説明図である。 ポインタデータテーブルの内容の変化を示す説明図である。 交差記録テーブルの内容の変化を示す説明図である。 操作対象操作内容記憶領域の記録内容を示す説明図である。 座標差分記憶領域の記録内容を示す説明図である。 図形データテーブルの記録内容を示す説明図である。 本発明の処理手順を示すフローチャートである。 本発明の処理手順を説明するためのポインタ操作の一例を示す図である。 図13の続きを示すフローチャートである。 図15の続きを示すフローチャートである。 図16の続きを示すフローチャートである。 図16の続きを示すフローチャートである。 図16の続きを示すフローチャートである。 図17〜図19の続きを示すフローチャートである。 図20の続きを示すフローチャートである。 図21の続きを示すフローチャートである。 図21の続きを示すフローチャートである。 図20の続きを示すフローチャートである。 図24の続きを示すフローチャートである。 図25の続きを示すフローチャートである。 図24の続きを示すフローチャートである。 図20の続きを示すフローチャートである。 図20の続きを示すフローチャートである。 本発明の処理手順を実現するために必要なテーブルを示す図である。 本発明の処理手順を実現するために必要な作業領域を示す図である。 本発明におけるウインドウの拡大縮小の種類の例を示す図である。 本発明におけるウインドウの移動の種類の例を示す図である。
符号の説明
1 ポインタ装置
2 ポインタデータ入力部
3 ポインタデータ記憶部
4 図形操作判定部
5 縮小移動処理部
6 図形表示部
7 ポインタデータテーブル
8 ウインドウデータテーブル
9 表示装置
10 交差記録テーブル
11 操作対象操作内容記憶領域
12 座標差分記憶領域

Claims (2)

  1. 画面上の任意の位置を指定可能なポインタ装置を用いてウインドウシステムにおけるウインドウの枠の大きさ及び画面上での位置を制御する方法であって、
    前記ポインタ装置のポインタの移動操作が開始されてから該ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了するまでの前記ポインタの移動位置を順次取得し、テーブルに記憶する第1のステップと、
    前記テーブルに記憶したポインタの移動位置情報を連結して求められる前記ポインタの移動軌跡の一部が制御対象のウインドウの枠線に交差しているかを判定し、交差している場合、
    a.交差するウインドウの枠線の数
    b.交差する枠線の端点座標の数
    から成る要素をチェックし、これらの要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識すると共に、操作対象とするウインドウ枠または頂点を決定する第2のステップと、
    操作対象として決定したウインドウ枠または頂点を、前記認識した命令に従い、前記ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了した位置方向に、移動操作終了までのポインタの移動量に対応して移動して拡大、縮小、移動する第3のステップと
    を備えることを特徴とするウインドウの制御方法。
  2. 前記第2のステップにおいて、前記要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の最大化、最小化の命令に該当するかをさらに認識し、最大化、最小化の命令に該当する場合には、前記第3のステップに代えて、ウインドウ枠全体を予め設定された大きさに最大化、最小化することを特徴とする請求項1に記載のウインドウの制御方法。
JP2003323442A 2003-09-16 2003-09-16 ウインドウの制御方法 Expired - Fee Related JP4111897B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003323442A JP4111897B2 (ja) 2003-09-16 2003-09-16 ウインドウの制御方法
EP04019193A EP1517227A3 (en) 2003-09-16 2004-08-12 Window control method
US10/925,912 US20050060658A1 (en) 2003-09-16 2004-08-26 Window control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003323442A JP4111897B2 (ja) 2003-09-16 2003-09-16 ウインドウの制御方法

Publications (2)

Publication Number Publication Date
JP2005092447A true JP2005092447A (ja) 2005-04-07
JP4111897B2 JP4111897B2 (ja) 2008-07-02

Family

ID=34191287

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003323442A Expired - Fee Related JP4111897B2 (ja) 2003-09-16 2003-09-16 ウインドウの制御方法

Country Status (3)

Country Link
US (1) US20050060658A1 (ja)
EP (1) EP1517227A3 (ja)
JP (1) JP4111897B2 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009157420A (ja) * 2007-12-25 2009-07-16 Dainippon Printing Co Ltd 端末装置及びそのプログラム
JP2010139686A (ja) * 2008-12-11 2010-06-24 Seiko Epson Corp プロジェクター、プログラムおよび情報記憶媒体
JP2011215795A (ja) * 2010-03-31 2011-10-27 Rakuten Inc 画像制御プログラム、表示制御装置及び、画像制御方法
JP2012018195A (ja) * 2011-10-26 2012-01-26 Anritsu Corp 測定装置
JP2012018194A (ja) * 2011-10-26 2012-01-26 Anritsu Corp 測定装置
WO2012137861A1 (ja) * 2011-04-07 2012-10-11 シャープ株式会社 電子機器、表示方法、および表示プログラム
JP2013044802A (ja) * 2011-08-22 2013-03-04 Rakuten Inc 画像表示装置、画像表示方法、画像表示プログラム、及びそのプログラムを記録するコンピュータ読み取り可能な記録媒体
JP2013097177A (ja) * 2011-11-01 2013-05-20 Seiko Epson Corp 表示装置、表示装置の制御方法、及び、プログラム
JP2014157360A (ja) * 2014-03-25 2014-08-28 Casio Comput Co Ltd 図形表示装置およびプログラム
JP2015032283A (ja) * 2013-08-07 2015-02-16 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP2015041216A (ja) * 2013-08-21 2015-03-02 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP2015529353A (ja) * 2012-08-16 2015-10-05 リアル ヴィエヌシー リミテッド コンピューティング装置を遠隔制御する方法及びシステム
JP2016038640A (ja) * 2014-08-05 2016-03-22 シャープ株式会社 携帯端末
JP2017123074A (ja) * 2016-01-07 2017-07-13 株式会社ミクシィ 情報処理装置、情報処理装置の制御方法及び制御プログラム

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454707B2 (en) * 2002-09-30 2008-11-18 Canon Kabushiki Kaisha Image editing method, image editing apparatus, program for implementing image editing method, and recording medium recording program
US20060250376A1 (en) * 2005-05-03 2006-11-09 Alps Electric Co., Ltd. Display device
DE102005046664B4 (de) * 2005-09-29 2016-11-17 Robert Bosch Gmbh Verfahren zur Erzeugung eines flexiblen Anzeigebereichs für ein Videoüberwachungssystem
US7412663B2 (en) * 2005-11-30 2008-08-12 Microsoft Corporation Dynamic reflective highlighting of a glass appearance window frame
US7418668B2 (en) * 2005-11-30 2008-08-26 Microsoft Corporation Glass appearance window frame colorization
US20080235609A1 (en) * 2007-03-19 2008-09-25 Carraher Theodore R Function switching during drag-and-drop
GB2449642A (en) * 2007-05-29 2008-12-03 Alan Stuart Radley Manipulating the size and position of a GUI window
TWI374658B (en) * 2007-09-29 2012-10-11 Htc Corp Image process method
CN101399892B (zh) * 2007-09-30 2011-02-09 宏达国际电子股份有限公司 影像处理方法
US20100107067A1 (en) * 2008-10-27 2010-04-29 Nokia Corporation Input on touch based user interfaces
JP5438333B2 (ja) * 2009-02-05 2014-03-12 キヤノン株式会社 表示制御装置および表示制御方法
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US20120159383A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Customization of an immersive environment
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
KR101805922B1 (ko) * 2011-08-01 2017-12-07 엘지이노텍 주식회사 포인터 이동 값 보정 방법 및 이를 사용하는 3d 포인팅 디바이스
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US9223472B2 (en) 2011-12-22 2015-12-29 Microsoft Technology Licensing, Llc Closing applications
JP6217058B2 (ja) * 2012-05-09 2017-10-25 セイコーエプソン株式会社 画像表示システム
EP2871559B1 (en) * 2012-07-05 2018-12-19 Fujitsu Limited Image display device, image enlargement method, and image enlargement program
JP2014021933A (ja) * 2012-07-23 2014-02-03 Ricoh Co Ltd 投影装置、投影方法
JP6007855B2 (ja) * 2012-09-14 2016-10-12 株式会社島津製作所 グラフ表示処理装置
JP5939581B2 (ja) * 2013-07-08 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 表示画面上に表示された移動対象であるオブジェクトを移動する方法、並びに、その電子装置及び電子装置プログラム
KR102298602B1 (ko) 2014-04-04 2021-09-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 확장가능한 애플리케이션 표시
KR20160143784A (ko) 2014-04-10 2016-12-14 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 컴퓨팅 디바이스용 슬라이더 커버
WO2015154273A1 (en) 2014-04-10 2015-10-15 Microsoft Technology Licensing, Llc Collapsible shell cover for computing device
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
CN106662891B (zh) 2014-10-30 2019-10-11 微软技术许可有限责任公司 多配置输入设备
CN107024981B (zh) * 2016-10-26 2020-03-20 阿里巴巴集团控股有限公司 基于虚拟现实的交互方法及装置
KR102469722B1 (ko) * 2018-09-21 2022-11-22 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
JP6770040B2 (ja) * 2018-10-23 2020-10-14 ファナック株式会社 タッチパネル装置、タッチパネル装置の制御方法、プログラムおよびプログラムを記憶する記憶媒体
CN116311209B (zh) * 2023-03-28 2024-01-19 北京匠数科技有限公司 窗口检测方法、系统和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103013A (ja) * 1992-09-18 1994-04-15 Hitachi Software Eng Co Ltd ウィンドウの拡大縮小方法
JPH09212304A (ja) * 1996-01-30 1997-08-15 Toshiba Corp 情報機器及び同機器における入力領域拡大方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01250129A (ja) * 1988-03-02 1989-10-05 Hitachi Ltd 表示制御方法および表示装置
JPH0736142B2 (ja) * 1991-10-10 1995-04-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 移動指示手段の運動停止を認識する方法および情報処理装置
US5502803A (en) * 1993-01-18 1996-03-26 Sharp Kabushiki Kaisha Information processing apparatus having a gesture editing function
US5583946A (en) * 1993-09-30 1996-12-10 Apple Computer, Inc. Method and apparatus for recognizing gestures on a computer system
JP3466363B2 (ja) * 1996-02-16 2003-11-10 シャープ株式会社 情報処理装置
US6091395A (en) * 1997-12-15 2000-07-18 International Business Machines Corporation Computer system and method of manipulating a graphical user interface component on a computer display through collision with a pointer
US6480207B1 (en) * 1999-08-30 2002-11-12 International Business Machines Corporation Method, apparatus and computer program product for implementing graphical user interface (GUI) window control
US20050022135A1 (en) * 2003-07-23 2005-01-27 De Waal Abraham B. Systems and methods for window alignment grids
US20050034083A1 (en) * 2003-08-05 2005-02-10 Denny Jaeger Intuitive graphic user interface with universal tools

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103013A (ja) * 1992-09-18 1994-04-15 Hitachi Software Eng Co Ltd ウィンドウの拡大縮小方法
JPH09212304A (ja) * 1996-01-30 1997-08-15 Toshiba Corp 情報機器及び同機器における入力領域拡大方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009157420A (ja) * 2007-12-25 2009-07-16 Dainippon Printing Co Ltd 端末装置及びそのプログラム
JP2010139686A (ja) * 2008-12-11 2010-06-24 Seiko Epson Corp プロジェクター、プログラムおよび情報記憶媒体
JP2011215795A (ja) * 2010-03-31 2011-10-27 Rakuten Inc 画像制御プログラム、表示制御装置及び、画像制御方法
WO2012137861A1 (ja) * 2011-04-07 2012-10-11 シャープ株式会社 電子機器、表示方法、および表示プログラム
JP2012221160A (ja) * 2011-04-07 2012-11-12 Sharp Corp 電子機器、表示方法、および表示プログラム
JP2013044802A (ja) * 2011-08-22 2013-03-04 Rakuten Inc 画像表示装置、画像表示方法、画像表示プログラム、及びそのプログラムを記録するコンピュータ読み取り可能な記録媒体
JP2012018195A (ja) * 2011-10-26 2012-01-26 Anritsu Corp 測定装置
JP2012018194A (ja) * 2011-10-26 2012-01-26 Anritsu Corp 測定装置
JP2013097177A (ja) * 2011-11-01 2013-05-20 Seiko Epson Corp 表示装置、表示装置の制御方法、及び、プログラム
US9519379B2 (en) 2011-11-01 2016-12-13 Seiko Epson Corporation Display device, control method of display device, and non-transitory computer-readable medium
JP2015529353A (ja) * 2012-08-16 2015-10-05 リアル ヴィエヌシー リミテッド コンピューティング装置を遠隔制御する方法及びシステム
US9772742B2 (en) 2012-08-16 2017-09-26 Realvnc Ltd System and method for remote controlling computing device
JP2015032283A (ja) * 2013-08-07 2015-02-16 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP2015041216A (ja) * 2013-08-21 2015-03-02 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP2014157360A (ja) * 2014-03-25 2014-08-28 Casio Comput Co Ltd 図形表示装置およびプログラム
JP2016038640A (ja) * 2014-08-05 2016-03-22 シャープ株式会社 携帯端末
JP2017123074A (ja) * 2016-01-07 2017-07-13 株式会社ミクシィ 情報処理装置、情報処理装置の制御方法及び制御プログラム

Also Published As

Publication number Publication date
EP1517227A2 (en) 2005-03-23
US20050060658A1 (en) 2005-03-17
EP1517227A3 (en) 2006-03-22
JP4111897B2 (ja) 2008-07-02

Similar Documents

Publication Publication Date Title
JP4111897B2 (ja) ウインドウの制御方法
US9513716B2 (en) Bimanual interactions on digital paper using a pen and a spatially-aware mobile projector
US9619104B2 (en) Interactive input system having a 3D input space
US6308144B1 (en) Method and apparatus for providing three-dimensional model associativity
US9489040B2 (en) Interactive input system having a 3D input space
US5841440A (en) System and method for using a pointing device to indicate movement through three-dimensional space
US6989847B2 (en) Method and apparatus for screen object manipulation
EP0780799B1 (en) Cursor positioning
US5914715A (en) Analytical data display method and apparatus
US20070038955A1 (en) Pen-based computer system having first and second windows together with second window locator within first window
US9110512B2 (en) Interactive input system having a 3D input space
JP2009169735A (ja) 情報処理表示装置
JPH09326048A (ja) 動的に向きを変えられるコンパス・カーソルをコンピュータ・ディスプレイ上に提供する方法および装置
US6018333A (en) Method and apparatus for selection and manipulation of an overlapping graphical element on a display
JPH0696174A (ja) 束縛点式図形編集装置および処理方法
JP2806312B2 (ja) 図形入力装置
JP2003208259A (ja) 座標入力表示装置
JP3454906B2 (ja) ナビゲーション表示方法及び装置
JP4094706B2 (ja) コンピュータ制御デイスプレイシステム
JPH07105395A (ja) 情報処理装置
JPH05165565A (ja) 座標入力方式
JP3781923B2 (ja) 線描画装置および線描画方法、ならびに線描画プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3177359B2 (ja) 図形描画装置
JP2571178B2 (ja) 3次元図形処理装置
JPH01121919A (ja) 座標入力装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080115

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: 20080408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080408

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: 20110418

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110418

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140418

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees