(57)【特許請求の範囲】
【請求項１】
所定の平面上に入力された座標が示す点を配列して形成されるストロークを順次記憶するストローク記憶手段と、
前記ストローク記憶手段に記憶された第１のストロークと当該第１のストロークの次に入力された第２のストロークとの関係に基づいて、当該第１のストロークが命令領域であるか否かを決定する命令領域決定手段と、
前記第１のストロークが命令領域であると決定された場合に、当該命令領域内のストロークを所定の送出先に送出するデータ送出手段とを備え、
前記命令領域決定手段は、前記第２のストロークの閉領域が前記第１のストローク上の所定の点を内包するか否かを判定し、内包すると判定したとき、前記第１のストローク上の所定の点と前記第２のストローク上の所定の点との間の距離を判定することによって、前記第１のストロークと第２のストロークとの関係を求め、当該関係に基づいて、当該第１のストロークが命令領域であるか否かを決定すること
を特徴とする情報処理装置。
【請求項２】
所定の平面上に入力された座標が示す点を配列して形成されるストロークを順次記憶するストローク記憶手段と、
前記ストローク記憶手段に記憶された第１のストロークと当該第１のストロークの次に入力された第２のストロークとの関係に基づいて、当該第１のストロークが命令領域であるか否かを決定する命令領域決定手段と、
前記第１のストロークが命令領域であると決定された場合に、当該命令領域内のストロークを所定の送出先に送出するデータ送出手段とを備え、
前記命令領域決定手段は、前記第２のストロークの閉領域が前記第１のストロークの始点および終点を内包するか否かを判定し、内包すると判定したとき、前記第１のストロークの始点と終点とを結んだ線分と、前記第２のストロークの始点との距離、および、前記線分と前記第２のストロークの終点との距離、が所定の距離以下であるか否かを判定し、前記判定の結果、前記距離が所定の距離以下であると判定したとき、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定すること
を特徴とする情報処理装置。
【請求項３】
所定の平面上に入力された座標を検知する座標検知手段をさらに備え、
前記命令領域決定手段にて、前記第１のストロークが命令領域であると決定された場合に、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定し、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがあるとき、前記命令領域をストローク送出用の命令領域と決定すると共に、 前記データ送出手段が、前記命令領域内のストロークデータを、前記タグ領域で指定されるストローク送出先に送出するストローク送出手段を備えること
を特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ストローク送出手段は、
前記タグ領域と決定された前記第２のストロークの異なる形状に応じて指定されるストローク送出先に前記ストロークデータを送出すること
を特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２のストロークの異なる形状は、ストロークの自己交差点の数が異なっていること
を特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記ストロークデータをビットマップデータとしてストローク送出先の装置に送ること
を特徴とする請求項３または４に記載の情報処理装置。
【請求項７】
所定の平面上に入力された座標を検知する座標検知手段をさらに備え、
前記命令領域決定手段にて、前記第１のストロークが命令領域であると決定された場合に、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定し、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがないとき、前記命令領域をコマンド送出用の命令領域と決定すると共に、前記データ送出手段が、前記コマンド送出用の命令領域内に生成される所定形状のストロークに対応した所定のコマンドを、前記タグ領域で指定されるコマンド送出先に送出するコマンド送出手段を備えること
を特徴とする請求項１又は２に記載の情報処理装置。
【請求項８】
前記コマンド送出手段は、前記タグ領域と決定された前記第２のストロークの異なる形状に応じて指定されるコマンド送出先に前記所定のコマンドを送出すること
を特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記第２のストロークの異なる形状は、ストロークの自己交差点の数が異なっていること
を特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記コマンド送出用の命令領域内に生成される所定形状のストロークを認識する手段と、認識された所定形状のストロークに対応した所定のコマンドに変換する手段とをさらに備えたこと
を特徴とする請求項７に記載の情報処理装置。
【請求項１１】
前記所定のコマンドは、コマンド送出先の装置で所定のイベントを発生させるコマンドであること
を特徴とする請求項７または８に記載の情報処理装置。
【請求項１２】
前記命令領域決定手段は、前記第１のストロークが描画された時刻と前記第２のストロークが描画された時刻との差が所定の時間内にあるか否かを判定し、所定の時間内にあると判定されたときに、前記第１のストロークと第２のストロークとの関係を求め、当該関係に基づいて、当該第１のストロークが命令領域であるか否かを決定する
を特徴とする請求項１乃至１１のいずれか１に記載の情報処理装置。
【請求項１３】
前記座標検知手段が前記タグ領域内の座標のうちの少なくとも１つの座標を検知した場合に、前記命令領域に付された属性情報を提示する属性情報提示手段をさらに備えること
を特徴とする請求項３〜１１のいずれか１に記載の情報処理装置。
【請求項１４】
前記属性情報提示手段は、前記命令領域に付された属性情報を文章化して提示する文章情報出力手段をさらに備えること
を特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記属性情報提示手段は、前記命令領域に付された属性情報を文章化すると共に、該文章を音声として出力する音声出力手段をさらに備えること
を特徴とする請求項１３または１４に記載の情報処理装置。
【請求項１６】
前記座標検知手段が前記タグ領域内の座標のうちの少なくとも２つの座標を所定の時間内に連続して検知した場合、前記データ送出手段は、前記命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを再度外部に送出すること
を特徴とする請求項３〜１１，１３〜１５のいずれか一つに記載の情報処理装置。
【請求項１７】
所定の平面上に入力された座標が示す点を配列して形成されるストロークを記憶手段に順次記憶するストローク記憶制御ステップと、
前記記憶手段に記憶された第１のストロークと当該第１のストロークの次に入力された第２のストロークとの関係に基づいて、当該第１のストロークが命令領域であるか否かを決定する命令領域決定ステップと、
前記第１のストロークが命令領域であると決定された場合に、当該命令領域内のストロークを所定の送出先に送出するデータ送出ステップとを含み、
前記命令領域決定ステップが、連続して入力された座標列からなる第１のストロークと第２のストロークについて、前記第２のストロークの閉領域が前記第１のストロークの始点および終点を内包するか否かを判定するステップと、内包すると判定したとき、前記第１のストロークの始点、終点を結んだ線分と前記第２のストロークの始点との距離および前記線分と前記第２のストロークの終点との距離が所定の距離以下であるか否かを判定するステップと、前記判定の結果、前記距離が所定の距離以下であると判定したとき、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定するステップとを含み、
前記データ送出ステップが、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがあるとき、前記命令領域をストローク送出用の命令領域と決定するステップと、前記命令領域内のストロークデータを前記タグ領域で指定される送出先に送出するステップとを含む
ことを特徴とする情報処理装置の制御方法。
【請求項１８】
所定の平面上に入力された座標が示す点を配列して形成されるストロークを記憶手段に順次記憶するストローク記憶制御ステップと、
前記記憶手段に記憶された第１のストロークと当該第１のストロークの次に入力された第２のストロークとの関係に基づいて、当該第１のストロークが命令領域であるか否かを決定する命令領域決定ステップと、
前記第１のストロークが命令領域であると決定された場合に、当該命令領域内のストロークを所定の送出先に送出するデータ送出ステップとを含み、
前記命令領域決定ステップが、連続して入力された座標列からなる第１のストロークと第２のストロークについて、前記第２のストロークの閉領域が前記第１のストロークの始点および終点を内包するか否かを判定するステップと、内包すると判定したとき、前記第１のストロークの始点、終点を結んだ線分と前記第２のストロークの始点との距離および前記線分と前記第２のストロークの終点との距離が所定の距離以下であるか否かを判定するステップと、前記判定の結果、前記距離が所定の距離以下であると判定したとき、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定するステップとを含み、
前記データ送出ステップが、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがないとき、前記命令領域をコマンド送出用の命令領域と決定するステップと、前記コマンド送出用の命令領域内に生成される所定形状のストロークを認識するステップと、認識されたストロークを、対応する所定のコマンドに変換するステップと、前記所定のコマンドを前記タグ領域で指定される送出先に送出するステップとを含むことを特徴とする情報処理装置の制御方法。
【請求項１９】
前記タグ領域内の座標のうちの少なくとも１つの座標が指示された場合、前記命令領域に付された属性情報を提示する属性情報提示ステップをさらに含むことを特徴とする請求項１７または１８に記載の情報処理装置の制御方法。
【請求項２０】
前記属性情報提示ステップは、前記命令領域に付された属性情報を文章化して提示することを特徴とする請求項１９に記載の情報処理装置の制御方法。
【請求項２１】
前記属性情報提示ステップは、前記命令領域に付された属性情報を文章化すると共に、該文章を音声として出力することを特徴とする請求項１９または２０に記載の情報処理装置の制御方法。
【請求項２２】
前記座標検知手段が前記タグ領域内の座標のうちの少なくとも２つの座標を連続して検知した場合、前記データ送出ステップは、前記命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを再度外部に送出することを特徴とする請求項１９〜２１のいずれか一つに記載の情報処理装置の制御方法。
【請求項２３】
コンピュータに、前記請求項１７〜２２のいずれか一つに記載の情報処理装置の制御方法を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力装置から入力されたストロークの情報やコマンドを他の装置に送出する情報処理装置、情報処理装置の制御方法、その方法をコンピュータに実行させるためのプログラムに関する。
【０００２】
【従来の技術】
近年、電子情報機器を用いた会議やプレゼンテーションが一般的に行われるようになってきた。そして、従来の黒板に代わり、座標入力装置や電子黒板装置などの電気的な機構を持つ座標入力装置を用いた会議支援機器が数多く提案されている。これらの機器のユーザは、必ずしも電子情報機器に関する知識を持っているとは限らないため、利用時の操作性の向上が重要となる。
【０００３】
そこで、座標入力における編集操作性を向上させる方法として、例えば指示装置側にファンクションキーを設けて、ファンクションキーを押しながら描画することによって、編集種別を指定する方法が提案されている（特公平７−１１３８７１号公報を参照）。
【０００４】
また、手書き入力図形によって、編集対象図形セグメントの指定および編集種別の指定を行い、従来の紙上での図形編集と類似した手順によって図形編集ができる手書き入力情報の処理手法もある（特許第２６２７４０７号を参照）。
【０００５】
【発明が解決しようとする課題】
しかし、上記したような従来方式では、図形や文字の描画と編集命令を識別するために、特殊なスイッチ装置あるいはマウスボタンやキーボードなどで代用したスイッチなど、編集用のファンクションスイッチを必要とする。
【０００６】
電子情報機器に関する知識を充分持っていないユーザにとってファンクションスイッチなどの操作は煩雑であり、操作が座標入力装置や電子黒板装置を利用した会議やプレゼンテーションの円滑な流れを妨げることにもなりかねない。このため、座標入力装置や電子黒板装置にとっては、いっそう操作性を高めることが望まれていた。
【０００７】
座標入力装置などにおける情報の入力を簡易化し、操作性を高めるため、いったん入力した情報を再度利用することが考えられる。過去に入力した情報を再利用する従来技術としては、例えば特開平８−２８６８３１号公報が挙げられる。特開平８−２８６８３１号公報に記載された構成では、過去に入力した情報を表示しておく領域（ジェスチャ表示領域）を別途設けておき、ジェスチャ表示領域に表示されている命令をオペレータが選択する。そして、ジェスチャ表示領域以外の表示領域に表示されている操作対象となるオブジェクトに命令を示すコマンドをドラッグ、ドロップする。この結果、コマンドがオブジェクトに対して再適用される。しかし、入力した情報を再利用する操作についても、ドラッグ、ドロップより簡易な操作を実現することが望まれている。
【０００８】
また、従来の方式は、基本的に表示装置を備えた座標入力装置を前提としていて、座標入力装置のみを備えた電子黒板装置などのように、表示装置のない機器には適用できず、さらに、描画したデータをコマンドとして送出する仕組みを備えていない。このため、機器間において共有できるのは描画情報のみであり、命令情報を共有できないことから、複数機器の利用が想定される会議やプレゼンテーションの場面において利便性が著しく低下してしまう。
【０００９】
本発明は上記した問題点に鑑みてなされたもので、従来の黒板や白板のペンによる書き味を生かしながら、描画情報の共有機能やコマンド情報の送出機能を実現すると共に、操作性に優れたユーザインタフェースを備えた情報処理装置、情報処理装置の制御方法、その方法をコンピュータに実行させるためのプログラムを提供することにある。
【００１０】
【課題を解決するための手段】
請求項１に記載の発明にかかる情報処理装置は、所定の平面上に入力された座標が示す点を配列して形成されるストロークを順次記憶するストローク記憶手段と、前記ストローク記憶手段に記憶された第１のストロークと当該第１のストロークの次に入力された第２のストロークとの関係に基づいて、当該第１のストロークが命令領域であるか否かを決定する命令領域決定手段と、前記第１のストロークが命令領域であると決定された場合に、当該命令領域内のストロークを所定の送出先に送出するデータ送出手段とを備え、前記命令領域決定手段は、前記第２のストロークの閉領域が前記第１のストローク上の所定の点を内包するか否かを判定し、内包すると判定したとき、前記第１のストローク上の所定の点と前記第２のストローク上の所定の点との間の距離を判定することによって、前記第１のストロークと第２のストロークとの関係を求め、当該関係に基づいて、当該第１のストロークが命令領域であるか否かを決定することを特徴とする。
請求項２に記載の発明にかかる情報処理装置は、所定の平面上に入力された座標が示す点を配列して形成されるストロークを順次記憶するストローク記憶手段と、前記ストローク記憶手段に記憶された第１のストロークと当該第１のストロークの次に入力された第２のストロークとの関係に基づいて、当該第１のストロークが命令領域であるか否かを決定する命令領域決定手段と、前記第１のストロークが命令領域であると決定された場合に、当該命令領域内のストロークを所定の送出先に送出するデータ送出手段とを備え、前記命令領域決定手段は、前記第２のストロークの閉領域が前記第１のストロークの始点および終点を内包するか否かを判定し、内包すると判定したとき、前記第１のストロークの始点と終点とを結んだ線分と、前記第２のストロークの始点との距離、および、前記線分と前記第２のストロークの終点との距離、が所定の距離以下であるか否かを判定し、前記判定の結果、前記距離が所定の距離以下であると判定したとき、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定することを特徴とする。
【００１１】
この請求項１に記載の発明によれば、所定の平面上で描画を行うことによって命令領域を決定し、命令領域に座標を入力することによってデータを外部に送出することができる。このようにすれば、特殊なスイッチ装置あるいはマウスボタンやキーボードなどで代用したスイッチなど、編集用のファンクションスイッチを使うことなくデータを外部の機器に出力することができる。したがって、電子情報機器の操作に不慣れなオペレータにとっての操作性を高め、複数の機器間においてデータを共有することがきる。
【００１２】
請求項３に記載の発明にかかる情報処理装置は、所定の平面上に入力された座標を検知する座標検知手段をさらに備え、前記命令領域決定手段にて、前記第１のストロークが命令領域であると決定された場合に、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定し、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがあるとき、前記命令領域をストローク送出用の命令領域と決定すると共に、 前記データ送出手段が、前記命令領域内のストロークデータを、前記タグ領域で指定されるストローク送出先に送出するストローク送出手段を備えることを特徴とする。
【００１３】
請求項４に記載の発明にかかる情報処理装置は、前記ストローク送出手段が、前記タグ領域と決定された前記第２のストロークの異なる形状に応じて指定されるストローク送出先に前記ストロークデータを送出することを特徴とする。
【００１４】
請求項５に記載の発明にかかる情報処理装置は、前記第２のストロークの異なる形状が、ストロークの自己交差点の数が異なっていることを特徴とする。
【００１５】
請求項６に記載の発明にかかる情報処理装置は、前記ストロークデータをビットマップデータとしてストローク送出先の装置に送ることを特徴とする。
【００１６】
請求項７に記載の発明にかかる情報処理装置は、所定の平面上に入力された座標を検知する座標検知手段をさらに備え、前記命令領域決定手段にて、前記第１のストロークが命令領域であると決定された場合に、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定し、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがないとき、前記命令領域をコマンド送出用の命令領域と決定すると共に、前記データ送出手段が、前記コマンド送出用の命令領域内に生成される所定形状のストロークに対応した所定のコマンドを、前記タグ領域で指定されるコマンド送出先に送出するコマンド送出手段を備えることを特徴とする。
【００１７】
請求項８に記載の発明にかかる情報処理装置は、前記コマンド送出手段が、前記タグ領域と決定された前記第２のストロークの異なる形状に応じて指定されるコマンド送出先に前記所定のコマンドを送出することを特徴とする。
【００１８】
請求項９に記載の発明にかかる情報処理装置は、前記第２のストロークの異なる形状が、ストロークの自己交差点の数が異なっていることを特徴とする。
【００１９】
請求項１０に記載の発明にかかる情報処理装置は、前記コマンド送出用の命令領域内に生成される所定形状のストロークを認識する手段と、認識された所定形状のストロークに対応した所定のコマンドに変換する手段とをさらに備えたことを特徴とする。
【００２０】
請求項１１に記載の発明にかかる情報処理装置は、前記所定のコマンドが、コマンド送出先の装置で所定のイベントを発生させるコマンドであることを特徴とする。
【００２２】
請求項１２に記載の発明にかかる情報処理装置は、前記命令領域決定手段は、前記第１のストロークが描画された時刻と前記第２のストロークが描画された時刻との差が所定の時間内にあるか否かを判定し、所定の時間内にあると判定されたときに、前記第１のストロークと第２のストロークとの関係を求め、当該関係に基づいて、当該第１のストロークが命令領域であるか否かを決定することを特徴とする。
【００２３】
請求項１３に記載の発明にかかる情報処理装置は、前記座標検知手段が前記タグ領域内の座標のうちの少なくとも１つの座標を検知した場合、前記命令領域に付された属性情報を提示する属性情報提示手段をさらに備えることを特徴とする。
【００２４】
請求項１４に記載の発明にかかる情報処理装置は、前記属性情報提示手段が、前記命令領域に付された属性情報を文章化して提示する文章情報出力手段をさらに備えることを特徴とする。
【００２５】
請求項１５に記載の発明にかかる情報処理装置は、前記属性情報提示手段が、前記命令領域に付された属性情報を文章化すると共に、該文章を音声として出力する音声出力手段をさらに備えることを特徴とする。
【００２６】
請求項１６に記載の発明にかかる情報処理装置は、前記座標検知手段が前記タグ領域内の座標のうちの少なくとも２つの座標を所定の時間内に連続して検知した場合、前記データ送出手段は、前記命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを再度外部に送出することを特徴とする。
【００２７】
請求項１７に記載の発明にかかる情報処理装置の制御方法は、所定の平面上において指示された座標を配列して形成されるストロークに基づいて命令領域を決定する命令領域決定ステップと、前記命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを外部に送出するデータ送出ステップと、を含み、前記命令領域決定ステップが、連続して入力された座標列からなる第１のストロークと第２のストロークについて、前記第２のストロークの閉領域が前記第１のストロークの始点および終点を内包するか否かを判定するステップと、内包すると判定したとき、前記第１のストロークの始点、終点を結んだ線分と前記第２のストロークの始点との距離および前記線分と前記第２のストロークの終点との距離が所定の距離以下であるか否かを判定するステップと、前記判定の結果、前記距離が所定の距離以下であると判定したとき、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定するステップとを含み、前記データ送出ステップが、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがあるとき、前記命令領域をストローク送出用の命令領域と決定するステップと、前記命令領域内のストロークデータを前記タグ領域で指定される送出先に送出するステップとを含むことを特徴とする。
【００２９】
請求項１８に記載の発明にかかる情報処理装置の制御方法は、所定の平面上において指示された座標を配列して形成されるストロークに基づいて命令領域を決定する命令領域決定ステップと、前記命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを外部に送出するデータ送出ステップと、を含み、前記命令領域決定ステップが、連続して入力された座標列からなる第１のストロークと第２のストロークについて、前記第２のストロークの閉領域が前記第１のストロークの始点および終点を内包するか否かを判定するステップと、内包すると判定したとき、前記第１のストロークの始点、終点を結んだ線分と前記第２のストロークの始点との距離および前記線分と前記第２のストロークの終点との距離が所定の距離以下であるか否かを判定するステップと、前記判定の結果、前記距離が所定の距離以下であると判定したとき、前記第１のストロークを基に命令領域を決定し、前記第２のストロークを基にタグ領域を決定するステップとを含み、前記データ送出ステップが、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがないとき、前記命令領域をコマンド送出用の命令領域と決定するステップと、前記コマンド送出用の命令領域内に生成される所定形状のストロークを認識するステップと、認識されたストロークを、対応する所定のコマンドに変換するステップと、前記所定のコマンドを前記タグ領域で指定される送出先に送出するステップとを含むことを特徴とする。
【００３０】
請求項１９に記載の発明にかかる情報処理装置の制御方法は、前記タグ領域内の座標のうちの少なくとも１つの座標が指示された場合、前記命令領域に付された属性情報を提示する属性情報提示ステップをさらに含むことを特徴とする。
【００３１】
請求項２０に記載の発明にかかる情報処理装置の制御方法は、前記属性情報提示ステップが、前記命令領域に付された属性情報を文章化して提示することを特徴とする。
【００３２】
請求項２１に記載の発明にかかる情報処理装置の制御方法は、前記属性情報提示ステップが、前記命令領域に付された属性情報を文章化すると共に、該文章を音声として出力することを特徴とする。
【００３３】
請求項２２に記載の発明にかかる情報処理装置の制御方法は、前記座標検知ステップが前記タグ領域内の座標のうちの少なくとも２つの座標を連続して検知した場合、前記データ送出手段は、前記命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを再度外部に送出することを特徴とする。
【００３４】
請求項２３に記載の発明にかかるプログラムは、コンピュータに、前記請求項１７〜２２のいずれか一つに記載の情報処理装置の制御方法を実行させることを特徴とする。
【００３５】
また、以上述べた本発明は、所定平面上に指示された座標を検知し、前記検知された座標値の配列をストロークとして記憶し、前記記憶された第１のストロークと当該第１のストロークの次に入力された第２のストロークとの関係に基づいて、当該第１のストロークが命令領域であるか否かを判定し前記第１のストロークが命令領域であると決定された場合に、前記第１のストロークの閉領域を基に命令領域を決定し、前記第２のストロークの閉領域を基にタグ領域を決定し、前記命令領域内にストロークがあるか否かを判定し、前記命令領域内にストロークがあるとき、前記命令領域をストローク送出用の命令領域と決定し、前記命令領域内のストロークデータを、前記タグ領域で指定されるストローク送出先に送出し、前記命令領域内に前記ストロークがないとき、前記命令領域をコマンド送出用の命令領域と決定し、前記コマンド送出用の命令領域内にその後生成される所定形状のストロークを認識し、認識されたストロークに対応したコマンドを、前記タグ領域で指定されるコマンド送出先に送出する。
【００３６】
また、以上述べた本発明は、タグ領域内の座標のうちの少なくとも１つの座標が検知された場合に命令領域に付された属性情報を提示する。この属性情報は、文章化して提示することもできる。また、文章化された属性情報を、音声として出力することもできる。さらに、タグ領域内の座標のうちの少なくとも２つの座標が連続して検知された場合、命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを再度外部に送出することもできる。このため、電子情報機器の操作に不慣れなオペレータにとっての操作性をいっそう高めることができる。
【００３７】
【発明の実施の形態】
以下、本発明の実施の形態１、実施の形態２を図面を用いて具体的に説明する。実施の形態１、２の情報処理装置は、いずれも所定の平面上に入力された座標を配列して形成されるストロークに基づいて命令領域を決定する手段、この命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいてデータを決定する。そして、決定したデータを外部に送出する手段を備えるものである。
【００３８】
（実施の形態１）
図１は、実施の形態１の情報処理装置の構成を示すブロック図である。情報処理装置１は、電子黒板装置１０、中央制御装置２０から構成されていて、中央制御装置２０は、さらに、電子黒板装置から入力されるストロークを記憶するストローク記憶部２１、ストローク間の関係を調べ、各ストロークを命令領域とタグ領域に決定する命令領域決定部２２、命令領域内のストロークデータなどを格納する命令領域記憶部２３、タグ領域で指定される送出先にストロークデータを送出するストローク送出部２４、命令領域内に描かれたストロークの特徴量を計算してジェスチャとして決定するジェスチャ認識部２５、ジェスチャに対応するコマンドをジェスチャテーブル記憶部から参照するジェスチャテーブル参照部２６、タグ領域で指定される送出先にコマンドを送出するコマンド送出部２７、命令領域、タグ領域の決定処理、ストロークの自己交差数の計測処理などのために一時的にストロークデータを格納する編集用メモリー部２８、ジェスチャとコマンドとの対応を格納したジェスチャテーブル記憶部２９から構成されている。
【００３９】
電子黒板装置１０は、筆記面１０ａの裏面に圧力検知センサーをマトリクス状に配置した構造となっており、マーカーペンのような筆記具１０ｂが筆記面１０ａに接地した際の位置を検出して、ＲＳ２３２Ｃのシリアル通信を通じて中央制御装置２０に出力される。
【００４０】
ストローク記憶部２１について説明する。筆記具１０ｂによる描画は、筆記具１０ｂが電子黒板１０の筆記面１０ａに接地した際に、電子黒板装置１０上の圧力検知センサーにより、一定のサンプリング周期でリアルタイムにｘ，ｙの２次元座標として検知される。そして、筆記具１０ｂが電子黒板装置１０の筆記面１０ａから離れると、座標検出は停止する。
【００４１】
筆記具１０ｂが電子黒板装置１０の筆記面１０ａに接地状態になったときから離れた状態になるまでのサンプリング周期毎に得られた座標値は、中央制御装置２０内のストローク記憶部２１に座標値の配列Ｘ［ｎ］，Ｙ［ｎ］として順次記憶される。ＸとＹは座標値を記憶する配列で、ここでｎはサンプリングされた座標点数であり、ＸとＹの配列のインデックス番号を示している。座標値はサンプリングされた順番に、この配列に記憶されていく。筆記具１０ｂが電子黒板装置１０の筆記面１０ａに接地してから離れるまでに記憶された座標値の配列をストロークと呼ぶ。
【００４２】
ストロークは筆記具１０ｂが電子黒板装置１０の筆記面１０ａに接地してから離れる度に、中央制御装置２０内のストローク記憶部２１上にストロークの配列ＳＴ［Ｍ］として順次記憶されていく。ここで、Ｍはストローク配列の最大数である。Ｃ言語の構造体記述表記で表すとすると、ストロークの記憶は以下のような形で実現される。ここで、ＳＴはストロークの配列、Ｍは記憶するストローク配列の最大要素数である。また、Ｎは最大の座標点数であり、ｎは各ストロークにおいてサンプリングされた座標点数であり１からＮの間の値をとる。
【００４３】
0004261145.tif 000002
【００４４】
ストローク配列には、オプションとしてストロークが描画された日付や時刻あるいは時間差などの時間に関する情報をデータとして記憶してもよい。例えば、Ｃ言語の構造体で示すと、以下のようなデータ形式で表現できる。変数ｔｉｍｅには例えば、ストロークの始点（Ｘ［１］，Ｙ［１］）が入力されたときの時刻情報を記憶すればよい。時刻情報は例えばタイマーなどから日時を取得することで得られる。もちろん、時刻情報は必ずしもデータ構造に常に入っている必要はない。
【００４５】
0004261145.tif 000003
【００４６】
命令領域決定部２２について説明する。本発明では、命令領域とタグ領域をそれぞれ指示する、特殊な属性を持つ２つのストロークによって、描画送出やコマンド送出という機能を実現させている。
【００４７】
ストローク記憶部２１上に記憶された連続した２つのストロークが、所定の条件を満たしたときに、各ストロークが命令領域とタグ領域であると決定する。命令領域はネットワークに接続された端末に対して描画情報やコマンドを送出する機能を持ち、タグ領域は命令領域の属性情報（描画情報やコマンドの送出先を指定する情報）を保持する機能を持つ。
【００４８】
図２は、電子黒板装置１０の筆記面１０ａに命令領域、タグ領域、通常のストロークが描かれた様子を示す。連続した２つのストロークを第一のストロークと第二のストロークとするとき、この連続した２つのストロークが所定の条件を満たしたときに、第一のストロークの閉領域部分を命令領域、第二のストロークの閉領域部分をタグ領域として決定する。
【００４９】
そして、命令領域内に既にあるストロークデータ（描画情報）を、タグ領域のストローク形状で指定される装置に送出し、命令領域内にその後入力されるストロークをコマンドに変換して、タグ領域のストローク形状で指定される装置に送出する。
【００５０】
以下に、命令領域とタグ領域の決定条件を説明する。図３は、命令領域決定部２２の処理フローチャートを示す。ただし、ストローク送出やコマンド送出などの個別の処理の詳細については後述する。
【００５１】
ここで、中央制御装置２０のストローク記憶部２１上に記憶された連続したストローク配列の第一のストロークをＳＴ［ａ］、第二のストロークをＳＴ［ａ＋１］とする。ａはストローク記憶部２１上に記憶されている任意の時点でのストローク番号を示し、１からＭの値をとる。また、ＳＴ［ａ］のストロークを構成する座標値の内、ｋ番目に相当する座標値を参照する際には、ＳＴ［ａ］．Ｘ［ｋ］，ＳＴ［ａ］．Ｙ［ｋ］のように参照することとする。
【００５２】
ステップＳ００１において、第一のストロークＳＴ［ａ］および第二のストロークＳＴ［ａ＋１］が中央制御装置２０のストローク記憶部２１上に記憶されると、ストロークデータＳＴ［ａ］とＳＴ［ａ＋１］を編集用のメモリー部２８に送出して、命令領域とタグ領域を決定する処理を開始する。
【００５３】
ステップＳ００２では、第二のストロークＳＴ［ａ＋１］の閉領域部分が第一のストロークＳＴ［ａ］の始点（ＳＴ［ａ］．Ｘ［１］，ＳＴ［ａ］．Ｙ［１］）を内包するか否かを判定する。
【００５４】
ステップＳ００２において内包すると判定された場合、次にステップＳ００３においてＳ［ａ＋１］の閉領域部分が第一のストロークの終点（ＳＴ［ａ］．Ｘ［ｎ］，ＳＴ［ａ］．Ｙ［ｎ］）を内包するか否かを判定する。
【００５５】
図４は、ステップＳ００２とステップＳ００３の処理が行われる際の、第一のストロークと第二のストロークの描画例である。
【００５６】
ステップＳ００３において内包すると判定された場合、次に、ステップＳ００４において、ＳＴ［ａ］の始点・終点を結んだ線分と第二のストロークの始点（ＳＴ［ａ＋１］．Ｘ［１］，ＳＴ［ａ＋１］．Ｙ［１］）との距離を計算する。この結果、距離の値が充分小さいと判定された場合、次に、ステップＳ００５において、ＳＴ［ａ］の始点・終点を結んだ線分と第二のストロークの終点（ＳＴ［ａ＋１］．Ｘ［ｎ］，ＳＴ［ａ＋１］．Ｙ［ｎ］）との距離を計算する。この値が充分小さいと判定された場合、ＳＴ［ａ］を命令領域、ＳＴ［ａ＋１］をＳＴ［ａ］に関するタグ領域として判別する。
【００５７】
ステップＳ００６において、ＳＴ［ａ］の閉領域部分にストロークが内包されている場合は、ステップＳ００７によってＳＴ［ａ］をストローク送出用の命令領域、ステップＳ００８によってＳＴ［ａ＋１］をタグ領域として決定し、ステップＳ００９によってＳＴ［ａ］、ＳＴ［ａ＋１］を命令領域記憶部２３に記憶する。さらに、ステップＳ０１０によって、ＳＴ［ａ］が内包していたストロークを検出し、ビットマップデータとしてストローク送出部２４へ送出する。
【００５８】
ステップＳ００６においてＳＴ［ａ］がストロークを内包していない場合は、ステップＳ０１１によってＳＴ［ａ］をコマンド送出用の命令領域、ステップＳ０１２においてＳＴ［ａ＋１］をタグ領域として決定し、ステップＳ０１３によって命令領域記憶部２３に記憶する。
【００５９】
前述したストロークと点の内包処理（ステップＳ００２、Ｓ００３）については、例えば以下のような公知の技術を用いる。従って、その詳細な説明は省略するが以下に概略を示す。
http://www.wombat.or.jp/tomoyashuttle/shtml/algorithm/Hougan.htm
【００６０】
ストロークはいくつかの座標点によって構成されており、その座標点を結んだ軌跡は多角形として考えることができる。ストロークと点との内包処理は、この座標点によって構成される多角形と所定の点との内包関係を判定することに置き換えられる。
【００６１】
図５を用いて説明すると、まず、多角形は三角形の集合であると考えて、多角形を構成する三角形それぞれについて、所定の点が三角形に包含されるかどうかを判定する。
【００６２】
例えば、多角形を構成する三角形のうち、ある三角形の頂点をＡＢＣ、ＡＢＣの重心点をＧ、内包を判定したい所定の点をＰ（説明のためＰａとＰｂという２つの状態を想定する）とする。このとき線分ＰＧがＡＢ，ＢＣ，ＣＡのいずれかの線分と交差した場合、Ｐは三角形ＡＢＣに包含されていないと判定できる。
【００６３】
例えば図５の例では、Ｐａは線分ＰａＧとＢＣが交わるため、ＡＢＣには内包されていないと判定される。一方、Ｐｂは線分ＰｂＧが線分ＡＢ，ＢＣ，ＣＡと交わらないことから、ＡＢＣに内包されると判定される。
【００６４】
このような処理を多角形を構成するすべての三角形について計算して、いずれか一つの三角形に包含されていれば、所定の点は多角形に内包されていると判定できる。一方、いずれの三角形にも包含されていない場合には、所定の点は多角形に内包されていないと判定できる。
【００６５】
図６は、ストロークが点を内包するか否かを判定する際の、上記した判定方法の処理フローチャートを示す。これは、図３のステップＳ００２とＳ００３の詳細の処理フローチャートである。
【００６６】
この例では、任意の座標Ｐ（ｐｘ，ｐｙ）がストロークＳＴ［ｕ］に内包されるかどうかを判定する。まず、ステップＳ１０１〜Ｓ１０６では、１≦ｕ≦Ｍについて各ストロークＳＴ［ｕ］の探索を行うパスである。ストロークを構成する各頂点のうち、三角形を構成する３点（ＳＴ［ｕ］．Ｘ［ｖ］，ＳＴ［ｕ］．Ｙ［ｖ］）（ＳＴ［ｕ］．Ｘ［ｖ＋１］，ＳＴ［ｕ］．Ｙ［ｖ＋１］）（ＳＴ［ｕ］．Ｘ［ｖ＋２］，ＳＴ［ｕ］．Ｙ［ｖ＋２］）を順に探索していって、各三角形がＰを内包するかどうかを判定する。ステップＳ１０７〜Ｓ１１２では、三角形の重心座標Ｇ（ＧＸ，ＧＹ）を計算する。ステップＳ１１３〜Ｓ１１５では、三角形を構成する各線分と、ＰＧの交差を判定する。三角形を構成するいずれかの線分と交差した場合は、Ｐはその三角形に内包されないと判断して、ステップＳ１１７でｖをインクリメントして、次の三角形について探索する。三角形のいずれの線分とも交差しなかった場合は、Ｐはその三角形に内包されていると判断できる。すなわち、ステップＳ１１６において、ＰはＳＴ［ｕ］に内包されると判定される。ステップＳ１０５の処理でｖがｎ−２より大きくなった場合には、ステップＳ１０６でｕをインクリメントする。ステップＳ１０２の処理でｕがＭより大きくなった場合には、Ｐはいずれのストロークにも内包されなかったと判定される。
【００６７】
図３のステップＳ００２とＳ００３では、前述したような内包判定処理を第二のストロークＳＴ［ａ＋１］と第一のストロークＳＴ［ａ］の始点（ＳＴ［ａ］．Ｘ［１］，ＳＴ［ａ］．Ｙ［１］）、終点（ＳＴ［ａ］．Ｘ［ｎ］，ＳＴ［ａ］．Ｙ［ｎ］）に関して計算している。
【００６８】
図７は、ステップＳ００４とＳ００５の処理を説明する図である。前述したようにステップＳ００４とＳ００５では、点と線分との距離計算を基に、命令領域とタグ領域を決定する条件を判定している。
【００６９】
点と線分の距離の計算は公知の技術を用いる。例えば２つの座標値Ａ（ｘ０，ｙ０）とＢ（ｘ１，ｙ１）によって構成されている線分ＡＢと、ある座標点Ｐ（ｘ２，ｙ２）との距離ｈは、ＰからＡＢに垂線を下ろしたときの、その垂線の長さとして計測できる。
【００７０】
上記したような計測処理によって、第一のストロークの始点と終点を結んだ線分と、第二ストロークの始点との距離ｈ１および終点との距離ｈ２を計算する。その結果、ステップＳ００４においてｈ１が充分近く、Ｓ００５においてｈ２の距離が充分近い場合、例えばｈ１とｈ２共に４０ピクセル以下という条件を満たした場合に、第一ストロークの閉領域部分つまり第一ストロークの座標点によって構成される多角形内部を命令領域として決定する。また、第二ストロークの閉領域部分つまり第二ストロークの座標点によって構成される多角形内部をタグ領域として決定する。
【００７１】
この連続した２つのストロークによる命令領域決定処理によって、ユーザの描いた通常の描画のためのストロークと、命令領域・タグ領域のためのストロークとを判別できる。
【００７２】
すなわち、本発明で提案している命令領域とタグ領域を決定するために、２つのストローク間に幾何学的な制約条件を持たせることで、ユーザが単なる絵を描きたいのか、命令領域を作成したいのかを、明確に区別することができる。
【００７３】
本発明ではさらに、図８（ａ）、（ｂ）で示すように、命令領域とタグ領域を決定する際の制約条件として、時間的な経過を考慮することもできる。この処理は、例えば図３のステップＳ００１あるいはステップＳ００６の処理の一部として組み込むこともできる。
【００７４】
図８（ａ）に示すように、第一のストロークの描画された時刻をｔ１、第二のストロークの描画された時刻をｔ２とした場合、時間差ｔ２−ｔ１が所定の時間Ｔｐとの比較において所定の条件を満たした場合に、前述した図２から図７に示したような命令領域の決定処理を開始する。ｔ２−ｔ１がＴｐとの条件を満たさない場合、前述したような命令領域の決定処理を行わず、すなわち第一のストロークと第二のストロークは通常のストロークとして記憶する。
【００７５】
図８（ｂ）は、上記した処理の流れをさらに具体的に示す。前述したような時間的な経過を考慮する場合は、ストローク記憶部２１には、ストロークが描画された場合の時間的な情報を記録する。
【００７６】
まず、第一のストロークの描画された時刻ｔ１を取得する。次に、第二のストロークの描画された時刻ｔ２を取得する。ｔ１とｔ２はストローク記憶部２１において、例えば現在の時刻情報として取得してもよいし、例えば装置が起動されてからの経過時間を計測してもよい。次にｔ２−ｔ１を計算して、この時間差があるしきい値（Ｔｐ）よりも小さい場合、図３のステップＳ００１に処理を組み込んだ場合にはステップＳ００２の処理へ、ステップＳ００６の条件を満たした箇所（ステップＳ００６の判定でＹｅｓの場合）に組み込んだ場合には、ステップＳ００７の処理へと処理を続行する。ｔ２−ｔ１がＴｐよりも大きい場合、処理を終了する。
【００７７】
このように、時間的な経過も命令領域を決定するための制約条件とすることにより、ユーザが単なる絵を描きたいのか、命令領域を作成したいのかを、より明確に区別することができる。もちろん、時間的な経過を考慮することなく、ストローク情報のみから命令領域とタグ領域を決定できることはいうまでもない。
【００７８】
図９は、図３のステップＳ００６からＳ００９の処理の詳細フローチャートである。命令領域には、ストローク情報を描画として参加者の手元端末に送出する機能と、参加者の手元端末を制御するためのコマンドを送出する機能との２つの機能がある。そこで、作成した命令領域が描画送出用かコマンド送出用であるかを判定する。
【００７９】
まず、命令領域が描画送出用であるかを判定する処理について説明する。命令領域内にこれまでに描かれたストロークが内包されているかを探索する。命令領域内にストロークが内包されている場合、描画送出用の命令領域として判定される。
【００８０】
内包の判定は、個々のストロークを構成する座標情報に対して前述した内包判定処理のアルゴリズムを適用する。すなわち、１≦ｊ≦Ｍのようにパラメータ変化させる場合、ストロークＳＴ［１］からＳＴ［Ｍ］のうち命令領域として記録されていないストロークＳＴ［ｊ］に対して、命令領域内にそのストロークを構成する各座標点（ＳＴ［ｊ］．Ｘ［ｋ］，ＳＴ［ｕ］．Ｙ［ｋ］）（１≦ｋ≦ｎ）に対して前述の内包処理を適用する。その結果、すべての座標点が命令領域に内包されている場合に、ストロークＳＴ［ｊ］が命令領域ＳＴ［ａ］に内包されていると判断して、ＳＴ［ｊ］をＳＴ［ａ］が内包するストロークとして命令領域記憶部２３に保持しておく。
【００８１】
以上のような処理を行った結果、命令領域記憶部２３に保持されている内包されていたストローク群を、描画情報としてユーザの手元端末に対して送出する。
【００８２】
次に、図３のステップＳ０１０におけるストロークデータの描画情報としての送出処理について、図１０を用いて説明する。
【００８３】
まず、内包されていたストロークを順次ビットマップデータとしてファイルに保存する場合、内包されていたストロークのＸ座標の最大値、Ｙ座標の最大値、Ｘ座標の最小値、Ｙ座標の最小値を求める。ここでＭａｘは値のうち最大のものを返す関数であり、Ｍｉｎは値のうち最小のものを返す関数である。
【００８４】
ＭａｘＸ＝Ｍａｘ（内包されていたストロークのＸ座標の値）
ＭａｘＹ＝Ｍａｘ（内包されていたストロークのＹ座標の値）
ＭｉｎＸ＝Ｍｉｎ（内包されていたストロークのＸ座標の値）
ＭｉｎＹ＝Ｍｉｎ（内包されていたストロークのＹ座標の値）
内包されていたストロークデータを、座標点（ＭｉｎＸ，ＭｉｎＹ）と座標点（ＭａｘＸ，ＭａｘＹ）で切り取られる矩形に描いておいて、ビットマップとして保存する。ここでは、命令領域記憶部２３の一部をビットマップファイルとして用いる。
【００８５】
ファイルの共有方法については、公知の技術を用いることができる。ビットマップファイルを例えばネットワーク上で共有できるようなファイルシステムに保存することによって、複数の端末から描画情報を共有できるようになる。ネットワークに接続された端末からその共有フォルダのある記憶装置に対してアクセスして、そのビットマップファイルを共有できる。
【００８６】
図３のステップＳ００６の処理において、命令領域内にストロークが内包されていない場合、その命令領域はコマンド送出用の命令領域として命令領域記憶部２３に記録され、ジェスチャとしてのストローク入力待ち状態となる。
【００８７】
図１１は、コマンド送出用の命令領域におけるジェスチャストロークの処理フローチャートであり、命令領域決定部２２、ジェスチャ認識部２５、ジェスチャテーブル参照部２６、コマンド送出部２７によって実行される。
【００８８】
ある連続した２つのストロークＳＴ［ａ］とＳＴ［ａ＋１］によって命令領域とタグ領域が構成されていて、この第一ストロークによって構成される命令領域ＳＴ［ａ］がコマンド送出用であるとする。さらに、新規に入力されたストロークをＳＴ［ｂ］とする。
【００８９】
ストロークデータＳＴ［ｂ］が入力されると、ステップＳ３０１によって、ＳＴ［ｂ］のデータが編集用メモリー部２８に送出される。次に、ステップＳ３０２からＳ３０６の処理において、命令領域決定部２２はＳＴ［ｂ］に対して命令領域との内包判定処理を行う。内包処理の計算方法については前述したアルゴリズムを適用できるためここでは説明を省略する。
【００９０】
ステップＳ３０２でｉ＝１と置き、ステップＳ３０３においてｉが記憶されているストロークの最大値Ｍ以下である場合、ステップＳ３０４のようにＳＴ［ｉ］が命令領域記憶部２３に命令領域として記憶されているとき、ステップＳ３０５の処理によってＳＴ［ｉ］を編集用メモリー部２８に送出する。ＳＴ［ｉ］が命令領域として記憶されていない場合は、ステップＳ３０７によってｉ＝ｉ＋１として、次のストロークを探索する。ステップＳ３０６において、ＳＴ［ｂ］がＳＴ［ｉ］のストロークに内包されると判定された場合、ＳＴ［ｂ］はＳＴ［ｉ］に関するジェスチャストロークであると判定される。ＳＴ［ｂ］がＳＴ［ｉ］に内包されていない場合は、ステップＳ３０７の処理に移って次のストロークについて探索する。
【００９１】
新たなストロークＳＴ［ｂ］がコマンド送出用の命令領域内に描かれたと判定された場合、ストロークＳＴ［ｂ］はコマンド用のストロークと定義され、そのストロークＳＴ［ｂ］に対して、ジェスチャ認識部２５はジェスチャの認識処理（ステップＳ３０８）を実行する。
【００９２】
ジェスチャ認識部２５は、ストロークの形状を計算して、その形状に基づいてジェスチャテーブル参照部２６は、コマンドのテーブル記憶部２９を参照して、そのテーブルにおいて対応するコマンドを、コマンド送出部２７から送出する。
【００９３】
ジェスチャ認識処理は、例えば以下のようにストロークの形状を示す様々な特徴量の計算処理によって行われる。
【００９４】
幾何学上の特徴量の計算方法については、例えば、森健一監修「パターン認識」電子情報通信学会（１９９３）などの公知の技術を用いる。
【００９５】
まず、
座標点数（ｐｏｉｎｔ）＝ＳＴ［ｂ］を構成する座標点の合計
長さ（ｌｅｎｇｔｈ）＝ＳＴ［ｂ］を構成する座標点間の距離の合計
面積（ａｒｅａ）＝ＳＴ［ｂ］を構成する多角形の面積
矩形面積（ｒｅｃ＿ａｒｅａ）＝ＳＴ［ｂ］を、前述したＭｉｎ、Ｍａｘで処理した矩形の面積
水平方向の座標値の分散（ｓｔｄｘ）＝ＳＴ［ｂ］．Ｘ［１］．．．ＳＴ［ｂ］．Ｘ［ｎ］の分散
垂直方向の座標値の分散（ｓｔｄｙ）＝ＳＴ［ｂ］．Ｙ［１］．．．ＳＴ［ｂ］．Ｙ［ｎ］の分散
占有度（ｐｏｓ）＝面積／矩形面積
円形度（ｃｉｒｃ）＝４＊円周率＊面積／（長さ＊長さ）
複雑度（ｃｏｍｐ）＝長さ＊長さ／面積
自己交差数（ｓｃ）＝ＳＴ［ｂ］を構成する各線分の交差数の合計
を計算する。
【００９６】
次に、ＳＴ［ｂ］の自己交差数ｓｃを計算する。ここで自己交差とは、ＳＴ［ｂ］を構成する座標点を順に結んだ線分同士が交差することを指す。
【００９７】
線分の交差判定処理については、例えば、
http://www.wombat.or.jp/tomoyashuttle/shtml/algorithm/Hougan.htm
に示されている公知の技術を用いる。その詳細な説明は省略するが、以下に概略を示す。
【００９８】
図１２は、自己交差の例を示す。座標点Ａ，Ｂ，Ｃ，Ｄがある場合、線分ＡＢと線分ＣＤが交差するということは、点Ａ，Ｂを通る直線が線分ＣＤと交差し、かつ、点Ｃ，Ｄを通る直線が線分ＡＢと交差していることと考えられる。そこで、直線を境界線として、線分を構成する２つの点が直線に対して両側に存在するとき、すなわちｙ＝ｄｘ＋ｅという直線を考えた場合にｙ−ｄｘ−ｅに対して２つの点の座標値を代入して符号が異なるときに、直線と線分は交差すると考えられる。この処理を直線ＡＢと点Ｃ，Ｄ、直線ＣＤと点Ａ，Ｂに対して計算した結果、双方が交差すると判定された場合、線分ＡＢと線分ＣＤが交差すると判定される。
【００９９】
このような線分交差判定処理を、ＳＴ［ｂ］を構成する座標点を結んだ線分間に適用することで、自己交差数ｓｃを計算できる。
【０１００】
例えば、ｉとｊが互いに独立に１からｎ（対象とするストロークの頂点数）までの値を取る変数であるとすると、座標点Ａ（ＳＴ［ｂ］．Ｘ［ｉ］，ＳＴ［ｂ］．Ｙ［ｉ］）、Ｂ（ＳＴ［ｂ］．Ｘ［ｉ＋１］，ＳＴ［ｂ］．Ｙ［ｉ＋１］）、Ｃ（ＳＴ［ｂ］．Ｘ［ｊ］，ＳＴ［ｂ］．Ｙ［ｊ］）、Ｄ（ＳＴ［ｂ］．Ｘ［ｊ＋１］，ＳＴ［ｂ］．Ｙ［ｊ＋１］）によって構成される線分ＡＢ，ＣＤのうち、ｉ＝ｊ、ｉ＝ｊ＋１、ｊ＝ｉ＋１の条件を除くすべての場合について、線分の交差を検出する。このとき検出された交差の和を自己交差数とする。
【０１０１】
ジェスチャ認識部２５は、充分に長さが短い、円形度が高く占有度が低い、円形度が低く占有度が高い、自己交差数が一つで水平方向の分散が垂直方向の分散に比較して大きいなど、ストロークＳＴ［ｂ］の形状を示す特徴量を様々に組み合わせて、ステップＳ３０９においてジェスチャとして決定する。ジェスチャ認識部２５は、ジェスチャとして識別すると、そのストロークの形状に基づいてＩＤ番号を割り振る。ステップＳ３０９の処理においてジェスチャとして認識できなかったものについては、ストローク記憶部２１に通常の描画のストロークとして記録しておく。
【０１０２】
例えば、以下に示すようなＳＴ［ｂ］の形状の特徴量の組み合わせによってジェスチャを認識する。以下、プログラムのコード様式で説明する。以下の数値パラメータは説明のために経験値に基づくものである。ここでは、マウスクリック、マウスダウン、マウスアップ、矢印キー（上下左右）という７つのコマンドをジェスチャから認識する方法を示している。
【０１０３】
マウスクリックを例にとって説明すると、長さが９より小さく、かつ頂点数が５より小さい場合にマウスクリックのコマンドとして認識している。以下、様々な特徴量の組み合わせから他のコマンドも認識している。ジェスチャはもちろん、ここに挙げた以外にもストロークの形状の特徴量の組み合わせによってさらにコマンド数を増やすことができる。
【０１０４】
0004261145.tif 000004
0004261145.tif 000005
【０１０５】
ストロークの形状からジェスチャが特定されてそのＩＤが判別されると、ジェスチャテーブル参照部２６はステップＳ３１０において、ジェスチャＩＤに対応するコマンドをジェスチャテーブル記憶部２９から参照する。ジェスチャテーブル記憶部２９は、中央制御装置２０内にあり、識別されたジェスチャのＩＤとコマンドとの対応関係を記述したメモリーテーブルである。ステップＳ３１０においてジェスチャからコマンドを参照した結果、ステップＳ３１１においてコマンドを取得して、コマンド送出部２７はステップＳ３１２においてユーザの手元端末に対してコマンドを送出する。
【０１０６】
ユーザの手元端末では後述するようなマウス・キーボードイベント発生サーバを起動させておき、送出したコマンドをこのサーバで取得・解析することで、実際の動作としてユーザにフィードバックすることができる。
【０１０７】
図１３は、ジェスチャテーブル記憶部２９の実施形態を示す。図の左欄はジェスチャストロークとして認識されたストロークで、図の中央欄は、その認識されたジェスチャストロークに対するＩＤの値、図の右欄はそのジェスチャに対応するコマンドである。コマンドとしては例えば手元端末のマウスやキーボードのイベントをエミュレートする命令を記述できる。単一のマウスイベントやキーボードイベントとして記述することはもちろん、複数のイベントを組み合わせて記述することもできる。
【０１０８】
図１４は、図３のステップＳ００９とＳ０１３（命令領域記憶部２３の処理）の詳細な処理フローチャートを示す。
【０１０９】
本発明では、タグ領域を構成する第二のストロークの自己交差点の数（自己交差数）を計算して、その自己交差の数に応じて、命令領域のストローク送出先やコマンド送出先を切り換えることができる。
【０１１０】
命令領域記憶部２３における命令領域の記憶形式はＣ言語の構造体様式で示すと、以下のように実施できる。ＣＲは命令領域の構造体データであり、ＣＲｍａｘはＣＲの要素の最大数を示す。また、ｔｙｐｅは命令領域がストローク送出用かコマンド送出用かを示す定数を記憶する変数である。また、ｓｔｒｏｋｅ＿ｉｄは、命令領域として検出されたストロークの番号（配列ＳＴのインデックス番号）である。さらに、その他にも送出先に関する属性情報（ホスト名ｈｏｓｔｎａｍｅ，ＩＰアドレスｉｐ＿ａｄｄｒｅｓｓ，接続ポートｓｅｒ＿ｐｏｒｔ，ｃｌｉ＿ｐｏｒｔ，ログインユーザ名ｌｏｇｉｎ＿ｎａｍｅ，パスワードｐａｓｓｗｄなど）が記憶される。ｓｔｒｉｎｇは文字列のデータ型を表すこととする。
【０１１１】
0004261145.tif 000006
【０１１２】
図３のステップＳ００９とＳ０１３においてストロークが命令領域として記憶する際のより詳細な処理として、図１４のステップＳ４０１において、その時点で対象となった命令領域のストロークをＳＴ［ｉ］とすると、ＳＴ［ｉ］に関するタグ領域ＳＴ［ｉ＋１］を編集用メモリー部２８に送出する。
【０１１３】
次に、ステップＳ４０２においてＳＴ［ｉ＋１］のストロークの自己交差数ｓｃを計測する。自己交差点の計算方法については前述のアルゴリズムを適用できるためここでは説明を省略する。
【０１１４】
次に、ステップＳ４０３において、計測したｓｃの値がＣＲの最大値ＣＲｍａｘを超えていないか判定する。ｓｃがＣＲｍａｘを超えている場合、処理を終了する。ｓｃがＣＲｍａｘ以下の場合、ステップＳ４０４において、ＣＲ［ｓｃ］を参照して、ＣＲ［ｓｃ］の属性情報を読み出して、送出先をその情報に更新する。
【０１１５】
図１５は、タグ領域ストローク形状、自己交差数ｓｃ、属性情報の関係を概念的に示したものである。属性情報とは、前述した命令領域の記憶形式におけるホスト名、ＩＰアドレス、接続ポート、ログインユーザ名、パスワードなどを指す。タグストロークの自己交差数を計測して、その数に従って、前述のように属性情報を変更する。すなわち計測した自己交差数をｓｃとすると、ＣＲ［ｓｃ］を参照して、ＣＲ［ｓｃ］構造体のメンバー（変数）であるｈｏｓｔｎａｍｅやｉｐ＿ａｄｄｒｅｓｓ情報を基にして送出先を変更し、ｓｅｒ＿ｐｏｒｔやｃｌｉ＿ｐｏｒｔ情報を基にして接続するポート番号を変更し、ｌｏｇｉｎ＿ｎａｍｅやｐａｓｓｗｄ情報を基にして、その変更した送出先にアクセスする。
【０１１６】
ホスト名、ＩＰアドレス、接続ポート、ログインユーザ名、パスワードなどの属性情報の具体的なデータはあらかじめ編集用メモリー部２８に記憶しておいても良いし、ファイルに記録しておいて、必要に応じてファイルから読み出して編集用メモリー部２８に取り込むようにしてもよい。もちろんこれらの値を必要に応じて変更あるいは編集する。
【０１１７】
例えば、ホスト名を例にとると、ＣＲ［０］．ｈｏｓｔｎａｍｅ＝”ｈｏｓｔｐｃ１”，ＣＲ［１］．ｈｏｓｔｎａｍｅ＝”ｈｏｓｔｐｃ２”…のように既知のホスト名データなどをあらかじめ構造体の各変数に対して代入しておくことができる。
【０１１８】
また、ファイル中にデータを書き出しておき、必要に応じてファイルから読み出すことができる。以下、「ホスト名、ＩＰアドレス、自ポート番号、相手ポート番号、ログイン名、パスワード」のデータがカンマ区切りで行単位にファイルに記録されている例を示している。
【０１１９】
hostpc1,169.254.255.0,1000,1001,john,john's password
hostpc2,169.254.255.0,1000,1001,mike,mike's password
hostpc3,169.254.255.0,1000,1001mary,mary's password
このとき、例えばｓｃ＝０の場合、上記したデータをファイルから読み出して、ＣＲ［０］．ｈｏｓｔｎａｍｅ＝”ｈｏｓｔｐｃ１”，ＣＲ［０］．ｉｐ＿ａｄｄｒｅｓｓ＝”１６９．２５４．２５５．０”，ＣＲ［０］．ｓｅｒ＿ｐｏｒｔ＝１０００，ＣＲ［０］．ｃｌｉ＿ｐｏｒｔ＝１００１，ＣＲ［０］．ｌｏｇｉｎ＿ｎａｍｅ＝”ｊｏｈｎ”，ＣＲ［０］．ｐａｓｓｗｄ＝”ｊｏｈｎ’ｓｐａｓｓｗｏｒｄ”のように自己交差数にしたがって順次データを読み出すことができる。
【０１２０】
タグ領域のストローク形状は、自己交差点部分が検出できれば、図１５の１００ｂ，１００ｄ，１００ｆのように、自己交差部分がタグ領域のストロークの外側にできるような交差の仕方や、１００ｃ，１００ｅ，１００ｇのように自己交差部分がタグ領域の閉領域側にできるような交差の仕方、あるいは１００ｈのように交差方法が組み合わせたものも使用できる。
【０１２１】
このようにタグ領域の自己交差数ｓｃにしたがってストロークの送出先、およびコマンドの送出先を指定、変更できることから、複数端末のうちから特定の端末を選択して、その端末に対してストローク情報を送出したり、あるいは端末に対して個別に制御するコマンドを送出することができる。
【０１２２】
図１６は、命令領域のストローク送出機能を実施する場合の構成例を示す。前述したように、図３のステップＳ００６〜Ｓ０１０の処理によって、所定のストロークを複数の端末に対して送出することができる。
【０１２３】
例えば、本発明における情報処理装置１と複数の端末とを図１６のようにネットワーク上に接続するように構成する。すなわち、図１６の例では、ネットワーク１（５０ａ）上に本発明の情報処理装置１，ＰＣ−１（３０ａ），ＰＣ−２（３０ｂ），サーバＰＣ（４０）の３つの端末が接続されており、サーバＰＣ（４０）はさらにネットワーク２（５０ｂ）に接続されていて、ネットワーク２（５０ｂ）にはさらにＰＣ−ａ（３０ｃ），ＰＣ−ｂ（３０ｄ），ＰＣ−ｃ（３０ｅ）が接続されている。もちろん、ＰＣの数はここに挙げた数に限定されるものではない。またネットワーク１（５０ａ）とネットワーク２（５０ｂ）は便宜上２つのネットワークとして図示しているが、もちろん同一のネットワークとして構成することもできる。ネットワークの技術としては、Ｅｔｈｅｒｎｅｔ（Ｒ）などの公知の技術を用いるため、ここでは説明を省略する。
【０１２４】
前述したように、本発明の命令領域のストローク送出機能を用いることで、例えば情報処理装置１からＰＣ−１（３０ａ），ＰＣ−２（３０ｂ），サーバＰＣ（４０）に対して、所定のストロークのビットマップファイルを送出することができる。送出方法としては、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（Ｒ）の共有フォルダ、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などの公知の技術を用いることができるため、ここでは説明を省略する。
【０１２５】
また、サーバＰＣ上で、例えばＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）のサーバソフトウェアＳＥＲ０を起動しておくことにより、さらに多くの端末ＰＣａ，ＰＣ−ｂ，ＰＣ−ｃに対してストロークのビットマップファイル情報を共有することができる。ＷＷＷのサーバソフトウェアは公知の技術を用いることができる。
【０１２６】
図１４と図１５で説明した送出先を切り換える機能により、送出先を選択的に指定、変更することもできる。例えば、命令領域に関するタグ領域の自己交差数が１つの場合、ＰＣ−１（３０ａ）へ送出するように記述しておくことで、タグ領域の自己交差が１つである命令領域を描いた場合には、ストロークの送出先をＰＣ−１（３０ａ）のみに限定することができる。このように、送出先を切り換えられることから、特定のユーザ間で情報の共有を行えるようにしたり、多数のユーザと状況の共有を行うなど、様々な情報共有方法を実現することができる。
【０１２７】
図１７は、命令領域のコマンド送出機能を実施する場合の構成例を示す。本発明の情報処理装置１とＰＣ−４（３０ｆ），ＰＣ−５（３０ｇ）がネットワーク３（５０ｃ）によって接続されている。ＰＣ−４（３０ｆ）上では、マウス・キーボードイベント発生サーバ（ＳＥＲ１）とプレゼンテーションソフトウェア１（ＡＰＰ１）とプレゼンテーションソフトウェア２（ＡＰＰ２）が起動しており、ＡＰＰ１にフォーカスが移っているとする。またＰＣ−５（３０ｇ）上では、マウス・キーボードイベント発生サーバ（ＳＥＲ２）とビデオ装置制御ソフトウェア（ＡＰＰ３）が起動している。さらに、ＰＣ−５（３０ｇ）にはビデオ録画再生装置（６０）が接続されている。このビデオ録画再生装置（６０）はＲＳ２３２Ｃ端子の接続インタフェースを持ち、ＰＣから録画、再生、早送り、巻き戻しなどの機能を制御可能なものである。本発明の情報処理装置１とＳＥＲ１とＳＥＲ２との通信方法は、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）などの公知の通信技術を用いて実現できる。また、ビデオ録画再生装置（６０）の接続インタフェースとＲＳ２３２Ｃによる制御方法についてもＶＩＳＣＡ（Ｖｉｄｅｏ  Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などの公知の技術を用いるのでここでは構成の説明は省略する。
【０１２８】
まず、ＰＣ−４（３０ｆ）の動作例について図１８と図１９を用いて説明する。図１８は、情報処理装置１上で命令領域を描いて所定のコマンドを送出した場合に、ＰＣ−４（３０ｆ）が具体的にどのように制御されるのかを概念的に描いた図である。また、図１９は、図１８の制御例を実現したときのＰＣ−４（３０ｆ）側で動作しているＳＥＲ１，ＡＰＰ１，ＡＰＰ２の内部処理フローチャートを示している。
【０１２９】
図１８の例では、命令領域を決定する場合の自己交差数をｓｃ１としたときの命令送出先をＰＣ−４（３０ｆ）とする。このときに、ＰＣ−４（３０ｆ）に対して、画面送り（ＧＥＳ１）、画面戻り（ＧＥＳ２）、アプリケーション切換え（ＧＥＳ３）の３つのコマンドを送出することを例にする。この場合、ＰＣ−４（３０ｆ）上の画面の具体的な遷移としては、ＧＥＳ１のコマンドによってＡＰＰ１の画面Ａが画面Ｂに切り替わる。次にＧＥＳ２のコマンドによって、ＡＰＰ１の画面Ｂが画面Ａに戻る。さらに、ＧＥＳ３のコマンドによって、ＡＰＰ１からＡＰＰ２にフォーカスが移る。
【０１３０】
図１９のステップＳ５０１ａ〜Ｓ５０５ａは、ＧＥＳ１が情報処理装置１から送出された場合の処理、ステップＳ５０１ｂ〜Ｓ５０５ｂはＧＥＳ２が送出された場合の処理、ステップＳ５０１ｃ〜Ｓ５０５ｃはＧＥＳ３が送出された場合の処理のフローチャートを示している。ＳＥＲ１がＧＥＳ１を受信する（ステップＳ５０１ａ）と、そのＧＥＳ１を解析して（ステップＳ５０２ａ）、ＡＰＰ１の「画面送り」操作信号として、ＡＰＰ１に操作信号を送出する（ステップＳ５０３ａ）。ＡＰＰ１がその信号を受信すると（ステップＳ５０４ａ）その操作を実行して、実際に画面を送る（ステップＳ５０５ａ）。以下、ステップＳ５０１ｂ〜Ｓ５０５ｂも同様の手続きでＡＰＰ１の画面が以前のものに戻る。次に、ＳＥＲ１がＧＥＳ３を受信する（ステップＳ５０１ｃ）と、そのＧＥＳ３を解析して（ステップＳ５０２ｃ）、今度はＡＰＰ２に対してアクティブになるような操作信号を送出する（ステップＳ５０３ｃ）。ＡＰＰ２はアクティブになる操作信号を受信すると（ステップＳ５０４ｃ）、その操作を実行してＡＰＰ２がアクティブな状態になる（ステップＳ５０５ｃ）。これはちょうどＡＰＰ１からＡＰＰ２にアプリケーションが切り替わったようになる。このように、情報処理装置１の命令領域に所定のコマンドを描くことにより、ＰＣ端末のアプリケーションを遠隔から制御することができる。
【０１３１】
図２０は、情報処理装置１に描かれた命令領域内へのコマンドジェスチャによって、図１７のＰＣ−５（３０ｇ）に接続されたビデオ録画再生装置（６０）を制御する際のコマンドの例を示している。命令領域を決定する自己交差数がｓｃ２の場合に、命令送出先がＰＣ−５（３０ｇ）であるとする。このとき、ビデオを制御するコマンドとして例えば、早送りＧＥＳ４、巻き戻しＧＥＳ５、再生ＧＥＳ６、停止ＧＥＳ７のようにジェスチャコマンドを定義しておくことで、これらジェスチャがコマンド送出用の命令領域内に描かれた場合に、遠隔のビデオ録画再生装置を制御できる。もちろんもっと多くの制御用のジェスチャコマンドを用意しておくことも可能であるし、コマンドと関連付けるジェスチャストロークとして、他のジェスチャストローク形状と関連付けることもできる。
【０１３２】
図２１は、図１７のＰＣ−５（３０ｇ）の制御のフローチャートを示す。情報処理装置１からＰＣ−５（３０ｇ）上に対してビデオを制御するコマンドが送出されると、ＰＣ−５（３０ｇ）上で動作するＳＥＲ２がそのコマンドを受信する（ステップＳ６０１）。ＳＥＲ２はそのコマンドを解析し（ステップＳ６０２）、ビデオ制御ソフトウェアＡＰＰ３にその操作信号を送出する（ステップＳ６０３）。ＡＰＰ３は操作信号を受信すると（ステップＳ６０４）、その信号をＲＳ２３２Ｃで接続されているビデオ録画再生装置（６０）を制御するための信号に変換して（ステップＳ６０５）、ＲＳ２３２Ｃ端子を通じてビデオ制御信号を送出する（ステップＳ６０６）。このように、情報処理装置１の命令領域に所定のコマンドを描くことにより、ビデオ録画再生装置（６０）のビデオを制御することができる。
【０１３３】
なお、図１８と図２０のコマンドジェスチャＧＥＳ１とＧＥＳ４，ＧＥＳ２とＧＥＳ５が同一であっても処理が異なるのは、ＧＥＳ１とＧＥＳ４から同じ「右矢印キー」の押下という命令が情報処理装置１から送出されて、ＰＣ−４（３０ｆ）上のＳＥＲ１とＰＣ−５（３０ｇ）上のＳＥＲ２から「右矢印キー」という操作信号が送出される場合でも、ＡＰＰ１、ＡＰＰ２とＡＰＰ３がそれぞれ操作信号を受信した後の操作の実行環境が異なるためである。例えば、プレゼンテーションソフトウェアＡＰＰ１とＡＰＰ２に対して右矢印キーを入力すると、画面のページ送りをするのに対して、ＡＰＰ３に対して右矢印キーを入力するとシリアルポートなどによって接続されているビデオ録画再生装置に対して送りの制御信号を送出する、という違いがあるためである。
【０１３４】
本発明の情報処理装置を構成する入力部は、上記した電子黒板装置１０に限定されず、前述したような座標入力機能が付いていれば様々な装置を利用することができる。図２２は、本発明の情報処理装置１を構成する電子黒板装置１０の異なる実施例を示す。
【０１３５】
すなわち、情報処理装置１ａのように電子黒板として構成することもでき、また、情報処理装置１ｂのようにペンタブレット装置を利用することもでき、さらに、情報処理装置１ｃのようにハンドヘルド型の入力装置を利用することもできる。このように、情報処理装置１ａの電子黒板装置１０部分には、電子黒板装置の大きさによらず、様々な装置を利用することができる。
【０１３６】
本発明は専用のハードウェアで実施してもよいことは当然であるが、一般的なコンピュータを利用しソフトウェアで実施してもよい。すなわち、前述した一連の処理（ストローク送出処理、コマンド送出処理など）を実行するプログラムがコンピュータにインストールされて、実行可能な状態となる。また、プログラムは、例えば図２３（ａ）に示すようにコンピュータ２００ａに内蔵されている記録媒体としてのハードディスク２１０に、あらかじめインストールした状態で提供できる。
【０１３７】
プログラムは、図２３（ｂ）に示すように、記録媒体２１５に一時的あるいは永続的に格納し、コンピュータ２００ｂにユニットとして組み込んだり、あるいは着脱式の記録媒体として利用することで、パッケージソフトウェアとして提供できる。
【０１３８】
記録媒体としては、図２３（ｃ）に示すように、例えばフロッピー（Ｒ）ディスク２２０、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２１、ＭＯ（Ｍａｇｎｅｔｏ  ｏｐｔｉｃａｌ）ディスク２２２、磁気ディスク２２３、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）２２４、半導体メモリ２２５などが利用できる。
【０１３９】
プログラムは、図２３（ｄ）に示すように、ダウンロードサイト３００から、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットといったネットワーク５０ｄを介して、有線または無線でコンピュータ２００ｃに転送し、そのコンピュータ２００ｃにおいて、内蔵するハードディスクなどにダウンロードさせるようにすることができる。
【０１４０】
（実施の形態２）
次に、本発明の実施の形態２について説明する。実施の形態２の情報処理装置は、実施の形態１で述べたタグ領域内の座標のうちの少なくとも１つの座標を電子黒板装置１０が検知した場合、命令領域に付された属性情報を提示する属性情報提示手段をさらに備えるものである。
【０１４１】
図２４は、実施の形態２の情報処理装置を説明するための図である。なお、実施の形態２において、実施の形態１で説明した構成と同様の構成については同様の符号を付して示し、説明の一部を略すものとする。
【０１４２】
実施の形態２の情報処理装置は、電子黒板装置１０と、中央制御装置２０と、情報提示・再実行部２４００とを備えている。情報提示・再実行部２４００は、命令領域に付された属性情報を提示する属性情報提示手段であって、タグ領域内の座標の少なくとも１つがペンなどのよって指示されたことを検知する指示検知部２４０、指示検知部２４０が検知した座標を含むタグ領域に対応する属性情報を文章化して提示する属性情報提示部２４１、属性情報提示部２４１によって文章化された属性情報を音声として出力する音声出力部２４２、電子黒板装置１０がタグ領域内の座標のうちの少なくとも２つの座標を連続して検知した場合、命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを再度外部に送出する命令再実行部２４３を備えている。
【０１４３】
以下、実施の形態２の情報処理装置の動作を説明する。電子黒板装置１０は、筆記面１０ａに対する座標の入力を筆記具１０ｂが筆記面１０ａに接地した際の位置を検出することによって検知する。検知された位置を示す座標のデータは、ＲＳ２３２Ｃのシリアル通信を通じて中央制御装置２０に出力される。
【０１４４】
中央制御装置２０のストローク記憶部２１は、座標のデータを入力する。そして、入力した座標を順次記憶すると共に配列して形成されるストロークを記憶する。記憶されたストロークを示すストロークデータは命令領域決定部２２に入力し、命令領域決定部２２は、ストロークデータから第二のストロークの閉領域部分が第一のストロークを内包するか否かを判定する。そして、第二のストロークの閉領域部分が第一のストロークを内包している場合、第一のストロークの閉領域部分を命令領域、第二のストロークの閉領域部分をタグ領域に決定する。
【０１４５】
次に、命令領域記憶部２３は、命令領域内のストロークデータを格納する。格納されたストロークデータは、ストローク送出部２４によってタグ領域で指定される送出先に送出される。
【０１４６】
また、実施の形態２の情報処理装置では、ストローク記憶部２１から命令領域記憶部２３に出力されるストロークを示す信号が分岐し、情報提示・再実行部２４００に入力する。実施の形態１では、指示検知部２４０がタグ領域内の座標のうちの少なくとも１つの座標を検知したか否かを以下のようにして判定する。そして、特にタグ領域内でクリックがなされた場合にクリックがなされたことを属性情報提示部２４１に通知する。なお、指示検知部２４０は、タグ領域内に内包されるストローク上に配列される座標が以下の条件を満たした場合にクリックがなされたと判断する。
【０１４７】
▲１▼ストロークを形成する点の座標がすべてタグ領域を構成する第二のストローク内にある。
▲２▼ストロークを形成する点の数が所定の数以下である。
▲３▼ストロークを形成する点間の距離が所定の距離以下である。
▲４▼筆記具１０ｂが筆記面１０ａに接触してから離れるまでにかかる時間が所定の時間より短い。
【０１４８】
図２５（ａ）はストロークを形成する点間の距離を説明するための図であって、（ｂ）は筆記具１０ｂが筆記面１０ａに接触してから離れるまでにかかる時間を説明するための図である。さらに、図２５（ｃ）は、▲１▼〜▲４▼に記した条件を満たすストロークによって描画される図形を示す図である。
【０１４９】
▲３▼で述べた、ストロークを形成する点間の距離が所定の距離以下とは、例えばストロークＳＴ［ｄ］を考えたとき、ストロークを形成する点間の距離（Ｄ1，…Ｄn）を各点の座標から計算する。そして、距離（Ｄ1，…Ｄn）を合計した距離Ｄsumと所定の距離とを比較し、距離Ｄsumが所定の距離以下であることをいう。なお、このような状態を、実施の形態２では、ストロークを形成する点間の距離が充分小さいともいう。
【０１５０】
また、▲４▼で述べた、筆記具１０ｂが筆記面１０ａに接触してから離れるまでにかかる時間が所定の時間より短いとは、以下のようにして判定する。すなわち、図２５（ｂ）に示すように、ストロークＳＴ［ｄ］を考えたとき、指示検知部２４０は、ストロークの始点（ＳＴ［ｄ］．Ｘ［０］，ＳＴ［ｄ］．Ｙ［０］）が入力された時刻ｔ0を図示しないタイマなどによって計時する。また、ストロークの終点（ＳＴ［ｄ］．Ｘ［ｎ］，ＳＴ［ｄ］．Ｙ［ｎ］）が入力された時刻ｔｎを計時する。そして、時刻ｔ0と時刻ｔnとの差をとって時間ｔdiffを求める。時間ｔdiffが所定の時間よりも短い場合、筆記具１０ｂが筆記面１０ａに接触してから離れるまでにかかる時間が所定の時間より短いという。なお、このような状態を、実施の形態２では、筆記具１０ｂが筆記面１０ａに接触してから離れるまでにかかる時間が充分短いともいう。
【０１５１】
さらに、タグ領域内のストロークが以上の条件を満たした場合、図２５（ｃ）に示すように、クリックによるストローク２５０１が描画される。
【０１５２】
図２６は、実施の形態２の情報処理装置がタグ領域内のストロークからタグ領域においてクリックがなされたと判断する処理を説明するためのフローチャートである。図２６のフローチャートにおいて、命令領域を示すストロークをＳＴ［ａ］、命令領域に関するタグ領域を示すストロークをＳＴ［ａ＋１］として示す。また、タグ領域内に形成されるストロークをＳＴ［ｄ］として示す。
【０１５３】
指示検知部２４０は、ＳＴ［ｄ］を形成するすべての点の（０…Ｎ）の座標がＳＴ［ａ＋１］に内包されているか否か判断する（ステップＳ２６１）。判断の結果、点（０…Ｎ）の座標がＳＴ［ａ＋１］に内包されていた場合（ステップＳ２６１：Ｙｅｓ）、ＳＴ［ｄ］．ｎが３以下、つまり、ＳＴ［ｄ］を形成する点が３つ以下であるか否か判断する（ステップＳ２６２）。
【０１５４】
ステップＳ２６２において、ＳＴ［ｄ］を形成する点が３つ以下であると判断されれば（ステップＳ２６２：Ｙｅｓ）、３つの点の互いの距離の合計Ｄsumが例えば１０（所定の単位長さを単位とする）以下であるか否か判断する（ステップＳ２６３）。さらに、Ｄsumが１０以下であれば（ステップＳ２６３：Ｙｅｓ）、ＳＴ［ｄ］を描画するために筆記具１０ｂが筆記面１０ａに接触してから離れるまでにかかる時間Ｔdiffが１秒以下であるか否か判断する（ステップＳ２６４）。
【０１５５】
さらに、ステップＳ２６４において、Ｔdiffが１秒以下であると判断された場合（ステップＳ２６４：Ｙｅｓ）、タグ領域を示すストロークＳＴ［ａ＋１］に指示（コマンドまたはストロークデータの出力先の指定）が与えられているか否か判断する（ステップＳ２６５）。この結果、ＳＴ［ａ＋１］に指示が与えられていると判断された場合（ステップＳ２６５：Ｙｅｓ）、ＳＴ［ａ］に付された属性情報をオペレータに提示する（ステップＳ２６６）。
【０１５６】
また、以上述べたフローチャートにおけるステップＳ２６１〜Ｓ２６６のいずれかにおいて、ノーの判断がなされた場合、すべての処理が終了し、ストロークＳＴ［ｄ］はクリックを示すものでないと判断される。
【０１５７】
タグ領域内でクリックがなされると、属性情報提示部２４１は、タグ領域に対応する命令領域の属性を提示する。以下、属性の提示について、構造体データＣＲを使って説明する。すなわち、クリックによって例えば図３に示したストロークＳＴ［ａ］に対応する命令領域ＣＲ［ｉ］が指示された場合、属性情報提示部２４１において、文字列変数（例えばｓｔｒｉｎｇ  ｔｍｐＢｕｆ）に以下のような文字列を一時的に代入する。
0004261145.tif 000007
【０１５８】
上記したＣＲ［ｉ］．ｔｙｐｅには、ストロークＳＴ［ａ］に対応する命令領域が描画送出用であるか、コマンド送出用であるかが指定されている。描画送出用の場合は０、コマンド送出用の場合には０が代入される。ＣＲ［ｉ］．ｓｔｒｏｋｅ＿ｉｄには命令領域を形成するストロークＳＴ［ａ］のインデックス番号（ａ）が代入される。ｓｐｒｉｎｔｆ（）は、Ｃ言語の文字列操作関数の一つであり、第１引数で指定された文字列変数に対して第２引数以降で指定された文字列を指定されたフォーマットにしたがって代入するものである。％dは、整数型のデータを文字列として出力するための記号である。
【０１５９】
属性情報提示部２４１は、ｔｍｐＢｕｆに代入された以上の文字列を音声出力部２４２に送る。音声出力部２４２は、ｔｍｐＢｕｆに代入された文字列を音声に変換して出力する。この結果、オペレータは、命令領域の属性の音声による提示を受ける。音声の合成はハードウェアによって行ってもソフトウェアによって行ってもよい。なお、音声を合成する構成は、例えば、文字列から音声を合成するソフトウェアであるＭｉｃｒｏｓｏｆｔ（Ｒ）  Ｔｅｘｔ−Ｔｏ−Ｓｐｅｅｃｈエンジンのように公知であるので、これ以上の詳細な説明を省く。
【０１６０】
さらに、実施の形態２の情報処理装置は、以上述べた命令領域の構造データＣＲに例えばｄｅｓｃｒｉｐｔｉｏｎといった自由記入用の文字列変数を追加することができる。そして、ｄｅｓｃｒｉｐｔｉｏｎに命令領域を説明するための文字列変数（属性情報）を追加し、ｄｅｓｃｒｉｐｔｉｏｎに追加した内容をオペレータに音声で提示することができる。以下に追加される文字列変数を例示する。
0004261145.tif 000008
【０１６１】
ＣＲ［ｉ］．ｄｅｓｃｒｉｐｔｉｏｎに追加される属性情報としては、以下のような内容が考えられる。なお、下記の文字列変数において、％ｓは、文字列型のデータを出力するための記号である。
ｓｐｒｉｎｔｆ（ＣＲ［ｉ］．ｄｅｓｃｒｉｐｔｉｏｎ，“会議室Ａにて３月７日の会議Ｂで利用したものです。”）；
ｓｐｒｉｎｔｆ（ｔｍｐＢｕｆ，“サーバ％sのポート％dを利用します。％s”，ＣＲ［ｉ］ｈｏｓｔｎａｍｅ，ＣＲ［ｉ］．ｈｏｓｔｎａｍｅ，ＣＲ［ｉ］．ｓｅｒ＿ｐｏｒｔ，ＣＲ［ｉ］．ｄｅｓｃｒｉｐｔｉｏｎ）；
【０１６２】
以上のようにして代入したｔｍｐＢｕｆを音声出力部２４２に出力すると、音声出力部２４２は、図示しない音声合成装置によって音声合成し、属性情報をオペレータに音声として合成する。
【０１６３】
また、本発明の実施の形態２は、電子黒板装置１０がタグ領域内の座標のうちの少なくとも２つの座標を所定の時間内に連続して検知した場合、データ送出手段であるストローク送出部２４またはコマンド送出部２７が、命令領域上で検知された座標の入力タイミングおよび座標の配列に基づいて決定されたデータを再度外部に送出するものである。
【０１６４】
すなわち、実施の形態２の情報処理装置は、図２６で説明した処理により判定されるクリックが所定の時間（１秒程度）内に連続してなされたと指示検知部２４０が判断した場合、タグ領域内でダブルクリックがなされたと判断する。そして、ダブルクリックがなされたことを示す情報を命令再実行部２４３に通知する。
【０１６５】
命令再実行部２４３は、構造体データＣＲを持つ命令領域ＣＲ［ｉ］がタグ領域のダブルクリックによって指示された場合、ＣＲ［ｉ］の属性がストロークデータ（描画データ）送出用かコマンド送出用かを判断する。判断は、ＣＲ［ｉ］．ｔｙｐｅの判別によって以下のように行われる。
0004261145.tif 000009
【０１６６】
ＣＲ［ｉ］．ｔｙｐｅが０の場合、すなわち、命令領域がストロークデータ送出用である場合、命令領域決定部２２が、ＳＴ［ａ］により命令領域を決定し、ＳＴ［ａ＋１］によりタグ領域を決定する。そして、ストローク送出部２４から命令領域内のストロークデータをタグ領域において指定された出力先に再度送出する。
【０１６７】
一方、ＣＲ［ｉ］．ｔｙｐｅが１の場合、すなわち、命令領域がコマンド送出用である場合、命令再実行部２４３は、命令領域決定部２２に命令領域がコマンド送出用であることを通知する。命令領域決定部２２は、ＳＴ［ａ］により命令領域を決定し、ＳＴ［ａ＋１］によりタグ領域を決定する。そして、コマンド送出部２７が、命令領域内に前回入力されたジェスチャストロークに対応するコマンドをタグ領域において指定された送出先に送出する。
【０１６８】
図２７は、以上述べた実施の形態２の情報処理装置においてなされる情報処理装置の制御方法を説明するためのフローチャートである。以下、図２７のフローチャートを用い、実施の形態２の情報処理装置の制御方法を説明する。指示検知部２４０は、図２６のフローチャートで説明した処理によってタグ領域内でクリックの操作がなされたか否か判断する（ステップＳ２７１）。この判断の結果、操作がクリックでないと判断した場合（ステップＳ２７１：Ｎｏ）、クリック操作がなされるまで待機する。
【０１６９】
また、クリックがなされたと判断すると（ステップＳ２７１：Ｙｅｓ）、命令領域決定部２２によって決定された命令領域の属性が属性情報提示部２４１を判定する（ステップＳ２７２）。また、指示検知部２４０がさらにクリックがダブルクリックであるか否か判断し（ステップＳ２７３）、ダブルクリックでない場合（ステップＳ２７３：Ｎｏ）、判定によって得られた命令領域の属性を文章に変換する（ステップＳ２７４）。
【０１７０】
文章化された命令領域の属性の情報は、音声出力部２４２に入力して図示しない合成装置によって音声に変換される。そして、出力されることによってオペレータに命令領域の属性を提示する（ステップＳ２７５）。
【０１７１】
一方、ステップＳ２７３において、ダブルクリックの操作がなされたと判断された場合（ステップＳ２７３：Ｙｅｓ）、命令領域決定部２２によって決定された命令領域の属性にしたがってストロークデータの送出、またはコマンドの送出のいずれかの命令を再実行する（ステップＳ２７６）。以上の処理の後、図２７に示したフローチャートの処理は終了する。
【０１７２】
以上述べた実施の形態２によれば、いったん形成された命令領域がコマンド送出用であるか、またはストロークデータの送出用であるかといった属性をオペレータに提示することができる。このため、オペレータは、命令領域の形成後にも命令領域の機能や動作を正確に理解することができる。さらに、すでに利用した命令領域を再度利用してストロークデータやコマンドを送出することができるので、情報処理装置の操作を簡易にすることができる。
【０１７３】
【発明の効果】
以上、説明したように、請求項１〜１２，１７，１８に記載の発明は、電子情報機器の操作に不慣れなオペレータにとっての操作性を高め、複数の機器間においてデータを共有できる情報処理装置を提供することができるという効果を奏する。更に、電子黒板装置の画面上に描いたストロークにより命令領域を指定し、命令領域内のストローク情報を記録したり送出したりできる。また、ジェスチャストロークにより、コマンドを送出することもできる。これにより、会議やプレゼンテーションなどにおいて発生した電子黒板装置上の情報共有が促進される。また、ジェスチャにより会議やプレゼンテーションで用いられる電子機器の操作を行えることから、これら電子機器を会議中に有効活用することができる。
【０１７５】
また、電子黒板装置から入力されたストロークによって簡単にストローク送出を行うための命令領域を構成することができる。必ずしも特殊なファンクションスイッチを利用する必要がないため、座標入力機能を持つ電子黒板装置上であれば簡素な構成でも本発明の効果が得られる。
【０１７６】
また、ストロークの始点、終点、自己交差点を検出して閉領域を検知し、命令領域を決定しているため、ユーザがストロークを送出する際に、命令領域を構成するストロークの入力誤りを低減できる。また、ストロークで描かれた領域を命令領域としているため、ユーザが命令領域部分を直感的に識別しやすくすることができる。
【０１７７】
また、命令領域の形状を判別してストロークやコマンドを送出する出力先装置を切り換えられるので、単一の出力先装置はもちろんのこと、複数の出力先装置、出力先プログラム、出力先記録媒体などに対してストロークやコマンド情報を送出できるようになる。これにより、会議やプレゼンテーションにおける電子機器間の包括的な操作環境を提供することができる。
【０１７８】
また、ストロークの自己交差数を命令領域の形状判別に用いることにより、命令領域の形状判別における計算量を減らすと同時に、ユーザが確実に望みの命令領域を入力できる手段が提供される。
【０１７９】
請求項１３、請求項１９に記載の発明は、命令領域に付された属性情報を提示することができるので、命令領域の決定後にも命令領域の状態や機能をオペレータが把握することができる。
【０１８０】
請求項１４、請求項２０に記載の発明は、属性情報を文章化して提示するため、オペレータに理解しやすい形で属性情報を提示することができる。
【０１８１】
請求項１５、請求項２１に記載の発明は、文章化された属性情報を音声によって提示するため、オペレータにいっそう理解しやすい形で属性情報を提示することができる。
【０１８２】
請求項１６、請求項２２に記載の発明は、いったん形成された命令領域を繰り返し利用することができる。
【０１８３】
請求項２３に記載の発明は、コンピュータに、前記請求項１７〜２２のいずれか一つに記載の情報処理装置の制御方法を実行させることができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の情報処理装置の構成を示すブロック図である。
【図２】電子黒板装置の筆記面に命令領域、タグ領域、通常のストロークが描かれた様子を示す図である。
【図３】命令領域決定部の処理を示すフローチャートを示す図である。
【図４】第一のストロークと第二のストロークの描画例を示す図である。
【図５】ストロークと点との内包処理を説明する図である。
【図６】ストロークが点を内包するか否かを判定する処理を示すフローチャートである。
【図７】図３のステップＳ００４とＳ００５の処理内容を説明する図である。
【図８】（ａ）、（ｂ）は、命令領域とタグ領域を決定する際の制約条件として時間を考慮した場合の処理例を示す図である。
【図９】図３のステップＳ００６からＳ００９の詳細の処理を示すフローチャートである。
【図１０】ストロークデータを描画情報として送出処理する例を示す図である。
【図１１】ジェスチャストロークの処理を示すフローチャートである。
【図１２】自己交差の例を示す図である。
【図１３】実施の形態１のジェスチャテーブル記憶部を示す図である。
【図１４】図３のステップＳ００９とＳ０１３の詳細の処理を示すフローチャートである。
【図１５】タグ領域ストローク形状、自己交差数、属性情報の関係を示す図である。
【図１６】命令領域のストローク送出機能を実施する場合の構成例を示す図である。
【図１７】命令領域のコマンド送出機能を実施する場合の構成例を示す図である。
【図１８】ジェスチャコマンドを描画したときのＰＣの動作例を説明する図である。
【図１９】図１８の動作例におけるＰＣの処理を示すフローチャートである。
【図２０】ビデオ録画再生装置を制御する際のコマンドの例を示す図である。
【図２１】図２０のコマンドによって制御されるＰＣの処理を示すフローチャートである。
【図２２】情報処理装置の異なる実施例を示す図である。
【図２３】（ａ）〜（ｄ）は、本発明をソフトウェアによって実現する場合の構成例を示す図である。
【図２４】本発明の実施の形態２の情報処理装置を説明するための図である。
【図２５】タグ領域内に内包されるストローク上に配列される座標がクリックがなされたと判断される場合の条件を説明するための図である。
【図２６】タグ領域においてクリックがなされたと判断する処理を説明するためのフローチャートである。
【図２７】本発明の実施の形態２の情報処理装置においてなされる情報処理装置の制御方法を説明するためのフローチャートである。
【符号の説明】
１  情報処理装置
１０  電子黒板装置
１０ａ  筆記面
１０ｂ  筆記具
２０  中央制御装置
２１  ストローク記憶部
２２  命令領域決定部
２３  命令領域記憶部
２４  ストローク送出部
２５  ジェスチャ認識部
２６  ジェスチャテーブル参照部
２７  コマンド送出部
２８  編集用メモリー部
２９  ジェスチャテーブル記憶部
２４０  指示検知部
２４１  属性情報提示部
２４２  音声出力部
２４３  命令再実行部
２４００  情報提示・再実行部
【図１】
0004261145.tif 000010
【図２】
0004261145.tif 000011
【図３】
0004261145.tif 000012
【図４】
0004261145.tif 000013
【図５】
0004261145.tif 000014
【図６】
0004261145.tif 000015
【図７】
0004261145.tif 000016
【図８】
0004261145.tif 000017
【図９】
0004261145.tif 000018
【図１０】
0004261145.tif 000019
【図１１】
0004261145.tif 000020
【図１２】
0004261145.tif 000021
【図１３】
0004261145.tif 000022
【図１４】
0004261145.tif 000023
【図１５】
0004261145.tif 000024
【図１６】
0004261145.tif 000025
【図１７】
0004261145.tif 000026
【図１８】
0004261145.tif 000027
【図１９】
0004261145.tif 000028
【図２０】
0004261145.tif 000029
【図２１】
0004261145.tif 000030
【図２２】
0004261145.tif 000031
【図２３】
0004261145.tif 000032
【図２４】
0004261145.tif 000033
【図２５】
0004261145.tif 000034
【図２６】
0004261145.tif 000035
【図２７】
0004261145.tif 000036