以下、本発明の実施の形態について図面を用いて詳細に説明する。
<装置構成の概略説明>
まず、図1を用いて、座標入力装置全体の概略構成を説明する。
図1は本発明の実施形態の遮光方式の座標入力装置の概略構成を示す図である。
図1において、1L、1Rは投光部及び検出部(受光部)を有するセンサユニットであり、本実施形態の場合、図示の如く座標入力面であるところの座標入力有効領域3のX軸に平行に、かつY軸に対称な位置に、所定距離離れて配置されている。センサユニット1L及び1Rは、制御・演算ユニット2に接続され、制御信号を制御・演算ユニット2から受信すると共に、検出した信号を制御・演算ユニット2に送信する。
4は入射光を到来方向に反射する再帰反射面を有する再帰反射部であり、座標入力有効領域3の外側3辺に図示が如く配置され、左右それぞれのセンサユニット1L及び1Rから略90°範囲に投光された光を、センサユニット1L及び1Rに向けて再帰反射する。
尚、再帰反射部材4は、ミクロ的に見て3次元的な構造を有し、現在では、主にビーズタイプの再帰反射テープ、或いはコーナキューブを機械加工等により規則正しく配列することで再帰現象を起こす再帰反射テープが知られている。
8は特定の波長のみの光を透過することができる光透過部材であって、不要光の光透過を防止すると共に、再帰反射部材4が直接外観に露出することを防止し、製品外観の一部を構成する。このように構成すると、製品として使われている際に、光透過部材8に堆積する『ほこり』、『ゴミ』の類は、その光透過部材8をユーザが『拭く』等の動作により簡単に除去できる。そのため、再帰反射部材4の光学特性を半永久的に維持することが容易となり、信頼性の高い装置を実現することが可能となる。
再帰反射部材4で再帰反射された光は、センサユニット1L及び1Rによって1次元的に検出され、その光量分布が制御・演算ユニット2に送信される。
座標入力有効領域3は、PDPやリアプロジェクタ、LCDパネルなどの表示装置10(座標出力先の外部端末に接続される)の表示画面で構成することで、インタラクティブな入力装置として、利用可能となっている。
このような構成において、座標入力有効領域3に指や指示具5による入力指示がなされると、センサユニット1L及び1Rの投光部から投光された光が遮られ(遮光部分)、センサユニット1L及び1Rの検出部ではその遮光部分の光(再帰反射による反射光)を検出できないので、その結果、どの方向からの光が検出できなかったかを判別することが可能となる。
そこで、制御・演算ユニット2は、左右のセンサユニット1L及び1Rが検出する光量変化から、指示具5によって入力指示された部分の遮光範囲を検出する。そして、その遮光範囲の情報から、センサユニット1L及び1Rそれぞれに対する遮光位置の方向(指示具角度)をそれぞれ算出する。
そして、算出された方向(角度)、及びセンサユニット1L及び1R間の距離情報等から、座標入力有効領域3上の指示具の遮光位置を幾何学的に算出する。この算出した遮光位置に対応する座標値を、表示装置に接続されている表示制御部11に出力する、あるいはホストコンピュータ等の外部端末にインタフェース7(例えば、USB、IEEE1394等)を経由して出力する。
表示制御部11は、得られた座標値に基づき所定の動作(情報の加工)をして、その結果を表示できるように動作する。さらには、後述するような作業領域を設定した時の画像を表示するための制御や、検出した座標値を変換するための制御を行うが、外部のコンピュータがこの制御を行うように構成しても良い。
このようにして、指示具5によって、画面上に線を描画したり、表示装置に表示されるアイコンを操作する等の外部端末の操作が可能になる。
<センサユニットの詳細説明>
まず、センサユニット1L及び1R内の投光部の構成について、図2を用いて説明する。
図2は本発明の実施形態のセンサユニットの投光部の構成例を示す図である。
図2(a)は投光部30を上(座標入力有効領域3の入力面に対し垂直方向)から見た場合を示している。31は座標検出用の赤外光を発する赤外LEDであり、赤外LED31から発光した光は投光レンズ32によって略90°範囲に光が投光される。
図2(b)は投光部30を横(座標入力有効領域3の入力面に対し水平方向)から見た場合を示している。この方向では、赤外LED31からの光は上下方向に制限された光束として投光され、主に、再帰性反射部材4に対して光が投光されるように構成されている。
次に、センサユニット1L及び1Rの検出部の構成について、図3を用いて説明する。
図3は本発明の実施形態のセンサユニットの検出部及びセンサユニットの構成例を示す図である。
図3(a)では、センサユニット1L及び1Rの検出部40を座標入力有効領域3の入力面に対して垂直方向から見た場合を示している。また、図3(b)では、入力面と水平方向からの見たときの、図2(b)の投光部30と図3(a)の検出部40を重ねて、センサユニット1L(1R)を構成した場合を示している。
尚、図3(a)中の破線部分203は、図3(b)に示される投光部の配置を示すものである。本実施形態の場合、投光部30と検出部40を重ねて配置しておいる。また、両者の光軸間の距離Lは、投光部30から再帰反射部材4までの距離に比べて十分に小さな値である。これにより、距離Lを有していても十分な再帰反射光を検出部40で検知することが可能な構成となっている。
検出部40は、複数の受光素子(画素)からなる1次元のラインCCD41及び集光光学系としての集光用レンズ42及び43、入射光の入射方向を制限する絞り44、可視光など余分な光の入射を防止する赤外フィルタ45から構成されている。
投光部30からの光は、再帰性反射部材4によって反射され、赤外フィルタ45、絞り44を抜けて、集光用レンズ42及び43によって入力面の略90°範囲の光がラインCCD41の検出面にその入射角に依存した画素上に結像される。これにより、入射角の角度毎の光量分布が得られる。つまり、ラインCCD41を構成する各画素の画素番号が角度情報を表すことになる。
<制御・演算ユニットの説明>
制御・演算ユニット2とセンサユニット1L及び1Rの間では、主に、検出部40内のラインCCD41用のCCD制御信号、CCD用クロック信号と出力信号及び投光部30の赤外LED31の駆動信号がやり取りされている。
ここで、制御・演算ユニット2の詳細構成について、図4を用いて説明する。
図4は本発明の実施形態の制御・演算ユニットの詳細構成を示すブロック図である。
CCD制御信号は、ワンチップマイコン等で構成される演算制御回路(CPU)83から出力され、ラインCCD41のシャッタタイミングやデータの出力制御等が行われる。
尚、この演算制御回路83は、メインクロック発生回路86からのクロック信号に従って動作する。また、CCD用のクロック信号は、クロック発生回路(CLK)87からセンサユニット1L及び1Rに送信されると共に、各センサユニット内部のラインCCD41との同期をとって各種制御を行うために、演算制御回路83にも入力されている。
投光部30の赤外LED31を駆動するためのLED駆動信号は、演算制御回路83からLED駆動回路84L及び84Rを介して、対応するセンサユニット1L及び1Rの投光部30の赤外LED31に供給されている。
センサユニット1L及び1Rそれぞれの検出部40のラインCCD41からの検出信号は、制御・演算ユニット2の対応するA/Dコンバータ81L及び81Rに入力され、演算制御回路2からの制御によって、デジタル値に変換される。この変換されたデジタル値は、メモリ82に記憶され、指示具の角度算出に用いられる。そして、この算出された角度から座標値が算出され、外部端末にシリアルインタフェース88(例えば、USB、RS232Cインタフェース等)を介して出力される。
<光量分布検出の説明>
図5は本発明の実施形態の制御信号のタイミングチャートである。
図5において、91〜93はCCD制御信号であり、SH信号91の間隔で、ラインCCD41のシャッタ解放時間が決定される。ICGL信号92及びICGR信号93は、センサユニット1L及び1Rそれぞれのセンサユニットへのゲート信号であり、内部のラインCCD41の光電変換部の電荷を読出部へ転送する信号である。
94、95はセンサユニット1L及び1Rそれぞれの投光部30の駆動信号である。ここで、SH信号91の最初の周期で、センサユニット1Lの投光部30を点灯(投光期間96L)するために、LEDL信号94がLED駆動回路84Lを経て投光部30に供給される。また、SH信号91の次の周期で、センサユニット1Rの投光部30を点灯(投光期間96R)するために、LEDR信号95がLED駆動回路84Rを経て投光部30に供給される。
そして、センサユニット1L及び1Rの双方の投光部30の駆動が終了した後に、センサユニット1L及び1Rの双方の検出部(ラインCCD41)の検出信号が読み出される。
ここで、センサユニット1L及び1Rの双方から読み出される検出信号は、座標入力有効領域3への指示具による入力がない場合には、それぞれのセンサユニットからの出力として、図6(a)のような光量分布が得られる。もちろん、このような光量分布がどのシステムでも必ず得られるわけではなく、再帰性反射部材4の特性(例えば、再帰反射部材4の入射角による再帰反射特性)や投光部30の特性、また、経時変化(反射面の汚れなど)によって、光量分布は変化する。
図6(a)においては、レベルAが最大光量であり、レベルBが最低光量となっている。
つまり、再帰性反射部材4からの反射光がない状態では、センサユニット1L及び1Rで得られる光量レベルがレベルB付近になり、反射光量が増えるほど、レベルAに光量レベルが遷移する。このようにして、センサユニット1L及び1Rから出力された検出信号は、逐次、対応するA/Dコンバータ81L及び81RでA/D変換され、演算制御回路83にデジタルデータとして取り込まれる。
これに対し、座標入力有効領域3への指示具による入力がある場合には、センサユニット1L及び1Rからの出力として、図6(b)のような光量分布が得られる。
この光量分布のC部分では、指示具によって再帰性反射部材4からの反射光が遮られているため、その部分(遮光範囲)のみ反射光量が低下していることがわかる。
そして、実施形態1では、指示具による入力がない場合の図6(a)の光量分布と、指示具による入力がある場合の図6(b)の光量分布の変化に基づいて、センサユニット1L及び1Rに対する指示具の角度を算出する。
具体的には、図6(a)の光量分布を初期状態として予めメモリ82に記憶しておく、そして、センサユニット1L及び1Rそれぞれの検出信号のサンプル期間に、図6(b)のような光量分布の変化があるか否かを、そのサンプル期間中の光量分布と初期状態(以後、初期状態で得られたデータを初期データと称する)の光量分布との差分によって検出する。そして、光量分布に変化がある場合には、その変化部分を指示具の入力点としてその入力角度を決定する演算を行う。
<角度計算の説明>
センサユニット1L及び1Rに対する指示具の角度計算にあたっては、まず、指示具による遮光範囲を検出する必要がある。
上述したように、センサユニット1L及び1Rが検出する光量分布は、経時変化等の要因で一定ではないため、その初期状態の光量分布は、例えば、システムの起動時毎にメモリ82に記憶することが望ましい。
つまり、工場等の出荷時に初期データを設定し、その初期データの更新が、逐次行われなければ、例えば、所定の位置の再帰反射面にゴミが付着した場合、その部分での再帰反射効率が低下する。この場合、あたかもその位置(センサユニットから見た方向)で座標入力動作が行われた、即ち、誤検出してしまうという重大な結果を引き起こす。
従って、システムの起動時等に、初期データを記憶することで、再帰反射面が経時的にほこり等で汚れて再帰反射効率が落ちていても、その状態を初期状態として設定しなおすことができる。これにより、誤動作をすることが無くなるという優れた利点が得られるようになる。
無論、光透過部材8あるいは再帰反射部材4上のゴミ等による影響で、光透過部材8を介する再帰反射部材4からの信号がその付着した部分で全く受け取ることができなくなれば、座標検出不能の事態となり、何らかの方法で、そのゴミ等を除去しなければならない。また、再帰反射部材8からの光信号が大幅に減っている状態にあっては、S/N比の関係で信号の信頼性が低下(例えば、同一地点を指示しているのみ関わらず座標が揺らぐ現象が発生し、座標算出分解能を低下させてしまう)する。従って、このような場合であっても、光透過部材8あるいは再帰反射部材4に付着したゴミ等は除去するのが好ましい。
以下、センサユニット1L及び1Rの一方(例えば、センサユニット1L)による指示具の角度計算について説明するが、他方(センサユニット1R)でも同様の角度計算を行うことは言うまでもない。
電源投入時、入力のない(遮光部分がない)状態で、まず、センサユニット1L内の投光部30からの投光を停止している状態で、検出部40の出力である光量分布をA/D変換して、この値をBas_data[N]としてメモリ82に記憶する。
尚、この値は、検出部40(ラインCCD41)のバイアスのばらつき等を含んだデータでり、図6(a)のレベルB付近のデータとなる。ここで、NはラインCCD41を構成する画素の画素番号であり、有効な入力範囲(有効範囲)に対応する画素番号が用いられる。
次に、投光部30からの投光を行っている状態で、検出部40の出力である光量分布をA/D変換して、この値をRef_data[N]としてメモリ82に記憶する。
尚、この値は、例えば、図6(a)の実線で示されるデータとなる。
そして、このメモリ82に記憶されたBas_data[N]とRef_data[N]とを用いて、まずは、指示具による入力の有無、かつ遮光範囲の有無の判定を行う。
ここで、センサユニット1L(ラインCCD41)の出力のサンプル期間内のN番目の画素の画素データをNorm_data[N]とする。
まず、遮光範囲を特定するために、画素データの変化の絶対量によって、遮光範囲の有無を判定する。これは、ノイズ等による誤判定を防止し、所定量の確実な変化を検出するためである。
具体的には、画素データの変化の絶対量を、ラインCCD41の各々の画素において以下の計算を行い、予め決定してある閾値Vthaと比較する。
Norm_data_a[N] = Norm_data[N] − Ref_data[N] (1)
ここで、Norm_data_a[N]は、ラインCCD41の各画素における絶対変化量である。
この処理は、ラインCCD41の各画素の絶対変化量Norm_data_a[N]を算出し、それを閾値Vthaと比較するだけである。従って、その処理時間をさほど必要とせず、入力の有無の判定を高速に行うことが可能である。そして、特に、閾値Vthaを初めて超えた画素が所定数を超えて検出された場合に、指示具の入力があると判定する。
次に、より高精度に指示具による入力を検出するために、画素データの変化の比を計算して入力点の決定を行う方法について、図7を用いて説明する。
図7において、910は再帰性反射部材4の再帰反射面とする。ここで、α領域が汚れなどにより、その反射率が低下していたとする。このときのRef_data[N]の画素データ分布(光量分布)は、図8(a)のように、α領域に対応する部分の反射光量が少なくなる。この状態で、図7のように、指示具5が挿入され、ほぼ再帰性反射面910の上半分を覆ったとすると、反射光量は略半分となるため、図8(b)の太線で示した分布Norm_data[N]が観測されることになる。
この状態に対して、(1)式を適用すると、その画素データ分布は、図9(a)のようになる。ここで、縦軸は初期状態との差分電圧になっている。
この画素データに対して、閾値Vthaを適用すると、本来の入力範囲をはずれてしまうような場合がある(図9(a)の破線領域)。もちろん、閾値Vthaの値を下げればある程度検出可能であるが、ノイズなどの影響を受ける可能性が大きくなり、座標算出性能を劣化させる恐れがある。
そこで、指示具5によって遮られる光量は、画素データの変化の比を計算することとすると、α領域及びβ領域とも反射光量は最初の半分(α領域ではレベルV1相当、β領域ではレベルV2相当)であるので、次式で比を計算することができる。
Norm_data_r[N] = Norm_data_a[N] / (Bas_data[N] - Ref_data[N]) (2)
この計算結果を示すと、図9(b)のように、画素データの変化が比であらわされるため、再帰性反射部材4の反射率が異なる場合でも、等しく扱うことが可能になり、高精度に検出が可能になる。
この画素データに対して、閾値Vthrを適用して、遮光範囲に対応する画素データ分布の立ち上がり部と立ち下がり部に対応する画素番号を取得する。そして、この両者の中央を指示具による入力に対応する画素とすることで、より正確な指示具の入力位置を決定することができる。
尚、図9(b)は、説明のために模式的に描いたもので、実際にはこのような立ち上がりにはなっておらず、画素毎に異なるデータレベルを示している。その詳細を示すと、図10のようになる。
以下、式(2)を画素データに適用した場合の検出結果の詳細について、図10を用いて説明する。
図10は本発明の実施形態の検出結果の詳細を示す図である。
図10において、指示具による遮光範囲を検出するための閾値Vthrに対して、その閾値Vthrを横切る画素データ分布の立ち上がり部分がNr番目の画素、立ち下がり部分がNf番目の画素であるとする。この場合、両者の画素の中心画素Npは、
Np = Nr + (Nf-Nr)/2 (3)
と計算することが可能である。但し、この計算では、ラインCCD41の画素間隔が出力画素番号の分解能になってしまう。
そこで、より細かく検出するために、それぞれの画素のデータレベルとその一つ前の隣接画素のデータレベルを用いて、閾値Vthrを横切る仮想の画素番号を計算する。
ここで、Nr番目の画素のデータレベルをLr、Nr−1番目の画素のデータレベルをLr−1とする。また、Nf番目の画素のデータレベルをLf、Nf−1番目の画素のデータレベルをLf−1とする。この場合、それぞれの仮想画素番号Nrv,Nfvは、
Nrv = Nr-1 + ( Vthr - Lr-1 ) / ( Lr - Lr-1 ) (4)
Nfv = Nf-1 + ( Vthr - Lf-1 ) / ( Lf - Lf-1 ) (5)
と計算できる。
そして、これらの仮想画素番号Nrv,Nfvの仮想中心画素Npvは、
Npv = Nrv + (Nfv-Nrv)/2 (6)
で決定される。
このように、閾値Vthrを越えるデータレベルの画素の画素番号とその隣接する画素番号と、それらのデータレベルから、閾値Vthrを横切る仮想的な仮想画素番号を計算することで、より分解能の高い検出を実現できる。
<画素番号から角度情報への変換>
次に、遮光範囲の中心点を示す中心画素番号から、実際の指示具の座標値を計算するためには、この中心画素番号を角度情報(θ)に変換する必要がある。
ここで、画素番号とθとの関係について、図11を用いて説明する。
図11は本発明の実施形態の画素番号に対するθ値の関係を示す図である。
この図11に基づいて、画素番号からθを求めるための近似式を定義すると、
θ=f(N) (7)
となり、その近似式(変換式)を用いて画素番号からθへの変換を行うことが可能となる。
本実施形態では、1次近似式を用いて近似できるように、先に説明したセンサユニット1L(1R)中の検出部40のレンズ群を構成するが、レンズの光学的収差等により、より高次な近似式を用いたほうが、より高精度に角度情報を得ることが可能となる場合がある。
ここで、どのようなレンズ群を採用するかは、製造コストと密接に関連する。特に、レンズ群の製造原価を下げることによって一般的に発生する光学的な歪を、より高次の近似式を用いて補正する場合には、それなりの演算能力(演算速度)を要求される。従って、目的とする製品に要求される座標算出精度を鑑みながら、その両者を適宜設定すれば良い。
<座標算出方法の説明>
次に、画素番号から変換された角度データ(tanθ)から、指示具の位置座標を算出する座標算出方法について説明する。
ここで、座標入力有効領域3上に定義する座標とセンサユニット1L及び1Lとの位置関係について、図12を用いて説明する。
図12は本発明の実施形態の座標入力有効領域上に定義する座標とセンサユニット1L及び1Lとの位置関係を示す図である。
図12では、座標入力有効領域3の水平方向にX軸、垂直方向にY軸を定義し、座標入力有効領域3の中央を原点位置O(0,0)に定義している。そして、座標入力有効領域3の座標入力範囲の上辺左右に、それぞれのセンサユニット1L及び1RをY軸に対称に取り付けており、その間の距離はDsである。
また、センサユニット1L及び1Rそれぞれの受光面は、その法線方向がX軸と45度の角度を成すように配置され、その法線方向(基準方向)を0度と定義している。
この時、角度の符号は、左側に配置されたセンサユニット1Lの場合には、時計回りの方向を『+』方向に、また、右側に配置されたセンサユニット1Rの場合には、反時計回りの方向を『+』方向と定義している。
さらには、Poはセンサユニット1L及び1Rの法線方向の交点位置である。また、Y軸方向の原点からの距離をPoyと定義する。この時、それぞれのセンサユニット1L及び1Rで得られた角度をθL、θRとすると、検出すべき点Pの座標P(x,y)は、
x = Ds/2 * (tanθR - tanθL) / (1 - (tanθR * tanθL)) (8)
y = Ds/2 * (tanθR + tanθL + (2 * tanθR * tanθL)) /
(1 - (tanθR * tanθL)) + P0y (9)
で計算される。
以上の構成に基づく座標入力装置の座標算出処理について、図13を用いて説明する。
図13は本発明の実施形態の座標入力装置が実行する座標算出処理を示すフローチャートである。
まず、座標入力装置の電源が投入されると、ステップS202で、制御・演算ユニット11のポート設定、タイマ設定等の座標入力装置に係る各種初期化を行う。
ステップS203で、ラインCCD41のCCD画素有効範囲を、例えば、メモリ82に予め記憶されている設定値から設定する。
ステップS204で、ラインCCD41の初期読込動作の初期読込回数を設定する。
尚、この初期読込動作は、座標入力装置の起動時におけるラインCCD41の不要電荷除去を行うのための動作である。ラインCCD41では、動作させていないときに不要な電荷を蓄積している場合があり、その電荷が蓄積されている状態で座標入力動作を実行すると、検出不能になったり、誤検出の原因となる。そこで、これを避けるために、ステップS203では、投光部30による投光を停止している状態で、所定回数の読込動作を実行する。これにより、不要電荷の除去を行う。
ステップS205で、ラインCCD41の読込動作を実行する。ステップS206で、所定回数以上の読込を実行したか否かを判定する。所定回数以上の読込を実行していない場合(ステップS206でNO)、ステップS205に戻る。一方、所定回数以上の読込を実行した場合(ステップS206でYES)、ステップS207に進む。
ステップS207で、第1リファレンスデータとして、投光部30による投光を停止している状態でのラインCCD41の画素データ(Bas_data[N])を取り込む。ステップS208で、その第1リファレンスデータをメモリ82に記憶する。
次に、ステップS209で、第2リファレンスデータとして、投光部30からの投光を行っている状態でのラインCCD41の画素データ(Ref_data[N])を取り込む。ステップS210で、その第2リファレンスデータをメモリ82に記憶する。
ここまでの処理が、電源投入時の初期動作になる。この初期設定動作は、座標入力装置に構成されているリセットスイッチ等により操作者の意図によって動作するように構成しても良いことは言うまでも無い。この初期設定動作を経て、通常の座標入力ペン1による座標入力動作状態に移行することになる。
ステップS211で、座標入力サンプリング状態で、ラインCCD41の通常読込動作を実行して、画素データ(Norm_data[N])を取り込む。
ステップS212で、第2リファレンスデータ(Ref_data[N])と画素データ(Norm_data[N])の差分値を計算する。ステップS213で、その差分値と上述の閾値Vthrに基づいて、指示具5による入力(遮光部分)の有無を判定する。入力がない場合(ステップS213でNO)、ステップS211に戻る。一方、入力がある場合(ステップS213でYES)、ステップS214に進む。
ステップS214で、画素データの変化の比を、(2)式を用いて算出する。
ステップS215で、計算された画素データの変化の比に対して、指示具5による遮光範囲に対応する画素データ分布の立ち下がりと立ち上がりの検出を行う。そして、検出された立ち下がり及び立ち上がりと、(4)、(6)及び(7)式を用いて、遮光範囲の中心となる仮想的な中心画素番号を決定する。
ステップS216で、決定された中心画素番号と近似多項式よりTanθを計算する。ステップS217で、センサユニット1L及び1Rに対するTanθ値から、指示具5の入力座標P(x,y)を、(8)及び(9)式を用いて算出する。
そして、ステップS218で、算出した座標値を外部端末へ出力する。この出力は、USBインタフェースやRS232Cインタフェース等のシリアル通信で送っても良いし、無線LANやブルートゥース等の無線通信で送信しても良い。
外部端末では、座標入力装置を制御するデバイスドライバが受信データを解釈して、カーソルの移動、マウスボタン状態の変更を行うことで、表示画面の操作を実現する。
尚、ステップS218の処理が終了したら、ステップS211に戻り、以降、電源OFFまで、もしくは、操作者の意図によってリセット状態が設定されるまで、上記の処理を繰り返すことになる。
ここで、この繰り返し周期を10[msec]程度に設定すれば、座標入力装置は100回/秒の周期で指あるいは指示具5による指示座標を外部機器等に出力することが可能となる。
次に、本発明の座標入力装置において、複数の指示具による座標入力動作が同時に行われた場合について検討する。「発明が解決しようとする課題」の項で説明した通り、例えば、2つの指示具により座標入力動作が行われ、かつ指示具間の距離が所定値以上保たれていれば、センサユニット1L及び1Rのいずれか一方では、少なくとも2つの遮光影が検出されるはずである(図28(b)の信号相当)。
また、2つの指示具が、いずれかのセンサユニットに対して『部分食状態』、『皆既食状態』でなければ、両者のセンサユニットで、2つ遮光影が検出されることになる。
しかしながら、2つの指示具とセンサユニット1L及び1Rの配置が『部分食状態』、『皆既食状態』となると、その位置検出は不能となる。この場合、座標入力有効領域3内全てで複数の指示具の位置を各々算出するためには、少なくとも異なる位置に配置される第三のセンサユニットが必須の構成となる。
また、図14(a)に示すように、2つの指示具を位置A及び位置Bにて座標入力動作させると、センサユニット1L、センサユニット1Rとそれらの指示具の位置関係は『部分食状態』、『皆既食状態』とはなっていない。そのため、図14(b)に示すように各々のセンサユニットで2個の遮光影α、遮光影βが観測される。
従って、センサユニット1Lに関しては方向(1)、方向(2)に、センサユニット1Rに関しては方向(3)、方向(4)に遮光物体を検知することができる。しかしながら、方向(1)の遮光物体がどの指示具によって生成されているかを判定することはできないので、指示具の位置座標候補として位置A、位置B、位置C、位置Dの4つの位置候補が算出される。
つまり、実際には、位置A及び位置Bに指示具が位置しているにもかかわらず、位置C及び位置Dに指示具があったと仮定しても、センサユニットは同様の信号波形を出力してしまう。実際に、指示具が位置している位置A、位置Bによる遮光影を実像、実際には指示具がないのに、指示具が位置C、位置Dにあったとして得られる遮光影を虚像と称すれば、実像による遮光影なのか虚像による遮光影なのかを判定(この判定を『虚実判定』と称する)しなければ、指示具の正確な位置座標を算出することはできない。
この虚実判定の方法として、さらに第三のセンサユニット1Cを設け、指示具による位置A、位置Bで生成される遮光影から方向(5)、方向(6)を算出し、センサユニット1C及びセンサユニット1Rより位置候補として位置A、位置B、位置E、位置Fを算出することが可能となる。
このように、センサユニット1Lとセンサユニット1Rで算出された4つの位置候補と、センサユニット1Cとセンサユニット1Rで算出された4つの位置候補を比較することにより、位置A、位置Bを確定することが可能となる。しかしながら、このような構成において虚実判定を実行するためには、第三のセンサユニット1Cが必須の構成となってしまい、装置構成の大型化、コストの増大が発生することとなる。
そこで、本発明では、2個のセンサユニットで2つの指示具による同時操作を可能とする構成を実現する。
2個のセンサユニットで2つの指示具による同時操作を実現するためには、センサユニットの位置と2つの指示具の位置関係が、『部分食状態』、『皆既食状態』となることを防止する必要がある。
そこで、本発明では、図15に示すように、座標入力有効領域3に対してセンサユニット1L及び1Rを配置した座標入力装置に、表示装置を重ねて配置した入出力一体の装置を想定する。このように構成することで、例えば、指示具により文字や図形を入力することによって、その筆跡が表示装置に表示され、あたかも紙にペンで描くのと同様の操作性を提供することができるようになる。
さらには、大型の表示装置を用いれば、通常の会議室で現在用いられているホワイトボードと同様の使い勝手を実現することが可能である。また、そのホワイトボードに対する筆跡データは電子化されるので、情報管理が容易に行える優れた利点が得られるようになる。
さて、座標入力有効領域3の、例えば、左下部分に、明示的な領域51を表示装置10により表示して、操作者による第一の指示具の作業領域を設定したものとする。この明示的な領域51内を第一の指示具により座標入力動作を行えば、センサユニット1Lにより検出される遮光影の角度方向θL1は、
a ≦ θL1 ≦ b (10)
となる。
一方、センサユニット1Rにより検出される遮光影の角度方向θR1は、
c ≦ θR1 ≦ d (11)
となる。
この時、第二の指示具により座標入力を行った時に、第一の指示具と『部分食状態』、『皆既食状態』とならない領域は、第二の指示具によるセンサユニット1Lの遮光影の角度方向θL2、及びセンサユニット1Rの遮光影の角度方向θR2として、座標入力有効領域3内であって、かつ
領域I : θL2 ≦ a、 θR2 ≦ c (12)
領域II : θL2 ≦ a、 d ≦ θR2 (13)
領域III : b ≦ θL2、 θR2 ≦ c (14)
を満足する領域であれば良い。
むろん明示的な領域の位置によっては、他の条件でも成立する領域を得ることができるが、これは、単純な幾何学的な条件設定である。そのため、ここでは説明を省略し、図15のように明示的な領域51が、座標入力有効領域3の左下隅部に設定されたものとして説明を続ける。
さて、条件式(12)〜(14)を満足する領域、例えば、領域II内に第二の領域52を表示し、第一の指示具の操作領域を第一の領域51、第二の指示具の操作領域を第二の領域52とする。この場合、第一の指示具、第二の指示具を用いて同時に座標入力動作を行っても、『部分食状態』、『皆既食状態』とはならず、必ず2つ遮光影が各センサユニットで得られる。
さらには、上記の条件が満たされるように第一の領域51、第二の領域52を設定することで、その領域が座標入力有効領域3に対してどのような位置関係にあるかも明確となる。これにより、前述した虚実判定を容易に行うことができる。
つまり、第一の指示具は必ず第一の領域51内にある。そのため、センサユニットから検出された4つの位置候補からその領域内にある位置座標を、第一の指示具による入力位置と判断して、その座標値を出力するように構成すれば良い(第二の指示具についても同様である)。
現状における表示装置としての大型ディスプレイは、アスペクト比16:9の横長のディスプレイが主流になりつつある。また、その表示領域の大きさも60インチ(横約1300mm、縦約750mm)以上のものが製品化され始めている。
ここで、このような表示装置と座標入力装置を一体にすることでホワイトボードとして使い、例えば、2人で同時作業を行うことを想定すると、次の2種類の作業形態が考えられる。図16(a)に示す作業形態は、位置取り、体勢が好ましい作業形態(操作者二人が並んで作業できる)である。また、図16(b)に示すな作業形態は、作業領域が確保できず、姿勢の制約を受ける作業形態である。つまり、この作業形態の場合は、操作の困難性が伴う。
従って、図15に示すような配置で第一の領域51と第二の領域52を配置する、つまり、座標入力有効領域3の左右部分に、作業領域と第一の領域51と第二の領域52を設定することは、理にかなった構成である。
次に、第一の領域51及び第二の領域52の設定方法について説明する。
図17は本発明の実施形態の座標入力装置の座標入力有効領域に対する作業領域の設定を説明するための図である。
図17(a)において、座標入力有効領域3に対し、その領域内に表示装置(座標値の出力先となる外部端末(例えば、パーソナルコンピュータ)が備える)の表示領域50、コマンド生成するためのスイッチ領域53〜56が構成されていいる。このスイッチ領域53〜56は、その領域を指示することによって得られる座標値に基づき、どのスイッチ領域を押圧したかを検知する。そして、その検知したスイッチ領域に基づき座標入力装置の動作が制御されるように構成されている。
尚、これらのスイッチ領域の代りに、別途メカニカル的なスイッチを設けて、同様に機能させても良いことはいうまでもない。
また、スイッチ領域53〜56の内、動作可能なスイッチ領域については、その状態を示すために、例えば、その領域が太線で囲まれる。図17(a)では、スイッチ領域53が動作可能な状態であることを示している。
図17(a)における状態では、指示具によりその移動が制御されるカーソル57(指示位置を示すポインタ)が1個のみ表示されていて、このカーソル57によって、表示領域50で表示されている情報を操作できる状態にある。
この状態を、図18のフローチャートで説明すれば、ステップS301〜ステップS304のルーチンに対応する。具体的には、フラグを1(flag=1)にセットする(ステップS302でYES)。
尚、以下で説明する、フラグの値1〜5はそれぞれ、
1:単数入力状態(単数入力モード)
2:複数入力状態(複数入力モード)/作業領域設定モード
3:第一の作業領域再設定モード
4:第二の作業領域再設定モード
5:座標入力モード
の状態を示すものとする。
この場合、フラグが1であるので、ステップS303で、座標値が検出されたか否か、つまり、指示具による入力の有無を判定する。入力がない場合(ステップS301でNO)、ステップS302に戻る。一方、入力がある場合(ステップS303でYES)、ステップS304に進み、その入力に対する座標算出処理(図13)を実行して、その処理結果を、例えば、表示装置を制御しているパーソナルコンピュータ等の外部端末に出力する。これにより、その処理結果に基づく表示制御が表示装置でなされることになる。
尚、この状態は、指示具等による複数の入力を想定していないので、例えば、いずれかのセンサユニットにて、図14(b)のような信号が検出された場合には、その結果を無視して座標出力を行わないように構成してある。
この状態から、例えば、二人の操作者による同時入力(複数入力)による共同作業を行う場合には、まず、ステップS305で、図17(a)におけるスイッチ領域53を動作させることによって、フラグを2(flag=2)にセットする(ステップS305でYES)。これにより、画面上には、もう一つのカーソル58を所定の位置に表示し、複数同時入力可能な第一の作業領域51、及び第二の作業領域52を設定するためのモードに遷移する。
まず、図15において、第一の作業領域51を設定するための領域情報として、任意の位置P1(X1,Y1)、及び任意の位置P2(X2,Y2)の座標を指示具により入力する(ステップS306、ステップS307)。この結果、入力した2点が対角方向となるように矩形領域からなる第一の作業領域51を生成する。
ここで、前述した通り、設定された第一の作業領域51に対して、次に設定される第二の作業領域52内を指示した時に、『部分食状態』、『皆既食状態』が発生しないように、設定された位置P1及びP2、並びに座標入力有効領域3、センサユニット1L、1Rの位置関係から、その第二の作業領域52の設定条件を算出する(ステップS308)。
この時、あらかじめ表示されていたカーソル57と、複数入力可能な状態に遷移することで新たに表示されたカーソル58のどちらを、第一の作業領域51に割り付けるかを設定するために、そのどちらか一方のカーソル位置を指示することによって、その割付を完了する(ステップS309)。
そして、第一の作業領域51の設定が完了すると、表示制御部11は、それに対応する表示ウインドウを表示領域50上の対応する位置に表示する。
次に、第二の作業領域52を設定するための領域情報として、任意の位置P3(X3,Y3)、及び任意の位置P4(X4,Y4)の座標を指示具により入力する(ステップS310、ステップS311)。
この入力された位置P3及び位置P4が、先に算出された第二の作業領域52を設定するための設定条件を満足すれば(図15参照)、その2点が対角方向となるような矩形領域からなる第二の作業領域52を生成する。これにより、第一及び第二の作業領域の設定を完了するが、図19に示すように、指示した位置座標が設定条件を満足しない場合は、その補正を行う。
本実施形態にあっては、位置P3と位置P4を結ぶ線分上で設定条件を満足する位置P3’の位置を補正位置として再定義し、第二の作業領域52の設定を完了する(ステップS312)。補正方法はこれに限定されるのものでなく、図19において、位置P3が位置P3’となった分だけP4の位置を平行移動すれば(ステップS313)、操作者が意図した作業領域の大きさを確保することができる。
そして、第二の作業領域52の設定が完了すると、表示制御部11は、それに対応する表示ウインドウを表示領域50上の対応する位置に表示する。
ステップS314で、状態を示すフラグを5(flag=5)にセットする。その後、ステップS302に戻り、フラグの値が変更されることがなければ(つまり、ステップS302〜ステップS322のいずれの条件も満足しない)、ステップS329〜ステップS333の処理を繰り返す。
具体的には、ステップS329で、座標入力の有無を判定する。座標入力がない場合(ステップS329でNO)、ステップS302に戻る。一方、座標入力がある場合(ステップS329でYES)、ステップS330に進み、座標算出を行う。
ステップS331で、算出された座標値が第一の作業領域51内にあるか、もしくは第二の作業領域52内にあるかを判定する。いずれかの領域内にある場合(ステップS331でYES)、ステップS332に進み、有効座標値としてその値を後述する方法により座標変換する。そして、ステップS333で、その座標変換結果を出力する。
一方、領域外にある場合(ステップS331でNO)、算出座標値の出力を中止すると共に、領域外操作を行ったことを報知するための警告を出力する。これは、例えば、それを示す音声出力でも良いし、メッセージ画面を表示出力するようにしても良い。
以上、上述のように設定された第一の作業領域51と第二の作業領域52内で、各々座標入力を行うことで、『部分食状態』、『皆既食状態』の発生を抑止し、虚実判定も可能となる。これにより、複数入力されている入力点の両者の座標値を正確に算出することが可能となる。
次に、図17(b)に示すように、複数入力可能なモードにあっては、スイッチ領域54〜56が動作可能な状態にある。
この状態で、例えば、スイッチ領域54を動作させることによって、フラグを3(flag=3)にセットすると(ステップS315でYES)、上述のスイッチ領域53の時と同様にして、以下の処理を実行する。
まず、任意の位置P1及びP2によって、第一の作業領域51を(再)設定する(ステップS316、ステップS317)。次に、設定条件を算出する(ステップS318)。次に、設定条件に応じて、位置P1及びP2を補正する(ステップS319、ステップS320)。そして、状態を示すフラグを5(flag=5)にセットする(ステップS321)。これにより、一度設定した第一の作業領域51の大きさや、形状を変更することができる。
また、例えば、スイッチ領域55を動作させることによって、フラグを4(flag=4)にセットすると(ステップS322でYES)、上述のスイッチ領域53の時と同様にして、以下の処理を実行する。
まず、任意の位置P3及びP4によって、第二の作業領域52を(再)設定する(ステップS323、ステップS324)。次に、設定条件を算出する(ステップS325)。次に、設定条件に応じて、位置P3及びP4を補正する(ステップS326、ステップS327)。そして、状態を示すフラグを5(flag=5)にセットする(ステップS328)。これにより、一度設定した第二の作業領域52の大きさや、形状を変更することができる。
また、例えば、スイッチ領域56を動作させることによって、フラグを1(flag=1)にセットすると、複数入力可能な状態から、通常の単数入力可能な状態に遷移する。
これにより、操作者が目的に応じて最適な使用(単数入力/複数入力)、動作環境を選択できるように構成することができる。
以上の説明により、2個のセンサユニットのみで、2つの座標を同時入力してもその座標値を正確に算出できる構成が実現される。しかしながら、操作者から見て、作業領域は座標入力有効領域3と略等しく設定されている表示領域50全域であって、表示領域50全域に表示されている情報を加工、処理できる構成するが好ましい形態である。そこで、この観点に立ち、特定の作業領域であっても、表示画面全体を制御することができる算出座標値の制御方法について説明する。
図17(c)は、第一の作業領域51の詳細図である。
図に示すように、第一の作業領域51の周辺には、左右方向の画面をスクロールするためのスクロールバー60、及び上下の画面をスクロールするためのスクロールバー61が隣接して設けられている。また、第一の作業領域51内には、画面の大きさ(変倍率(拡大/縮小率))を制御するための設定コントロール59も設けられている。
従って、設定された第一の作業領域51には、表示装置により表示されている表示領域50の任意の場所をトリミングできるように構成されている。例えば、図17(b)においては、第一の作業領域51には所望の位置を切り出した画像が、第二の作業領域52には全体画像の縮小図が表示されている。
尚、画面スクロール、画面拡大あるいは縮小を設定するための上記の各種画面表示制御コントロールを構成した場合、スクロールバー60や61を、指示具により移動できるように構成することが好ましい形態である。
そこで、その場合にあっては、『部分食状態』、『皆既食状態』とならない構成とするために、それらのスクロールバー60や61を含む領域が、第一の作業領域51あるいは第二の作業領域52として設定される。また、これらの画面表示制御コントロールは、これに限定されるものでなく、別途スイッチ等の制御部を設けて実現しても良いことは言うまでもない。
次に、本実施形態の座標入力装置の座標値処理方法について説明する。
図20は本発明の実施形態の表示装置の表示画面に重ねて配置した座標入力装置の座標系を説明するための図である。
図20(a)において、画面中央部を原点に、水平方向をX軸、天地方向をY軸とすれば、表示画面の右下角部の座標を(+X0、+Y0)とすれば、残り3角部の座標値は、図示されるように、(+X0、−Y0)、(−X0、+Y0)及び(−X0、−Y0)に設定される。
この状態で、複数入力モードへ遷移する信号が生成されると、上述の図18のステップS306以降のルーチンを実行することになる。この時、設定された第一の作業領域51の範囲は、P1(X1,Y1)、P2(X2,Y2)により設定される。そして、この第一の作業領域51の大きさを規定する横幅及び縦幅に相当するa及びbを以下のように定義する(図20(b)参照)。
a = X1 − X2 (15)
b = Y2 − Y1 (16)
そして、ステップS309にて、カーソル58を選択したものとすれば、図20(c)に示すように、カーソルの指示位置を中心として、横の長さa、縦の長さbの画像を抽出する(切り出す/トリミングする)。
厳密に言えば、第一の作業領域51には、先に述べたスクロールバーの領域を確保しなければならないので、切り出す画像の大きさはその分小さくなるが、この場合の説明に合っては、スクロールバーの領域を考慮しないで説明を続ける。
次に、選択されたカーソルの位置をG0(Gx0,Gy0)とすれば、切り出される画像の領域は、次式で与えられる。
Gx1 = Gx0 + a/2 (17)
Gy1 = Gy0 − b/2 (18)
Gx2 = Gx0 − a/2 (19)
Gy2 = Gy0 + b/2 (20)
従って、ステップS309にて、カーソル58の割付が完了すると、図20(d)に示されるようにように、第一の作業領域51にトリミングされた(切り出された)画像が表示されると共に、選択されたカーソル58の位置座標G0(Gx0,Gy0)、及び第一の作業領域51の大きさに基づくパラメータa、bがセットされる。これらの値は、ステップS332における座標変換の際に用いられる。
具体的な操作方法について説明すれば、位置座標G0(Gx0,Gy0)にあるカーソル58を位置座標G1(Gx1,Gy1)の所に移動して何らかの作業を開始しようとする場合には、第一の作業領域51内を操作することによって実現する。今、第一の作業領域51にトリミングされている表示データと領域64の表示データは全く同一である。そこで、操作者が第一の作業領域51の地点P1の位置を指示することによって、カーソル58が所望の位置に移動するように構成する。
つまり、座標入力装置は、座標値としてP1(X1,Y1)を検出しているが、位置G1(Gx1,Gy1)を検出して、出力先の外部端末内の画像制御部に座標値を出力すれば、第一の作業領域51内の操作により、カーソル58を所望の位置に移動することができる。従って、検出された座標値をP(X,Y)、出力する座標値をS(x、y)とすれば
x = X + Gx1 − X1
= X + (Gx0 + a/2) − X1
= X + (Gx0 + (X1 − X2)/2) − X1
= X + Gx0 − (X1 + X2)/2 (21)
となる。
同様に、
y = Y + Gy0 − (Y1 + Y2 )/2 (22)
となる。
ステップS306からステップS309のルーチンでは、第一の作業領域51に表示されるトリミングされた情報と、座標値変換の方法を説明しているが、引き続き行われるステップS310からステップS313までのルーチンによる第二の作業領域52の設定、及び座標値変換のパラメータが同様に設定される。
尚、第二の作業領域52の設定に際しては、2つあるカーソルの一方が第一の作業領域51に割り付けられている。そのため、第二の作業領域52に対するカーソルの割付は、自動的に行われ、そのカーソル位置情報を用いてパラメータが設定される。
さらには、2つのセンサユニット1L及び1Rを用いて、2つの指示具の位置座標を検出できるようにすることが、本発明の主眼である。そのため、パラメータの設定は、位置補正されたP3の位置座標、及び位置補正されたP4の位置座標に基づき実行される。
さて、操作者が必要に応じて作業領域内の表示データをスクロール、あるいは拡大、縮小を行う(つまり、表示データの大きさ及び位置を変更する)場合を考える。まず、操作者がその意図に応じてスクロールバーを用いて、現在トリミングされている表示よりもX軸方向にΔXだけ移動した領域をトリミングしようとすれば、トリミング領域64の座標G1’(Gx1’,Gy1’)は、元の座標G1(Gx1,Gy1)を用いて、
Gx1’ = Gx1 + ΔX (23)
となる。従って、式(21)より、座標変換式は以下のようになる。
x = X + Gx0 − (X1 + X2)/2 + ΔX (24)
同様に、Y軸方向へΔY移動した場合には、
y = Y + Gy0 − (Y1 + Y2)/2 + ΔY (25)
となる。
また、トリミングされている画像を縮小してより広範な範囲を表示させる場合、あるいは、拡大してより細かな作業ができるようにする場合も、同様に変換式の再設定を行う。ここで、パラメータをγとして、例えば、γ=2とすれば、作業領域の大きさに比べて、縦横2倍の表示面積をトリミングして作業領域に表示する。この場合、表示される画像データは半分に縮小されることになる。また、γ=0.5とすれば、作業領域の大きさに比べて、縦横0.5倍の表示面積をトリミングして作業領域に表示することになる。この場合、表示される画像データは倍に拡大されることになる。
図20(b)のように設定された作業領域の大きさa、bに対して、トリミングされる表示領域64の大きさは、パラメータγを用いて、γ×a、γ×bになるので、式(21)、式(22)にその値を代入して、次式のようになる。
x = X + (Gx0 + γa/2) − X1
= X + (Gx0 + γ(X1 − X2)/2) − X1 (26)
y = Y + (Gx0 + γb/2) − Y1
= Y + (Gx0 + γ(Y2 − Y1)/2) − Y2 (27)
以上のように構成することで、各々の作業領域には、表示装置10に表示されている表示領域50の所望の位置の表示情報をトリミングして、作業領域内に表示することが可能となる。しかも、座標入力装置が出力する作業領域内の座標値が、表示領域50のどの座標値に変換するかを対応させることができるので、作業領域内の指示具による入力動作で、表示領域全域の情報を加工、制御することが可能となる。
以下、この際の座標変換用のパラメータ設定処理について、図21を用いて説明する。
図21は本発明の実施形態の座標変換用のパラメータ設定処理を示すフローチャートである。
まず、ステップS402において、先に説明した複数入力モードに遷移する際に成されるステップS309のカーソル割付の際に、そのカーソル位置をメモリ82に読み込む。次に、ステップS403で、設定された作業領域(例えば、ステップS306、ステップS307)の座標情報をメモリ82に読み込む。
ステップS404で、作業領域に表示すべき表示領域を算出して、作業領域にその画像を表示させる。そして、ステップS405で、検出した座標値を変換するためのパラメータの変換式を設定して処理を完了する。このパラメータは、それ以降、入力された座標値の座標変換(ステップS332)のために用いられる。
ステップS406は、スクロールバーによる作業等により作業領域に表示されている画像の拡大、縮小、あるいは表示領域の移動が行われた場合に、ステップS404に戻って、変換パラメータを再設定する処理である。つまり、ここでは、表示領域の変更の有無を判定する。
表示領域の変更がある場合(ステップS406でYES)、ステップS404に戻る。一方、表示領域の変更がない場合(ステップS406でNO)、ステップS407に進む。
ステップS407は、作業領域の大きさそのものを再設定(ステップS316以降の処理、あるいはステップS323以降の処理)する場合に、ステップS402に戻って、再設定すべき作業領域と表示領域のトリミング位置の関係を再設定する処理である。つまり、ここでは、作業領域の変更の有無を判定する。
作業領域の変更がある場合(ステップS407でYES)、ステップS402に戻る。一方、作業領域の変更がない場合(ステップS407でNO)、ステップS406に戻る。
尚、以上の説明にあっては、設定された作業領域は矩形形状の領域としているが、これに限定されるものではなく、円形、あるいは多角形等の他の形状であっても良い。
さらには、図22を用いて説明すれば、第一の作業領域51の設定が完了すれば、『部分食状態』、『皆既食状態』を回避できる領域は、幾何学的計算を実行することで求めることができる。例えば、第一の作業領域51の境界方向と座標入力有効領域3で定義される図中の領域I、領域II、領域IIIを、例えば、ハイライト表示(図中では、ハッチング表示)することで、操作者に第二の作業領域が設定できる領域を認知させる構成としても良い。
また、先の説明にあっては、第一の作業領域を設定した後、第二の作業領域の設定に際し、操作者が設定した領域では『部分食状態』、『皆既食状態』となる可能性がある場合には、その領域を『部分食状態』、『皆既食状態』とならないように補正する構成としているが、これに限定されない。例えば、後で設定した領域を優先させ、『部分食状態』、『皆既食状態』とならないように第一の作業領域を補正するように構成しても良い。
さらには、複数の指示具による同時操作を可能とするために、操作の指標となる複数のカーソルが表示されることになる。ここで、通常の単一のカーソルが表示されている状態と同様に、複数のカーソルが表示されている状態では、各々のカーソルの位置情報、及びカーソル識別用のIDが管理されているので、複数入力状態に遷移する際の初期設定動作で作業領域とカーソルの割付を実行する(ステップS309)。
この時、割付を明示的にするために、例えば、作業領域の枠とカーソルの色を割り付け毎に同一色とするように表示制御部11が表示制御して、操作者にその組み合わせを認知させるように構成しても良い。
また、複数入力可能な状態に遷移する際の初期設定において、作業領域に割り付けられたカーソル位置に基づき、表示領域の表示データをトリミングして作業領域に表示するように構成ているが、これに限定されるものではない。例えば、その設定時に、トリミング領域を別途作成して作業領域に割り付けるように構成しても良い。つまり、トリミング領域が座標入力装置の座標系において、どの位置にあるのかを認識、管理できる構成であれば、以上説明した同様の動作をさせることができるので、そのトリミング領域の選択方法に限定されるものではない。
以上説明したように、本実施形態によれば、2つのセンサユニットで、少なくとも2つの指示具の位置座標を同時に検出することができる座標入力装置において、座標入力有効領域内に複数の作業領域を設定する。ここで、この作業領域の設定は、センサユニットの位置と座標入力有効領域の形状、及び設定されている一方の作業領域の領域情報に基づき、新規の作業領域を設定、制御する。
このように構成することで、『部分食状態』、『皆既食状態』となることを防止し、さらには虚実判定が行えるようになる。つまり、2つのセンサユニットで、その各々の作業領域内を操作している入力手段(例えば、指示具)の位置座標を精度良く算出することができる。これにより、低コストで、複数人による同時作業ができる。
また、表示領域に表示されているカーソル位置情報に基づき表示データをトリミングして作業領域に表示させることで、操作性を向上し、作業領域に設けられたスクロール手段、あるいは拡大、縮小を制御するスイッチ手段により、設定された作業領域内の操作で座標入力有効領域(表示領域)全域の情報操作を可能とする。これにより、使い勝手の良い情報処理装置(座標入力装置と表示装置から構成される)を安価に提供することができる。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。