以下、本発明の一実施形態を図面を参照しつつ説明する。
<システム概略構成>
まず、図1を参照しつつ、本実施形態の手書き入力システムの概略構成を説明する。なお、以下の説明では、図1の紙面の上側、下側、右側、左側、手前側、奥行き側を、それぞれ、電子筆記装置の上側、下側、右側、左側、手前側、奥行き側と定義して説明する。
図1に示すように、手書き入力システム1は、電子筆記装置2と、電子ペン3(筆記具に相当)と、操作端末4と、を備える。電子筆記装置2及び操作端末4は、無線又は有線通信により情報送受信可能に接続されている。
<電子筆記装置>
電子筆記装置2は、平面視で上下方向に長い薄型の直方体状の形状を備える。この電子筆記装置2の右上部には、種々の情報を表示可能な小型の表示部21が設けられている。表示部21の左側には、操作者が電子筆記装置2を操作するための入力部22が設けられている。これら表示部21及び入力部22の下側には、電子筆記装置2の手前側の大部分を占めるように、凹部形状の載置部24が設けられている。載置部24には、当該載置部24とほぼ同一の範囲となるように、座標検出部25が設けられている。座標検出部25は、電子ペン3の位置を座標(例えば載置部24の左上部を原点(0,0)とする座標)により表す座標データ(位置データに相当。詳細は後述)を検出する。また、載置部24には、紙媒体70(被筆記媒体に相当。後述の図5参照)が載置される。このとき、載置部24は、紙媒体70を、当該紙媒体70の左上隅部が上記原点に一致する姿勢で保持する。
<電子ペン>
電子ペン3は、いわゆる電磁誘導式のペンであり、その先端部の内部に設けられた金属製の芯37と、検出スイッチ33と、ボタン型の電池34と、コイル35と、基板36と、を備える。芯37は、外部に突出したペン先31と、インク収納部32と、により構成されている。インク収納部32には、インクが収納されており、インクは、ペン先31に供給される。これにより、操作者は、電子ペン3を用いて紙媒体70に対し所望の文字や記号、図形(以下適宜「文字等」と省略する)を目視可能に記載することができる。なお、以下の説明では、電子ペン3において、ペン先31が設けられている方向を先端方向、先端方向の反対方向を後端方向という。
芯37の後端方向には、上記基板36が設けられている。基板36の先端部には、上記検出スイッチ33が実装されている。検出スイッチ33は、基板36上の配線を介して上記コイル35に電気的に接続されている。コイル35は、電子ペン3の内部の先端部において芯37の周囲に巻回されている。また、基板36の後端方向には、上記電池34が設けられている。電池34は、基板36に接続されている。電池34のマイナス側の電極は、基板36上の配線を介してコイル35に電気的に接続され、プラス側の電極は、基板36上の配線を介して検出スイッチ33に電気的に接続されている。
ここで、芯37は、弾性部材(図示せず)により常に先端方向に付勢されている。芯37は、操作者が電子ペン3を用いて紙媒体70に対し文字等を記載するときの押圧力により、上記弾性部材の付勢力に抗して電子ペン3の内部にやや退入する。この退入により、芯37の後端部が検出スイッチ33を押下し、検出スイッチ33がオン状態となる。これにより、電池34とコイル35とが導通して電池34からコイル35に向けて電流が流れ、コイル35に電流が流れることで磁界が発生する。
<電子ペンの座標データの検出>
上記座標検出部25は、上記のようにして電子ペン3のコイル35から発生する磁界を電磁誘導に基づき検出する。なお、この検出は公知の手法で足りるので、詳細な説明は省略する。この座標検出部25の検出結果に基づき、電子筆記装置2のCPU201(後述の図2参照)が、操作者が電子ペン3を用いて上記載置部24上の紙媒体70へ筆記動作を行ったときの紙媒体70に対する電子ペン3の移動に伴う、電子ペン3の経時的かつ離散的な複数の座標データを一定間隔(例えば10[ms]間隔)で取得する。本実施形態では、載置部24の左上部の座標(X,Y)を原点(0,0)とし、右方向をX軸、下方向をY軸とする座標系を用いる。すなわち、X座標の値が載置部24における左右方向の位置、Y座標の値が載置部24における上下方向の位置を表す。
そして、上記のようにして取得した複数の座標データに基づき、CPU201が、電子ペン3による紙媒体70への記載内容に対応したストロークデータ(詳細は後述)を生成し、通信により操作端末4へ送信する。
<操作端末>
操作端末4としては、例えばデスクトップPC、ノートPC、タブレットPC、携帯電話・PHS(いわゆるスマートフォンを含む)等が使用可能である。あるいは、操作端末4として、電子筆記装置2専用の操作端末が使用されてもよい。
<電子筆記装置の電気的構成>
次に、図2を参照しつつ、電子筆記装置2の電気的構成を説明する。
図2に示すように、電子筆記装置2は、CPU201と、ROM202と、種々のデータを一時的に記憶するRAM203と、フラッシュメモリ204と、上記入力部22と、上記表示部21を駆動する駆動回路206と、上記座標検出部25を駆動する駆動回路209と、上記操作端末4との情報送受信の制御を行う通信制御部207と、を備える。
CPU201は、ROM202、RAM203、フラッシュメモリ204、入力部22、駆動回路206,209、及び通信制御部207と電気的に接続されている。
ROM202は、プログラム記憶領域2021と、画像データ記憶領域2023と、を備える。プログラム記憶領域2021には、CPU201が電子筆記装置2を制御するために実行する各種プログラム(CPU201に対し後述の図10に示すフローチャートの各手順を実行させるためのプログラムを含む)が記憶されている。画像データ記憶領域2023には、紙媒体70のフォーマット情報に対応した画像データが記憶されている。
フラッシュメモリ204は、座標データ記憶領域2041を備える。座標データ記憶領域2041には、座標検出部25の検出結果に基づきCPU201が取得した上記複数の座標データが順次記憶される。
RAM203には、座標データ記憶領域2041に記憶された複数の座標データに基づきCPU201が生成した上記ストロークデータが一時的に記憶される。
CPU201は、RAM203に記憶されたストロークデータを、通信制御部207を介して操作端末4へ送信する。
<ストロークデータ>
次に、図3を参照しつつ、ストロークデータについて説明する。
図3において、ストロークデータは、上記紙媒体70への記載時に移動する電子ペン3の複数の座標データを含むペン位置データ列である。図3(a)(b)には、2つのストロークデータ「a」「b」の例を示している。
図3(a)(b)に示すように、ストロークデータ「a」は、電子ペン3による文字「a」の書き始めから書き終わりまでの一筆書き部分の軌跡を表すデータであり、時系列に沿って、ペン位置番号T1,T2,・・,T11それぞれに対応した、11個の座標データ(X1,Y1),(X2,Y2),・・,(X11,Y11)を含む。また、ストロークデータ「b」は、電子ペン3による文字「b」の書き始めから書き終わりまでの一筆書き部分の軌跡を表すデータであり、時系列に沿って、ペン位置番号T12,T13,・・,T21それぞれに対応した、10個の座標データ(X12,Y12),(X13,Y13),・・(X21,Y21)を含む。
<操作端末の電気的構成>
次に、図4を参照しつつ、操作端末4の電気的構成を説明する。
図4に示すように、操作端末4は、CPU401(演算手段に相当)と、ROM402と、種々のデータを一時的に記憶するRAM403と、メモリ404と、操作者が当該操作端末4を操作するための操作部405と、種々の情報を表示可能な表示部406と、上記電子筆記装置2との情報送受信の制御を行う通信制御部407と、を備える。
CPU401は、ROM402、RAM403、メモリ404、操作部405、表示部406、及び通信制御部407と電気的に接続されている。
ROM402には、CPU401が操作端末4を制御するために実行する各種プログラムが記憶されている。
メモリ404には、CPU401が操作端末4を制御するために実行する各種プログラム(CPU401に対し後述の図11等に示すフローチャートの各手順を実行させるための電子筆記処理プログラムを含む)が記憶されている。このとき、操作端末4の媒体読取部(図示せず)が記憶媒体(図示せず)に記憶された電子筆記処理プログラムを読み取ることで、その読み取られた電子筆記処理プログラムがメモリ404にインストールされてもよい。あるいは、CPU401が操作端末4と情報送受信可能に接続された外部装置(図示せず)から通信制御部407を介して電子筆記処理プログラムを受信することで、その受信された電子筆記処理プログラムがメモリ404にインストールされてもよい。なお、電子筆記処理プログラムは、ROM402に予め記憶されていてもよい。
CPU401は、電子筆記装置2が送信したストロークデータを、通信制御部407を介して受信する。RAM403には、CPU401が受信したストロークデータが順次記憶される。なお、CPU401が受信したストロークデータは、メモリ404に記憶されてもよい。また、CPU401は、RAM403に記憶されたストロークデータに基づき、上記載置部24上の紙媒体70に対し操作者が電子ペン3を用いて記入した文字等の画像を描画処理(描画データの生成・出力)し、表示部406に表示する。
<操作者に違和感を抱かせる場合の例>
図5に、上記載置部24上の紙媒体70に対し操作者が電子ペン3を用いて所望の文字等を記入した場合の例を示す。
図5に示す例では、紙媒体70には、「オレンジ」という4つの文字からなる文字列が記入されている。なお、紙媒体70の適宜の箇所(この例では右下隅部)には、紙媒体70への筆記に伴い取得される電子ペン3の座標データの保存指示(言い換えればストロークデータの生成・送信指令)を行うための保存ボックス72が設けられている。
ここで、操作者が紙媒体70に記入する文字等は、1つ以上のストローク(一筆書きの線や点)の組み合わせにより構成され、ストロークは、ペン先が紙面に接して動き出すまでの「起筆」、動き始め(起筆の終わり)から終筆が始まるまでの「送筆」、及び、送筆の後でペン先が紙面から離れるまでの「終筆」により構成される。そして、ストロークの終筆の表現態様には、「止め」「跳ね」「払い」があり、「止め」と「跳ね」「払い」とでは、筆圧(線の太さ)が異なる。したがって、紙媒体70に記入された文字等のストロークの画像を描画するときに、ストロークの終筆の画像を特に区別することなく同じ太さで表現すると、上記のような「止め」と「跳ね」「払い」との筆圧の違いを表現できず、操作者が紙媒体70に記入した文字等の筆跡を電子データ上の画像において再現できないために、操作者に違和感を抱かせる場合があり得る。
例えば、図5に示す文字列「オレンジ」の1つ目の文字「オ」は、横画である第1ストロークST1、縦画である第2ストロークST2、及び、左下払いの斜画である第3ストロークST3の、3つのストロークの組み合わせにより構成されている。そして、第1ストロークST1の終筆は、止めで表現され、第2ストロークST2の終筆は、跳ねで表現され、第3ストロークST3の終筆は払いで表現されている。なお、文字「オ」のストロークST1〜ST3の終筆は、上記のような態様で表現されるのが一般的であるが、操作者の筆記癖によっては、例えば第1ストロークST1の終筆を払いで表現したり第2ストロークST2の終筆を止めで表現する等の場合もあり得る。
<本実施形態の特徴>
本実施形態では、操作者が紙媒体70に記入した文字等のストロークの終筆に止め、跳ね、払いを含む筆跡を電子データ上の画像において再現することを可能とするために、操作端末4において、ストロークの終筆が止めであるか否かを判定し、終筆が止めであると判定した場合には、起筆及び送筆の画像と同じ太さの線画像(又は点画像)を終筆の画像として描画処理し、終筆が止めでないと判定した場合には、先細り形状の線画像を終筆の画像として描画処理する。以下、その詳細を、上記図5に示す文字「オ」のストロークST1〜ST3を例にとって説明する。
図6に、上記図5に示す文字「オ」のストロークST1〜ST3それぞれのストロークデータの例を示す。
第1ストロークST1のストロークデータは、電子ペン3による第1ストロークST1の起筆から終筆までの一筆書き部分の軌跡を表すデータであり、この例では、図6(a)に示すように、時系列に沿って、ペン位置番号Ta,Tb,・・,Tgそれぞれに対応した、7個の座標データ(Xa,Ya),(Xb,Yb),・・,(Xg,Yg)を含む。
また、第2ストロークST2のストロークデータは、電子ペン3による第2ストロークST2の起筆から終筆までの一筆書き部分の軌跡を表すデータであり、この例では、図6(b)に示すように、時系列に沿って、ペン位置番号Th,Ti,・・,Tpそれぞれに対応した、9個の座標データ(Xh,Yh),(Xi,Yi),・・,(Xp,Yp)を含む。
また、第3ストロークST3のストロークデータは、電子ペン3による第3ストロークST3の起筆から終筆までの一筆書き部分の軌跡を表すデータであり、この例では、図6(c)に示すように、時系列に沿って、ペン位置番号Tq,Tr,・・,Tvそれぞれに対応した、6個の座標データ(Xq,Yq),(Xr,Yr),・・,(Xv,Yv)を含む。
<終筆が止めで表現されたストロークの画像を描画処理する例>
図7に、上記第1ストロークST1の画像を描画処理する場合の例を示す。
ストロークの画像を描画処理する場合、まず、ストロークの起筆及び送筆の画像として、ストロークの筆記時の複数の座標データのうち、ストロークの始端に対応する最初の座標データの座標Pfirstから、ストロークの終端に対応する最後の座標データの座標Plast(位置P1に相当)の1個前の座標データの座標Plast−1までの、順番が隣り合う座標データの座標間に、所定の太さ(線幅)の線画像が描画処理される。
この例では、図7(a)に示すように、第1ストロークST1の起筆及び送筆の画像として、上記座標Pfirstに相当するペン位置番号Taの座標(Xa,Ya)から、上記座標Plast−1に相当するペン位置番号Tfの座標(Xf,Yf)までの、ペン位置番号Taの座標(Xa,Ya)及びペン位置番号Tbの座標(Xb,Yb)間、ペン位置番号Tbの座標(Xb,Yb)及びペン位置番号Tcの座標(Xc,Yc)間、ペン位置番号Tcの座標(Xc,Yc)及びペン位置番号Tdの座標(Xd,Yd)間、ペン位置番号Tdの座標(Xd,Yd)及びペン位置番号Teの座標(Xe,Ye)間、ペン位置番号Teの座標(Xe,Ye)及びペン位置番号Tfの座標(Xf,Yf)間、のそれぞれに、所定の太さの線画像La,Lb,Lc,Ld,Leがそれぞれ描画処理される。
その後、ストロークの終筆が止めであるか否かが判定される。本実施形態では、上記座標Plastを基準とする円形状の止め判定領域AR内に、上記座標Plast―1があるか否かを判定することにより、ストロークの終筆が止めであるか否かが判定される。なお、止め判定領域ARの大きさは、電子筆記装置2の上記座標検出部25の検出感度等に基づき、決定される。また、止め判定領域ARの形状は、円形状に限られず、矩形状や楕円形状等であってもよい。
この例では、図7(b)に示すように、上記座標Plastに相当するペン位置番号Tgの座標(Xg,Yg)を基準とする止め判定領域AR内に、ペン位置番号Tfの座標(Xf,Yf)があるか否かを判定することにより、第1ストロークST1の終筆が止めであるか否かが判定される。そして、止め範囲領域AR内にペン位置番号Tfの座標(Xf,Yf)があるので、第1ストロークST1の終筆が止めであると判定される。
この場合、ストロークの終筆に止めが表現されるように、ストロークの終筆の画像として、上記座標Plast―1及び座標Plast間に、起筆や送筆の画像と同じ太さの線画像(座標Plast―1と座標Plastとが同じ座標である場合には点画像)が描画処理される。なお、ストロークの終筆の画像として、座標Plast―1及び座標Plast間に、起筆や送筆の画像よりも太い線画像(又は細い線画像)が描画処理されてもよい。
この例では、図7(c)に示すように、第1ストロークST1の終筆の画像として、ペン位置番号Tfの座標(Xf,Yf)及びペン位置番号Tgの座標(Xg,Yg)間に、起筆や送筆の画像と同じ太さの線画像Lfが描画処理される。
<終筆が跳ねで表現されたストロークの画像を描画処理する例>
図8に、上記第2ストロークST2の画像を描画処理する場合の例を示す。
第2ストロークST2の画像を描画処理する場合、まず、図8(a)に示すように、第2ストロークST2の起筆及び送筆の画像として、上記座標Pfirstに相当するペン位置番号Thの座標(Xh,Yh)から、上記座標Plast−1に相当するペン位置番号Toの座標(Xo,Yo)までの、ペン位置番号Thの座標(Xh,Yh)及びペン位置番号Tiの座標(Xi,Yi)間、ペン位置番号Tiの座標(Xi,Yi)及びペン位置番号Tjの座標(Xj,Yj)間、ペン位置番号Tjの座標(Xj,Yj)及びペン位置番号Tkの座標(Xk,Yk)間、ペン位置番号Tkの座標(Xk,Yk)及びペン位置番号Tlの座標(Xl,Yl)間、ペン位置番号Tlの座標(Xl,Yl)及びペン位置番号Tmの座標(Xm,Ym)間、ペン位置番号Tmの座標(Xm,Ym)及びペン位置番号Tnの座標(Xn,Yn)間、ペン位置番号Tnの座標(Xn,Yn)及びペン位置番号Toの座標(Xo,Yo)間、のそれぞれに、所定の太さの線画像Lh,Li,Lj,Lk,Ll,Lm,Lnがそれぞれ描画処理される。
その後、図8(b)に示すように、上記座標Plastに相当するペン位置番号Tpの座標(Xp,Yp)を基準とする止め判定領域AR内に、ペン位置番号Toの座標(Xo,Yo)があるか否かを判定することにより、第2ストロークST2の終筆が止めであるか否かが判定される。そして、止め範囲領域AR内にペン位置番号Toの座標(Xo,Yo)がないので、第2ストロークST2の終筆が止めでないと判定される。
この場合、上記座標Plastを終点とし、上記座標Plast−1を始点とする、ベクトルV1と、当該ベクトルV1の単位ベクトル|V1|と、予め定められた正の実数である係数cと、を用いた、下記式(1)により、座標Plastの先に、仮想の終端座標Padd(終端位置P2に相当)が設定される。
Padd=c×V1/|V1|+Plast・・・式(1)
この例では、図8(c)に示すように、ペン位置番号Tpの座標(Xp,Yp)を終点とし、ペン位置番号Toの座標(Xo,Yo)を始点とする、ベクトルVoが上記ベクトルV1に相当し、当該ベクトルVoの単位ベクトル|Vo|が上記単位ベクトル|V1|に相当する。したがって、(Xp,Yp),Vo,|Vo|を上記式(1)のPlast,V1,|V1|にそれぞれ代入して演算することにより、ペン位置番号Tpの座標(Xp,Yp)の先に終端座標Paddが設定される。
そして、ストロークの終筆の画像として、上記座標Plast―1を始端とし、上記終端座標Paddを終端とする、起筆や送筆の画像と同じ太さから徐々に細くなり終端座標Paddで最細となる先細り形状の線画像が描画処理される。なお、ストロークの起筆及び送筆の画像として、ストロークの筆記時の複数の座標データのうち、最初の座標データの座標から、最後の座標データのn個(nは2以上の自然数)前の座標データの座標Plast−nまでの、順番が隣り合う座標データの座標間に、所定の太さの線画像が描画処理され、ストロークの終筆の画像として、最後の座標データのn−1個前の座標データの座標Plast−(n−1)を始端とし、終端座標Paddを終端とする、先細り形状の線画像が描画処理されてもよい。また、上記終端座標Paddの設定を行わず、ストロークの終筆の画像として、座標Plast―1を始端とし、座標Plastを終端とする、起筆や送筆の画像と同じ太さから徐々に細くなり座標Plastで最細となる先細り形状の線画像が描画処理されてもよい。
この例では、図8(d)に示すように、第2ストロークST2の終筆の画像として、ペン位置番号Toの座標(Xo,Yo)を始端とし、上記終端座標Paddを終端とする、上記先細り形状の線画像Loが描画処理される。
<終筆が払いで表現されたストロークの画像を描画処理する例>
図9に、上記第3ストロークST3の画像を描画処理する場合の例を示す。
第3ストロークST3の画像を描画処理する場合、まず、図9(a)に示すように、第3ストロークST3の起筆及び送筆の画像として、上記座標Pfirstに相当するペン位置番号Tqの座標(Xq,Yq)から、上記座標Plast−1に相当するペン位置番号Tuの座標(Xu,Yu)までの、ペン位置番号Tqの座標(Xq,Yq)及びペン位置番号Trの座標(Xr,Yr)間、ペン位置番号Trの座標(Xr,Yr)及びペン位置番号Tjの座標(Xs,Ys)間、ペン位置番号Tsの座標(Xs,Ys)及びペン位置番号Ttの座標(Xt,Yt)間、ペン位置番号Ttの座標(Xt,Yt)及びペン位置番号Tuの座標(Xu,Yu)間、のそれぞれに、所定の太さの線画像Lq,Lr,Ls,Ltがそれぞれ描画処理される。
その後、図9(b)に示すように、上記座標Plastに相当するペン位置番号Tvの座標(Xv,Yv)を基準とする止め判定領域AR内に、ペン位置番号Tuの座標(Xu,Yu)があるか否かを判定することにより、第3ストロークST3の終筆が止めであるか否かが判定される。そして、止め範囲領域AR内にペン位置番号Tuの座標(Xu,Yu)がないので、第3ストロークST3の終筆が止めでないと判定される。
この場合、図9(c)に示すように、ペン位置番号Tuの座標(Xu,Yu)を終点とし、ペン位置番号Tvの座標(Xv,Yv)を始点とする、ベクトルVuが上記ベクトルV1に相当し、当該ベクトルVuの単位ベクトル|Vu|が上記単位ベクトル|V1|に相当する。したがって、(Xv,Yv),Vu,|Vu|を上記式(1)のPlast,V1,|V1|にそれぞれ代入して演算することにより、ペン位置番号Tvの座標(Xv,Yv)の先に終端座標Paddが設定される。
そして、図9(d)に示すように、第3ストロークST3の終筆の画像として、ペン位置番号Tuの座標(Xu,Yu)を始端とし、上記終端座標Paddを終端とする、上記先細り形状の線画像Luが描画処理される。
<電子筆記装置の制御手順>
次に、図10を参照しつつ、ストロークデータ生成時の電子筆記装置2のCPU201が実行する制御手順を説明する。
図10において、このフローチャートの処理は、例えば電子筆記装置2の電源がオンされると開始される。
まず、ステップS10で、CPU201は、操作者が電子ペン3により紙媒体70に筆記を行ったときの座標検出部25の検出結果に基づき、電子ペン3の座標データを取得する。取得された座標データは、座標データ記憶領域2041に順次記憶される。
その後、ステップS20で、CPU201は、上記ステップS10で取得された座標データの保存指示(上記保存ボックス72へのチェックマークの記入)が行われたか否かを判定する。保存ボックス72にチェックマークが記入されるまではステップS20の判定は満たされず(S20:NO)、上記ステップS10に戻り同様の手順を繰り返す。保存ボックス72にチェックマークが記入されるとステップS20の判定が満たされて(S20:YES)、ステップS30に移る。
ステップS30では、CPU201は、上記ステップS10で座標データ記憶領域2041に記憶された複数の座標データに基づき、紙媒体70上の記載内容に対応したストロークデータを生成する。生成されたストロークデータは、RAM203に一時的に記憶される。
そして、ステップS40で、CPU201は、上記ステップS30でRAM203に記憶されたストロークデータを、通信制御部207を介して操作端末4に送信する。以上により、このフローチャートの処理が終了される。
<操作端末の制御手順>
次に、図11を参照しつつ、上記の内容等を実現するために、操作端末4のCPU401がメモリ404に記憶された電子筆記処理プログラム等に基づき実行する制御手順を説明する。
図11において、このフローチャートの処理は、例えば操作端末4の電源がオンされると開始される。
まず、ステップS110で、CPU401は、上記図10のステップS40において電子筆記装置2から送信されたストロークデータを、通信制御部407を介して受信する。なお、このステップS110の手順が、各請求項記載の受信手順に相当する。
その後、ステップS120で、CPU401は、上記ステップS110で受信されたストロークデータをRAM403に記憶する。なお、このステップS120の手順が、各請求項記載の記憶手順に相当する。
そして、ステップS130で、CPU401は、上記ステップS120でRAM403に記憶されたストロークデータを、RAM403から時系列に沿って1データずつ順次取得する。
その後、ステップS140では、CPU401は、上記ステップS130で取得されたストロークデータのストロークの起筆及び送筆の画像として、当該ストロークデータに基づく、上記座標Pfirstから上記座標Plast−1までの、順番が隣り合う座標データの座標間に、所定の太さの線画像を描画処理する(図7(a)、図8(a)、図9(a)参照)。なお、このステップS140の手順が、各請求項記載の第2描画処理手順に相当する。
そして、ステップS150で、CPU401は、上記ステップS130で取得されたストロークデータに基づく、上記座標Plastを基準とする止め判定領域AR内に、上記座標Plast―1があるか否かを判定することにより、当該ストロークデータのストロークの終筆が止めであるか否かを判定する(図7(b)、図8(b)、図9(b)参照)。なお、このステップS150の手順が、各請求項記載の判定手順に相当する。止め判定領域AR内に座標Plast―1がある場合(図7(b)参照)には、ストロークの終筆が止めであるとみなされ、ステップS150の判定が満たされて(S150:YES)、ステップS160に移る。
ステップS160では、CPU401は、上記ステップS130で取得されたストロークデータのストロークの終筆の画像として、当該ストロークデータに基づく、上記座標Plast―1及び座標Plast間に、起筆や送筆の画像と同じ太さの線画像(座標Plast―1と座標Plastとが同じ座標である場合には点画像)を描画処理する(図7(c)参照)。なお、このステップS160の手順が、各請求項記載の第1描画処理手順に相当する。その後、後述のステップS190に移る。
一方、上記ステップS150において、止め判定領域AR内に座標Plast―1がない場合(図8(b)、図9(b)参照)には、ストロークの終筆が止めでないとみなされ、ステップS150の判定は満たされず(S150:NO)、ステップS170に移る。
ステップS170では、CPU401は、固定値である係数cを用いた、上記式(1)により、上記ステップS130で取得されたストロークデータに基づく、上記座標Plastの先に上記終端座標Paddを設定する(図8(c)、図9(c)参照)。なお、このステップS170の手順が、各請求項記載の設定手順に相当する。
その後、ステップS180で、CPU401は、上記ステップS130で取得されたストロークデータのストロークの終筆の画像として、当該ストロークデータに基づく、上記座標Plast―1を始端とし、上記終端座標Paddを終端とする、上記先細り形状の線画像を描画処理する(図8(d)、図9(d)参照)。なお、このステップS180の手順が、各請求項記載の第3描画処理手順に相当する。
そして、ステップS190で、CPU401は、上記ステップS120でRAM403に記憶されたストロークデータのうちに、ストロークが描画処理されていないストロークデータがあるか否かを判定する。ストロークが描画処理されていないストロークデータがある場合には、ステップS190の判定は満たされず(S190:NO)、上記ステップS130に戻り、ストロークが描画処理されていないストロークデータが取得される。一方、ストロークが描画処理されていないストロークデータがない場合、つまり全てのストロークデータのストロークが描画処理されている場合には、ステップS190の判定が満たされて(S190:YES)、ステップS200に移る。
ステップS200では、CPU401は、上記ステップS140,160,180で描画処理された各ストロークの画像を表示部406に表示する。以上により、このフローチャートの処理が終了される。
<本実施形態の効果>
以上説明したように、本実施形態においては、操作者が電子ペン3を用いて筆記した内容を電子データ化することができる。すなわち、操作者が、電子筆記装置2において、紙媒体70に対し電子ペン3を用いて所望の記載を行うと、紙媒体70に対する筆記に伴う電子ペン3の複数の座標データを含むストロークデータが生成され、操作端末4へと送信される。操作端末4は、CPU401において電子筆記処理プログラムが実行されることにより、上記ストロークデータが受信され(ステップS110参照)、RAM403に記憶される(ステップS120参照)。
ここで、本実施形態では、操作者が紙媒体70に対し電子ペン3を用いて記入した文字等を構成するストロークの終筆が止めで表現された場合に、電子データ上においても、ストロークの終筆を止めで表現した画像を描画することが可能である。すなわち、操作者が紙媒体70に対し電子ペン3を用いて文字等を記入すると、RAM403に記憶されたストロークデータに基づき、紙媒体70に記入されたストロークの終筆が止めであるか否かが判定される(ステップS150参照)。そして、ストロークの終筆が止めであると判定された場合には、RAM403に記憶されたストロークデータに基づき、止めが表現されるようにストロークの終筆の画像が描画処理される(ステップS160参照)。
これにより、操作者が紙媒体70に記入した文字等のストロークの終筆が止めで表現された場合に、電子データ上においても、ストロークの終筆を止めで表現した画像を描画することができる。この結果、操作者が紙媒体70に記入した文字等における止めを含む筆跡を電子データ上の画像において再現することが可能となり、操作者に違和感を抱かせない自然な表示を行うことができる。
また、本実施形態では特に、RAM403に記憶されたストロークデータに基づき、所定の太さの線画像をストロークの起筆及び送筆の画像として描画処理し(ステップS140参照)、所定の太さの線画像(又は点画像)をストロークの終筆の画像として描画処理する。これにより、電子データ上において、ストロークの終筆を止めで表現した画像を自然な態様で描画することができる。
また、本実施形態では特に、ストロークの終筆が止めでないと判定された場合に、RAM403に記憶されたストロークデータに基づき、先細り形状の線画像をストロークの終筆の画像として描画処理する(ステップS180参照)。これにより、操作者が紙媒体70に記入した文字等のストロークの終筆が止めで表現された場合には、電子データ上において、ストロークの終筆を止めで表現した画像を描画することができ、操作者が紙媒体70に記入した文字等のストロークの終筆が止め以外の態様、つまり跳ねや払いで表現された場合には、電子データ上において、ストロークの終筆を跳ねや払いに対応した先細り形状の線画像で表現した画像を描画することができる。この結果、操作者が紙媒体70に記入した文字等における止め、跳ね、払いを含む筆跡を電子データ上の画像において再現することが可能となり、操作者に違和感を抱かせないさらに自然な表示を行うことができる。
また、本実施形態では特に、ストロークの終筆が止めでないと判定された場合に、RAM403に記憶されたストロークデータに含まれる、ストロークの筆記時の複数の座標データのうち、最後の座標データの表す座標Plastを終点とし、当該最後の座標データの1個前の座標データの表す座標Plast−1を始点とする、ベクトルV1に基づき、座標Plastの先に上記先細り形状の線画像の終端とするための終端座標Paddを設定し(ステップS170参照)、その設定された終端座標Paddを終端とする上記先細り形状の線画像を終筆の画像として描画処理する。これにより、電子データ上において、ストロークの終筆を跳ねや払いに対応した先細り形状の線画像で表現した画像を自然な態様で描画することができる。
また、本実施形態では特に、上記式(1)により、終端座標Paddを設定する。これにより、電子データ上において、ストロークの終筆を跳ねや払いに対応した先細り形状の線画像で表現した画像を自然な態様で確実に描画することができる。
また、本実施形態では特に、予め定められた正の実数である係数cを用いた、上記式(1)により、終端座標Paddを設定する。これにより、係数cを算出し、算出した係数cを用いて終端座標Paddを設定する場合に比べ、CPU401の処理を簡易化することができる。
<変形例等>
なお、本発明は、上記実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。以下、そのような変形例を説明する。
(1)係数cを算出して用いる場合(その1)
上記実施形態では、固定値である係数cを用いた上記式(1)により終端座標Paddを設定する場合を例にとって説明したが、これに限られず、ベクトルの変化量に基づき算出した係数cを用いた上記式(1)により終端座標Paddを設定してもよい。以下、その詳細を、上記図5に示す文字列「オレンジ」の2つ目の文字「レ」のストロークST4(図5参照)を例にとって説明する。
図12に、上記ストロークST4の終筆の画像を描画処理する場合の例を示す。
図12(a)に示す例では、ストロークST4は、起筆及び送筆の画像が描画処理され、ストロークST4の終筆が止めでないと判定されている。この場合、ストロークの筆記時の複数の座標データのうち、上記最後の座標データの座標Plastの2個前の座標データの座標Plast−2を始点とし、上記座標Plast−1を終点とする、ベクトルV2の、単位ベクトル|V2|と、上記単位ベクトル|V1|と、を用いた、下記式(2)により、係数cが算出される。
c=2|V1|−|V2|・・・式(2)
そして、上記式(2)により算出された係数cを用いた、上記式(1)により、上記座標Plastの先に、上記終端座標Paddが設定される。
この例では、ペン位置座標Tzの座標が上記座標Plastに相当し、ペン位置座標Tyの座標が上記座標Plast−1に相当し、ペン位置座標Txの座標が上記座標Plast−2に相当する。また、ペン位置番号Txの座標を始点とし、ペン位置番号Tyの座標を終点とする、ベクトルVxが上記ベクトルV2に相当し、当該ベクトルVxの単位ベクトル|Vx|が上記単位ベクトル|V2|に相当する。また、ペン位置番号Tyの座標を始点とし、ペン位置番号Tzの座標を終点とする、ベクトルVyが上記ベクトルV1に相当し、当該ベクトルVyの単位ベクトル|Vy|が上記単位ベクトル|V1|に相当する。したがって、|Vx|,|Vy|を上記式(2)の|V2|,|V1|にそれぞれ代入して演算することにより、係数cが算出される。そして、この算出された係数cの値、ペン位置座標Tzの座標、Vy,|Vy|を上記式(1)のc,Plast,V1,|V1|にそれぞれ代入して演算することにより、ペン位置座標Tzの座標の先に終端座標Paddが設定される。
そして、図12(b)に示すように、ストロークST4の終筆の画像として、ペン位置番号Tyの座標を始端とし、上記終端座標Paddを終端とする、上記先細り形状の線画像Lyが描画処理される。
以下、図13を参照しつつ、上記の内容等を実現するために、操作端末4のCPU401がメモリ404に記憶された電子筆記処理プログラム等に基づき実行する制御手順を説明する。
図13に示すフローチャートにおいて、上記図11に示すフローチャートと異なる点は、ステップS165,S170′である。すなわち、ステップS110〜ステップS160は、上記図11と同様であり、前述のステップS150において、止め判定領域AR内に座標Plast―1がない場合には、ストロークの終筆が止めでないとみなされ、ステップS150の判定は満たされず(S150:NO)、ステップS165に移る。
ステップS165では、CPU401は、上記式(2)により、上記係数cを算出する。なお、このステップS165の手順が、各請求項記載の第1算出手順に相当する。
その後、ステップS170′で、CPU401は、上記ステップS165で算出された係数cを用いた、上記式(1)により、前述のステップS130で取得されたストロークデータに基づく、上記座標Plastの先に上記終端座標Paddを設定する。なお、このステップS170′の手順が、各請求項記載の設定手順に相当する。その後のステップS180〜S200は、上記図11と同様である。
以上説明した本変形例においても、上記実施形態と同様の効果を得ることができる。また、本変形例によれば、固定値である係数cを用いて終端座標Paddを設定する場合に比べ、終端座標Paddを精度良く設定することができ、信頼性を向上することができる。
(2)係数cを算出して用いる場合(その2)
以下、その詳細を、上記ストロークST4を例にとって説明する。
図14に、上記ストロークST4の終筆の画像を描画処理する場合の例を示す。
図14(a)に示す例では、ストロークST4は、起筆及び送筆の画像が描画処理され、ストロークST4の終筆が止めでないと判定されている。この場合、ストロークの筆記時の複数の座標データのうち、上記最後の座標データの座標Plastの3個(n個に相当)前の座標データの座標Plast−3を始点とし、上記最後の座標データの座標Plastの2個(n−1個に相当)前の座標データの座標Plast−2を終点とする、ベクトルV3(ベクトルVnに相当)の、単位ベクトル|V3|(単位ベクトル|Vn|に相当)と、上記単位ベクトル|V1|と、を用いた、下記式(3)により、係数cが算出される。
c=|V1|−(|V3|−|V1|)/2・・・式(3)
なお、本変形例はnを3とする場合の例であるが、nを2としたり(上記(1)の変形例と同等の内容となる)nを4以上としてもよい。そして、上記式(3)により算出された係数cを用いた、上記式(1)により、上記座標Plastの先に、上記終端座標Paddが設定される。
この例では、ペン位置座標Tzの座標が上記座標Plastに相当し、ペン位置座標Tyの座標が上記座標Plast−1に相当し、ペン位置座標Txの座標が上記座標Plast−2に相当し、ペン位置座標Twの座標が上記座標Plast−3に相当する。また、ペン位置番号Twの座標を始点とし、ペン位置番号Txの座標を終点とする、ベクトルVwが上記ベクトルV3に相当し、当該ベクトルVwの単位ベクトル|Vw|が上記単位ベクトル|V3|に相当する。また、ペン位置番号Txの座標を始点とし、ペン位置番号Tyの座標を終点とする、ベクトルVxが上記ベクトルV2に相当し、当該ベクトルVxの単位ベクトル|Vx|が上記単位ベクトル|V2|に相当する。また、ペン位置番号Tyの座標を始点とし、ペン位置番号Tzの座標を終点とする、ベクトルVyが上記ベクトルV1に相当し、当該ベクトルVyの単位ベクトル|Vy|が上記単位ベクトル|V1|に相当する。したがって、|Vw|,|Vy|を上記式(3)の|V3|,|V1|にそれぞれ代入して演算することにより、係数cが算出される。そして、この算出された係数cの値、ペン位置座標Tzの座標、Vy,|Vy|を上記式(1)のc,Plast,V1,|V1|にそれぞれ代入して演算することにより、ペン位置座標Tzの座標の先に終端座標Paddが設定される。
そして、図14(b)に示すように、ストロークST4の終筆の画像として、ペン位置番号Tyの座標を始端とし、上記終端座標Paddを終端とする、上記先細り形状の線画像Ly′が描画処理される。
以下、図15を参照しつつ、上記の内容等を実現するために、操作端末4のCPU401がメモリ404に記憶された電子筆記処理プログラム等に基づき実行する制御手順を説明する。
図15に示すフローチャートにおいて、上記図11に示すフローチャートと異なる点は、ステップS165″,S170″である。すなわち、ステップS110〜ステップS160は、上記図11と同様であり、前述のステップS150において、止め判定領域AR内に座標Plast―1がない場合には、ストロークの終筆が止めでないとみなされ、ステップS150の判定は満たされず(S150:NO)、ステップS165″に移る。
ステップS165″では、CPU401は、上記式(3)により、上記係数cを算出する。なお、このステップS165″の手順が、各請求項記載の第2算出手順に相当する。
その後、ステップS170″で、CPU401は、上記ステップS165″で算出された係数cを用いた、上記式(1)により、前述のステップS130で取得されたストロークデータに基づく、上記座標Plastの先に上記終端座標Paddを設定する。なお、このステップS170″の手順が、各請求項記載の設定手順に相当する。その後のステップS180〜S200は、上記図11と同様である。
以上説明した本変形例においても、上記実施形態と同様の効果を得ることができる。また、本変形例によれば、固定値である係数cを用いて終端座標Paddを設定する場合に比べ、筆記速度のばらつきを考慮した係数cを用いて、終端座標Paddを精度良く設定することができ、信頼性を向上することができる。
(3)ストロークの画像の描画処理を電子筆記装置において行う場合
以上においては、ストロークの画像の描画処理を操作端末4において行う場合を例にとって説明したが、これに限られず、ストロークの画像の描画処理を電子筆記装置2において行ってもよい。
以下、図16を参照しつつ、本変形例における、電子筆記装置2のCPU201が実行する制御手順を説明する。
図16において、このフローチャートの処理は、例えば電子筆記装置2の電源がオンされると開始される。
まず、ステップS210で、CPU201は、「1」(第1状態に相当)及び「0」(第2状態に相当)のいずれかに切替可能なフラグF(切替識別子に相当)の値を1に設定する。
その後、ステップS220で、CPU201は、座標検出部25の検出結果に基づき、電子ペン3の座標データの取得を図る。座標データが取得できたら、その座標データを、座標データ記憶領域2041に記憶する。以下では、座標データ記憶領域2041に順次記憶される複数の座標データの座標を、新しいものから順次、Pm、Pm−1、Pm−2・・ということにする。つまり、今回のステップS220で取得された座標データの座標はPmであり、前回のステップS220で取得された座標データの座標はPm−1であり、前々回のステップS220で取得された座標データの座標はPm−2である。なお、このステップS220を実行するCPU201が、各請求項記載の位置取得手段として機能する。
そして、ステップS230で、CPU201は、電子ペン3による1つのストロークの筆記が終了したか否かを判定する。例えば、CPU201は、上記ステップS220で座標データが取得できなくなった状態を検出することにより、1つのストロークの筆記の終了を検出する。1つのストロークの筆記が終了していない場合には、ステップS230の判定は満たされず(S230:NO)、ステップS240に移る。
ステップS240では、CPU201は、上記ステップS220で取得された座標データに基づき、電子ペン3による筆記位置が移動したか否かを判定する。例えば、CPU201は、上記座標Pmと上記座標Pm−1とを比較することにより、筆記位置が移動したか否かを判定する。筆記位置が移動していない場合には、ステップS240の判定は満たされず(S240:NO)、ステップS250に移る。
ステップS250では、CPU201は、電子ペン3により筆記されたストロークに止めがあったか否かを判定する。例えば、CPU201は、上記座標Pmを基準とする止め判定領域(図示せず)内に、上記座標はPm−1があるか否かを判定することにより、ストロークに止めがあったか否かを判定する。ストロークに止めがない場合には、ステップS250の判定は満たされず(S250:NO)、上記ステップS220に戻り、座標データの取得を図る。
一方、上記ステップS240において、筆記位置の移動が検出された場合には、ステップS240の判定が満たされて(S240:YES)、ステップS270に移る。すなわち、ステップS240を実行するCPU201は、各請求項記載の第1検出手段として機能する。
ステップS270では、CPU201は、上記フラグFの値を、後述のステップS320での描画処理を実行させないための「0」に切り替える。なお、このステップS270を実行するCPU201が、各請求項記載の第1切替手段として機能する。
その後、ステップS280で、CPU201は、ストロークの起筆又は送筆の画像として、上記座標Pm−2と上記座標Pm−1との間に、所定の太さの線画像を描画処理する。描画処理された画像は、図示しないディスプレイに表示される。その後、上記ステップS250に移り同様の手順を実行する。
一方、上記ステップS250において、ストロークに止めが検出された場合には、ステップS250の判定が満たされて(S250:YES)、ステップS290に移る。すなわち、ステップS250を実行するCPU201は、各請求項記載の第2検出手段として機能する。
ステップS290では、CPU201は、上記フラグFの値を、後述のステップS320での描画処理を実行させるための「1」に切り替える。なお、このステップS290を実行するCPU201が、各請求項記載の第2切替手段として機能する。
そして、ステップS300で、CPU201は、ストロークの起筆又は送筆の画像として、上記座標Pm−2と上記座標Pm−1との間に、所定の太さの線画像を描画処理する。描画処理された画像は、図示しないディスプレイに表示される。その後、上記ステップS220に戻り、座標データの取得を図る。
一方、上記ステップS230において、1つのストロークの筆記の終了、つまりストロークの終端が検出された場合には、ステップS230の判定が満たされて(S240:YES)、ステップS310に移る。すなわち、ステップS230を実行するCPU201は、各請求項記載の第3検出手段として機能する。
ステップS310では、CPU201は、上記フラグFの値が「1」であるか否かを判定することにより、ストロークの終筆が止めであるか否かを判定する。なお、このステップS310を実行するCPU201が、各請求項記載の判定手段として機能する。フラグFの値が「1」である場合には、ストロークの終筆が止めであるとみなされ、ステップS310の判定が満たされて(S310:YES)、ステップS320に移る。
ステップS320では、CPU201は、ストロークの終筆の画像として、上記座標Pm−1と上記座標Pmとの間に、起筆や送筆の画像と同じ太さの線画像(座標Pm−1と座標Pmとが同じ座標である場合には点画像)を描画処理する。描画処理された画像は、図示しないディスプレイに表示される。なお、このステップS320を実行するCPU201が、各請求項記載の描画処理手段として機能する。その後、このフローチャートの処理が終了される。なお、このフローチャートの処理は、繰り返し実行される。
一方、上記ステップS310において、フラグFの値が「0」である場合には、ストロークの終筆が止めでないとみなされ、ステップS310の判定は満たされず(S310:NO)、ステップS330に移る。
ステップS330では、CPU201は、上記座標Pmを前述の座標lastとして用いると共に、上記座標Pmを終点とし、上記座標Pm−1を始点とする、ベクトルV1と、当該ベクトルV1の単位ベクトル|V1|と、固定値である係数cと、を用いた、前述の式(1)により、座標Pmの先に前述の終端座標Paddを設定する。
その後、ステップS340で、CPU201は、ストロークの終筆の画像として、上記座標Pmを始端とし、上記終端座標Paddを終端とする、前述の先細り形状の線画像を描画処理する。描画処理された画像は、図示しないディスプレイに表示される。その後、このフローチャートの処理が終了される。
以上説明した本変形例においても、上記実施形態と同様の効果を得ることができる。また、本変形例では、上記フラグFの値を前述のように切り替え、ストロークの終筆が止めであるか否かの判定に利用することにより、紙媒体70に記入されたストロークの終筆が止めであるか否かを確実に判定することができ、電子データ上において、ストロークの終筆を止めで表現した画像を確実に描画することができる。
なお、本変形例における終端座標Paddの設定手法おいて、上記(1)や(2)の変形例の手法を適用することも可能である。
(4)その他
以上においては、電子ペン3からの磁界を座標検出部25で検出することにより操作者の筆記動作による電子ペン3の移動を検出したが、これに限られない。すなわち、操作者の筆記動作時における電子ペン3の先端の動きを、超音波や赤外線やカメラ撮像結果を用いて検知する方式を用いてもよい。また、電子筆記装置2の載置部24に公知の感圧手段を設け、操作者の筆記動作時において電子ペン3の先端が紙媒体70を押圧する力を上記感圧手段で検出することにより、電子ペン3の先端の動きを検出してもよい。この場合には、電子ペン3として、上記のような磁界を発生するためのコイル35を備えたペンではなく、通常のボールペンなどの汎用のペンを用いることができる。
また、以上の説明において、「垂直」「平行」「平面」等の記載がある場合には、当該記載は厳密な意味ではない。すなわち、それら「垂直」「平行」「平面」等とは、設計上、製造上の公差、誤差が許容され、「実質的に垂直」「実質的に平行」「実質的に平面」等という意味である。
また、以上の説明において、外観上の寸法や大きさが「同一」「等しい」「異なる」等の記載がある場合は、当該記載は厳密な意味ではない。すなわち、それら「同一」「等しい」「異なる」等とは、設計上、製造上の公差、誤差が許容され、「実質的に同一」「実質的に等しい」「実質的に異なる」等という意味である。但し、例えばしきい値や基準値等、所定の判定基準となる値あるいは区切りとなる値の記載がある場合は、それらに対しての「同一」「等しい」「異なる」等は、上記とは異なり、厳密な意味である。
また、以上において、図2及び図4中に示す矢印は、信号の流れの一例を示すものであり、信号の流れ方向を限定するものではない。
また、図10、図11、図13、図15、及び図16に示すフローチャートは、本発明を図示する手順に限定するものではなく、発明の趣旨及び技術的思想を逸脱しない範囲内で手順の追加・削除又は順番の変更等をしてもよい。
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用してもよい。
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。