(57)【要約】【目的】  操作対象とする枠線や頂点にポイント位置を正確に位置付ける操作を行うことなく操作対象を特定し、ウインドウの拡大縮小および移動を容易に行うこと。【構成】  ポインタの移動位置を順次取得し、テーブルに記憶するステップと、前記テーブルに記憶したポインタの移動位置情報を連結して求められる前記ポインタの移動軌跡の一部が制御対象のウインドウの枠線に交差しているかを判定し、交差している場合、ａ．交差するウインドウの枠線の数、ｂ．交差する枠線の端点座標の数から成る要素をチェックし、これらの要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識し、操作対象とするウインドウ枠または頂点を決定するステップと、操作対象として決定したウインドウ枠または頂点を、前記認識した命令に従い、ポインタの移動量に対応して移動して拡大、縮小、移動するステップを備える。【選択図】      図１
2005092447.tif 000002
【特許請求の範囲】
【請求項１】
画面上の任意の位置を指定可能なポインタ装置を用いてウインドウシステムにおけるウインドウの枠の大きさ及び画面上での位置を制御する方法であって、
前記ポインタ装置のポインタの移動操作が開始されてから該ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了するまでの前記ポインタの移動位置を順次取得し、テーブルに記憶する第１のステップと、
前記テーブルに記憶したポインタの移動位置情報を連結して求められる前記ポインタの移動軌跡の一部が制御対象のウインドウの枠線に交差しているかを判定し、交差している場合、
ａ．交差するウインドウの枠線の数
ｂ．交差する枠線の端点座標の数
から成る要素をチェックし、これらの要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識すると共に、操作対象とするウインドウ枠または頂点を決定する第２のステップと、
操作対象として決定したウインドウ枠または頂点を、前記認識した命令に従い、前記ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了した位置方向に、移動操作終了までのポインタの移動量に対応して移動して拡大、縮小、移動する第３のステップと
を備えることを特徴とするウインドウの制御方法。
【請求項２】
前記第２のステップにおいて、前記要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の最大化、最小化の命令に該当するかをさらに認識し、最大化、最小化の命令に該当する場合には、前記第３のステップに代えて、ウインドウ枠全体を予め設定された大きさに最大化、最小化することを特徴とする請求項１に記載のウインドウの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面に表示されたウインドウをポインタによるジェスチャ操作で簡単に拡大または縮小または移動するようにしたウインドウの制御方法に関するものである。
【背景技術】
【０００２】
図形の拡大縮小または移動などの操作を行うアプリケーションには、図形を囲む矩形を表示し、さらにこの矩形の頂点や辺の中央に目印を表示し、もしくは図形の頂点に目印を表示し、拡大縮小や移動といった操作はこれらの目印にポインティングデバイスによって位置が指定されるカーソルを合わせ、任意の方向にドラッグすることにより実現されるものがある。
また、多くのウインドウシステムで表示されるウインドウは矩形であり、各辺にカーソルを合わせてポインティングデバイスをドラッグすることにより、カーソルを合わせた辺に対向する辺の位置と長さが固定された状態で水平方向または垂直方向に拡大縮小ができ、さらに頂点を含む一定の範囲にカーソルを合わせてポインティングデバイスをドラッグすることにより、その頂点に向かい合った頂点の位置を固定した状態で水平方向または垂直方向あるいは水平垂直方向に拡大縮小できるものがある（特許文献１参照）。
【特許文献１】特開平６−１０３０１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
拡大縮小、または移動、最大化、最小化を行う場合には、上記のポインティングデバイスを用いて、枠線や頂点といった非常に狭い範囲にカーソルやポイントを合わせる必要があるため、合わせ方によっては意図していない別の枠線が指定されたり、また意図している操作とは異なる操作になってしまうという問題がある。
特に、電子黒板システムのように、ホワイトボードで構成される画面上にウインドウを投影表示し、その投影表示されたウインドウ内でポイントデバイス（電子ペン）により図形描画などの各種の操作を行う場合、まず、ポイントデバイスのポイント位置を認識するための座標系と投影表示するウインドウ枠の座標系の原点座標の位置合わせを行うが、その位置合わせ後に、ホワイトボード自体の位置が振動や人の接触等によってずれた場合、前記２つの座標系の原点座標がずれてしまう。このような状態では、ウインドウの拡大または縮小を行うために、投影表示されたウインドウの枠線または頂点位置にポイントデバイスのポイント位置を正確に位置付けたとしても、認識されるポイント位置は操作者が指定した枠線または頂点位置で指定した以外のものとなってしまい、このため、操作者が意図した枠線または頂点を認識させ、拡大縮小を行うためには、２つの座標系の原点座標のずれを意識してポイント操作を行うことが必要になり、拡大縮小操作を行う上での操作性が低下してしまうといった問題が生じていた。
また、特許文献１で本願発明者らが提案している方法にあっては、ウインドウ枠の移動ができず、さらにはウインドウ枠の任意の頂点を可動対象とした対角方向への拡大縮小操作ができないという問題がある。
【０００４】
本発明の目的は、操作対象とする枠線や頂点にポイント位置を正確に位置付ける操作を行うことなく操作対象を特定し、ウインドウの拡大縮小および移動を容易に行うことができるウインドウの制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明に係る方法は、画面上の任意の位置を指定可能なポインタ装置を用いてウインドウシステムにおけるウインドウの枠の大きさ及び画面上での位置を制御する方法であって、
前記ポインタ装置のポインタの移動操作が開始されてから該ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了するまでの前記ポインタの移動位置を順次取得し、テーブルに記憶する第１のステップと、
前記テーブルに記憶したポインタの移動位置情報を連結して求められる前記ポインタの移動軌跡の一部が制御対象のウインドウの枠線に交差しているかを判定し、交差している場合、
ａ．交差するウインドウの枠線の数
ｂ．交差する枠線の端点座標の数
から成る要素をチェックし、これらの要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識すると共に、操作対象とするウインドウ枠または頂点を決定する第２のステップと、
操作対象として決定したウインドウ枠または頂点を、前記認識した命令に従い、前記ポインタの移動軌跡が交差したのち前記ポインタの移動操作が終了した位置方向に、移動操作終了までのポインタの移動量に対応して移動して拡大、縮小、移動する第３のステップとを備えることを特徴とする。
また、前記第２のステップにおいて、前記要素の組合わせによって前記ポインタの移動軌跡がウインドウ枠の最大化、最小化の命令に該当するかをさらに認識し、最大化、最小化の命令に該当する場合には、前記第３のステップに代えて、ウインドウ枠全体を予め設定された大きさに最大化、最小化することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、画面上の任意の点を指定可能なポインタ装置のポインタを移動し、その移動軌跡により、例えば、ウインドウ枠の４隅の頂点の１つを囲むようなジェスチャ操作を行うことにより操作対象を指定し、さらにその操作対象を移動させることによって、その移動量に対応した大きさだけ、ポインタの移動方向に拡大縮小するようにしたため、ウインドウの頂点にポインタカーソルを正確に位置付ける操作を行う必要がなくなる。
同様に、ポインタの移動軌跡により、例えば、ウインドウの４隅の辺の１つを囲むようなジェスチャ操作を行うことにより操作対象とする枠の１つを指定し、さらにその操作対象を移動させることによって、その移動量に対応した量だけ、ポインタの移動方向にウインドウ全体を移動するようにしたため、ウインドウの枠線にポインタカーソルを正確に位置付ける操作を行う必要がなくなる。
これにより、ウインドウの拡大縮小や移動などの操作性が向上する。特に、電子黒板システムのように、ホワイトボードで構成される画面上におけるポインタの認識位置座標系とウインドウを投影表示する投影座標系の原点座標がずれ易いシステムにおいては、投影表示されるポインタカーソルとポインタ装置のポイント位置とのずれを意識せずに操作することが可能になり、ウインドウを拡大縮小、移動する場合の操作性が向上するという効果がある。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態について図面に基づき説明する。
本発明においては、画面上の任意の点を指定可能なポインタ装置のポインタカーソルを移動し、その移動軌跡により、例えば、ウインドウ枠の４隅の頂点の１つを囲むようなジェスチャ操作を行うことにより操作対象を指定し、さらにその操作対象を移動させる操作を行うことによって、その移動量に対応した大きさだけ、移動方向に拡大縮小する。
詳しくは、ウインドウ枠の拡大縮小または画面上での移動を行う場合の操作対象として、ウインドウの頂点や枠を指定する。その際に、操作対象の頂点やウインドウ枠の一部をポインタの移動軌跡によって囲むようなジェスチャ操作を行う。そして、そのジェスチャ操作によるポインタの移動軌跡の座標列をメモリのテーブルに順次記憶させ、移動軌跡が交差するまでの軌跡を構成する軌跡線分と、ウインドウ枠を構成する線分が交差するかどうかを調べ、交差する場合は、ウインドウ枠を構成する枠線の端点座標（始点座標と終点座標）を記憶する。そして、交差するウインドウ枠線の数、交差するウインドウ枠線の端点座標の数から成る要素をチェックし、これらの要素の組合わせによってポインタの移動軌跡がウインドウ枠の拡大縮小、移動のいずれの命令に該当するかを認識すると共に、操作対象とするウインドウ枠または頂点を決定する。次に、操作対象として決定したウインドウ枠または頂点を、認識した命令に従い、ポインタの移動軌跡が交差したのち移動操作が終了した位置方向に、移動操作が終了するまでのポインタの移動量に対応して移動して拡大縮小、移動する。
記憶されたウインドウ枠線の本数が２本以上で、これらのウインドウ枠線が３個の異なる座標からのみ構成されている場合は、２本の線分の交点である１つの頂点が操作対象として指定されたと判断する。このとき、各ウインドウ枠線を構成する座標のうち、共通な座標が交点の座標である。
記憶されたウインドウ枠線の本数が２本以上で、これらのウインドウ枠線が２個の異なる座標からのみ構成されている場合は、この２個の座標からなるウインドウ枠線が操作対象として指定されたと判断する。
操作内容すなわち拡大縮小と移動のいずれを選択するかは、交差するウインドウ枠線の数、交差するウインドウ枠線の端点座標の数で決定するが、その割り当ては任意でよい。
なお、交差するウインドウ枠線の端点座標が４つ以上存在する場合は操作対象を確定しない。
【０００８】
図１〜図３は、本発明におけるウインドウの拡大縮小、移動、最大化、最小化の操作方法の概要を示す説明図であり、図１（ａ）は頂点Ａ〜ＤからなるウインドウＷ０の頂点Ｄを操作対象に指定して拡大する方法、図１（ｃ）はウインドウＷ０の辺（枠線）ＣＤを操作対象に指定して図の右方向に拡大する方法、図２（ａ）はウインドウＷ０の頂点Ｄと辺ＣＤを操作対象に指定してウインドウ全体を画面上の任意の位置に移動する方法、図２（ｂ）はウインドウＷ０の辺（枠線）ＣＤを操作対象に指定してウインドウ全体を画面上の上、下、左、右のいずれかの方向に移動する方法、図３（ａ）はウインドウＷ０の辺（枠線）ＣＤを操作対象に指定してウインドウＷ０を最大化する方法、図３（ｂ）はウインドウＷ０の辺（枠線）ＡＢ、ＡＤを操作対象に指定してウインドウＷ０を最小化する方法を示す図である。
【０００９】
図１（ａ）において、ポインタ装置のボタン（例えばマウスの左ボタン）を押した状態でポインタカーソルを移動し、その移動軌跡Ｌｃにより、ウインドウＷ０の頂点Ｄを囲むようなジェスチャ操作を行うことにより操作対象となる頂点Ｄを指定し、さらにその操作対象の頂点を移動させる操作を行う。この操作によって、ポインタカーソルの移動軌跡Ｌｃが交差したならば、操作対象として頂点Ｄが指定されたことが認識される。そして、ポインタカーソルの移動軌跡ＬｃがウインドウＷ０の辺に交差した際に、どの辺と交差したかを交差する都度記憶し、かつその辺の端点座標の数を記憶する。
図１（ａ）の例では、移動軌跡Ｌｃに交差したウインドウＷ０の枠線の数は辺ＡＤ，ＣＤの２本であり、それらの端点座標はＡ，Ｃ，Ｄの３つであると認識される。
そこで、この場合の操作は図４のコマンド定義に示すように、頂点Ｄを操作対象としたウインドウＷ０の拡大縮小コマンドとして判定される。
図１（ｂ）に示すように、ポイントカーソルの移動軌跡Ｌｃが交点Ｐで交差したのち、ポインタカーソルの移動軌跡Ｌｃがさらにｘ、ｙ方向にΔｘ、Δｙだけ移動した時点でポインタ装置のボタン（例えばマウスの左ボタン）が離されてポインタの移動操作が終了したことが検出されると、ウインドウＷ０の水平方向の辺ＡＤ、ＢＣがΔｘだけ拡大、垂直方向の辺ＡＢ，ＣＤがΔｙだけ拡大され、図１（ａ）のＷ１で示すようなウインドウとして表示される。
この場合、操作対象に指定された頂点Ｄの対角となる頂点Ｂが固定点として拡大される。
【００１０】
なお、ウインドウが拡大されるか、縮小されるかは、移動軌跡Ｌｃの交点Ｐを基準点としたポインタカーソルの移動量に依存する。すなわち、Δｘ、Δｙが共に正の場合にはｘ方向、ｙ方向に拡大され、Δｘ、Δｙが共に負の場合には、ｘ方向およびｙ方向に縮小される。Δｘのみが負の場合には、ｘ方向のみが縮小され、ｙ方向は拡大される。
なお、移動量Δｘ、Δｙは、詳しくは、移動軌跡Ｌｃの交点Ｐを作成する要因となった移動位置Ｐ＋１を基準に算出される。
また、拡大または縮小したウインドウの描画は、ポインタカーソルの移動軌跡が交点Ｐで交差した時点以降で、ポインタカーソルの移動にリアルタイムに追随させて行うことが望ましい。ポインタカーソルの移動に追随させてウインドウＷ０を描画するようにした場合、所望の大きさになるまでポインタカーソルを移動させながら大きさが適切であるかをリアルタイムで確認することができる。この場合には、所望の大きさになった時点でポインタのボタンを離して拡大縮小操作を停止させることになる。なお、ポインタ装置のボタンが離された時点（移動操作の終了指示がなされた時点）で描画を開始するようにしてもよい。
【００１１】
図１（ｃ）において、ウインドウＷ０の辺（枠線）ＣＤを操作対象に指定して図の右方向に拡大する場合、ポインタ装置のボタン（例えばマウスの左ボタン）を押した状態でポインタカーソルを移動し、その移動軌跡により、ウインドウＷ０の辺（枠線）ＣＤの一部を囲むようなジェスチャ操作を行うことにより操作対象となる辺（枠線）ＣＤを指定し、さらにその操作対象の辺（枠線）ＣＤを移動させる操作を行う。この操作によって、ポインタカーソルの移動軌跡が交差したならば、操作対象として辺（枠線）ＣＤが指定されたことが認識される。そして、ポインタの移動軌跡が交差したウインドウ枠線の数は、１回目の交差で辺ＤＣＤが認識され、２回目の交差で同じ辺ＣＤが認識されることから、移動軌跡が交差したウインドウの枠は辺ＣＤおよび辺ＣＤの２本であり、それらの辺の端点座標はＣ，Ｄの２つであると認識される。
そこで、この場合の操作は図４のコマンド定義に示すように、辺ＣＤを操作対象としたウインドウＷ０の拡大縮小コマンドとして判定される。
１つの辺ＣＤを操作対象とした拡大縮小コマンドでは、ポイントカーソルの移動軌跡が交点Ｐで交差したのち、ポインタカーソルの移動軌跡がさらにｘ、ｙ方向にΔｘ、Δｙだけ移動した時点でポインタ装置のボタン（例えばマウスの左ボタン）が離されると、ウインドウＷ０の辺ＣＤが、この辺ＣＤに対向する辺ＡＢを固定の辺として、図の右方向にΔｘだけ拡大され、図１（ｃ）のＷ１で示すようなウインドウとして表示される。
この図１（ｃ）の拡大縮小コマンドでは、ウインドウＷ０を図の左右方向および上下方向に拡大または縮小することができる。図１（ａ）の拡大縮小コマンドとの相違は、ウインドウＷ０の対角方向に拡大縮小するものではないということである。拡大されるか、縮小されるかは、図１（ａ）の場合と同様に、Δｘ、Δｙに依存する。
【００１２】
次に、図２（ａ）において、ポインタ装置のボタン（例えばマウスの左ボタン）を押した状態でポインタカーソルを移動し、その移動軌跡Ｌｃにより、ウインドウＷ０の辺ＣＤおよび頂点Ｄと辺ＣＤの一部を囲むようなジェスチャ操作を行う。
この操作によって、ポインタカーソルの移動軌跡Ｌｃが交点Ｐで交差したならば、操作対象として頂点Ｄが指定されたことが認識される。そして、ポインタカーソルの移動軌跡Ｌｃが交差したウインドウ枠線の数は、１回目の交差で辺ＡＤが認識され、２回目の交差で辺ＣＤが認識され、３回目の交差で辺ＣＤが認識されることから、辺ＡＤ，ＣＤ、ＣＤの３本であり、それらの端点座標はＡ，Ｃ，Ｄの３つであると認識される。
そこで、この場合の操作は図４のコマンド定義に示すように、頂点Ｄを操作対象としたウインドウＷ０の全方位方向の移動コマンドとして判定される。
図２（ａ）の移動コマンドでは、ポイントカーソルの移動軌跡Ｌｃが交点Ｐで交差したのち、ポインタカーソルの移動軌跡Ｌｃがさらにｘ、ｙ方向にΔｘ、Δｙだけ移動した時点でポインタ装置のボタン（例えばマウスの左ボタン）が離されると、頂点ＤがΔｘ、Δｙだけ画面上で移動し、図２（ａ）のＷ１で示すようなウインドウとして表示される。
この場合、ウインドウＷ０の頂点Ａ，Ｂ，Ｃ，Ｄの相対座標が固定されたまま、画面上で全方位方向に移動する。ウインドウＷ０の画面上での変位位置は、Δｘ、Δｙに依存し、移動軌跡の交点Ｐを基準としてΔｘ、Δｙが共に負の場合には、−ｘ方向（図の左方向）、−ｙ方向（図の下方向）にウインドウＷ０が現在位置から変位する。
【００１３】
次に図２（ｂ）において、ポインタ装置のボタン（例えばマウスの左ボタン）を押した状態でポインタカーソルを移動し、その移動軌跡Ｌｃにより、ウインドウＷ０の辺ＣＤを囲むようなジェスチャ操作を行うことにより操作対象となる辺ＣＤを指定し、さらにその操作対象の辺ＣＤを移動させる操作を行う。この操作によって、ポインタカーソルの移動軌跡Ｌｃが交点Ｐで交差したならば、操作対象として辺ＣＤが指定されたことが認識される。そして、ポインタの移動軌跡Ｌｃが交差したウインドウ枠線の数は、１回目の交差で辺ＣＤが認識され、２回目の交差で同じ辺ＣＤが認識され、３回目の交差でさらに辺ＣＤが認識されることから、同じ辺ＣＤの３本であり、それらの端点座標はＣ，Ｄの２つであると認識される。
そこで、この場合の操作は図４のコマンド定義に示すように、辺ＣＤを操作対象としたウインドウの移動コマンドとして判定される。
図２（ｂ）の移動コマンドでは、ポイントカーソルの移動軌跡Ｌｃが交点Ｐで交差したのち、ポインタカーソルの移動軌跡Ｌｃがさらにｘ、ｙ方向にΔｘ、Δｙだけ移動した時点でポインタ装置のボタン（例えばマウスの左ボタン）が離されると、辺ＣＤが図の右方向にΔｘだけ移動し、ウインドウＷ０全体が図の右方向にΔｘだけ画面上で移動し、図２（ｂ）のＷ１で示すようなウインドウとして表示される。この場合、ウインドウＷ０の頂点Ａ，Ｂ，Ｃ，Ｄの相対座標が固定されたまま、画面上で移動する。
【００１４】
この図２（ｂ）の辺方向の移動コマンドにおいては、操作対象として指定された辺のＸ座標値が同じならば、Ｘ方向（図の左右方向）の移動とし、操作対象として指定された辺のＹ座標値が同じならば、Ｙ方向（図の上下方向）の移動とする。図２（ａ）の移動コマンドとの相違は、図の上下左右方向の移動だけであり、ウインドウＷ０の対角方向を含む全方位方向の移動ではないということである。ウインドウの移動量は、移動軌跡Ｌｃが交点Ｐで交差した後の交点Ｐを基準とした移動量Δｘ、Δｙに依存する。ウインドウＷ０を画面右方向に移動させる場合、辺ＣＤ（またはＡＢ）を指定し、移動軌跡Ｌｃが図２（ｂ）に示すように右向きとなるように操作する。すると、移動軌跡Ｌｃの交点Ｐを基準とした移動量は＋Δｘとなり、ウインドウＷ０は画面右方向に移動される。
ウインドウＷ０を画面上方向に移動させる場合、辺ＡＤ（またはＢＣ）を指定し、移動軌跡Ｌｃが画面上向きとなるように操作する。すると、移動軌跡Ｌｃの交点Ｐを基準とした移動量は＋Δｙとなり、ウインドウＷ０は画面上方向に移動される。
次に図３（ａ）において、ポインタ装置のボタン（例えばマウスの左ボタン）を押した状態でポインタカーソルを移動し、その移動軌跡Ｌｃにより、ウインドウＷ０の辺ＣＤの一部を４回通過するようなジェスチャ操作を行うことにより操作対象となる辺ＣＤを指定する操作を行う。この操作によって、ポインタカーソルの移動軌跡Ｌｃが交点Ｐで交差したならば、操作対象として辺ＣＤが指定されたことが認識される。そして、ポインタの移動軌跡が交差したウインドウ枠線の数は辺ＤＣ（１回目）、辺ＣＤ（２回目）、辺ＣＤ（３回目）、辺ＣＤ（４回目）であることから、辺ＣＤの４本であり、それらの端点座標はＣ，Ｄの２つであると認識される。
そこで、この場合の操作は図５のコマンド定義に示すように、ウインドウ全体を操作対象とした最大化コマンドとして判定される。
この最大化コマンドでは、ウインドウＷ０が予め設定されている最大サイズに変更され、Ｗｍａｘとして表示される。
【００１５】
次に図３（ｂ）において、ポインタ装置のボタン（例えばマウスの左ボタン）を押した状態でポインタカーソルを移動し、その移動軌跡Ｌｃにより、ウインドウＷ０の辺ＡＢ，ＡＤの一部をそれぞれ２回通過するようなジェスチャ操作を行うことにより操作対象となる辺ＡＢ，ＡＤを指定する操作を行う。この操作によって、ポインタカーソルの移動軌跡Ｌｃが交点Ｐで交差したならば、操作対象として辺ＡＢ，ＡＤが指定されたことが認識される。そして、ポインタの移動軌跡が交差したウインドウ枠線の数は辺ＡＤ（１回目）、辺ＡＢ（２回目）、辺ＡＢ（３回目）、辺ＡＤ（４回目）であることから、辺ＡＢ，ＡＤがそれぞれ２回ずつの４本であり、それらの端点座標はＡ，Ｂ，Ｄの３であると認識される。
そこで、この場合の操作は図５のコマンド定義に示すように、ウインドウ全体を操作対象とした最小化コマンドとして判定される。
この最小化コマンドでは、ウインドウＷ０が予め設定されている最小サイズに変更され、Ｗｍｉｎとして表示される。
【００１６】
図４および図５は、本発明におけるウインドウの拡大縮小および移動を行うための操作コマンドの定義例を示すものであり、図４（ａ）は全方位方向の拡大縮小を行う場合の定義例、図４（ｂ）は全方位方向でウインドウ全体を移動させる場合の定義例、図４（ｃ）は左右上下方向のみの拡大縮小を行う場合の定義例、図４（ｄ）は画面上におけるウインドウの現在位置を左右上下方向のみに移動させる場合の定義例、図５（ａ）は最大化を行う場合の定義例、図５（ｂ）は最小化を行う場合の定義例である。
図４（ａ）における全方位方向の拡大縮小を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分（辺）と交差した場合に記憶される線分の本数が「２」、交差する線分の端点座標の数が「３」であった場合、それぞれの線分に共通する端点位置の頂点を操作対象とする全方位方向の拡大縮小コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図４（ａ）の（１）または（２）に示すようなものがある。
【００１７】
図４（ｂ）の全方位方向でウインドウ全体を移動させる場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分（辺）と交差した場合に記憶される線分の本数が「３」、交差する線分の端点座標の数が「２」であった場合、それぞれの線分に共通する端点位置の頂点を操作対象とする全方位方向の移動コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図４（ｂ）の（１）または（２）に示すようなものがある。
【００１８】
図４（ｃ）の左右上下方向のみの拡大縮小を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分（辺）を交差した場合に記憶される線分の本数が「２」、交差する線分の端点座標の数が「２」であった場合、端点座標で示された線分を操作対象とする辺方向の拡大縮小コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図４（ｃ）の（１）または（２）に示すようなものがある。
【００１９】
図４（ｄ）の画面上におけるウインドウの現在位置を左右上下方向のみに移動させる場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分（辺）と交差した場合に記憶される線分の本数が「３」、交差する線分の端点座標の数が「２」であった場合、端点座標で示された線分を操作対象とする辺方向の移動コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図４（ｄ）の（１）または（２）に示すようなものがある。
【００２０】
図５（ａ）の最大化を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分（辺）と交差した場合に記憶される線分の本数が「４」、交差する線分の端点座標の数が「２」であった場合、ウインドウ全体を操作対象とする最大化コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図５（ａ）の（１）または（２）または（３）に示すようなものがある。
【００２１】
図５（ｂ）の最小化を行う場合の定義例では、ポインタカーソルの移動軌跡がウインドウの線分（辺）を交差した場合に記憶される線分の本数が「４」、交差する線分の端点座標の数が「３」であった場合、ウインドウ全体を操作対象とする最小化コマンドであると定義している。
この定義例におけるポインタカーソルの移動軌跡の例は、図５（ｄ）の（１）に示すようなものがある。
なお、図４および図５に例示したポインタカーソルの移動軌跡の例は、典型的なものを示したものに過ぎず、これに限定されるものではない。
本発明においては、ポインタカーソルの移動軌跡がウインドウの線分（辺）と交差した場合に記憶される線分の本数、交差する線分の端点座標の数に基づいて、拡大縮小コマンドか、移動コマンドかが判定される。
【００２２】
図６は、本発明の一実施の形態を示すシステム構成図である。ここで示す構成は、例えばホワイトボードを表示画面とする電子黒板システムに適用することができるものである。
図６において、この実施の形態のシステムは、表示画面に表示された図形やウインドウ枠を操作するポインタ装置１と、ポインタ装置１からポインタデータを入力するためのポインタデータ入力部２と、ポインタデータを記憶するためのポインタデータ記憶部３およびポインタデータテーブル７と、ポインタデータを連結して求められるポインタカーソルの移動軌跡によりウインドウ枠の操作対象および操作内容を判定するウインドウ操作判定部４と、表示するウインドウ枠のデータが格納されるウインドウデータテーブル８と、ウインドウ操作判定部４によって確定したウインドウの操作対象と操作内容によってウインドウを拡大縮小または移動させる拡大縮小移動処理部５と、ウインドウや図形を表示するための処理を行うウインドウ表示部６と、ウインドウや図形を表示する表示装置９と、ポインタカーソルの移動軌跡とウインドウ枠の辺が交差したときのウインドウ枠の辺の情報を記憶する交差記録テーブル１０と、操作対象および操作内容を記憶する操作対象操作内容記憶領域１１と、ポインタカーソルの軌跡データの入力が完了する契機となった座標と操作対象の辺または点との差分を記憶する座標差分記憶領域１２が設けられている。
【００２３】
以上の構成において、図７（ａ）に示す頂点Ａ，Ｂ，Ｃ，Ｄから成る４角形のウインドウＷ０を、図８（ｂ）に示す形状のウインドウ頂点Ａ，Ｂ，Ｃ’，Ｄ’から成るウインドウＷ１に拡大する例について説明する。
図１（ｂ）において説明したように、ウインドウを辺方向に拡大する場合、ポイントカーソルの移動軌跡Ｌｃが交点Ｐで交差したのち、ポインタカーソルの移動軌跡Ｌｃがさらにｘ、ｙ方向にΔｘ、Δｙだけ移動した時点でポインタ装置のボタン（例えばマウスの左ボタン）が離されてポインタの移動操作が終了したことが検出されると、ウインドウＷ０の水平方向の辺ＡＤ、ＢＣがΔｘだけ拡大、垂直方向の辺ＡＢ，ＣＤがΔｙだけ拡大される。
図７（ａ）において、ポインタ装置１で発生したデータは、ポインタ入力部２により受け取られ、ポインタデータ記憶部３に渡される。ポインタデータ記憶部３は、何個目のポインタデータかを判定しポインタデータテーブル７に格納する。
最初の３個のポインタデータｐ０，ｐ１，ｐ２は、そのまま格納される。図８（ａ）は、ポインタデータテーブル７に３個のポインタデータｐ０，ｐ１，ｐ２のｘ座標値とｙ座標値が記憶された状態を示している。
４個目のポインタデータｐ３が入力されたとき、ポインタデータ記憶部３は過去に入力されたポインタデータから線分ｐ０−ｐ１、線分ｐ１−ｐ２、線分ｐ２−ｐ３を作成し、最後の線分ｐ２−ｐ３がそれよりも前の線分と交差していないかどうか調べる。
【００２４】
図７（ａ）では線分ｐ２−ｐ３はそれよりも前の線分と交差しないので、ポインタデータｐ３はポインタデータテーブル７の４番目に格納される。図８（ｂ）にこの状態のポインタデータテーブル７の記憶内容を示している。
５個目のポインタデータｐ４が入力されたときも交差しないので、ポインタデータｐ４はポインタデータテーブルの５番目に図８（ｃ）に示すように格納される。
【００２５】
６個目のポインタデータｐ５が入力されると、線分ｐ４−ｐ５は線分ｐ０−ｐ１と交差するため、ポインタデータｐ５をポインタデータテーブルの６番目に格納して、軌跡データの入力が完了する。図８（ｄ）にこの状態のポインタデータテーブル７の記憶内容を示している。
図形操作判定部４は、軌跡データの入力の完了を受けて、表示されている頂点ＡＢＣＤからなるウインドウＷ０の各辺と、軌跡データから作成される線分が交差していないかどうか調べる。
まず、線分ｐ０−ｐ１がポインタデータテーブル７から作成され、辺ＡＢ、辺ＢＣ、辺ＣＤ、辺ＤＡのそれぞれの辺と交差するかどうか調べる。次に、線分ｐ１−ｐ２が作成され、同様にウインドウＷ０の各辺と交差するかどうかが調べる。同様に、線分ｐ２−ｐ３、線分ｐ３−ｐ４、線分ｐ４−ｐ５についても行う。この結果、線分ｐ１−ｐ２が辺ＣＤと交差する。そこで、図９（ａ）に示すように、交差記録テーブル１０の１番目に辺ＣＤの始点と終点すなわち（ｘＣ，ｙＣ）と（ｘＤ，ｙＤ）を記憶し、また線分ｐ３−ｐ４が辺ＣＤと交差するので、図９（ｂ）に示すように、交差記録テーブル１０の２番目に辺ＣＤの始点と終点すなわち（ｘＣ，ｙＣ）と（ｘＤ，ｙＤ）を記録し、交差記録テーブル１０への記録を完了する。
【００２６】
次に、交差記録テーブル１０に何種類の端点座標が格納されているか調べる。記録されている端点座標は、Ｃ（ｘＣ，ｙＣ）と、Ｄ（ｘＤ，ｙＤ）であることから、２種類の端点座標が格納されていることが判明するので、操作対象は辺ＣＤであり、交差記録テーブル１０に記録されている線の本数は２本であるから、操作内容は拡大縮小であることが確定する。
そこで、確定した操作対象と操作内容を図１０に示すように操作対象操作内容記憶領域１１に書き込む。
さらに、軌跡データの入力が完了する契機となったポイントデータｐ５の座標を、拡大縮小移動操作の基点ｘＢａｓｅ、ｙＢａｓｅとして座標差分記憶領域１２に格納する（図１１）。
【００２７】
操作対象と操作内容が確定したならば、ポインタデータ入力部２は入力したポインタデータを拡大縮小移動処理部５に送る。したがって、ポインタデータｐ６が拡大縮小移動処理部５に送られる。
拡大縮小移動処理部５は、ポインタデータｐ６を受け取ると、拡大縮小移動操作の基点（ｘＢａｓｅ，ｙＢａｓｅ）との差分を計算し、図１１の座標差分記憶領域１２にΔｘとΔｙとして格納する。
拡大縮小移動処理部５は、辺ＣＤの始点座標と終点座標のｘ座標が同じである場合は辺ＣＤのｘ座標にΔｘを加え、始点座標と終点座標のｙ座標が同じである場合は辺ＣＤのｙ座標にΔｙを加える。これによって、拡大縮小後の辺ＣＤの始点座標Ｃ’は（ｘＣ＋Δｘ，ｙＣ）となり、終点座標Ｄ’は（ｘＤ＋Δｘ，ｙＤ）となる。
ここで求めた座標Ｃ’とＤ’によって、ウインドウデータテーブル８の座標ＣとＤの座標を図１２（ａ）から図１２（ｂ）に示すような値に変更する。
これにより、ウインドウＷ０は四角形ＡＢＣ’Ｄ’に拡大される。ウインドウ表示部６は、ウインドウデータテーブル８を参照して拡大後の四角形ＡＢＣ’Ｄ’を図７（ｂ）のように表示装置９に表示する。
【００２８】
図１３〜図２９は図形の拡大縮小と移動を行うためのフローチャートである。
例として、図１４に示す頂点ＡＢＣＤからなるウインドウＷ０のデータが、図３０（ａ）のようにウインドウデータテーブル８に格納されており、図１４のｐｓの位置でポインタ装置１を操作して、ｐ０，ｐ１，ｐ２，ｐ３，ｐ４，ｐ５の順で座標データが発生する場合についてフローチャートの説明を行なう。
なお、ウインドウＷ０のデータは左上の頂点から反時計回りの順にウインドウデータテーブル８に格納されているものとする。
最初にポインタ装置１から発生する座標を入力して図３０（ｂ）の軌跡線分テーブルを作成する。この後、図３１（ａ）の作業領域ＣＫに０をセットする（ステップ１００１）。ＣＫは、図３０（ｂ）の軌跡線分テーブルのインデックスである。
次に、ポインタ装置１から座標データを１個取得する（ステップ１００２）。
取得した座標を図３０（ｂ）の軌跡線分テーブルのＣＫ番目の始点にセットする（ステップ１００３）。先頭の座標である場合は終点のセットをスキップする（ステップ１００４）。
次に、前回までに入力された座標がある場合、今回入力した座標を終点座標として図２９（ｂ）の軌跡線分テーブルのＣＫ−１番目の終点にセットする（ステップ１００５）。
次に、図３１（ａ）の作業領域ＣＫの値を１だけ増加させる（ステップ１００６）。
軌跡線分の本数が２個未満の場合はステップ１００２に戻る（ステップ１００７）。
次に、図３１（ａ）の作業領域ｉに０をセットする（ステップ１００８）。ｉは、最初の軌跡線分から最後の軌跡線分の１本前までの線分を列挙するための軌跡線分テーブルにおけるインデックスである。
最後の軌跡線分の１本前まで列挙されたらステップ１００２に戻る（ステップ１００９）。
【００２９】
次に、軌跡線分テーブルのｉ番目の線分と、最後の軌跡線分（軌跡線分テーブルのＣＫ−２番目に記録された線分）が交差するかどうかを調べる。交差している場合はポインタ装置１からの座標入力を終了し（ステップ１０１０）、図３１（ａ）の作業領域ＣＫの内容を１だけ減らすことにより、ＣＫの内容を軌跡線分の本数とし（ステップ１０１２）、ステップ１０２１の処理へ分岐する。今回の例では、ポインタ装置１から座標ｐ５が入力された時点で、線分ｐ０−０１と線分ｐ４−ｐ５が交差するため、ポインタ装置１からの座標入力が終了し、軌跡線分テーブルの内容は図３０（ｂ）のようになり、図３１（ａ）の作業領域ＣＫの内容はステップ１０１２の処理を経て「５」となる。
ステップ１０１０において、２つの線分が交差しない場合は、図３１（ａ）の作業領域ｉの内容を１だけ増加させ、ステップ１００９に戻る（ステップ１０１１）。
ステップ１０２１（図１５）では、図３１（ａ）に示す作業領域ｉｚｄにゼロをセットする。ｉｚｄは、ウインドウＷ０の図形データを参照するときのインデックスである。
次に、図３１（ａ）に示す作業領域ｉｃに０をセットする。ｉｃは、図３０（ｄ）に示す交差線分テーブルのインデックスである（ステップ１０２２）。
次に、ウインドウＷ０を構成する図形データの個数を、図３１（ａ）に示す作業領域ＣＺＤにセットする。今回の例では１つのウインドウＷ０のみ格納されているため、ＣＺＤには１がセットされる（ステップ１０２３）。
【００３０】
次にｉｚｄ＜ＣＺＤ化を判定する。今、ｉｚｄは０であるため、ステップ１０２４の判定は真となる。
真の場合、ｉｚｄ番目の図形データを取り出す。今、ｉｚｄは０なので、ウインドウＷ０の図形データが取り出される（ステップ１０２５）。
次の座標データを取り出すために、ｉｚｄを１だけ増加させる（ステップ１０２６）。
図形データのｘ位置とｙ位置により、図３０（ｃ）に示す図形線分テーブルを作成する。ここでは線分ＡＢ，線分ＢＣ，線分ＣＤ，線分ＤＡの４本の線からなる図形線分テーブルが作成され、その本数（４本）が図３１（ａ）に示す作業領域ＣＺにセットされる（ステップ１０２７）。
次に、図３１（ａ）に示す作業領域ｉｚに０をセットする。ｉｚは、図形線分テーブルのインデックスである（ステップ１０２８）。
次に、ｉｚ＜ＣＺかを判定する。今、ｉｚは０であるため、ステップ１０２９の判定は真となる。
真の場合、図３１（ａ）に示す作業領域ｉｋに０をセットする。ｉｋは、軌跡線分テーブルのインデックスである（ステップ１０３０）。
【００３１】
次に、ｉｋ＜ＣＫかを判定する。今、ｉｋは０なので、ステップ１０１１の判定は真となる。
真の場合、図形線分テーブルのｉｚ番目の線分と、軌跡線分テーブルのｉｋ番目の線分が交差するかどうか調べる。今、ｉｚ＝０，ｉｋ＝０なので、図形線分ＡＢと軌跡線分ｐ０−ｐ１が交差するかどうか調べる。この２つの線分は図１４の例では交差しないため、ステップ１０３３の判定は偽となり、ステップ１０３６でｉｋ（軌跡線分テーブルのインデックス）を１だけ増加させてステップ１０３１に戻る。もしもステップ１０３３の判定が真の場合、すなわち２つの線分が交差する場合は、図形線分テーブルのｉｚ番目の線分を構成する座標を図３０（ｄ）の交差線分テーブルのｉｃ番目にセットし、（ステップ１０３４）、ｉｃ（図３０（ｄ）の交差線分テーブルのインデックス）を１だけ増加させ（ステップ１０３５）、ｉｋ（軌跡線分テーブルのインデックス）を１だけ増加させてステップ１０３１に戻る。
【００３２】
このようにステップ１０３１，１０３３，１０３４，１０３５，１０３６によって、軌跡線分テーブルに格納された線分が列挙され、図形線分テーブルのｉｚ番目の線分と交差するかどうかが調べられ、交差する場合は図形線分テーブルのｉｚ番目の線分を構成する座標が、交差線分テーブルに記録される。
今、ｉｚ＝０であるから、図形線分ＡＢと軌跡線分ｐ０−ｐ１，ｐ１−ｐ２，ｐ２−ｐ３，ｐ３−ｐ４，ｐ４−ｐ５がそれぞれ交差するかどうか調べられる結果、軌跡線分ｐ１−ｐ２が交差することが判明し、図形線分ＡＢを構成する座標すなわち（Ａｘ，Ａｙ）と（Ｂｘ，Ｂｙ）が交差線分テーブル（図３０（ｄ））に記憶される。
軌跡線分の列挙の終了はステップ１０３１によって判定され、この条件判定結果が偽の場合は図３１（ａ）に示す作業領域ｉｚ（図形線分テーブルのインデックス）の内容を１だけ増加させ、ステップ１０２９に戻る。
今、ｉｚ＝１であるため、ステップ１０２９の条件判定結果は真となり、ステップ１０３０，１０３１，１０３３，１０３４，１０３５，１０３６によって軌跡線分が列挙され、図形線分テーブルのｉｚ番目すなわち図形線分ＢＣとの交差が調べられる。
【００３３】
以後、同様に図形線分ＣＤ（ｉｚ＝２）と図形線分ＤＡ（ｉｚ＝３）について軌跡線分との交差が調べられる（ステップ１０２９〜１０３６）。
図形線分の列挙はｉｚ＝４になったときステップ１０２９によって終了し、ステップ１０２４に戻って次の図形データの有無がチェックされる。今、ｉｚｄ＝１かつＣＺＤ＝１であるため、ステップ１０２４の条件判定結果は偽となり、図１６のステップ１０５０へ進む。この時点で図形線分と軌跡線分の交差チェックが完了する。
図５の処理では、交差線分テーブルにセットされた線分の本数によりそれぞれの処理に分岐する（ステップ１０５０，１０５１，１０５２）
すなわち、交差線分テーブルにセットされた線分の本数が２本の場合は図１７に示すステップ１０５３が開始される。
【００３４】
２本の線分は、何種類の座標から構成されているか調べ、図３０（ａ）に示す作業領域ｎにセットする（ステップ１０５３）。
ｎが２のときは２種類の座標から２本の線分が構成されており、２本の線分は同一であり、この線分（図形の辺）を指定した拡大縮小操作とする（ステップ１０５４，１０５５）。
ｎが３のときは３種類の座標から２本の線分が構成されており、共通な座標が１個存在し、この共通の座標（図形の頂点）を指定した拡大縮小操作とする（ステップ１０５６，１０５７）。
交差線分テーブルにセットされた線分の本数が３本の場合は、図１８に示すステップ１０５８が開始される。
ここでは、３本の線分は、何種類の座標から構成されているか調べ、図３１（ａ）に示す作業領域ｎにセットする（ステップ１０５８）。
ｎが２のときは２種類の座標から２本の線分が構成されており、３本の線分は同一であり、この線分（図形の辺）を指定した移動操作とする（ステップ１０５９，１０６０）。
ｎが３のときは３種類の座標から３本の線分が構成されており、共通な座標が１個存在し、この共通の座標（図形の頂点）を指定した移動操作とする（ステップ１０６１，１０６２）。
【００３５】
交差線分テーブルにセットされた線分の本数が４本の場合は、図１９に示すステップ１０６３が開始される。
ここでは、４本の線分は、何種類の座標から構成されているか調べ、図３１（ａ）に示す作業領域ｎにセットする（ステップ１０６３）。
ｎが２のときは２種類の座標から４本の線分が構成されており、４本の線分は同一であり、この線分（図形の辺）を含む図形全体を指定した最大化操作とする（ステップ１０６４，１０６５）。
ｎが３のときは３種類の座標から４本の線分が構成されており、共通な座標が１個存在し、この共通の座標（図形の頂点）を指定した最小化操作とする（ステップ１０６６，１０６７）。
図１４の例では交差線分テーブルには２本の線分がセットされ、３種類の座標すなわち（Ａｘ，Ａｙ），（Ｂｘ，Ｂｙ），（Ｄｘ，Ｄｙ）から構成され、このうち（Ａｘ，Ａｙ）が共通な座標であるため、頂点（Ａｘ，Ａｙ）を操作対象とした拡大縮小操作となる。
【００３６】
次に、図２０のステップ１０９３では、移動や拡大縮小を行なう際の座標差分を計算するときに使用する原点座標をそれぞれｘＢａｓｅ，ｙＢａｓｅにセットする。
ステップ１０６８，１０６９，１０９４，１０９５により、操作内容毎にそれぞれの処理に分岐する。
操作内容が移動である場合、図２１のステップ１０７０に分岐する。ステップ１０７０では、移動操作の開始処理であり、ｉに０をセットする。ｉ＝０の場合は移動のための座標の指定が行なわれなかったことを、ｉ＝１の場合は少なくとも１個の座標が移動のために指定されたことを示す。
ステップ１０７１は、ポインタ装置１の状態を確認するものであり、移動操作の終了（例えばボタンを離すなど）を判定している。移動操作が終了している場合は、図２３のステップ１０８２へジャンプする。
【００３７】
移動操作が終了していない場合、ステップ１０７２はポインタ装置１から座標を入力し、作業領域ｐｘ，ｐｙにセットする。この例では、ｐ６のｘ座標がｐｘにセットされ、ｐ６のｙ座標がｐｙにセットされる。
続くステップ１０７３では、現在入力した座標が、原点座標（ｘＢａｓｅ，ｙＢａｓｅ）からどれだけ変化したかを計算し、その結果をｄｘ，ｄｙにセットする。
ステップ１０７４では、移動中の図形の表示に関するものであり、ｉ＝０で移動のための座標が初めて入力されたときはステップ１０９３が実行され、最初に表示されていた図形データが非表示となる。ｉ＝０でなく、移動のための座標が２個目以後は、ステップ１０７５が実行され、移動中の図形が非表示となる。そして、図２２のステップ１０７６に進む。
図２２のステップ１０７６では作業領域ｎに０をセットする。ｎは図形線分テーブルのインデックスとして使用する。
【００３８】
ステップ１０７７では、図形線分テーブルのエントリが全て列挙されたかどうか（ｎ＜ＣＺ）を判定する。全て列挙されたらステップ１０８０へジャンプする。
全て列挙されていない場合、ステップ１０９３に進み、操作対象が頂点であるかどうかを判定する。頂点である場合は、ステップ１０７８を実行し、図形線分テーブル（図３０（ｃ））のｎ番目の始点のｘ座標とｙ座標にそれぞれｄｘとｄｙを加えたものを図３１（ｂ）の作業用図形線分テーブルのｎ番目の始点にセットする。
ステップ１０９３の判定が偽の場合、操作対象は辺であるのでステップ１０９０に進む。ステップ１０９０では辺の始点座標と終点座標のそれぞれのｘ座標が同じかどうか判定する。同じである場合はステップ１０９１を実行し、図形線分テーブルのｎ番目の始点のｘ座標にｄｘを加えたものを図３１（ｂ）の作業用図形線分テーブルの始点のｘ座標にセットし、図形線分テーブルのｎ番目の始点のｙを作業用図形線分テーブルの始点のｙ座標にセットする。
ステップ１０９０の判定が偽の場合、辺の始点座標と終点座標のｙ座標が同じであるので、ステップ１０９２を実行し、図形線分テーブルのｎ番目の始点のｙ座標にｄｙを加えたものを図３１（ｂ）の作業用図形線分テーブルの始点のｙ座標にセットし、図形線分テーブルのｎ番目の始点のｘを作業用図形線分テーブルの始点のｘ座標にセットする。
次に、ステップ１０７９では図形線分テーブルのインデックスｎを１だけ増加させ、ステップ１０７７に戻る。
【００３９】
一方、ステップ１０７７の判定が偽の場合は、図形線分テーブルのエントリを全て列挙したことになるので、ステップ１０８０を実行し、作業用図形線分テーブルの始点座標のみを使用して図形を表示する。
ステップ１０８１では、移動後の図形が少なくとも１回表示されたことを示すために、ｉに１をセットする。
図２１に戻り、ステップ１０７１の判定が偽になった場合は、ポインタ装置１に対して操作完了の指示が行なわれたことになるので、図２３のステップ１０８２の判定（ｉ＝０）を実行する。ここでは移動後の図形が少なくとも１回表示されていることが判定されたらステップ１０８３を実行し、図形データ移動後の座標に更新する。
【００４０】
図２０に戻り、ステップ１０６９で操作内容が拡大縮小であると判定された場合、図２４のステップ１１００に進む。図２４のステップ１１００は拡大縮小処理の開始処理であり、まず、作業領域ｉに０をセットし、拡大縮小後の図形が一度も表示されていないことを記憶する。
次に、ステップ１１０１ではポインタ装置１で拡大縮小操作の終了を指示されていないかどうかを判定する。指示されていない場合、ステップ１１０２でポインタ装置１から座標を１個入力し、ｐｘ，ｐｙにセットする。指示されている場合、図２７のステップ１１２６に進む。
ステップ１１０３では、入力した座標と拡大縮小の起点となる座標（ｘＢａｓｅ，ｙＢａｓｅ）の差分を計算し、ｄｘ，ｄｙにセットする。
ステップ１１０４では、過去に拡大縮小後の図形を表示したことがあるかどうか（ｉ＝０）を判定する。真の場合はｉｚｄ番目の図形を非表示にする（ステップ１１０６）。偽の場合は図３１（ｂ）の作業用図形線分テーブルの始点座標により表示されている図形を非表示にし（ステップ１１０５）、図２５のステップ１１０７に進む。
【００４１】
図２５のステップ１１０７では、図形線分テーブルの内容を図３１（ｂ）の作業用図形線分テーブルにコピーする。作業用図形線分テーブルの一部を変更することで、拡大縮小を実現する。
ステップ１１０８で４は、操作対象が辺であるか頂点であるか（ｎ＝２）を判定するものである。辺の場合（ｎ＝２）はステップ１１０９が実行され、選択された辺の始点座標が図形線分テーブルの何番目のエントリの始点座標として格納されているかを調べ、そのインデックスをｎにセットする（ステップ１１０９，１１１０，１１１１）。
ステップ１１１２では、選択された辺の始点と終点のｘ座標が同一かどうか判定し、真の場合は作業用図形線分テーブルのｎ番目エントリの始点のｘ座標にｄｘを加える（ステップ１１１３）。これにより、縦の辺が操作対象として選択された場合はその辺を水平方向に移動することにより図形の拡大縮小が実現される。
【００４２】
ステップ１１１２の判定が偽の場合は、選択された辺の始点と終点のｙ座標が同一であることになるので、作業用図形線分テーブルのｎ番目のエントリの始点のｙ座標にｄｙを加える（ステップ１１１４）。これにより、横の辺が操作対象として選択された場合はその辺を垂直方向に移動することにより図形の拡大縮小が実現される。
ステップ１１０８の判定が偽の場合は、頂点を指定した拡大縮小操作であり、操作対象の頂点座標が図形線分テーブルの何番目の始点座標と同じか調べ、そのインデックスをｎにセットする（ステップ１１１５，１１１６，１１１７）。
ステップ１１１８ではｎは偶数か否か、すなわち操作対象の頂点が左上または右下にあるのか、右上または左下にあるのかを判定する。図形線分テーブルの始点座標は、図形の左上から反時計周りの順に頂点が記憶されているので、ｎが偶数か奇数かを判定することにより、操作対象の頂点が左上または右下にあるのか、右上または左下にあるのかが判定できる。
【００４３】
ステップ１１１８の判定結果が真の場合はｎは偶数であるので、ステップ１１１９が実行され、ｊに操作対象の頂点から反時計方向に見て次の頂点のインデックスをセットし、ｋに操作対象の頂点から時計方向にみて次の頂点のインデクスをセットする（ステップ１１１９）。
ステップ１１１８の判定が偽の場合、ｎは奇数であり、ｋに操作対象の頂点から反時計方向に見て次の頂点のインデックスをセットし、ｊに操作対象の頂点から時計方向にみて次の頂点のインデクスをセットする（ステップ１１２０）。この後、ステップ１１２１に進む。
ステップ１１２１では、作業用図形線分テーブルのｎ番目の始点のｘ座標とｙ座標にそれぞれｄｘ，ｄｙを加算する。これにより、選択された頂点はポインタの移動差分だけ移動する。
次のステップ１１２２では、作業用図形線分テーブルのｊ番目の始点のｘ座標にｄｘを加算する。これにより、選択された頂点を含む縦方向の辺は、ポインタの移動差分のうち水平方向にだけ移動する。
ステップ１１２３は、作業用図形線分テーブルのｋ番目の始点のｙ座標にｄｙを加算するものである。これにより、選択された頂点を含む横方向の変は、ポインタの移動差分のうち垂直方向にだけ移動する。次に、図２６のステップ１１２４に進む。
ステップ１１２４では、作成された作業用図形線分テーブルの始点座標を使用して拡大縮小後の図形を表示する。
ステップ１１２５では、ｉに１をセットして、少なくとも１回、拡大縮小後の図形が表示されたことを記憶する。この後、図２４のステップ１１０１に戻る。
図２４のステップ１１０１において、ポインタ装置１の状態は差憂さ完了状態でなかったと判定された場合、図２７のステップ１１２６に進む。
【００４４】
図２７のステップ１１２６は少なくとも１回、拡大縮小後の図形が表示されたかどうかを判定するものであり、この判定が偽の場合は少なくとも１回拡大縮小後の図形が表示されたことを意味するので、作業用図形線分テーブルの始点座標の内容で、ｉｚｄ番目の図形データを更新する（ステップ１１２７）。
図２０に戻り、操作内容が最大化であることが判明した場合、図２８のステップ１２００に進む。
【００４５】
図２８のステップ１２００では、最大化するウィンドウの４つの頂点の位置を取得し、作業用図形線分テーブルの０番目の始点座標にセットする。
ステップ１２０１では、ｉｚｄ番目の図形データにより現在表示されている図形を非表示にする。
ステップ１２０２では、最大化したウィンドウの４つの頂点の座標によりｉｚｄ番目の図形データを更新する。
ステップ１２０３では、最大化されたウィンドウ（ｉｚｄ番目の図形データ）を表示する。
【００４６】
図２０に戻り、操作内容が最小化であることが判明した場合、図２９のステップ１３００に進む。ステップ１３００は最小化するウィンドウの４つの頂点の位置を取得し、にセットする。
ステップ１３０１では、ｉｚｄ番目の図形データにより現在表示されている図形を非表示にする。
ステップ１３０２では、最小化したウィンドウの４つの頂点の座標（作業用図形線分テーブルの０番目の始点座標）によりｉｚｄ番目の図形データを更新する。
ステップ１３０３は、最小化されたウィンドウを表示する。
【００４７】
以上の処理により、図４（ａ）の拡大縮小操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図３２（ａ）〜（ｃ）に示すように、操作対象のウインドウＷ０がＷ１に拡大縮小される。
また、図４（ｃ）の拡大縮小操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図３２（ｄ）〜（ｆ）に示すように、操作対象のウインドウＷ０がＷ１に拡大縮小される。
また、図４（ｂ）の移動操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図３３（ａ）の破線で示すように、操作対象のウインドウＷ０が現在位置から上下左右方向の位置のウインドウＷ１に移動される。
また、図４（ｄ）の移動操作が行われた場合、ポインタの移動軌跡が交差した以降のポインタの移動量に応じて、図３３（ｂ）の破線で示すように、操作対象のウインドウＷ０が現在位置から左右上下方向および斜め方向の全方位方向の位置のウインドウＷ１に移動される。
【図面の簡単な説明】
【００４８】
【図１】本発明のおけるウインドウの拡大縮小方法におけるポインタ操作の仕方を示す説明図である。
【図２】本発明のおけるウインドウの移動方法におけるポインタ操作の仕方を示す説明図である。
【図３】本発明のおけるウインドウの最大化または最小化方法におけるポインタ操作の仕方を示す説明図である。
【図４】本発明のおけるウインドウの制御方法におけるコマンド定義を示す図である。
【図５】本発明のおけるウインドウの制御方法におけるコマンド定義を示す図である。
【図６】本発明の一実施形態を示すブロック図である。
【図７】図形の拡大縮小操作の説明図である。
【図８】ポインタデータテーブルの内容の変化を示す説明図である。
【図９】交差記録テーブルの内容の変化を示す説明図である。
【図１０】操作対象操作内容記憶領域の記録内容を示す説明図である。
【図１１】座標差分記憶領域の記録内容を示す説明図である。
【図１２】図形データテーブルの記録内容を示す説明図である。
【図１３】本発明の処理手順を示すフローチャートである。
【図１４】本発明の処理手順を説明するためのポインタ操作の一例を示す図である。
【図１５】図１３の続きを示すフローチャートである。
【図１６】図１５の続きを示すフローチャートである。
【図１７】図１６の続きを示すフローチャートである。
【図１８】図１６の続きを示すフローチャートである。
【図１９】図１６の続きを示すフローチャートである。
【図２０】図１７〜図１９の続きを示すフローチャートである。
【図２１】図２０の続きを示すフローチャートである。
【図２２】図２１の続きを示すフローチャートである。
【図２３】図２１の続きを示すフローチャートである。
【図２４】図２０の続きを示すフローチャートである。
【図２５】図２４の続きを示すフローチャートである。
【図２６】図２５の続きを示すフローチャートである。
【図２７】図２４の続きを示すフローチャートである。
【図２８】図２０の続きを示すフローチャートである。
【図２９】図２０の続きを示すフローチャートである。
【図３０】本発明の処理手順を実現するために必要なテーブルを示す図である。
【図３１】本発明の処理手順を実現するために必要な作業領域を示す図である。
【図３２】本発明におけるウインドウの拡大縮小の種類の例を示す図である。
【図３３】本発明におけるウインドウの移動の種類の例を示す図である。
【符号の説明】
【００４９】
１    ポインタ装置
２    ポインタデータ入力部
３    ポインタデータ記憶部
４    図形操作判定部
５    縮小移動処理部
６    図形表示部
７    ポインタデータテーブル
８    ウインドウデータテーブル
９    表示装置
１０  交差記録テーブル
１１  操作対象操作内容記憶領域
１２  座標差分記憶領域
【図１】
2005092447.tif 000003
【図２】
2005092447.tif 000004
【図３】
2005092447.tif 000005
【図４】
2005092447.tif 000006
【図５】
2005092447.tif 000007
【図６】
2005092447.tif 000008
【図７】
2005092447.tif 000009
【図８】
2005092447.tif 000010
【図９】
2005092447.tif 000011
【図１０】
2005092447.tif 000012
【図１１】
2005092447.tif 000013
【図１２】
2005092447.tif 000014
【図１３】
2005092447.tif 000015
【図１４】
2005092447.tif 000016
【図１５】
2005092447.tif 000017
【図１６】
2005092447.tif 000018
【図１７】
2005092447.tif 000019
【図１８】
2005092447.tif 000020
【図１９】
2005092447.tif 000021
【図２０】
2005092447.tif 000022
【図２１】
2005092447.tif 000023
【図２２】
2005092447.tif 000024
【図２３】
2005092447.tif 000025
【図２４】
2005092447.tif 000026
【図２５】
2005092447.tif 000027
【図２６】
2005092447.tif 000028
【図２７】
2005092447.tif 000029
【図２８】
2005092447.tif 000030
【図２９】
2005092447.tif 000031
【図３０】
2005092447.tif 000032
【図３１】
2005092447.tif 000033
【図３２】
2005092447.tif 000034
【図３３】
2005092447.tif 000035