(57)【特許請求の範囲】
【請求項１】
複数の単位領域に分割され、画像が表示される画面と、
前記画面内の指示された位置を繰り返し検出して座標データを出力するタブレットと、前記画面内の位置の指示の開始から終了までの間に検出される一連の位置で構成される軌跡をストロークとし、前記画像に書き込まれる前記ストロークを書込ストロークとしたとき、前記タブレットから出力された座標データのうち、前記書込ストロークを構成する位置の座標データを順次格納する書込バッファと、
前記書込ストロークを消去するための前記ストロークを消去ストロークとしたとき、前記タブレットから出力された座標データのうち、前記消去ストロークを構成する位置の座標データを順次格納する消去バッファと、
前記書き込みバッファに格納された座標データのうち、消去されていない前記書込ストロークを構成する一連の位置の座標データを用いて、消去されていない前記書込ストロークが書き込まれた前記画像を生成する画像生成部と、
前記一連の位置の座標データが前記消去バッファに格納されると、消去されていない前記書込ストロークのうち、前記消去ストロークが進入する前記単位領域のうち少なくとも一つの前記単位領域に進入する前記書込ストロークを、前記消去ストロークにより消去されるか否かである対象ストロークとして特定する候補特定部と、
前記対象ストロークとして特定された前記書込ストロークの各々について、当該書込ストロークと前記消去ストロークとが共に進入する前記単位領域のいずれかにおいて、当該書込ストロークを構成する前記一連の位置を隣同士で結ぶ線分のいずれかと、前記消去ストロークを構成する前記一連の位置を隣同士で結ぶ線分のいずれかと、が交差するか否かを判定する一部判定処理を実行し、前記一部判定処理の結果が肯定の前記書込ストロークを消去する一部判定消去部とを備え、
前記一部判定消去部は、一つの前記書込ストロークに係る前記一部判定処理において、
当該書込ストロークと前記消去ストロークとが共に進入する前記単位領域のうち一つの前記単位領域について、前記書込バッファに格納されている座標データのうち、当該書込ストロークを構成する前記一連の位置のうち当該単位領域内の位置の座標データと、前記消去ストロークを構成する前記一連の位置のうち当該単位領域内の位置の座標データとを特定し、特定した座標データを用いて、当該書込ストロークを構成する前記一連の位置のうち当該単位領域内の位置を隣同士で結ぶ線分と、前記消去ストロークを構成する前記一連の位置のうち当該単位領域内の位置を隣同士で結ぶ線分との交差の有無を総当りで判定し、
１又は複数の前記書込ストロークの集合をセッションとしたとき、前記書込ストロークは１又は複数の前記セッションのいずれか一つに属し、
前記候補特定部は、
前記セッションに外接する矩形で囲まれた領域をセッション領域としたとき、前記一連の位置の座標データが前記消去バッファに格納されると、当該一連の位置で構成される前記消去ストロークに外接する矩形で囲まれた領域と重なる前記セッション領域を特定し、特定した前記セッション領域に係る前記セッションに属し、前記対象ストロークとされるか否かである前記書込ストロークを特定するセッション特定部と、
前記セッション特定部で特定された前記書込ストロークのうち、前記消去ストロークが進入する前記単位領域のうち少なくとも一つの前記単位領域に進入する前記書込ストロークを前記対象ストロークとして特定する対象ストローク特定部とを備える、
ことを特徴とする電子機器。
【請求項２】
前記セッション特定部に特定された前記書込ストロークのうち、前記対象ストロークとして特定されなかった前記書込ストロークの各々について、当該書込ストロークを構成する一連の位置を隣同士で結ぶ線分のいずれかと、前記消去ストロークを構成する前記一連の位置を隣同士で結ぶ線分のいずれかと、が交差するか否かを判定する全部判定処理を実行し、前記全部判定処理の結果が肯定の前記書込ストロークを消去する全部判定消去部とを備え、
前記全部判定消去部は、一つの前記書込ストロークに係る前記全部判定処理において、
当該書込ストロークを構成する前記一連の位置を隣同士で結ぶ線分と、前記消去ストロークを構成する前記一連の位置を隣同士で結ぶ線分との交差の有無を総当りで判定する、
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記全部判定消去部は、前記一部判定処理の判定結果が肯定でない前記書込ストロークの各々についても前記全部判定処理を実行する、
ことを特徴とする請求項１又は２に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手書き入力可能な電子機器に関する。
【背景技術】
【０００２】
従来より、ペンや指などの指示物で画面上の位置を指示することによって文字や図形を手書き入力可能な電子機器が知られている。このような電子機器では、指示物に指示された位置の軌跡（ストローク）が入力される。例えば、画面に表示された画像に文字「Ｔ」を書き込む場合には、使用者が指示物によって縦棒と横棒の二つの書込ストロークを入力することにより、画像に「Ｔ」が書き込まれる。
【０００３】
このような電子機器の一種として、消去ストロークを入力することにより、当該消去ストロークと交差する書込ストロークを消去可能なものが知られている。このような電子機器としては、特許文献１の段落０００５に記載のように、消去ストロークを構成する一連の位置（座標点）のうち隣同士の二点を結ぶ線分と、書込ストロークを構成する一連の位置のうち隣同士の二点を結ぶ線分との交差を総当りで判定し、当該書込ストロークを消去するか否かを決定するものが一般的である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２５９３３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、交差の判定のための演算量は膨大であり、位置検出のサンプリング期間が短いほど多くなり、画面が広いほど多くなる。
そこで、本発明は、消去ストロークに交差する書込ストロークを消去するための演算量を削減することができる電子機器の提供を目的としている。
【課題を解決するための手段】
【０００６】
本発明に係る電子機器は、複数の単位領域に分割され、画像が表示される画面と、前記画面内の指示された位置を繰り返し検出して座標データを出力するタブレットと、前記画面内の位置の指示の開始から終了までの間に検出される一連の位置で構成される軌跡をストロークとし、前記画像に書き込まれる前記ストロークを書込ストロークとしたとき、前記タブレットから出力された座標データのうち、前記書込ストロークを構成する位置の座標データを順次格納する書込バッファと、前記書込ストロークを消去するための前記ストロークを消去ストロークとしたとき、前記タブレットから出力された座標データのうち、前記消去ストロークを構成する位置の座標データを順次格納する消去バッファと、前記書き込みバッファに格納された座標データのうち、消去されていない前記書込ストロークを構成する一連の位置の座標データを用いて、消去されていない前記書込ストロークが書き込まれた前記画像を生成する画像生成部と、前記一連の位置の座標データが前記消去バッファに格納されると、消去されていない前記書込ストロークのうち、前記消去ストロークが進入する前記単位領域のうち少なくとも一つの前記単位領域に進入する前記書込ストロークを、前記消去ストロークにより消去されるか否かである対象ストロークとして特定する候補特定部と、前記対象ストロークとして特定された前記書込ストロークの各々について、当該書込ストロークと前記消去ストロークとが共に進入する前記単位領域のいずれかにおいて、当該書込ストロークを構成する前記一連の位置を隣同士で結ぶ線分のいずれかと、前記消去ストロークを構成する前記一連の位置を隣同士で結ぶ線分のいずれかと、が交差するか否かを判定する一部判定処理を実行し、前記一部判定処理の結果が肯定の前記書込ストロークを消去する一部判定消去部とを備え、前記一部判定消去部は、一つの前記書込ストロークに係る前記一部判定処理において、当該書込ストロークと前記消去ストロークとが共に進入する前記単位領域のうち一つの前記単位領域について、前記書込バッファに格納されている座標データのうち、当該書込ストロークを構成する前記一連の位置のうち当該単位領域内の位置の座標データと、前記消去ストロークを構成する前記一連の位置のうち当該単位領域内の位置の座標データとを特定し、特定した座標データを用いて、当該書込ストロークを構成する前記一連の位置のうち当該単位領域内の位置を隣同士で結ぶ線分と、前記消去ストロークを構成する前記一連の位置のうち当該単位領域内の位置を隣同士で結ぶ線分との交差の有無を総当りで判定し、１又は複数の前記書込ストロークの集合をセッションとしたとき、前記書込ストロークは１又は複数の前記セッションのいずれか一つに属し、前記候補特定部は、前記セッションに外接する矩形で囲まれた領域をセッション領域としたとき、前記一連の位置の座標データが前記消去バッファに格納されると、当該一連の位置で構成される前記消去ストロークに外接する矩形で囲まれた領域と重なる前記セッション領域を特定し、特定した前記セッション領域に係る前記セッションに属し、前記対象ストロークとされるか否かである前記書込ストロークを特定するセッション特定部と、前記セッション特定部で特定された前記書込ストロークのうち、前記消去ストロークが進入する前記単位領域のうち少なくとも一つの前記単位領域に進入する前記書込ストロークを前記対象ストロークとして特定する対象ストローク特定部とを備えることを特徴とする。
一般に、消去ストロークと交差する書込ストロークを消去する場合、ある書込ストロークを消去するか否かの判定は、消去ストロークを構成する総ての線分と当該書込ストロークを構成する総ての線分とを総当りで比較して行われる。これに対して、本発明では、画面が複数の単位領域に分割され、当該書込ストロークを構成する線分のうち当該単位領域内の線分と、消去ストロークを構成する線分のうち当該単位領域内の線分とが総当りで比較され、前者の線分のいずれかと後者の線分のいずれかと、が交差する場合には、当該書込ストロークが消去される。したがって、本発明によれば、消去ストロークに交差する書込ストロークを消去するための演算量を削減することができる。
【０００７】
またこの電子機器によれば、消去ストロークに外接する矩形で囲まれた領域と重ならないセッション領域に係るセッションに属する書込ストロークについて、消去ストロークと当該書込ストロークとが共に進入する単位領域は存在しないとみなすことができる。これは、上記の演算量の更なる削減に寄与する。もちろん、セッション特定部と対象ストローク特定部とを備えず、総ての書込ストロークについて、消去ストロークが進入する単位領域のうち当該書込ストロークが進入する単位領域を特定するようにしてもよい。なお、各セッションには、当該セッションに係る条件を満たす一連の書込ストロークのみが属する。例えば、画面内の位置の指示の終了から開始までの期間が一定の基準時間より短い一連の書込ストロークが同一のセッションに属するようにしてもよい。
【０００８】
この電子機器において、前記セッション特定部に特定された前記書込ストロークのうち、前記対象ストロークとして特定されなかった前記書込ストロークの各々について、当該書込ストロークを構成する一連の位置を隣同士で結ぶ線分のいずれかと、前記消去ストロークを構成する前記一連の位置を隣同士で結ぶ線分のいずれかとが交差するか否かを判定する全部判定処理を実行し、前記全部判定処理の結果が肯定の前記書込ストロークを消去する全部判定消去部とを備え、前記全部判定消去部は、一つの前記書込ストロークに係る前記全部判定処理において、当該書込ストロークを構成する前記一連の位置を隣同士で結ぶ線分と、前記消去ストロークを構成する前記一連の位置を隣同士で結ぶ線分との交差の有無を総当りで判定するようにしてもよい。
この電子機器によれば、消去ストロークが進入する単位領域のいずれにも進入しない書込ストロークについても、消去ストロークとの交差の有無を判定することができるから、消去の精度が向上する。もちろん、全部判定消去部を備えず、消去ストロークが進入する単位領域のいずれにも進入しない書込ストロークについては消去しないようにしてもよい。この場合、演算量が削減される。
【０００９】
上記の各電子機器において、前記全部判定消去部は、前記一部判定処理の判定結果が肯定でない前記書込ストロークの各々についても前記全部判定処理を実行する、ようにしてもよい。
この電子機器によれば、消去の精度が向上する。もちろん、全部判定消去部が、前記一部判定処理の判定結果が肯定でない前記書込ストロークのいずれについても前記全部判定処理を実行しない、ようにしてもよい。つまり、一部判定処理の判定結果が肯定でない書込ストロークについては消去しないようにしてもよい。この場合、演算量が削減される。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る電子機器１００の外観を示す平面図である。
【図２】電子機器１００の動作（消去モード）を示す平面図である。
【図３】電子機器１００の電気的な構成を示すブロック図である。
【図４】電子機器１００の画面１１と単位領域Ａとの関係を模式的に示す図である。
【図５】電子機器１００のＲＡＭ６０に記憶される書込データＷＤと消去データＥＤの内容例を模式的に示す図である。
【図６】書込データＷＤ及び消去データＥＤの更新例を模式的に示す図である。
【図７】書込データＷＤ及び消去データＥＤの更新例を模式的に示す図である。
【図８】書込データＷＤ及び消去データＥＤの更新例を模式的に示す図である。
【図９】書込データＷＤ及び消去データＥＤの更新例を模式的に示す図である。
【図１０】電子機器１００が行う消去処理の流れを示す図である。
【図１１】電子機器１００が行う消去処理の流れを示す図である。
【図１２】電子機器１００が行う消去処理の流れを示す図である。
【図１３】電子機器１００の状態の一例を模式的に示す図である。
【発明を実施するための形態】
【００１１】
＜１．構成＞
図１は、本発明の一実施形態に係る電子機器１００の外観を示す平面図である。この図に示すように、電子機器１００は、画像が表示される画面１１を備え、画面１１内の位置を指示するペン２００によって操作される。ペン２００による位置の指示は、ペン２００を画面１１に接触または近接させるペンダウン操作によって開始し、ペン２００を画面１１から遠ざけるペンアップ操作によって終了する。
【００１２】
電子機器１００は、ペンダウン操作からペンアップ操作までのペン２００の軌跡を入力する。入力した軌跡の扱いは、電子機器１００の動作モード（書込モード／消去モード）に応じて異なる。書込モードでは、図１に示すように、入力した軌跡が書き込まれた画像が画面１１に表示される。消去モードでは、図２に示すように、入力した軌跡に交差する軌跡が消去された画像が画面１１に表示される。なお、消去モードにおいて入力された軌跡は、各図において破線で示されているが、実際には表示されない。
【００１３】
図１に示すように、画面１１には、動作モードを切り替えるための切替ボタン２１が表示される。電子機器１００の使用者は、ペン２００を操作して切替ボタン２１を押すことにより、電子機器１００の動作モードを切り替えることができる。切替ボタン２１を押すためのペン２００の操作の内容は任意である。例えば、切替ボタン２１上でのペンダウン操作によって切替ボタン２１が押されるようにしてもよいし、切替ボタン２１上でのペンアップ操作によって切替ボタン２１が押されるようにしてもよい。
【００１４】
図３は、電子機器１００の電気的な構成を示すブロック図である。この図に示すように、電子機器１００は、表示部１０と、タブレット３０と、ＣＰＵ（Central Processing Unit）４０と、ＲＯＭ５０（Read Only Memory）と、ＲＡＭ（Random Access Memory）６０と、ＶＲＡＭ（Video RAM）７０と、ストレージ８０とを備える。
【００１５】
表示部１０は、例えばＬＣＤ（液晶ディスプレイ）であり、画面１１を有し、ＶＲＡＭ７０に記憶された画像データで示される画像を画面１１に表示する。タブレット３０は、画面１１内の位置のうち、ペン２００によって指示された位置を繰り返し検出し、検出した位置の座標を示す座標データを順次出力する。これらの座標データはＣＰＵ４０へ供給される。
【００１６】
ストレージ８０は、ハードディスク等の書き換え可能な不揮発性の記憶装置であり、各種のデータを記憶する。ＲＡＭ６０は、ＣＰＵ４０のワークメモリとして機能し、後述の書込データＷＤ及び消去データＥＤを記憶する。ＲＯＭ５０はＣＰＵ４０に実行されるプログラムを記憶している。ＣＰＵ４０は、ＲＡＭ６０をワークメモリとして上記プログラムを実行することによって各種の処理を実行する。
【００１７】
ＣＰＵ４０が実行する処理には、ＶＲＡＭ７０に画像データを記憶させる処理や、タブレット３０からの座標データに基づいて動作モードを切り替える処理、タブレット３０からの座標データに基づいて書込データＷＤ及び消去データＥＤを更新する処理、ストレージ８０との間でデータを読み書きする処理などが含まれる。
【００１８】
ここで、「ストローク」、「セッション」及び「単位領域」について説明する。
「ストローク」は、ペンダウン操作からペンアップ操作までのペン２００の軌跡であり、詳しくは、ペンダウン操作からペンアップ操作までの間にタブレット３０で検出される一連の位置で構成される軌跡である。ストロークのうち、画面１１に表示される画像に書き込まれるストロークが「書込ストローク」であり、書込ストロークを消去するためのストロークが「消去ストローク」である。書込ストロークは、複数の書込ストロークを個々に識別するストローク番号を用いて管理される。
【００１９】
「セッション」は１又は複数の書込ストロークの集合であり、書込ストロークは１又は複数のセッションのいずれか一つに属する。各セッションには、当該セッションに係る条件を満たす一連の書込ストロークのみが属する。本実施形態では、原則として、同一のセッションには、ペンアップ操作からペンダウン操作までの期間が予め定められた基準時間よりも短い一連の書込ストロークが属する。
【００２０】
例えば、図１では、先頭の「This is a pen.」を構成する総ての書込ストロークが一つのセッションに含まれ、次の「This is a pen.  This is a pen.  This is a pen.」を構成する総ての書込ストロークが別のセッションに含まれ、末尾の「This is a pen.  Thi」を構成する総ての書込ストロークが更に別のセッションに含まれる。
【００２１】
ただし、本実施形態では、ある書込ストロークのペンアップ操作と次の書込ストロークのペンダウン操作との間に動作モードが切り替えられた場合には、当該ペンアップ操作から当該ペンダウン操作までの期間が基準時間よりも短くても、これら二つの書込ストロークは、互いに異なるセッションに属する。なお、セッションは、複数のセッションを個々に識別するセッション番号を用いて管理される。
【００２２】
「単位領域」は、画面１１内の領域である。画面１１と単位領域Ａとの関係は、図４に示す通りである。この図には、図２の左側の画面１１の一部が拡大されて示されている。図４に示すように、ＣＰＵ４０は、画面１１を、５４行４２列の単位領域Ａに分割して管理する。単位領域Ａは、５４行４２列の単位領域Ａを個々に識別する単位領域番号を用いて管理される。例えば、第２行第１列の単位領域Ａの単位領域番号は「４３」である。以降、ｋを自然数とし、単位領域番号がｋの単位領域Ａを「単位領域Ａｋ」と記す。もちろん、単位領域Ａの行数および列数は５４行４２列に限られない。
【００２３】
図５は、ＲＡＭ６０に記憶される書込データＷＤ及び消去データＥＤの内容を例示する図であり、図４に対応している。書込データＷＤは、書込ストローク及びセッションに関するデータであり、座標データｃ１，ｃ２，…と、書込ストロークデータＷＳ１，ＷＳ２，…と、セッションデータＳＳ１，ＳＳ２，…とを含む。
【００２４】
座標データｃ１，ｃ２，…は、書込モードにおいてタブレット３０から順次出力された座標データであり、ＲＡＭ６０内の書込バッファＷＢに順次格納される。書込バッファＷＢは、座標データを一つずつ格納する複数の単位記憶領域を連ねた記憶領域であり、これらの単位記憶領域には、先頭から順にアドレス「ｗ１」、「ｗ２」、…が付与されている。つまり、書込モードにおいてタブレット３０からｋ番目に出力された座標データｃｋは、アドレスが「ｗｋ」の単位記憶領域に格納される。
【００２５】
書込ストロークデータＷＳｋは、書込バッファＷＢに格納された座標データのうち、ストローク番号が「ｋ」の書込ストローク（書込モードにおいてｋ番目に入力されたストローク）を構成する一連の位置の座標データを特定する。この特定には、書込バッファＷＢにおけるアドレスが用いられる。例えば、書込ストロークデータＷＳ１は、ストローク番号が「１」の書込ストローク（図４における「Ｔ」の横棒）を構成する一連の位置の座標データｃ１〜ｃ５１の格納位置の先頭アドレス「ｗ１」と末尾アドレス「ｗ５１」とを示す。
【００２６】
また、書込ストロークデータＷＳｋは、ストローク番号が「ｋ」の書込ストロークを構成する一連の位置のうちの一以上の位置を含む単位領域Ａの各々と、当該単位領域Ａに対する当該書込ストロークの進入アドレスとを対応付ける。ある単位領域Ａに対するある書込ストロークの進入アドレスとは、当該書込ストロークが当該単位領域Ａに進入した直後にタブレット３０から出力された座標データの格納位置のアドレスである。
【００２７】
例えば、ストローク番号が「１」の書込ストローク（図４における「Ｔ」の横棒）を構成する一連の位置のうちの一以上の位置を含む単位領域Ａは単位領域Ａ１３０、Ａ１３１及びＡ１３２であり、これら三つの単位領域Ａに対する当該書込ストロークの進入アドレスは「ｗ１」、「ｗ１８」及び「ｗ３７」であるから、書込ストロークデータＷＳ１は、単位領域番号「１３０」、「１３１」、「１３１」と進入アドレス「ｗ１」、「ｗ１８」、「ｗ３７」とをそれぞれ対応付ける。
【００２８】
セッションデータＳＳｋは、セッション番号がｋのセッションに含まれる書込スロストロークを示すデータであり、セッション番号「ｋ」と、当該セッションに含まれる総ての書込ストロークのストローク番号とを対応付ける。例えば、セッションデータＳＳ１は、セッション番号が「１」のセッション（図１における先頭の「This is a pen.」）に含まれる総ての書込スロストロークを示し、セッション番号「１」と、当該セッションに含まれる総ての書込ストロークのストローク番号「１」、「２」、…、「１４」とを対応付ける。
【００２９】
消去データＥＤは、消去ストロークに関するデータであり、座標データｄ１，ｄ２，…と、消去ストロークデータＥＳとを含む。座標データｄ１，ｄ２，…は、消去モードにおいてタブレット３０から順次出力された座標データであり、ＲＡＭ６０内の消去バッファＥＢに順次格納される。消去バッファＥＢは、座標データを一つずつ格納する複数の単位記憶領域を連ねた記憶領域であり、これらの単位記憶領域には、先頭から順にアドレス「ｅ１」、「ｅ２」、…が付与されている。ただし、消去バッファＥＢにおける座標データの格納位置は、消去ストローク毎に初期化される。つまり、消去バッファＥＢへの座標データの格納は、消去ストローク毎に上書きとなる。
【００３０】
消去ストロークデータＥＳは、消去バッファＥＢに格納された座標データのうち、最新の消去ストローク（現在の消去モードにおいて最後に入力されたストローク）を構成する一連の位置の座標データを特定する。この特定には、消去バッファＥＢにおけるアドレスが用いられる。ここでは、図４における破線が最新の消去ストロークであり、消去ストロークデータＥＳは、当該消去ストロークを構成する一連の位置の座標データｄ１〜ｄ２２の格納位置の末尾アドレス「ｅ２２」を示す。
【００３１】
また、消去ストロークデータＥＳは、最新の消去ストロークを構成する一連の位置のうちの一以上の位置を含む単位領域Ａの各々と、当該単位領域Ａに対する当該消去ストロークの進入アドレスとを対応付ける。ある単位領域Ａに対する消去ストロークの進入アドレスとは、当該消去ストロークが当該単位領域Ａに進入した直後にタブレット３０から出力された座標データの格納位置のアドレスである。
【００３２】
ここでは、図４における破線が最新の消去ストロークであるから、最新の消去ストロークを構成する一連の位置のうちの一以上の位置を含む単位領域Ａは、単位領域Ａ１７４及びＡ１３２である。そして、これら二つの単位領域Ａに対する消去ストロークの進入アドレスは「ｅ１」及び「ｅ１４」である。よって、消去ストロークデータＥＳは、単位領域番号「１７４」、「１３２」と進入アドレス「ｅ１」、「ｅ１４」とをそれぞれ対応付ける。
【００３３】
なお、ＣＰＵ４０は、書込バッファＷＢに格納された座標データのうち、消去されていない書込ストロークを構成する一連の位置の座標データを用いて、消去されていない書込ストロークが書き込まれた画像を生成する画像生成部として機能し、生成した画像の画像データをＶＲＡＭ７０に書き込む。また、ＣＰＵ４０は、使用者の指示に従って、ＲＡＭ６０上のデータをストレージ８０に記憶させたり、ストレージ８０に記憶されたデータを読み出したりすることができる。
【００３４】
＜２．動作＞
前述したように、ＣＰＵ４０は、タブレット３０からの座標データに基づいて書込データＷＤ及び消去データＥＤを更新する。この更新の様子について、書込ストロークが書き込まれていない画像に「Ｔ」の横棒と縦棒を書き込んでから「Ｔ」の横棒を消去する場合を例に挙げて説明する。ただし、初期の動作モードは書込モードであるものとする。
【００３５】
まず使用者が、「Ｔ」の横棒（書込ストロークＷＳＴ１）を入力するようにペン２００を操作する。具体的には、図６に示すように、単位領域Ａ１３０においてペンダウン操作を行い、単位領域Ａ１３１を通過するようにペン２００を動かし、単位領域Ａ１３２においてペンアップ操作を行う。
【００３６】
この際、ＣＰＵ４０は、タブレット３０から順次供給された座標データｃ１〜ｃ５１を書込バッファＷＢに順次格納する。また、ＣＰＵ４０は、書込データＷＤを更新することにより、現在のセッションのセッション番号「１」と書込ストロークＷＳＴ１のストローク番号「１」とを対応付ける。
【００３７】
また、ＣＰＵ４０は、書込データＷＤを更新することにより、書込ストロークＷＳＴ１について、ペンダウン操作の直後に供給された座標データの格納位置のアドレスを先頭アドレスとし、ペンアップ操作の直前に供給された座標データの格納位置のアドレスを末尾アドレスとする。
また、ＣＰＵ４０は、座標データが供給される度に、書込ストロークＷＳＴ１が単位領域Ａに進入したか否か、すなわちペン２００が単位領域Ａに進入したか否かを判定し、この判定の結果が肯定の場合には、書込データＷＤを更新することにより、書込ストロークＷＳＴ１について、当該単位領域Ａの単位領域番号と、当該座標データの格納位置のアドレス（進入アドレス）とを対応付ける。この判定の結果は、ペンダウン操作の直後に座標データが供給されたときにも肯定となる。
つまり、ＣＰＵ４０は、書込ストロークＷＳＴ１について、「ｗ１」を先頭アドレスとし、「ｗ５１」を末尾アドレスとし、単位領域番号「１３０」、「１３１」、「１３２」と進入アドレス「ｗ１」、「ｗ１８」、「ｗ３７」とをそれぞれ対応付ける書込ストロークデータＷＳ１をＲＡＭ６０に書き込む。
【００３８】
次に使用者が、「Ｔ」の縦棒（書込ストロークＷＳＴ２）を入力するようにペン２００を操作する。具体的には、図７に示すように、単位領域Ａ１３１においてペンダウン操作を行い、単位領域Ａ１７３を通過するようにペン２００を動かし、単位領域Ａ２１５においてペンアップ操作を行う。ただし、「Ｔ」の横棒のペンアップ操作から「Ｔ」の縦棒のペンダウン操作までの期間は前述の基準時間よりも短いものとする。
【００３９】
この際、ＣＰＵ４０は、タブレット３０から順次供給された座標データｃ５２〜ｃ９１を書込バッファＷＢに順次格納する。また、ＣＰＵ４０は、書込データＷＤを更新することにより、現在のセッションのセッション番号「１」と、書込ストロークＷＳＴ１のストローク番号「２」とを対応付ける。また、ＣＰＵ４０は、書込ストロークＷＳＴ２について、「ｗ５２」を先頭アドレスとし、「ｗ９１」を末尾アドレスとし、単位領域番号「１３２」、「１７３」、「２１５」と進入アドレス「ｗ５２」、「ｗ６８」、「ｗ８６」とをそれぞれ対応付ける書込ストロークデータＷＳ２をＲＡＭ６０に書き込む。
【００４０】
次に使用者が、図１の切替ボタン２１を操作し、電子機器１００の動作モードを、書込モードから消去モードへ切り替える。これにより、その旨の操作信号がＣＰＵ４０に供給される。ＣＰＵ４０は、この操作信号の供給を受けると、書込データＷＤを更新することにより、図８に示すように、セッション番号「１」とストローク番号「１」及び「２」とを対応付けるデータをセッションデータＳＳ１とする。
【００４１】
次に、使用者が、書込ストロークＷＳＴ１と交差する消去ストロークＥＳＴを入力するようにペン２００を操作する。具体的には、図８に示すように、単位領域Ａ１７４においてペンダウン操作を行い、単位領域Ａ１３２においてペンアップ操作を行う。この際、ＣＰＵ４０は、タブレット３０から順次供給された座標データｄ１〜ｃ２２を消去バッファＥＢに順次格納する。
【００４２】
また、ＣＰＵ４０は、消去データＥＤを更新することにより、消去ストロークＥＳＴについて、ペンアップ操作の直前に供給された座標データの格納位置のアドレスを末尾アドレスとする。
また、ＣＰＵ４０は、座標データが供給される度に、消去ストロークＥＳＴが単位領域Ａに進入したか否か、すなわちペン２００が単位領域Ａに進入したか否かを判定し、この判定の結果が肯定の場合には、消去データＥＤを更新することにより、消去ストロークＥＳＴについて、当該単位領域Ａの単位領域番号と、当該座標データの格納位置のアドレス（進入アドレス）とを対応付ける。この判定の結果は、ペンダウン操作の直後に座標データが供給されたときにも肯定となる。
つまり、ＣＰＵ４０は、消去ストロークＥＳＴについて、「ｅ２２」を末尾アドレスとし、単位領域番号「１７４」、「１３２」と進入アドレス「ｅ１」、「ｅ１４」とをそれぞれ対応付ける消去ストロークデータＥＳをＲＡＭ６０に書き込む。
【００４３】
そして、ＣＰＵ４０は、消去ストロークＥＳＴに交差する書込ストロークＷＳＴ１を消去する消去処理を行う。この消去処理により、図９に示すように書込データＷＤ及び消去データＥＤが更新される。具体的には、セッションデータＳＳ１が、セッション番号「１」とストローク番号「１」とを対応付けるデータとなり、書込ストロークデータＷＳ１及び消去ストロークデータＥＳが削除される。つまり、書込ストロークＷＳＴ１が消去される。
【００４４】
＜３．消去処理＞
以降、消去処理の内容について、図１０〜図１３を参照して説明する。図１０〜図１２は、消去処理の流れを示す図であり、同一の番号が付された接続点で接続されて一つのフローチャートを構成する。図１３は電子機器１００の状態の一例を模式的に示す図である。以降の説明では、基本的には、図１０〜図１２を参照して一般的に説明し、適宜、図１３を参照して具体的に説明する。
【００４５】
図１０に示すように、消去処理では、ＣＰＵ４０は、まず、消去ストロークが入力されたか否かを判定し（Ｓ１）、この判定の結果が否定（ＮＯ）の場合には、処理をステップＳ１に戻す。消去ストロークが入力され、ステップＳ１の判定の結果が肯定（ＹＥＳ）となると、ＣＰＵ４０は、消去データＥＤを参照し、消去ストロークの矩形領域を特定する（Ｓ２）。消去ストロークの矩形領域とは、消去ストロークに外接する矩形に囲まれた領域であり、図１３では消去ストロークＥＳＴに外接する矩形に囲まれた矩形領域αである。
【００４６】
次にＣＰＵ４０は、最初のセッションを対象セッションとし（Ｓ３）、対象セッションのセッション領域と消去ストロークの矩形領域とが重なっているか否かを判定する（Ｓ４）。図１３の場合には、セッション番号が「１」のセッションが対象セッションとなり、当該セッションに外接する矩形で囲まれた領域がセッション領域β１となり、矩形領域αとセッション領域β１とが重なっているか否かが判定される。なお、セッション領域β１は、書込データＷＤを参照して特定される。
【００４７】
対象セッションの矩形領域と消去ストロークの矩形領域とが重なっており、ステップＳ３の判定の結果が肯定となると、ＣＰＵ４０は、対象セッションに属する最初の書込ストロークを対象ストロークとし（Ｓ７）、消去ストロークの最初の単位領域Ａを対象単位領域とする（Ｓ８）。図１３の場合には、書込ストロークＷＳＴ１が対象ストロークとなり、消去ストロークＥＳＴが進入した単位領域Ａのうち、消去ストロークＥＳＴが最初に進入した単位領域Ａ２１５が対象単位領域となる。
【００４８】
次にＣＰＵ４０は、書込データＷＤを参照し、対象ストロークが対象単位領域に進入しているか否かを判定する（Ｓ９）。この判定の結果が否定の場合、ＣＰＵ４０は、消去ストロークの次の単位領域Ａがあるか否かを判定する（Ｓ１０）。消去ストロークの次の単位領域Ａとは、消去ストロークの単位領域Ａのうち、当該消去ストロークが対象単位領域の次に進入する単位領域Ａである。ステップＳ１０の判定の結果が肯定の場合、ＣＰＵ４０は、消去ストロークの次の単位領域Ａを対象単位領域とし（Ｓ１１）、処理をステップＳ９に戻す。つまり、図１３の場合には、対象単位領域は、単位領域Ａ２１５、Ａ１７３、Ａ１７４、Ａ１３２という順に変わる。
【００４９】
対象ストロークが対象単位領域に進入しており、ステップＳ９の判定の結果が肯定となると、ＣＰＵ４０は、図１１に示すように、書込データＷＤ及び消去データＥＤを参照し、書込側開始アドレスと消去側開始アドレスを決定する（Ｓ１２）。具体的には、対象ストロークについて対象単位領域に対応付けられた進入アドレスを書込側開始アドレスとし、消去ストロークについて対象単位領域に対応付けられた進入アドレスを消去側開始アドレスとする。図１３の場合には、書込ストロークＷＳＴ１について単位領域Ａ１３２に対応付けられた進入アドレス「ｗ５２」が書込側開始アドレスとなり、消去ストロークＥＳＴについて単位領域Ａ１３２に対応付けられた進入アドレス「ｅ３１」が消去側開始アドレスとなる。
【００５０】
次にＣＰＵ４０は、書込データＷＤを参照し、対象ストロークの次の単位領域Ａがあるか否かを判定し（Ｓ１３）、この判定の結果が肯定の場合には、対象ストロークについて対象単位領域の次の単位領域Ａと対応付けられた進入アドレスの直前のアドレスを書込側終了アドレスとし（Ｓ１４）、この判定の結果が否定の場合には、対象ストロークの末尾アドレスを書込側終了アドレスとする（Ｓ１５）。図１３の場合にはステップＳ１３の判定の結果が否定となり、書込ストロークＷＳＴ１の末尾アドレス「ｗ５１」が書込側終了アドレスとなる。
【００５１】
次にＣＰＵ４０は、消去データＥＤを参照し、消去ストロークの次の単位領域Ａがあるか否かを判定し（Ｓ１６）、この判定の結果が肯定の場合には、消去ストロークについて対象単位領域の次の単位領域Ａと対応付けられた進入アドレスの直前のアドレスを消去側終了アドレスとし（Ｓ１７）、この判定の結果が否定の場合には、消去ストロークの末尾アドレスを消去側終了アドレスとする（Ｓ１８）。図１３の場合にはステップＳ１６の判定の結果が否定となり、消去ストロークＥＳＴの末尾アドレス「ｅ４４」が消去側終了アドレスとなる。
【００５２】
一方、図１０のステップＳ１０の判定の結果が否定の場合、すなわち、対象ストロークと消去ストロークとの双方が進入している単位領域が残っていない場合、ＣＰＵ４０は、図１１に示すように、書込側開始アドレスと消去側開始アドレスを決定する（Ｓ１９）。具体的には、書込データＷＤを参照して対象ストロークの先頭アドレスを書込側開始アドレスとする一方、消去ストロークの先頭アドレス（「ｅ１」）を消去側開始アドレスとする。次にＣＰＵ４０は、書込データＷＤ及び消去データＥＤを参照し、対象ストロークの末尾アドレスを書込側終了アドレスとし、消去ストロークの末尾アドレスを消去側終了アドレスとする（Ｓ２０）。
【００５３】
書込側開始アドレス、書込側終了アドレス、消去側開始アドレス及び消去側終了アドレスが決定されると、ＣＰＵ４０は、書込側開始アドレスの座標データを書込側第１座標データとし（Ｓ２１）、書込側第１座標データの格納位置の次の格納位置のアドレスが書込側終了アドレス以前のアドレスであるか否かを判定する（Ｓ２２）。この判定の結果が肯定の場合、ＣＰＵ４０は、消去側開始アドレスの座標データを消去側第１座標データとし（Ｓ２３）、消去側第１座標データの格納位置の次の格納位置のアドレスが消去側終了アドレス以前のアドレスであるか否かを判定する（Ｓ２４）。
【００５４】
この判定の結果が肯定の場合、ＣＰＵ４０は、書込側第１座標データの格納位置の次の格納位置に格納された座標データを書込側第２座標データとする一方、消去側第１座標データの格納位置の次の格納位置に格納された座標データを消去側第２座標データとする（Ｓ２５）。そしてＣＰＵ４０は、書込側第１座標データに係る位置と書込側第２座標データに係る位置とを結ぶ線分（書込側線分）と、消去側第１座標データに係る位置と消去側第２座標データに係る位置とを結ぶ線分（消去側線分）とが交差するか否かを判定する（Ｓ２６）。
【００５５】
この判定の結果が肯定の場合、ＣＰＵ４０は、対象ストロークを消去する（Ｓ２７）。具体的には、対象ストロークに係るデータがＲＡＭ６０から削除されるように書込データＷＤを更新する。なお、本実施形態では、書込ストロークについて先頭アドレスと末尾アドレスが保持されるから、書込バッファＷＢから座標データを削除する必要はない。
【００５６】
一方、ステップＳ２６の判定の結果が否定の場合、ＣＰＵ４０は、消去側第２座標データを消去側第１座標データとし（Ｓ２８）、処理をステップＳ２４へ戻す。よって、対象ストロークが消去されるか、消去側第１座標データの格納位置の次の格納位置のアドレスが消去側終了アドレス以前のアドレスでなくなるかするまで、ステップＳ２４〜Ｓ２８の処理が繰り返し実行される。
【００５７】
消去側第１座標データの格納位置の次の格納位置のアドレスが消去側終了アドレス以前のアドレスでなくなり、ステップＳ２４の判定の結果が否定となると、ＣＰＵ４０は、書込側第２座標データを書込側第１座標データとし（Ｓ２９）、処理をステップＳ２２へ戻す。よって、対象ストロークが消去されるか、書込側第１座標データの格納位置の次の格納位置のアドレスが書込側終了アドレス以前のアドレスでなくなるかするまで、ステップＳ２２〜Ｓ２９の処理が繰り返し実行される。
【００５８】
つまり、ＣＰＵ４０は、書込バッファＷＢの書込側開始アドレスから書込側終了アドレスまでの一連の座標データである書込側座標データと、消去バッファＥＢの消去側開始アドレスから消去側終了アドレスまでの一連の座標データである消去側座標データとを用いて、書込側座標データに係る一連の位置を隣同士で結ぶ線分と、消去側座標データに係る一連の位置を隣同士で結ぶ線分との交差の有無を総当りで判定し、１回でも交差する場合には、対象ストロークを消去する。
【００５９】
例えば、図１３の場合には、座標データｃ１が示す位置と座標データｃ２が示す位置とを結ぶ線分を書込側線分とし、まず当該書込側線分と座標データｄ１が示す位置と座標データｄ２が示す位置とを結ぶ消去側線分との交差の有無を判定し、次に当該書込側線分と座標データｄ２が示す位置と座標データｄ３が示す位置とを結ぶ消去側線分との交差の有無を判定し、…、次に当該書込側線分と座標データｄ４３が示す位置と座標データｄ４４が示す位置とを結ぶ消去側線分との交差の有無を判定し、次に、座標データｃ１が示す位置と座標データｃ２が示す位置とを結ぶ線分を書込側線分とし、…というように線分の交差の有無が順次判定され、結局、書込ストロークＷＳＴ１が消去される。
【００６０】
対象ストロークが消去されるか、書込側第１座標データの格納位置の次の格納位置のアドレスが書込側終了アドレス以前のアドレスでなくなるかして、ステップＳ２２の判定結果が否定となると、ＣＰＵ４０は、次の書込ストロークがあるか否かを判定する（Ｓ３０）。この判定の結果は、対象セッションに対象ストロークとなっていない書込ストロークが残っている場合に肯定となり、他の場合に否定となる。
【００６１】
ステップＳ３０の判定の結果が肯定の場合、ＣＰＵ４０は、次の書込ストロークを対象ストロークとし（Ｓ３１）、処理をステップＳ８へ戻す。つまり、対象セッションに属する総ての書込ストロークについて、上記の処理が行われる。なお、図１３の場合には、対象セッションに対象ストロークとなっていない書込ストロークＷＳＴ２が残っているから、書込ストロークＷＳＴ２が対象ストロークとなる。対象ストロークが書込ストロークＷＳＴ２の場合、ステップＳ１２の処理が２回行われた後にステップＳ１９の処理が行われるが、対象ストロークは消去されない。
【００６２】
一方、ステップＳ３０の判定の結果が否定の場合、ＣＰＵ４０は、対象セッションの次のセッションがあるか否かを判定し（Ｓ５）、この判定の結果が肯定の場合には、次のセッションを対象セッションとし（Ｓ６）、処理をステップＳ４に戻す。つまり、総てのセッションについて、上記の処理が行われる。ただし、図１３の場合には、セッション領域β２もβ３も矩形領域αと重ならないから、セッション番号が「１」のセッションとは異なるセッションについて線分の交差の有無が判定されることはない。
【００６３】
そして、次のセッションがなくなり、ステップＳ５の判定の結果が否定となると、ＣＰＵ４０は、消去ストロークに係るデータがＲＡＭ６０から削除されるように消去データＥＤを更新し、処理をステップＳ１へ戻す。なお、本実施形態では、消去ストロークについて末尾アドレスが保持されるから、消去バッファＥＢから座標データを削除する必要はない。
【００６４】
以上説明したように、ＣＰＵ４０は、一連の位置の座標データが消去バッファＥＢに格納されると、消去されていない書込ストロークのうち、消去ストロークが進入する単位領域Ａのうち少なくとも一つの単位領域Ａに進入する書込ストロークを対象ストローク（ステップＳ９の判定の結果が肯定となる書込ストローク）として特定する候補特定部と、対象ストロークとして特定された書込ストロークの各々について、当該書込ストロークと消去ストロークとが共に進入する単位領域Ａのいずれかにおいて、当該書込ストロークを構成する一連の位置を隣同士で結ぶ線分のいずれかと、消去ストロークを構成する一連の位置を隣同士で結ぶ線分のいずれかとが交差するか否かを判定する一部判定処理を実行し、当該一部判定処理の結果が肯定の書込ストロークを消去する一部判定消去部として機能する。
さらに、ＣＰＵ４０は、一部判定消去部として、一つの書込ストロークに係る一部判定処理において、当該書込ストロークと消去ストロークとが共に進入する単位領域Ａのうち一つの単位領域Ａについて、書込バッファＷＢに格納されている座標データのうち、当該書込ストロークを構成する一連の位置のうち当該単位領域Ａ内の位置の座標データと、消去ストロークを構成する一連の位置のうち当該単位領域Ａ内の位置の座標データとを特定し、特定した座標データを用いて、当該書込ストロークを構成する一連の位置のうち当該単位領域Ａ内の位置を隣同士で結ぶ線分と、消去ストロークを構成する一連の位置のうち当該単位領域Ａ内の位置を隣同士で結ぶ線分との交差の有無を総当りで判定する。
よって、本発明によれば、消去ストロークに交差する書込ストロークを消去するための演算量を削減することができる。
【００６５】
また、ＣＰＵ４０は、消去ストロークを構成する一連の位置の座標データが消去バッファに格納されると、消去されていない書込ストロークのうち、当該一連の位置で構成される消去ストロークに外接する矩形で囲まれた領域（矩形領域）と重なるセッション領域を特定し、特定したセッション領域に係るセッションに属する書込ストロークを特定するセッション特定部と、セッション特定部で特定された書込ストロークのうち、消去ストロークが進入する単位領域Ａのうち少なくとも一つの単位領域Ａに進入する書込ストロークを対象ストロークとして特定する対象ストローク特定部として機能する。
よって、電子機器１００によれば、消去ストロークに外接する矩形で囲まれた領域と重ならないセッション領域に係るセッションに属する書込ストロークについて、ステップＳ７以降の処理を行わずに済む。これは、上記の演算量の更なる削減に寄与する。
【００６６】
また、ＣＰＵ４０は、セッション特定部に特定された書込ストロークのうち、対象ストロークとして特定されなかった書込ストローク（ステップＳ１０の判定の結果が否定となる書込ストローク）の各々について、当該書込ストロークを構成する一連の位置を隣同士で結ぶ線分のいずれかと、消去ストロークを構成する一連の位置を隣同士で結ぶ線分のいずれかとが交差するか否かを判定する全部判定処理を実行し、当該全部判定処理の結果が肯定の書込ストロークを消去する全部判定消去部として機能し、当該全部判定消去部として、一つの書込ストロークに係る全部判定処理において、当該書込ストロークを構成する一連の位置を隣同士で結ぶ線分と、消去ストロークを構成する一連の位置を隣同士で結ぶ線分との交差の有無を総当りで判定する。
よって、電子機器１００によれば、消去ストロークが進入する単位領域のいずれにも進入しない書込ストロークについても、消去ストロークとの交差の有無が判定されるから、消去の精度が向上する。
【００６７】
また、ＣＰＵ４０は、全部判定消去部として、前述の一部判定処理の判定結果が肯定でない書込ストロークの各々についても全部判定処理を実行する。僅かではあるが、一部判定処理の判定結果が肯定でない書込ストロークと消去ストロークとが交差する可能性があるから、電子機器１００によれば消去の精度が向上する。
【００６８】
なお、本実施形態では、ストレージ８０に記憶されたデータについても、書込ストロークを消去することができる。この機能の実現方法としては、ＣＰＵ４０が、書込データＷＤ及び消去データＥＤとバッファのアドレスに相当する識別情報とをストレージ８０に記憶させ、この識別情報を用いて座標データにアクセスする方法が挙げられる。
【００６９】
＜４．変形例＞
本発明は、上述した実施形態に限らず、上述した実施形態を変形して得られる各種の変形例やその組み合わせを範囲に含みうる。そのような変形例を以下に例示する。
例えば、セッション特定部と対象ストローク特定部とを備えず、総ての書込ストロークについて、消去ストロークが進入する単位領域のうち当該書込ストロークが進入する単位領域を特定するようにしてもよい。
また例えば、全部判定消去部を備えず、消去ストロークが進入する単位領域のいずれにも進入しない書込ストロークについては消去しないようにしてもよい。この変形例によれば、演算量が削減される。
また例えば、全部判定消去部が、一部判定処理の判定結果が肯定でない書込ストロークのいずれについても全部判定処理を実行しないようにしてもよい。つまり、一部判定処理の判定結果が肯定でない書込ストロークについては消去しないようにしてもよい。この変形例によれば、演算量が削減される。
【符号の説明】
【００７０】
１００……電子機器、２００……ペン、１０……表示部、１１……画面、２１……切替ボタン、３０……タブレット、４０……ＣＰＵ、６０……ＲＡＭ、Ａ……単位領域、ＥＢ……消去バッファ、ＥＳＴ……消去ストローク、ＷＢ……書込バッファ、ＷＳＴｋ……書込ストローク、ｃｋ，ｄｋ……座標データ、ｗｋ，ｅｋ……アドレス、α……矩形領域、β１〜β３……セッション領域。
【図１】
0005482225.tif 000002
【図２】
0005482225.tif 000003
【図３】
0005482225.tif 000004
【図４】
0005482225.tif 000005
【図５】
0005482225.tif 000006
【図６】
0005482225.tif 000007
【図７】
0005482225.tif 000008
【図８】
0005482225.tif 000009
【図９】
0005482225.tif 000010
【図１０】
0005482225.tif 000011
【図１１】
0005482225.tif 000012
【図１２】
0005482225.tif 000013
【図１３】
0005482225.tif 000014