(57)【要約】【課題】手書入力の追従性および描線の滑らかさの少なくともいずれかを実現する。【解決手段】手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置１は、サンプル点の変位を示すベクトルの大きさの変化に応じて、ベクトルの加重平均を計算することで補正ベクトルを生成する補正データ生成部（２４）を備える。【選択図】図１
2014067285.tif 000002
【特許請求の範囲】
【請求項１】
手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、
サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正手段を備えることを特徴とする手書入力装置。
【請求項２】
上記サンプル点の変位より求められる導出値は、上記サンプル点の変位の大きさに基づくものであることを特徴とする請求項１に記載の手書入力装置。
【請求項３】
上記補正手段は、上記導出値の変化が所定の閾値より大きくなったときに、より新しいサンプル点の変位に対してより大きな重み付けを用いる補正を行うことを特徴とする請求項２に記載の手書入力装置。
【請求項４】
上記補正手段は、上記閾値より大きくなった上記導出値の変化が小さくなったときに、より新しいサンプル点の変位に対してより大きな重み付けを用いる補正を行うことを特徴とする請求項３に記載の手書入力装置。
【請求項５】
上記補正手段は、上記閾値より大きくなった上記導出値の変化が小さくなったときに、より新しいサンプル点の変位に対してより小さな重み付けを用いる補正を行うことを特徴とする請求項３に記載の手書入力装置。
【請求項６】
上記補正手段は、最新のサンプル点と該最新のサンプル点の一つ前のサンプル点との間における変位と、それ以前のサンプル点についての補正により得られた変位との加重平均を用いた補正を行うことを特徴とする請求項１から５のいずれか１項に記載の手書入力装置。
【請求項７】
手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力プログラムであって、
サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップをコンピュータに実行させることを特徴とする手書入力プログラム。
【請求項８】
手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、
サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップを含むことを特徴とする手書入力装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は手書入力による描画を行う手書入力装置、手書入力プログラム、および手書入力装置の制御方法に関する。
【背景技術】
【０００２】
従来、タブレット入力装置や、タッチパネル入力装置を用いた手書入力技術が知られている。このような手書入力技術では、例えば、手書入力された軌跡の座標をサンプリングして検出し、その検出座標に基づいて、手書入力軌跡が表示される。このような手書入力技術の分野において、描画の滑らかさや軌跡の正確さを得るために入力される描線を補正する技術として、次のような提案がなされている。
【０００３】
特許文献１には、手書入力の入力範囲に応じて、検出座標のサンプル数を設定する技術や、サンプリングして得た検出座標に基づき最小二乗法による演算を行って描画曲線を算出する技術が開示されている。
【０００４】
特許文献２には、座標データの取得を複数回行って、取得した座標データを加算平均した座標値を出力する技術、および入力者の描画速度に応じて座標データの加算平均回数を変更する技術が開示されている。
【０００５】
特許文献３には、最新の座標が検出されるたびに、最新の座標と該最新の座標の検出処理の１回前の処理で検出された座標とがそれぞれ示す２つの点間の距離に応じて、座標検出のサンプリング間隔を設定する技術が開示されている。
【０００６】
なお、既存の画像の平滑化を行い画像に含まれるノイズを低減または除去する技術としては、平均化フィルタや、ガウシアンフィルタなどが知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−１７９８７４（１９９６年７月１２日公開）
【特許文献２】特開平９−３４６２９（１９９７年２月７日公開）
【特許文献３】特開２０００−１０７２１（２０００年１月１４日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述のような従来技術は、単に、サンプル数の変更またはサンプル間隔の変更により描画の滑らかさや、応答反応性を確保するにとどまっているため、補正後の描画曲線は、過去の入力データの影響を受け得る。すなわち、従来技術では、過去から現在までの手書入力の変位の変化の影響を考慮していない。
【０００９】
このため、過去の入力データの影響により、描画追従性、または、描画の円滑さの点において、所望の結果が得られない場合があった。
【００１０】
例えば、単純に入力座標の加算平均を算出するだけでは、補正値において過去の入力データの影響が均一に現れる。よって、手書入力のスピードが急に変化した場合、実際の手書入力に対して、描画曲線の追従性が低下する。
【００１１】
また、例えば、手書入力が大きくカーブした部分においては、過去データの直進性が強く補正値に表れるので、実際の手書入力データと補正値との間に大きな差が生じてしまう。
【００１２】
本発明は、上記問題に鑑みてなされたものであり、その目的は、サンプル点の変位の補正に用いる重み付けを手書入力の入力状況に応じて適宜変更することで、手書入力の追従性の向上、および、円滑化の少なくともいずれかを図ることができる手書入力装置を実現することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正手段を備える。
【００１４】
上記の課題を解決するために、本発明の一態様に係る手書入力プログラムは、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力プログラムであって、サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップをコンピュータに実行させる。
【００１５】
上記の課題を解決するために、本発明の一態様に係る手書入力装置の制御方法は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップを含む。
【発明の効果】
【００１６】
本発明の一態様によれば、サンプル点の変位の補正に用いる重み付けを手書入力の入力状況に応じて適宜変更することで、手書入力の追従性の向上、および、円滑化の少なくともいずれかを図ることができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態１に係る手書入力装置の機能的な構成の一例について示す機能ブロック図である。
【図２】上記手書入力装置が備えるタッチパネル表示部の表示画面において、ユーザーが左から右に水平方向に手書入力を行った場合について示す図である。
【図３】上記手書入力装置における手書入力データの補正処理の流れの一例について示すフローチャートである。
【図４】本発明の実施形態２に係る手書入力装置の機能的な構成の一例について示す機能ブロック図である。
【図５】上記手書入力装置が備えるタッチパネル表示部の表示画面において、ユーザーが左から右に水平に手書入力を行ったあとに手書入力方向を変化させる場合について示している。
【図６】角度計算について説明する図である。
【図７】２つのベクトルの角度平均を算出する方法について説明する図である。
【図８】重み付けによる補正角の算出について説明する図である。
【図９】上記手書入力装置における手書入力データの補正処理の流れの一例について示すフローチャートである。
【図１０】本発明の実施形態３に係る手書入力装置の機能的な構成の一例について示す機能ブロック図である。
【図１１】ベクトルの角度の変化率が一定になるようベクトルを補正し、滑らかな描画曲線を得る方法について説明する図である。
【図１２】上記手書入力装置における手書入力データの補正処理の流れの一例について示すフローチャートである。
【発明を実施するための形態】
【００１８】
〔実施形態１〕
以下、本発明の一実施形態について、図１〜図３を用いて説明すれば、以下のとおりである。
【００１９】
まず、図１を用いて、本発明の一実施形態である手書入力装置１の構成について説明すると次のとおりである。図１は、手書入力装置１の機能的な構成の一例について示す機能ブロック図である。図１に示す手書入力装置１は、ユーザーから手書入力による操作を受け付け、受け付けた手書入力を補正した手書入力データを生成し、補正後の手書入力データを出力する。手書入力装置１は、例示的には、タブレット端末や、スマートフォンなどの高機能携帯電話機等のタッチパネル入力装置を備える装置である。
【００２０】
手書入力装置１は、手書入力の速度の変化に応じて、手書入力に対する描画の追従性や、描画の滑らかさを調整する。
【００２１】
図１に示すように手書入力装置１は、記憶部１０、制御部２０、および、タッチパネル表示部３０と、を備える構成である。
【００２２】
記憶部１０は、各種データ、表示コンテンツおよびプログラムを記憶させておくものである。また、制御部２０は、電子機器１の各種機能を統括的に制御するものである。制御部２０は、例えば、タッチパネル表示部３０における表示処理およびタッチ操作に応じた情報処理を制御する。記憶部１０および制御部２０の詳細については後述する。
【００２３】
タッチパネル表示部３０は、ユーザーからの接触操作を受け付ける操作部３１および画面表示を行う表示部３２を備える。なお、操作部３１および表示部３２は、例示的に、ユーザーから見て操作部３１および表示部３２の順で積層されており、ユーザーが表示部３２の表示画面を視認しながら、当該表示画面に対して接触操作（タッチ操作）を行うことができるようになっている。
【００２４】
操作部３１は、表示部３２の表示画面に対するユーザーの接触操作を検出して、当該接触操作に関する操作データを生成し、生成した操作データを制御部２０に供給する。なお、操作データには、接触操作位置や、接触操作の向き、加速度および強さなどが含まれていてもよい。
【００２５】
以下では、説明のため、タッチパネル表示部３０（操作部３１）に対する手書入力操作（文字や曲線の手書入力等）を検出することで操作データを生成するものとする。また、手書入力操作を検出することにより生成された操作データのことを手書入力データと称する。
【００２６】
手書入力操作の検出方法に特に制限はなく、任意の検出手法を用いることができる。また、操作部３１は、ユーザーの指によるタッチ操作だけでなく、スタイラスやタッチペンなどの入力器具Ｍを用いた接触操作にも対応している。
【００２７】
操作部３１が接触操作位置を検出する具体的な手法としては、例えば、マトリクス・スイッチ、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式、および、対象物の画像を検出する方式（光センサ方式）などが挙げられる。しかしながら、これに限られず、接触操作位置を検出する手法には、種々の手法を適宜適用することができる。なお、上記した接触操作位置を検出する手法には、「接触」だけでなく「近接」を検出する手法が含まれる。ただし、以下では、説明の便宜上、「接触」および「近接」の区別をすることなく、単に「接触」とのみ記載する。
【００２８】
また、操作部３１は、所定の間隔により、接触操作の検出を実行し、上記手書入力データを生成する。手書入力データの詳細については後述する。
【００２９】
表示部３２は、画像データを表示するための表示画面を有しており、制御部２０から画像データを受信し、受信した画像データに基づいてその表示画面に画像を表示するものである。表示部３２は、例えば、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、ＥＬ（Electroluminescence）ディスプレイなどにより実現することができる。
【００３０】
（記憶部の詳細）
次に、図１を引き続き参照しながら、記憶部１０の詳細について説明する。図１に示すように記憶部１０は、サンプル点履歴情報記憶部１１、速度閾値記憶部１２、重み記憶部１３、および補正データ履歴情報記憶部１４を含む構成である。
【００３１】
サンプル点履歴情報記憶部１１には、手書入力データが記憶される。手書入力データは、具体的には、タッチパネル表示部３０におけるタッチ操作のサンプリングによって得られるサンプル点により構成される。よって、サンプル点履歴情報記憶部１１には、サンプリングによって得られるサンプル点が時系列ごとに記憶される。
【００３２】
サンプル点は、例えば、タッチパネル表示部３０における操作位置を示す座標値（例えば、Ｘ座標およびＹ座標から成る２次元座標）により表現されていてもよい。
【００３３】
なお、手書入力データには、サンプル点に加えて、前のサンプル点からの変位を示すベクトルが含まれていてもよい。また、手書入力データには、ベクトルの大きさや、角度が含まれていてもよい。また、ベクトルの角度は、基準となる方向（例えば、表示画面の座標系のＸ軸方向）と、ベクトルの方向との間の角度により表現されていてもよい。
【００３４】
速度閾値記憶部１２には、タッチパネル表示部３０において検出される手書入力の速度の変化量、および／または、変化率と比較するための閾値が記憶される。
【００３５】
重み記憶部１３には、手書入力データの補正に用いるための重みに関する情報が記憶される。なお、重み記憶部１３に記憶される重み情報は、重み付けを行うための値そのものであってもよいし、重み付けを行うための値を導出するための算出式であってもよい。
【００３６】
補正データ履歴情報記憶部１４には、補正後の手書入力データ、すなわち補正データが記憶される。補正データは、手書入力データを構成するサンプル点の補正値、および、サンプル点の変位を示すベクトルの補正値（補正ベクトル）を含む。よって、補正データ履歴情報記憶部１４には、サンプル点およびベクトルの補正値が時系列ごとに記憶される。
【００３７】
（制御部の詳細）
次に、図１をさらに参照しながら、制御部２０の詳細について説明する。図１に示すように、制御部２０は、サンプル点取得部２１、速度条件判定部２２、重み設定部２３、補正データ生成部２４、および描画部２５を備える構成である。
【００３８】
サンプル点取得部２１は、タッチパネル表示部３０における所定の間隔による接触操作の検出処理（すなわちサンプリング処理）を制御して、サンプル点を取得する。具体的には、サンプル点取得部２１は、所定の間隔で、接触操作の検出を実行するようタッチパネル表示部３０の操作部３１に指示し、操作部３１から手書入力データを取得し、手書入力データに基づいてサンプル点を取得する。言い換えれば、サンプル点取得部２１は、タッチパネル表示部３０において行われる手書入力をサンプリングして得られる複数のサンプル点を取得する。
【００３９】
また、サンプル点取得部２１は、サンプル点間のベクトル（変位）を算出する。図２を用いて、サンプル点取得部２１によるベクトル算出処理について説明すると次のとおりである。図２は、タッチパネル表示部３０の表示画面において、ユーザーが左から右に水平方向に手書入力を行った場合について示している。
【００４０】
図２の“元データ”に示すように、サンプル点が、Ｐ０、Ｐ１、Ｐ２、およびＰ３の順に取得されているとする。このときサンプル点取得部２１は、Ｐ０およびＰ１に基づいて、Ｐ０からＰ１への変位を示すベクトルｖ０を求める。同様に、サンプル点取得部２１は、Ｐ１およびＰ２からベクトルｖ１を求め、Ｐ２およびＰ３からベクトルｖ２を求める。
【００４１】
なお、図２では、Ｐ３が最新のサンプル点であり、ベクトルｖ２が最新のベクトル（以下、最新ベクトルと称する）である。
【００４２】
サンプル点取得部２１は、サンプリングによって得られたサンプル点と、サンプル点に基づいて求めたベクトルと、ベクトルの大きさおよび角度とを、速度条件判定部２２に供給するとともに、サンプル点履歴情報記憶部１１に記憶する。
【００４３】
速度条件判定部２２は、タッチパネル表示部３０における手書入力の速度の変化量または変化率が閾値以上であるか否かを判定する。速度条件判定部２２は、上記閾値を速度閾値記憶部１２から取得することができる。
【００４４】
手書入力の速度は、タッチパネル表示部３０での手書入力のサンプリングにおけるサンプル点間の距離（すなわちベクトルの大きさ）に基づいて求めることができる。例えば、速度条件判定部２２は、サンプル点履歴情報記憶部１１に記憶されているベクトルの大きさを取得して手書入力の速度を求めることができる。
【００４５】
また、速度条件判定部２２は、例えば、手書入力の速度の変化を、（１）最新ベクトルの大きさと、当該最新ベクトルよりも前に求められたベクトルの大きさとに基づいて求めてもよいし、（２）最新ベクトルの大きさと、過去の補正により得られた補正ベクトルの大きさとに基づいて求めてもよい。
【００４６】
例えば、速度条件判定部２２は、（１）最新ベクトルの大きさと、当該最新ベクトルの直前のベクトルの大きさとに基づいて変化を求めてもよいし、（２）最新ベクトルの大きさと、当該最新ベクトルが取得される直前の補正により得られた補正ベクトルの大きさとに基づいて手書入力の速度を求めてもよい。
【００４７】
なお、以下において、最新ベクトルの直前のベクトルおよび最新ベクトルの直前の補正ベクトルのことをまとめて、過去ベクトルと称する場合がある。
【００４８】
重み設定部２３は、手書入力の速度の変化に応じて、手書入力データに対する補正を行うための重み値を設定する。詳細は後述するが、手書入力データの補正は、例示的に、最新ベクトルと、直前の補正ベクトルとの重み付け加算により実行される。そこで、重み設定部２３は、最新ベクトルに対する重み値と、直前の補正ベクトルに対する重み値とを設定する。
【００４９】
重み設定部２３は、最新ベクトルに対する重み値を直前の補正ベクトルに対する重み値と同一にしてもよい。
【００５０】
重み設定部２３は、最新ベクトルに対する重み値を直前の補正ベクトルに対する重み値よりも大きくしてもよい。この場合、手書入力の追従性の向上を図ることができる。
【００５１】
また、重み設定部２３は、最新ベクトルに対する重み値を直前の補正ベクトルに対する重み値よりも小さくしてもよい。この場合、手書入力の結果において描画される曲線の滑らかさを向上させることができる。
【００５２】
このため、重み設定部２３が設定する重み値は描線をどのように表現したいのかに応じて、適宜大きくしたり小さくしたりすることができる。
【００５３】
重み設定部２３は、例えば、以下のとおり重み値を設定することができる。
【００５４】
［設定１］手書入力速度が急激に早くなったときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。
【００５５】
［設定２］手書入力速度が急激に早くなったときにおいて、その変化に対応して曲線の滑らかさを向上させたい場合は、重み値を小さくする。
【００５６】
［設定３］手書入力速度が急激に遅くなったときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。
【００５７】
［設定４］手書入力速度が急激に遅くなったときに、その変化に対応して曲線の滑らかさを向上させたい場合は、重み値を小さくする。
【００５８】
［設定５］手書入力速度がそれほど変わらないのであれば、重み値を均等にする。
【００５９】
補正データ生成部２４は、重み設定部２３が設定した重み値を用いて手書入力データを補正することで補正データを生成する。そして、補正データ生成部２４は、補正ベクトルを補正データとして描画部２５に供給するとともに、補正データを補正データ履歴情報記憶部１４に記憶する。なお、補正データ生成部２４における補正の詳細については後述する。
【００６０】
描画部２５は、補正データ生成部２４から供給される補正データに基づいて手書入力結果を示す画像データを生成し、生成した画像データを表示部３２に供給する。
【００６１】
（手書入力データの補正の詳細）
図２を用いて、補正データ生成部２４における手書入力データの補正の具体例について説明すると次のとおりである。
【００６２】
図２に、手書入力装置１における手書入力データの“元データ”、当該“元データ”を、重みを一定にして補正したときの補正ベクトル、および、当該“元データ”を、重みを変化させて補正したときの補正ベクトルの一例を示している。
【００６３】
“元データ”は、上述のように、サンプリングされたサンプル点Ｐ０、Ｐ１、Ｐ２、およびＰ３から構成される補正前の手書入力データである。
【００６４】
Ｐ０Ｐ１間のベクトルｖ０の大きさと、Ｐ１Ｐ２間のベクトルｖ１の大きさとは略同じである。一方、Ｐ２Ｐ３間のベクトルｖ２の大きさは、Ｐ０Ｐ１間のベクトルｖ１またはＰ１Ｐ２間のベクトルｖ０の大きさよりも大幅に大きい。
【００６５】
補正データ生成部２４は、上述のとおり、最新のサンプル点、および、該最新のサンプル点の直前のサンプル点の変位を示す最新ベクトルと、直前の変位を示す補正ベクトルとの加重和（加重平均）により補正ベクトルを生成する。“重みを変化させた補正値”は、このように加重平均により補正値を生成する場合について示している。
【００６６】
一方、“重みを一定にした補正値”は、最新の変位と、直前の変位との間で相加平均（すなわち重み一定とした重み付け和）を算出することで補正ベクトルを生成する場合について示している。
【００６７】
以下、より具体的に、“重みを一定にした補正値”および“重みを変化させた補正値”のそれぞれについて説明する。
【００６８】
［重みを一定にした補正値］
図２に示す“重みを一定にした補正値”について説明すると次のとおりである。まず、ベクトルｖ０は、補正ベクトルｖ´０と同様とする。
【００６９】
次に、ベクトルｖ１の補正ベクトルｖ´１は、ベクトルｖ１と、直前の補正ベクトルｖ´０の相加平均により得られる。ベクトルｖ１と補正ベクトルｖ´０とは略同じであるので、補正ベクトルｖ´１は、ベクトルｖ０、ベクトルｖ１および補正ベクトルｖ´０と同様である。
【００７０】
続いて、ベクトルｖ２の補正ベクトルｖ´２は、ベクトルｖ２と、直前の補正ベクトルｖ´１との相加平均により求められる。この相加平均は、例えば、ｖ´２＝０．５ｖ２＋０．５ｖ´１で求めることができる。また、上記に限られず、最新ベクトルから過去の所定のサンプル点までの過去ベクトルを用いる移動平均の算出式を用いても構わない。
【００７１】
ベクトルｖ２は、直前の補正ベクトルｖ´１よりも大幅に大きい。しかしながら、ベクトルｖ２と、直前の補正ベクトルｖ´１とは同じ重み付けにより加算されるので、加算により得られる補正ベクトルｖ´２には、ベクトルｖ２の影響が大きく現れる。このため補正ベクトルｖ´２の大きさは、ベクトルｖ２の大きさよりも大幅に小さくなる。
【００７２】
なお、上記“［設定５］手書入力速度がそれほど変わらないのであれば、重み値を均等にする。”の場合、重み設定部２３は、上述のように均一な重みを設定してもよい。
【００７３】
［重みを変化させた補正値］
“重みを変化させた補正値”について説明すると次のとおりである。以下で説明する手書入力データの補正は、上述の“［設定１］手書入力速度が急激に早くなったときにおいて、その変化に対して追従性を向上させたい場合は、重み値を大きくする。”に該当する。
【００７４】
具体的には、補正データ生成部２４は、重み設定部２３が設定した重みを用いて、最新ベクトルおよび直前の補正ベクトルの加重和を算出することで補正ベクトルを得る。この加重和は、以下の式（Ａ）により表わすことができる。
【００７５】
ｖ´ｎ＝αｖｎ＋（１−α）ｖ´ｎ−１・・・（Ａ）
上記式（Ａ）において、ｖ´ｎは、最新の補正ベクトル、ｖｎは、最新ベクトル、ｖ´ｎ−１は、最新の補正ベクトルの直前の補正ベクトルである。また、αは、重み設定部２３が設定する重み値を示している。
【００７６】
なお、上記式（Ａ）に限られず、最新ベクトルから過去の所定のサンプル点までの過去ベクトルを用いる加重移動平均の算出式を用いても構わない。
【００７７】
図２に示す“重みを変化させた補正値”について説明すると次のとおりである。まず、ベクトルｖ０、ベクトルｖ１、補正ベクトルｖ´´０、補正ベクトルｖ´´１とは相互に同じであるものとする。
【００７８】
ここで、補正ベクトルｖ´´２は、ベクトルｖ２と、直前の補正ベクトルｖ´１との加重平均により求められる。この加重平均は、例えば、重み設定部２３が、上記式（Ａ）における重み値αをα＞０．５と設定することで求めることができる。
【００７９】
ベクトルｖ２は、直前の補正ベクトルｖ´１よりも大幅に大きいので、上記式（Ａ）においてベクトルｖ２（ｖｎ；ｎ＝２）に適用する重み値（α）を大きくする一方で、直前の補正ベクトルｖ´１（ｖ´ｎ−１；ｎ＝２）に適用する重み値（１−α）を小さくする。
【００８０】
これにより、補正ベクトルｖ´´２には、ベクトルｖ２が大きく反映された補正が施される。
【００８１】
この加重平均により求めた補正ベクトルにより得られる補正値Ｐ´´３は、相加平均により求めた補正ベクトルにより得られる補正値Ｐ´３と比べて、サンプル点Ｐ３との差が小さいため、追従性のよい入力が得られる。
【００８２】
（処理の流れ）
次に、図３を用いて、手書入力装置１における手書入力データの補正処理の流れについて説明する。図３は、手書入力装置１における手書入力データの補正処理の流れの一例について示すフローチャートである。
【００８３】
図３に示すように、タッチパネル表示部３０が手書入力を受け付けると（Ｓ１１）、サンプル点取得部２１が、当該手書入力による手書入力データを取得する（Ｓ１２）。すなわち、サンプル点取得部２１は、サンプリングにより得られる最新ベクトルを取得する。
【００８４】
次に、速度条件判定部２２が、手書入力の速度の変化量または変化率を算出する（Ｓ１３）。具体的には、速度条件判定部２２は、過去ベクトル（元データの変位を示すベクトルまたは補正された変位を示すベクトル）と最新ベクトルとの間における速度の変化量または変化率を算出する（Ｓ１３）。
【００８５】
さらに、速度条件判定部２２は、上記変化量または変化率が閾値以上か否かを判定する（Ｓ１４）。変位が閾値以上であれば（Ｓ１４においてＹＥＳ）、重み設定部２３が、重みを計算し、補正データを生成するための重み値に設定する（Ｓ１５）。すなわち、重み設定部２３は、補正に用いる最新ベクトルおよび直前の補正ベクトルに応じて計算した重みを重み値に設定する。
【００８６】
一方、変位が閾値未満の場合（Ｓ１４においてＮＯ）、重み設定部２３は、各変位に対して一定の重みを重み値に設定する（Ｓ１６）。
【００８７】
次に、補正データ生成部２４が、Ｓ１５またはＳ１６において設定された重み値を用いて補正データを生成する（Ｓ１７）。
【００８８】
（重み付けに関するより詳細な説明）
以下において、手書入力装置１における重み付けに関するより詳細な説明を以下に記載する。
【００８９】
［重みを変化させるための条件］
以上では、Ｓ１３およびＳ１４において、速度条件判定部２２が、速度の変化量に対する閾値または速度の変化率に対する閾値を判定に用いることについて説明したが、これらの閾値について以下に詳細に説明する。
【００９０】
[速度の変化量に対して閾値を設定する]
速度の変化量に対して閾値を設定する場合、以下のとおりに設定することができる。
【００９１】
［１］  予め設定しておいた定数ａと、最新ベクトルＶｎの大きさとの差を計算し、下記閾値Ｘに関する条件式（Ｂ−１）を満たす場合に重みを変更するようにしてもよい。
【００９２】
｜Ｖｎ｜−ａ  ＞  Ｘ  ・・・（Ｂ−１）
上記式（Ｂ−１）において｜Ｖｎ｜は、ベクトルの大きさを表す。
【００９３】
［２］  また、最新ベクトルの大きさと、過去ベクトルの大きさとの差を計算し、下記閾値Ｘに関する条件式（Ｂ−２）または（Ｂ−３）を満たす場合に重みを変更するようにしてもよい。
【００９４】
｜Ｖｎ｜−｜Ｖｎ−１｜  ＞  Ｘ  ・・・（Ｂ−２）
または、
｜Ｖｎ｜−｜Ｖ´ｎ−１｜  ＞  Ｘ  ・・・（Ｂ−３）
［速度の変化率に対して閾値を設定する］
また、速度の変化率に対して閾値を設定する場合、以下のとおり、最新ベクトルの大きさと過去ベクトルの大きさとの変化率を計算し、下記閾値Ｘに係る条件式（Ｂ−４）〜（Ｂ−７）のいずれかを満たす場合に重みを変更するようにしてもよい。
【００９５】
｜Ｖｎ｜／｜Ｖｎ−１｜  ＞  Ｘ  ・・・（Ｂ−４）
または、
｜Ｖｎ｜／｜Ｖ´ｎ−１｜  ＞  Ｘ  ・・・（Ｂ−５）
または、
（｜Ｖｎ｜―｜Ｖｎ−１｜）／｜Ｖｎ−１｜  ＞  Ｘ  ・・・（Ｂ−６）
または、
（｜Ｖｎ｜―｜Ｖ´ｎ−１｜）／｜Ｖ´ｎ−１｜  ＞  Ｘ  ・・・（Ｂ−７）
なお、上記条件式（Ｂ−１）〜（Ｂ−７）は、組み合わせて用いてもよい。
【００９６】
［重み値の設定方法］
上記“重みを変化させるための条件”を満たした場合、重み設定部２３は、上記Ｓ１５において、例えば、以下のとおり重み値を設定することができる。
【００９７】
［予め設定されている定数値を重み値として設定する］
［１］  定数値βを用いる
｜Ｖｎ｜−｜Ｖｎ−１｜  ＞  Ｘ  を満たす場合、予め設定されている定数値βを重み値αとして設定することができる。
【００９８】
［２］  重み値テーブルを予め用意しておき、上記“重みを変化させるための条件”を満たした場合、速度の変化量または速度の大きさに応じて、重み値テーブルの値を参照し、重みを決定する
［２−１］重み値テーブルをβ［３］＝｛０．６，０．７，０．８｝と予め設定しておく。そして、速度の変化量と閾値Ｘｎとに応じて以下のとおり重み値αを設定する。
【００９９】
Ｘ０  ＜  ｜Ｖｎ｜−｜Ｖｎ−１｜  ＜  Ｘ１  を満たす場合、β［０］＝｛０．６｝を重み値αとして設定する。
【０１００】
Ｘ１  ＜  ｜Ｖｎ｜−｜Ｖｎ−１｜  ＜  Ｘ２  を満たす場合、β［１］＝｛０．７｝を重み値αとして設定する。
【０１０１】
Ｘ２  ＜  ｜Ｖｎ｜−｜Ｖｎ−１｜  ＜  Ｘ３  を満たす場合、β［２］＝｛０．８｝を重み値αとして設定する。
【０１０２】
なお、上記に限られず、速度の変化率と閾値Ｘｎとに基づく重み値の設定を行っても構わない。すなわち、上記において、｜Ｖｎ｜―｜Ｖｎ−１｜に代えて、（｜Ｖｎ｜−｜Ｖｎ−１｜）／｜Ｖｎ−１｜を採用することができる。
【０１０３】
［２−２］重み値テーブルをβ［３］＝｛０．６，０．７，０．８｝と予め設定しておく。そして、速度の大きさと閾値Ｘｎとに応じて以下のとおり重み値αを設定する。
【０１０４】
Ｘ０  ＜  ｜Ｖｎ｜  ＜Ｘ１  を満たす場合、β［０］＝｛０．６｝を重み値αとして設定する。
【０１０５】
Ｘ１  ＜  ｜Ｖｎ｜  ＜Ｘ２  を満たす場合、β［１］＝｛０．７｝を重み値αとして設定する。
【０１０６】
Ｘ２  ＜  ｜Ｖｎ｜  ＜Ｘ３  を満たす場合、β［２］＝｛０．８｝を重み値αとして設定する。
【０１０７】
［速度の変化等から求められる変数値を重み値として設定する］
速度の変化率または速度の大きさを所定の計算式に適用することで重み値αを設定してもよい。
【０１０８】
［１］  最新の重み値をαｎとし、直前の重み値をαｎ−１とし、また予め定数ｂを設定しておき、下記式（Ｃ−１）に従って重み値αｎを設定する。
【０１０９】
αｎ  ＝  （｜Ｖｎ｜−｜Ｖｎ−１｜）  ×  ｂ  ＋  αｎ−１  ・・・  （Ｃ−１）
なお、上記式（Ｃ−１）において、｜Ｖｎ−１｜は、｜Ｖ´ｎ−１｜を用いても構わない。
【０１１０】
［２］  最新の重み値をαとし、予め定数ｂを設定しておき、下記式（Ｃ−２）に従って、重み値αを設定する。
【０１１１】
α  ＝  ｜Ｖｎ｜×ｂ  ・・・  （Ｃ−２）
〔実施形態２〕
以下、本発明の他の実施形態について、図４〜図９を用いて説明すれば、以下のとおりである。
【０１１２】
まず、図４を用いて、本発明の他の実施形態である手書入力装置１Ａの構成について説明すると次のとおりである。図４は、手書入力装置１Ａの機能的な構成の一例について示す機能ブロック図である。図４に示す手書入力装置１Ａは、ユーザーから手書入力による操作を受け付け、受け付けた手書入力を補正した手書入力データを生成し、補正後の手書入力データを出力する。手書入力装置１Ａは、例示的には、タブレット端末や、スマートフォンなどの高機能携帯電話機等のタッチパネル入力装置を備える装置である。
【０１１３】
手書入力装置１Ａは、手書入力の角度の変化に応じて、手書入力に対する描画の追従性や、描画の滑らかさを調整する。
【０１１４】
図４に示すように手書入力装置１Ａは、記憶部１０、制御部２０、および、タッチパネル表示部３０と、を備える構成である。
【０１１５】
記憶部１０は、各種データ、表示コンテンツおよびプログラムを記憶させておくものである。また、制御部２０は、電子機器１の各種機能を統括的に制御するものである。制御部２０は、例えば、タッチパネル表示部３０における表示処理およびタッチ操作に応じた情報処理を制御する。記憶部１０および制御部２０の詳細については後述する。
【０１１６】
タッチパネル表示部３０は、ユーザーからの接触操作を受け付ける操作部３１および画面表示を行う表示部３２を備える。なお、操作部３１および表示部３２は、例示的に、ユーザーから見て操作部３１および表示部３２の順で積層されており、ユーザーが表示部３２の表示画面を視認しながら、当該表示画面に対して接触操作（タッチ操作）を行うことができるようになっている。
【０１１７】
操作部３１は、表示部３２の表示画面に対するユーザーの接触操作を検出して、当該接触操作に関する操作データを生成し、生成した操作データを制御部２０に供給する。なお、操作データには、接触操作位置や、接触操作の向き、加速度および強さなどが含まれていてもよい。
【０１１８】
以下では、説明のため、タッチパネル表示部３０（操作部３１）に対する手書入力操作（文字や曲線の手書入力等）を検出することで操作データを生成するものとする。また、手書入力操作を検出することにより生成された操作データのことを手書入力データと称する。
【０１１９】
手書入力操作の検出方法に特に制限はなく、任意の検出手法を用いることができる。また、操作部３１は、ユーザーの指によるタッチ操作だけでなく、スタイラスやタッチペンなどの入力器具Ｍを用いた接触操作にも対応している。
【０１２０】
操作部３１が接触操作位置を検出する具体的な手法としては、例えば、マトリクス・スイッチ、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式、および、対象物の画像を検出する方式（光センサ方式）などが挙げられる。しかしながら、これに限られず、接触操作位置を検出する手法には、種々の手法を適宜適用することができる。なお、上記した接触操作位置を検出する手法には、「接触」だけでなく「近接」を検出する手法が含まれる。ただし、以下では、説明の便宜上、「接触」および「近接」の区別をすることなく、単に「接触」とのみ記載する。
【０１２１】
また、操作部３１は、所定の間隔により、接触操作の検出を実行し、上記手書入力データを生成する。手書入力データの詳細については後述する。
【０１２２】
表示部３２は、画像データを表示するための表示画面を有しており、制御部２０から画像データを受信し、受信した画像データに基づいてその表示画面に画像を表示するものである。表示部３２は、例えば、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、ＥＬ（Electroluminescence）ディスプレイなどにより実現することができる。
【０１２３】
（記憶部の詳細）
次に、図４を引き続き参照しながら、記憶部１０の詳細について説明する。図４に示すように記憶部１０は、サンプル点履歴情報記憶部１１、角度閾値記憶部１２Ａ、重み記憶部１３、および補正データ履歴情報記憶部１４を含む構成である。
【０１２４】
サンプル点履歴情報記憶部１１には、手書入力データが記憶される。手書入力データは、具体的には、タッチパネル表示部３０におけるタッチ操作のサンプリングによって得られるサンプル点により構成される。よって、サンプル点履歴情報記憶部１１には、サンプリングによって得られるサンプル点が時系列ごとに記憶される。
【０１２５】
サンプル点は、例えば、タッチパネル表示部３０における操作位置を示す座標値（例えば、Ｘ座標およびＹ座標から成る２次元座標）により表現されていてもよい。
【０１２６】
なお、手書入力データには、サンプル点に加えて、前のサンプル点からの変位を示すベクトルが含まれていてもよい。また、手書入力データには、ベクトルの大きさや、角度が含まれていてもよい。また、ベクトルの角度は、基準となる方向（例えば、表示画面の座標系のＸ軸方向）と、ベクトルの方向との間の角度により表現されていてもよい。
【０１２７】
角度閾値記憶部１２Ａには、タッチパネル表示部３０において検出される手書入力の角度の変化量、および／または、変化率と比較するための閾値が記憶される。
【０１２８】
重み記憶部１３には、手書入力データの補正に用いるための重みに関する情報が記憶される。なお、重み記憶部１３に記憶される重み情報は、重み付けを行うための値そのものであってもよいし、重み付けを行うための値を導出するための算出式であってもよい。
【０１２９】
補正データ履歴情報記憶部１４には、補正後の手書入力データ、すなわち補正データが記憶される。補正データは、手書入力データを構成するサンプル点の補正値、および、サンプル点の変位を示すベクトルの補正値（補正ベクトル）を含む。よって、補正データ履歴情報記憶部１４には、サンプル点およびベクトルの補正値が時系列ごとに記憶される。
【０１３０】
（制御部の詳細）
次に、図４をさらに参照しながら、制御部２０の詳細について説明する。図４に示すように、制御部２０は、サンプル点取得部２１、角度条件判定部２２Ａ、重み設定部２３Ａ、補正データ生成部２４Ａ、および描画部２５を備える構成である。
【０１３１】
サンプル点取得部２１は、タッチパネル表示部３０における所定の間隔による接触操作の検出処理（すなわちサンプリング処理）を制御して、サンプル点を取得する。具体的には、サンプル点取得部２１は、所定の間隔で、接触操作の検出を実行するようタッチパネル表示部３０の操作部３１に指示し、操作部３１から手書入力データを取得し、手書入力データに基づいてサンプル点を取得する。言い換えれば、サンプル点取得部２１は、タッチパネル表示部３０において行われる手書入力をサンプリングして得られる複数のサンプル点を取得する。
【０１３２】
また、サンプル点取得部２１は、サンプル点間のベクトル（変位）を算出する。図５を用いて、サンプル点取得部２１によるベクトル算出処理について説明すると次のとおりである。図５は、タッチパネル表示部３０の表示画面において、ユーザーが左から右に水平に手書入力を行ったあとに手書入力方向を変化させる場合について示している。
【０１３３】
図５の“元データ”に示すように、サンプル点が、Ｐ０、Ｐ１、Ｐ２、Ｐ３、およびＰ４の順に取得されているとする。このときサンプル点取得部２１は、Ｐ０Ｐ１、Ｐ１Ｐ２、Ｐ２Ｐ３、およびＰ３Ｐ４に対応するベクトルｖ０、ｖ１、ｖ２、およびｖ３をそれぞれ求める。
【０１３４】
なお、図５では、Ｐ４が最新のサンプル点であり、ベクトルｖ３が最新のベクトルである。
【０１３５】
サンプル点取得部２１は、サンプリングによって得られたサンプル点と、サンプル点に基づいて求めたベクトルと、ベクトルの大きさおよび角度とを、角度条件判定部２２Ａに供給するとともに、サンプル点履歴情報記憶部１１に記憶する。
【０１３６】
角度条件判定部２２Ａは、タッチパネル表示部３０における手書入力の角度の変化量または変化率が閾値以上であるか否かを判定する。角度条件判定部２２Ａは、上記閾値を角度閾値記憶部１２Ａから取得することができる。
【０１３７】
角度条件判定部２２Ａは、サンプル点履歴情報記憶部１１に記憶されているベクトルの角度を取得して手書入力の角度を求めることができる。
【０１３８】
また、角度条件判定部２２Ａは、例えば、手書入力の角度の変化を、（１）最新ベクトルの角度と、当該最新ベクトルよりも前に求められたベクトルの角度とに基づいて求めてもよいし、（２）最新ベクトルの角度と、過去の補正により得られた補正ベクトルの角度とに基づいて求めてもよい。
【０１３９】
例えば、角度条件判定部２２Ａは、（１）最新ベクトルの角度と、当該最新ベクトルの直前のベクトルの角度とに基づいて変化を求めてもよいし、（２）最新ベクトルの角度と、当該最新ベクトルが取得される直前の補正により得られた補正ベクトルの角度とに基づいて手書入力の角度を求めてもよい。
【０１４０】
重み設定部２３Ａは、手書入力データに対する補正を行うための重み値を設定する。詳細は後述するが、手書入力データの補正は、例示的に、最新ベクトルの角度と、直前の補正ベクトルの角度との重み付け加算により実行される。そこで、重み設定部２３Ａは、最新ベクトルに対する重み値と、直前の補正ベクトルに対する重み値とを設定する。
【０１４１】
なお、手書入力データの補正は、“ベクトルの角度”ではなく、“ベクトル”を用いてもよい。すなわち、手書入力データの補正は、最新ベクトルと、直前の補正ベクトルとの重み付け加算により実行してもかまわない。以下において同様である。
【０１４２】
重み設定部２３は、最新ベクトルの角度に対する重み値を直前の補正ベクトルの角度に対する重み値と同一にしてもよい。
【０１４３】
重み設定部２３Ａは、最新ベクトルの角度に対する重み値を直前の補正ベクトルの角度に対する重み値よりも大きくしてもよい。この場合、手書入力の追従性の向上を図ることができる。
【０１４４】
また、重み設定部２３Ａは、最新ベクトルの角度に対する重み値を直前の補正ベクトルの角度に対する重み値よりも小さくしてもよい。この場合、手書入力の結果において描画される曲線の滑らかさを向上させることができる。
【０１４５】
このため、重み設定部２３Ａが設定する重み値は描線をどのように表現したいのかに応じて、適宜大きくしたり小さくしたりすることができる。
【０１４６】
重み設定部２３Ａは、例えば、以下のとおり重み値を設定することができる。
【０１４７】
［設定Ａ］ベクトルの成す角が大きく変化（角度が小さくなった、または、大きくなった）したときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。
【０１４８】
［設定Ｂ］ベクトルの成す角が大きく変化（角度が小さくなった、または、大きくなった）したときにおいて、その変化に対応して曲線の滑らかさを向上させたい場合は、重み値を小さくする。
【０１４９】
［設定Ｃ］ベクトルの成す角がそれほど変わらないのであれば、重み値を均等にする。
【０１５０】
補正データ生成部２４Ａは、重み設定部２３Ａが設定した重み値を用いて手書入力データを補正することで補正データを生成する。また、補正データ生成部２４は、補正ベクトルを補正データとして描画部２５に供給するとともに、補正データを補正データ履歴情報記憶部１４に記憶する。なお、補正データ生成部２４Ａにおける動作の詳細については後述する。
【０１５１】
描画部２５は、補正データ生成部２４から供給される補正データに基づいて手書入力結果を示す画像データを生成し、生成した画像データを表示部３２に供給する。
【０１５２】
（手書入力データの補正の詳細）
以下において、補正データ生成部２４Ａにおける補正について具体的に説明する。具体的には、補正データ生成部２４Ａは、重み設定部２３Ａが設定した重み値を用いて補正角の角度計算を行って、最新ベクトルを補正することで補正ベクトルを得る。
【０１５３】
図５を用いて、補正データ生成部２４Ａにおける手書入力データの補正の概略について説明すると次のとおりである。
【０１５４】
図５に示す、サンプル点Ｐ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４は、手書入力データの“元データ”であり、サンプリングにより得られたサンプル点を示している。
【０１５５】
また、図５に、Ｐ０Ｐ１、Ｐ１Ｐ２、Ｐ２Ｐ３、およびＰ３Ｐ４の各サンプル点間の変位を示すベクトルｖ０、ｖ１、ｖ２、およびｖ３を示している。各ベクトルの大きさは略同じである。なお、ベクトルｖ０、ｖ１の方向を角度の基準とする（すなわち、角度“０°”）。
【０１５６】
図５に示すように、Ｐ０Ｐ１間、およびＰ１Ｐ２間は、手書入力は、左から右にかけて水平方向に行われる。その後、Ｐ２Ｐ３間、およびＰ３Ｐ４間において、手書入力方向が大きく変化する。
【０１５７】
また、Ｐ´３、およびＰ´４は、“重みを一定にした補正値”を示している。Ｐ２Ｐ´３間、Ｐ´３Ｐ´４間の変位を示すベクトルを、それぞれＶ´２、Ｖ´３と示している。
【０１５８】
また、Ｐ´´３、およびＰ´´４は、“重みを変化させた補正値”を示している。Ｐ２Ｐ´´３間、Ｐ´´３Ｐ´´４間の変位を示すベクトルを、それぞれＶ´´２、Ｖ´´３と示している。
【０１５９】
なお、サンプル点Ｐ０〜Ｐ２にかけては角度変化がないため、ベクトルｖ０、ｖ１とその補正値ｖ´０、ｖ´１（ｖ´´０、ｖ´´１）は、同一とする。
【０１６０】
このような場合において得られる“重みを一定にした補正値”および“重みを変化させた補正値”のそれぞれについて説明する。
【０１６１】
［重みを一定にした補正値］
ベクトルｖ２の補正ベクトルｖ´２の角度は、ベクトルｖ２の角度と、直前の補正ベクトルｖ´１の角度との相加平均により得られる。すなわち、ベクトルｖ２の角度と、直前の補正ベクトルｖ´１の角度との均一な重み付けにより、補正ベクトルｖ´２の角度を得ることができる。なお、上記に限られず、最新ベクトルの角度から過去の所定のサンプル点までの過去ベクトルの角度を用いる移動平均の算出式を用いても構わない。
【０１６２】
図５では、ベクトルｖ２において大きく角度が変化しているが、補正ベクトルｖ´１が角度“０°”であるので、補正ベクトルｖ´２は、補正ベクトルｖ´１の影響を大きく受ける。また、補正ベクトルｖ´３についても同様である。
【０１６３】
その結果、サンプル点Ｐ３、Ｐ４と補正値Ｐ´３、Ｐ´４との間に大きな差が生じる。
【０１６４】
なお、上記“［設定Ｃ］ベクトルの成す角がそれほど変わらないのであれば、重み値を均等にする。”の場合、重み設定部２３Ａは、上述のように均一な重みを設定してもよい。
【０１６５】
［重みを変化させた補正値］
以下で説明する手書入力データの補正は、上述の“［設定Ａ］ベクトルの成す角が大きく変化（角度が小さくなった、または、大きくなった）したときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。”に該当する。
【０１６６】
ベクトルｖ２の補正ベクトルｖ´´２の角度は、ベクトルｖ２の角度と、直前の補正ベクトルｖ´´１の角度との加重平均により得られる。この時点の最新ベクトルｖ２の角度に対して補正ベクトルｖ´´１の角度よりも大きな重み付けを行う。よって、補正ベクトルｖ´´２の角度では、ベクトルｖ２の角度変化が大きく反映される。また、補正ベクトルｖ´´３の角度についても同様である。
【０１６７】
その結果、“重みを一定にした補正値”と比べて、より追従性がよく、より滑らかな曲線が得られる補正値Ｐ´´３、Ｐ´´４が得られる。
【０１６８】
次に、補正データ生成部２４Ａにおいて補正値および補正角を算出する手法について具体的に説明する。
【０１６９】
［補正角算出１］
補正データ生成部２４Ａは、重み設定部２３が設定した重みを用いて、最新ベクトルおよび直前の補正ベクトルの角度の加重和を算出することで補正角を算出してもよい。この加重和は、以下の式（Ｃ）により表わすことができる。
【０１７０】
θ´ｎ＝αθｎ＋（１−α）θ´ｎ−１・・・（Ｃ）
上記式（Ｃ）において、θ´ｎは、補正角、θｎは、最新ベクトルの角度、θ´ｎは、最新の補正ベクトルの角度である。また、αは、重み値を示している。
【０１７１】
なお、補正データ生成部２４Ａが上記式（Ｃ）を用いる手法について説明したが、これに限られない。補正データ生成部２４は、上記式（Ｃ）に限られず、最新ベクトルの角度から過去の所定のサンプル点までのベクトルの角度を用いる加重移動平均の算出式を用いても構わない。
【０１７２】
また、角度には、同じ角度を示すものであっても異なる表現がある。例えば、−１０°と、３５０°とは表現方法は異なるが同じ角度を示す。このため、上記角度計算においては、以下の調整処理を行ってもよい。
【０１７３】
図６に示すように、ユーザーがＰ０、Ｐ１、およびＰ２の順で手書入力を行った場合を想定する。ここで、θ１＝３０°とし、θ２＝−３０°とすると角度の差は、θ２−θ１＝−６０°となり、角度の変化の大きさは、６０°となる。
【０１７４】
しかし、θ２＝３３０°と表現されていた場合、θ２−θ１＝３００°となる。よって、角度の差の計算結果が１８０°を超えている場合、その計算結果から３６０°を引くことで角度を調整してもよい。
【０１７５】
例えば、上記の“θ２−θ１＝３００°”の場合、３００°−３６０°＝−６０°と調整してもよい。
【０１７６】
なお、計算結果が、−１８０°未満である場合、計算結果に３６０°を足せばよい。
【０１７７】
［補正角算出２］
補正データ生成部２４Ａは、重み設定部２３が設定した重みを用いて、最新ベクトルの角度の正弦または余弦および直前の補正ベクトルの角度の正弦または余弦の加重和を算出して得られる値に基づいて補正角を算出してもよい。
【０１７８】
ここで、重み付けによる補正角の算出について説明する前に、まず図７を用いて、２つのベクトルの平均角度を求める手法について説明しておく。
【０１７９】
上述のとおり角度には、同じ角度を示すものであっても異なる表現がある。図７に例示するように、角度θ１のベクトルＶ１と、角度θ２のベクトルＶ２とがある場合、次のとおりである（なお、｜・｜は、ベクトルの大きさを示す）。
【０１８０】
まず、角度表現が、θ１＝４５°、θ２＝−４５°であれば、平均は、（θ１＋θ２）／２＝（４５°＋（−４５°））／２＝０°となる。これに対して、角度表現が、θ１＝４５°、θ２＝３１５°であれば、平均は、（θ１＋θ２）／２＝（４５°＋（３１５°））／２＝３００°となる。
【０１８１】
そこで、ベクトルＶ１とベクトルＶ２との平均角度は、ベクトル（ｃｏｓ（θ１）＋ｃｏｓ（θ２），ｓｉｎ（θ１）＋ｓｉｎ（θ２））の角度を求めることで得ることができる。
【０１８２】
Ｘ＝ｃｏｓ（θ１）＋ｃｏｓ（θ２）、Ｙ＝ｓｉｎ（θ１）＋ｓｉｎ（θ２）とすると、下記数式（１）および（２）を計算することによって、平均角度を求めることができる。
【０１８３】
【数１】
2014067285.tif 000003
【０１８４】
【数２】
2014067285.tif 000004
【０１８５】
上記数式（１）および（２）を、図７に示す例に適用すると、下記数式（３）に示すように、
【０１８６】
【数３】
2014067285.tif 000005
【０１８７】
となり、所望の平均値“０”を得ることができる。
【０１８８】
続いて、上記平均角度の算出方法を踏まえたうえで、図８を用いて、重み付けによる補正角の算出について説明する。図８に例示するＰ´ｎ−３、Ｐ´ｎ−２、Ｐ´ｎ−１は、補正後のサンプル点である。また、図８には、Ｐ´ｎ−３からＰ´ｎ−２への変位を示す補正後のベクトルである補正ベクトルＶ´ｎ−２、および、Ｐ´ｎ−２からＰ´ｎ−１への変位を示す補正後のベクトルである補正ベクトルＶ´ｎ−１を示している。
【０１８９】
すなわち、図８に示す例では、ｎ−１番目のサンプル点までは補正値が算出されている。
【０１９０】
ここで、最新のサンプル点Ｐｎの補正（すなわち、補正後のサンプル点Ｐ´ｎ−１から最新のサンプル点Ｐｎへの変位を示す最新ベクトルＶｎの補正）について以下に説明する。なお、最新ベクトルＶｎは、補正ベクトルＶ´ｎ−１と同じ大きさである（｜Ｖ´ｎ−１｜＝｜Ｖｎ｜）。
【０１９１】
補正データ生成部２４Ａは、最新ベクトルＶｎおよび補正ベクトルＶ´ｎ−１に基づいて最新ベクトルＶｎの補正後のベクトルＶ´ｎを算出する。
【０１９２】
より具体的には、上記平均角度の算出方法の場合において、平均角度を求めるときに導出したベクトルに重み値αを適用する。すなわち、補正ベクトル（Ｘ，Ｙ）＝（αｃｏｓ（θｎ）＋（１−α）ｃｏｓ（θ´ｎ−１），αｓｉｎ（θｎ）＋ｓｉｎ（θ´ｎ−１））の角度を求めれば、重み付けを適用した角度を算出することができる。なお、θｎは、最新ベクトルＶｎの角度であり、θ´ｎ−１は、補正ベクトルＶ´ｎ−１の角度である。
【０１９３】
よって、下記数式（４）により、補正後の角度θ´ｎを求めることができる。
【０１９４】
【数４】
2014067285.tif 000006
【０１９５】
以上の説明をまとめると、補正データ生成部２４Ａは、角度が、θｎ＝４５°、θ´ｎ−１＝−４５°というような、−１８０°〜１８０°の間の表現である場合、以下の式（Ｄ）により補正値を求めてもよい。
【０１９６】
θ´ｎ＝αθｎ＋（１−α）θ´ｎ−１    ・・・（Ｄ）
また、補正データ生成部２４Ａは、角度が、θｎ＝４５°、θ´ｎ−１＝３１５°というような、０°〜３６０°の間の表現である場合、以下の数式（５）により補正値を求めればよい。
【０１９７】
【数５】
2014067285.tif 000007
【０１９８】
（処理の流れ）
次に、図９を用いて、手書入力装置１Ａにおける手書入力データの補正処理の流れについて説明する。図９は、手書入力装置１Ａにおける手書入力データの補正処理の流れの一例について示すフローチャートである。
【０１９９】
図９に示すように、タッチパネル表示部３０が手書入力を受け付けると（Ｓ２１）、サンプル点取得部２１が、当該手書入力による手書入力データを取得する（Ｓ２２）。すなわち、サンプル点取得部２１は、サンプリングにより得られる最新ベクトルを取得する。
【０２００】
次に、角度条件判定部２２Ａが、手書入力の角度の変化量または変化率を算出する（Ｓ２３）。具体的には、角度条件判定部２２Ａは、過去ベクトル（元データの変位を示すベクトルまたは補正された変位を示すベクトル）と最新ベクトルとの間における角度の変化量または変化率を算出する（Ｓ２３）。
【０２０１】
さらに、角度条件判定部２２Ａは、上記変化量または変化率が閾値以上か否かを判定する（Ｓ２４）。変位が閾値以上であれば（Ｓ２４においてＹＥＳ）、重み設定部２３Ａが、重みを計算し、補正データを生成するための重み値に設定する（Ｓ２５）。すなわち、重み設定部２３Ａは、補正に用いる最新ベクトルおよび直前の補正ベクトルに応じて計算した重みを重み値に設定する。
【０２０２】
一方、変位が閾値未満の場合（Ｓ２４においてＮＯ）、重み設定部２３Ａは、各変位に対して一定の重みを重み値に設定する（Ｓ２６）。
【０２０３】
次に、補正データ生成部２４Ａが、Ｓ２５またはＳ２６において設定された重み値を用いて補正データを生成する（Ｓ２７）。
【０２０４】
（重み付けに関するより詳細な説明）
以下において、手書入力装置１Ａにおける重み付けに関するより詳細な説明を以下に記載する。
【０２０５】
［重みを変化させるための条件］
以上では、Ｓ２３およびＳ２４において、角度条件判定部２２Ａが、角度の変化量に対する閾値または角度の変化率に対する閾値を判定に用いることについて説明したが、これらの閾値について以下に詳細に説明する。
【０２０６】
なお、以下において｜・｜は、絶対値を取ることを表わす。また、角度の差の絶対値（例えば、｜θ２−θ１｜）は、θ２−θ１の計算結果が１８０°を超えている場合、その計算結果から３６０°を引いた後の値、また、計算結果が、−１８０°未満である場合、計算結果に３６０°を足した後の値に対して絶対値を取るものとする。
【０２０７】
[角度の変化量に対して閾値を設定する]
角度の変化量に対して閾値を設定する場合、以下のとおりに設定することができる。
【０２０８】
［１］予め設定しておいた定数ａと、最新ベクトルＶｎの角度θｎとの差を計算し、下記閾値Ｘに関する条件式（Ｅ−１）を満たす場合に重みを変更するようにしてもよい。
【０２０９】
｜θｎ−ａ｜  ＞  Ｘ  ・・・（Ｅ−１）
［２］  また、最新ベクトルの角度と、過去ベクトルの角度との差を計算し、下記閾値Ｘに関する条件式（Ｅ−２）または（Ｅ−３）を満たす場合に重みを変更するようにしてもよい。
【０２１０】
｜θｎ−θｎ−１｜  ＞  Ｘ  ・・・（Ｅ−２）
または、
｜θｎ−θ´ｎ−１｜  ＞  Ｘ  ・・・（Ｅ−３）
［角度の変化率に対して閾値を設定する］
また、角度の変化率に対して閾値を設定する場合、以下のとおり、最新ベクトルの角度と過去ベクトルの角度との変化率を計算し、下記閾値Ｘに係る条件式（Ｅ−４）および（Ｅ−５）のいずれかを満たす場合に重みを変更するようにしてもよい。
【０２１１】
（｜θｎ｜―｜θｎ−１｜）／｜θｎ−１｜  ＞  Ｘ  ・・・（Ｅ−４）
または、
（｜θｎ｜―｜θ´ｎ−１｜）／｜θ´ｎ−１｜  ＞  Ｘ  ・・・（Ｅ−５）
なお、上記条件式（Ｅ−１）〜（Ｅ−５）は、組み合わせて用いてもよい。
【０２１２】
［重み値の設定方法］
上記“重みを変化させるための条件”を満たした場合、重み設定部２３Ａは、上記Ｓ２５において、例えば、以下のとおり重み値を設定することができる。
【０２１３】
［予め設定されている定数値を重み値として設定する］
［１］  定数値βを用いる
｜θｎ−θｎ−１｜  ＞  Ｘ  を満たす場合、予め設定されている定数値βを重み値αとして設定することができる。
【０２１４】
［２］  重み値テーブルを予め用意しておき、上記“重みを変化させるための条件”を満たした場合、角度の変化量または角度の大きさに応じて、重み値テーブルの値を参照し、重みを決定する
［２−１］重み値テーブルをβ［３］＝｛０．６，０．７，０．８｝と予め設定しておく。そして、角度の変化量と閾値Ｘｎとに応じて以下のとおり重み値αを設定する。
【０２１５】
Ｘ０  ＜  ｜θｎ−θｎ−１｜  ＜  Ｘ１  を満たす場合、β［０］＝｛０．６｝を重み値αとして設定する。
【０２１６】
Ｘ１  ＜  ｜θｎ−θｎ−１｜  ＜  Ｘ２  を満たす場合、β［１］＝｛０．７｝を重み値αとして設定する。
【０２１７】
Ｘ２  ＜  ｜θｎ−θｎ−１｜  ＜  Ｘ３  を満たす場合、β［２］＝｛０．８｝を重み値αとして設定する。
【０２１８】
［２−２］重み値テーブルをβ［３］＝｛０．６，０．７，０．８｝と予め設定しておく。そして、角度の変化率と閾値Ｘｎとに応じて以下のとおり重み値αを設定する。
【０２１９】
Ｘ０  ＜  ｜（θｎ−θ´ｎ−１）／θ´ｎ−１｜  ＜Ｘ１  を満たす場合、β［０］＝｛０．６｝を重み値αとして設定する。
【０２２０】
Ｘ１  ＜  ｜（θｎ−θ´ｎ−１）／θ´ｎ−１｜  ＜Ｘ２  を満たす場合、β［１］＝｛０．７｝を重み値αとして設定する。
【０２２１】
Ｘ２  ＜  ｜（θｎ−θ´ｎ−１）／θ´ｎ−１｜  ＜Ｘ３  を満たす場合、β［２］＝｛０．８｝を重み値αとして設定する。
【０２２２】
［角度の変化等から求められる変数値を重み値として設定する］
角度の変化量または角度の変化率を所定の計算式に適用することで重み値αを設定してもよい。
【０２２３】
［１］  最新の重み値をαｎとし、直前の重み値をαｎ−１とし、また予め定数ｂを設定しておき、下記式（Ｆ−１）に従って重み値αｎを設定する。
【０２２４】
αｎ  ＝  （｜θｎ−θｎ−１｜）  ×  ｂ  ＋  αｎ−１  ・・・  （Ｆ−１）
［２］  最新の重み値をαとし、予め定数ｂを設定しておき、下記式（Ｆ−２）に従って、重み値αを設定する。
【０２２５】
α  ＝  ｜（θｎ−θｎ−１）／θｎ−１｜×ｂ  ・・・  （Ｆ−２）
なお、上記式（Ｆ−１）および（Ｆ−２）において、θｎ−１に、θ´ｎ−１を用いても構わない。
【０２２６】
〔実施形態３〕
以下、本発明のさらに他の実施形態について、図１０〜図１２を用いて説明すれば、以下のとおりである。なお、説明の便宜上、実施形態２にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０２２７】
まず、図１０を用いて、本発明のさらに他の実施形態である手書入力装置１Ｂの構成について説明すると次のとおりである。図１０は、手書入力装置１Ｂの機能的な構成の一例について示す機能ブロック図である。
【０２２８】
手書入力装置１Ａは、手書入力の角度の変化が所定の範囲（例えば、一定）に収まるよう、手書入力データを補正する。
【０２２９】
図１０に示す手書入力装置１Ｂと、図４に示した手書入力装置１Ａとの相違点について説明すると次のとおりである。
【０２３０】
図１０に示す手書入力装置１Ｂは、図４に示した手書入力装置１Ａにおいて次の構成変更を施したものである。まず、手書入力装置１Ａの記憶部１０において、指定変化率記憶部１５を追加するとともに、角度閾値記憶部１２Ａと重み記憶部１３とを省略している。また、手書入力装置１Ａの制御部２０において、変化率指定判定部２６および角度算出部２７、変化率指定部２８を追加し、補正データ生成部２４Ａを、補正データ生成部２４Ｂに変更し、さらに、角度条件判定部２２Ａ、重み設定部２３Ａを省略している。
【０２３１】
以下、手書入力装置１Ａにおいて追加・変更した構成である指定変化率記憶部１５、変化率指定判定部２６、角度算出部２７、補正データ生成部２４Ｂについて説明する。
【０２３２】
（記憶部の追加構成）
指定変化率記憶部１５は、手書入力の角度の変化率の許容範囲を示す指定値が設定される。指定値は、所定の範囲を示すものであってもよいし、定数値であってもよい。また、以下では、指定値が、直前の補正ベクトルと最新ベクトルとが成す角度の変化率を示すものとするが、これに限られない。指定値は、直前の補正ベクトルの角度に対する最新ベクトルの角度の変化率を指定するものであってもよい。
【０２３３】
（制御部の追加・変更構成）
変化率指定判定部２６は、指定変化率記憶部１５に指定値が設定されているか否かを判定し、当該判定結果を角度算出部２７に通知する。
【０２３４】
角度算出部２７は、ベクトルの角度を算出する。また、角度算出部２７は、指定値が設定されている場合には、指定値に応じた補正角を算出する。
【０２３５】
補正データ生成部２４Ｂは、角度算出部２７が算出する補正角に応じて手書入力データを補正する。
【０２３６】
変化率指定部２８は、指定変化率記憶部１５に変化率の指定値を設定する。変化率指定部２８は、ユーザーの操作部３１等における操作に応じて指定値を設定してもよいし、制御部２０において実行されるアプリケーションに応じて設定してもよい。
【０２３７】
（手書入力データの補正の詳細）
以下において、補正データ生成部２４Ｂにおける補正についてより具体的に説明する。図１１を用いて、ベクトルの角度の変化率が一定になるようベクトルを補正し、滑らかな描画曲線を得る方法について例示的に説明する。なお、指定変化率記憶部１５には、指定値として定数値が設定される。
【０２３８】
図１１に示すように、サンプル点Ｑ０、Ｑ１、Ｑ２、Ｑ３、Ｑ４は、手書入力データの“元データ”であり、サンプリングにより得られたサンプル点を示している。
【０２３９】
また、図１１には、Ｑ０Ｑ１、Ｑ１Ｑ２、Ｑ２Ｑ３、およびＱ３Ｑ４の各サンプル点間の変位を示すベクトルｒ０、ｒ１、ｒ２、およびｒ３を示している。各ベクトルの大きさは略同じである。
【０２４０】
ベクトルｒ０は、水平方向に左から右へ向かう変位を示す。ここで、ベクトルｒ０の方向を基準とする。すなわち、ベクトルｒ０の角度は“０”である。また、ベクトルｒ１の角度はθ１である。よって、ベクトルｒ０およびベクトルｒ１の角度は、θ１である。
【０２４１】
従って、以後のサンプリングにおいて、ベクトル間の成す角が一定であれば、すなわち、ベクトル間の成す角の変化率が０であれば、滑らかな曲線を描くことができる。
【０２４２】
ここで、図示のとおり、サンプル点Ｑ２の次にサンプリングされるサンプル点Ｑ３におけるベクトルｒ２とベクトルｒ１とが成す角度θ２が、θ１でない（図１１では、θ２＞θ１）ため、ベクトルの成す角の変化率が０にならない。そこで、ベクトル間の成す角の変化率を０にして滑らかな曲線を描くため、角度算出部２７が補正角を算出し、当該補正角に基づいて補正データ生成部２４Ｂがベクトルｒ２を補正する。
【０２４３】
角度算出部２７は、例えば、補正角θ´２＝θ１を算出する。なお、このとき、角度の基準となるベクトルｒ０とベクトルｒ２とが成す角度は、２×θ１となる。
【０２４４】
補正データ生成部２４Ｂは、ベクトルｒ２を補正した補正ベクトルｒ´２を算出する。補正ベクトルｒ´２は、基準となる角度に対し、角度θ´´２＝θ´２＋θ１＝２×θ１を有する。
【０２４５】
続いて、サンプル点Ｑ３の次にサンプリングされるサンプル点Ｑ４におけるベクトルｒ３とベクトルｒ´２とが成す角度は、θ１でない。
【０２４６】
角度算出部２７は、補正角θ´３を算出する。補正データ生成部２４Ｂは、補正角θ´３に基づいて補正ベクトルｒ´３を生成する。補正ベクトルｒ´３は、基準となる角度に対し、角度θ´´３＝θ´３＋θ´´２＝３×θ１を有する。
【０２４７】
（処理の流れ）
次に、図１２を用いて、手書入力装置１Ｂにおける手書入力データの補正処理の流れについて説明する。図１２は、手書入力装置１Ｂにおける手書入力データの補正処理の流れの一例について示すフローチャートである。
【０２４８】
図１２に示すように、タッチパネル表示部３０が手書入力を受け付けると（Ｓ３１）、サンプル点取得部２１が、当該手書入力による手書入力データを取得する（Ｓ３２）。すなわち、サンプル点取得部２１は、サンプリングにより得られる最新ベクトルを取得する。また、サンプル点取得部２１は、最新ベクトルの角度を算出する（Ｓ３３）。
【０２４９】
次に、変化率指定判定部２６が、変化率の指定の有無を判定する（Ｓ３４）。すなわち、変化率指定判定部２６は、指定値の設定があるか否かを判定する。指定値の設定がない場合（Ｓ３４においてＮＯ）、処理は終了する。
【０２５０】
これに対して、指定値の設定がある場合（Ｓ３５においてＹＥＳ）、角度算出部２７は、指定値に示される変化率に基づいて、直前の補正ベクトルと、最新ベクトルの補正ベクトルとが成す角を補正角として算出する（Ｓ３６）。
【０２５１】
次に、補正データ生成部２４Ｂは、角度算出部２７が算出した補正角を用いて、補正値を決定する（Ｓ３７）。例えば、補正データ生成部２４Ｂは、補正角と直前の補正ベクトルとを用いて、最新ベクトルの補正ベクトルを生成する（Ｓ３７）。
【０２５２】
〔まとめ〕
本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正手段（補正データ生成部２４、２４Ａ）を備える。
【０２５３】
別の観点から言えば、本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位より求められる導出値の変化に応じて、補正対象サンプル点と、当該補正対象サンプル点の直前にサンプリングされた直近サンプル点との変位に対して、該直近サンプリング点よりも前のサンプル点の変位に対する重みよりも大きな重み付けを用いて補正対象サンプル点の変位を補正することで上記手書入力データを生成する補正手段を備える。
【０２５４】
本発明の一態様に係る手書入力プログラムは、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力プログラムであって、サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップをコンピュータに実行させる。
【０２５５】
本発明の一態様に係る手書入力装置の制御方法は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップを含む。
【０２５６】
上記手書入力装置は、例示的には、スタイラスによる入力を受け付けるタブレット入力装置や、手書入力を受け付けるタッチパネルを備えるタッチパネル入力装置である。
【０２５７】
上記サンプル点は、手書入力の入力位置を示すものであり、例えば、２次元座標、すなわちＸ座標、Ｙ座標にて表現することができる。
【０２５８】
また、上記サンプル点の変位とは、あるサンプル点と、該あるサンプル点の次の（前の）サンプル点との間における位置の変化のことである。サンプル点の変位は、例えば、あるサンプル点から別のサンプル点に向かうベクトルにより表現することができる。また、サンプル点をサンプリングするサンプリング間隔は任意に設定することができる。また、手書入力データは手書入力結果を表示するために用いられる描線データである。
【０２５９】
上記サンプル点の変位より求められる導出値は、手書入力の速さ、速度であってもよい。上記導出値は、例えば、サンプル点間の距離であってもよいし、サンプル点間における手書入力の速度や加速度であってもよい。
【０２６０】
また、当該導出値は、変位の方向がなす角度であってもよい。変位の角度を測る基準は、任意に設定することができる。例えば、Ｘ軸を角度の測る基準とし、変位の方向とＸ軸方向とがなす角度と定義することも可能である。また、上記導出値は、角速度や、角加速度であってもよい。
【０２６１】
上記に限定されず、上記導出値は、サンプル点の変位に関するものであればよい。
【０２６２】
上記構成によれば、サンプル点の変位より求められる導出値の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することができる。
【０２６３】
また、上記導出値の変化は、変位の速度の変化量であってもよい。また、上記導出値の変化は、変位の角度の変化量であってもよいし、角度の変化率であってもよい。
【０２６４】
サンプル点の変位の新旧に応じた重み付けとは、例えば、サンプル点が新しいほど大きな重み付けを適用するとともに、サンプル点が古いほど小さな重み付けを適用するということである。逆に、サンプル点が新しいほど小さな重み付けを適用するとともに、サンプル点が古いほど大きな重み付けを適用してもかまわない。なお、上記補正はサンプル点を検出する都度行ってもよい。また、上記重み付けの設定方法は、予め設定されている定数値を適用してもよいし、導出値の変化に応じて設定される変数値を適用してもよい。
【０２６５】
上記構成によれば、上記導出値の変化が大きくなった場合、サンプル点が新しいほど大きな重み付けを用いてサンプル点の変位を補正し、手書入力による描線の追従性を向上させたり、サンプル点が新しいほど小さな重み付けを用いてサンプル点の変位を補正し、手書入力による描線を滑らかにさせたりすることができる。
【０２６６】
このように、上記構成によれば、サンプル点の変位の補正に用いる重み付けを手書入力の入力状況に応じて適宜変更することで、手書入力の追従性の向上、および、円滑化の少なくともいずれかを図ることができるという効果を奏する。
【０２６７】
なお、上記手書入力装置は、コンピュータによって実現してもよく、この場合には、上記手書入力装置における上記補正手段の動作をコンピュータにて実現させる手書入力プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【０２６８】
上記制御プログラムによれば、コンピュータで上記手段を実現することにより、コンピュータ上で手書入力装置を実現することができる。また、上記記録媒体によれば、記録媒体から読み出される制御プログラムを、汎用のコンピュータ上で実現することができる。
【０２６９】
さらに、本発明の一態様に係る手書入力装置では、上記サンプル点の変位より求められる導出値は、上記サンプル点の変位の大きさに基づくものであってもよい。
【０２７０】
上記構成によれば、上記導出値は、上記サンプル点の変位の大きさに基づくものである。上記サンプル点の変位の大きさに基づくものとは、例えば、変位の大きさとサンプル間隔から算出できる変位の速度であってもよい。
【０２７１】
従って、例えば、Ｐ０、Ｐ１、およびＰ２の３つのサンプル点がある場合、上記導出値の変化は、Ｐ０Ｐ１間の速度ｖ０と、Ｐ１Ｐ２間の速度ｖ１との差であってもよいし、速度ｖ０と速度ｖ１との変化率であってもよい。
【０２７２】
上記構成によれば、サンプル点間において速度が大きく変化するような場合において、手書入力の追従性の向上、および、円滑化の少なくともいずれかを図ることができる。
【０２７３】
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、上記導出値の変化が所定の閾値より大きくなったときに、より新しいサンプル点の変位に対してより大きな重み付けを用いる補正を行ってもよい。
【０２７４】
上記構成によれば、上記サンプル点の変位の大きさに基づく上記導出値の変化が大きくなったときに、より新しいサンプル点の変位に対してより大きな重み付けを用いる補正を行う。サンプル点の変位は最新のサンプル点に関するものであってもよい。
【０２７５】
このため、手書入力の速度が上がったような場合において、より新しいサンプル点の変位に対してより大きな重み付けを用いる補正を行う。
【０２７６】
よって、過去のデータも考慮しつつ、より新しい入力データに近い補正値を算出することができ、これにより追従性のよい描画を行うことができる。
【０２７７】
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、上記閾値より大きくなった上記導出値の変化が小さくなったときに、より新しいサンプル点の変位に対してより大きな重み付けを用いる補正を行ってもよい。
【０２７８】
上記構成によれば、手書入力の速度が上がって、その後、当該速度が下がったような場合において、より新しいサンプル点の変位に対してより大きな重み付けを用いる補正を行う。
【０２７９】
よって、速度変化の前後において、追従性を維持し続けることができる。
【０２８０】
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、上記閾値より大きくなった上記導出値の変化が小さくなったときに、より新しいサンプル点の変位に対してより小さな重み付けを用いる補正を行ってもよい。
【０２８１】
上記構成によれば、手書入力の速度が上がって、その後、当該速度が下がったような場合において、より新しいサンプル点の変位に対してより小さい重み付けを用いる補正を行う。
【０２８２】
よって、速度変化の前後において、描画を滑らかにすることができる。
【０２８３】
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、最新のサンプル点と該最新のサンプル点の一つ前のサンプル点との間における変位と、それ以前のサンプル点についての補正により得られた変位との加重平均を用いた補正を行ってもよい。
【０２８４】
上記構成によれば、最新の変位と、ひとつ前の変位の補正値とを用いて補正を行うことができる。
【０２８５】
この補正は例えば、“Ｖ´ｎ＝αＶｎ＋（１−α）Ｖ´ｎ−１”という式により表わすことができる。ここで、Ｖ´ｎは、対象となる補正による補正後の変位を表わす。また、Ｖ´ｎ−１は、対象となる補正のひとつ前の補正により得られた変位を示す。Ｖｎは、補正前の変位を表わす。また、αは重み付け係数を表わす。
【０２８６】
このように、最新の変位と、ひとつ前の変位の補正値とを用いるだけで済むので、所定数の変位を記憶しておき、記憶した所定数の変位を計算に用いる加重移動平均を補正に使う場合よりも、記憶領域が少なくて済む。
【０２８７】
よって精度のよい補正を比較的簡便に行うことができる。
【０２８８】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０２８９】
〔ソフトウェアによる実現例〕
最後に、手書入力装置１の各ブロック、特に制御部２０の各部は、集積回路（ＩＣチップ）上に形成された論理回路によってハードウェア的に実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェア的に実現してもよい。
【０２９０】
後者の場合、手書入力装置１は、各機能を実現するプログラムの命令を実行するＣＰＵ、上記プログラムを格納したＲＯＭ（Read Only Memory）、上記プログラムを展開するＲＡＭ（Random Access Memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである手書入力装置１の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記手書入力装置１に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０２９１】
上記記録媒体としては、一時的でない有形の媒体（non-transitory tangible medium）、例えば、磁気テープやカセットテープ等のテープ類、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク類、ＩＣカード（メモリカードを含む）／光カード等のカード類、マスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ（登録商標）／フラッシュＲＯＭ等の半導体メモリ類、あるいはＰＬＤ（Programmable logic device）やＦＰＧＡ（Field Programmable Gate Array）等の論理回路類などを用いることができる。
【０２９２】
また、手書入力装置１を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（Virtual Private Network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ（Asymmetric Digital Subscriber Line）回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１無線、ＨＤＲ（High Data Rate）、ＮＦＣ（Near Field Communication）、ＤＬＮＡ（Digital Living Network Alliance）、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【０２９３】
本発明は、タブレット端末や、スマートフォンなどの高機能携帯電話機等のタッチパネル入力装置を備える装置に利用することができる。
【符号の説明】
【０２９４】
１、１Ａ、１Ｂ  手書入力装置
１０  記憶部
１１  サンプル点履歴情報記憶部
１２  速度閾値記憶部
１２Ａ  角度閾値記憶部
１３  重み記憶部
１４  補正データ履歴情報記憶部
１５  指定変化率記憶部
２０  制御部
２１  サンプル点取得部
２２  速度条件判定部
２３  重み設定部
２４、２４Ａ、２４Ｂ  補正データ生成部
２５  描画部
２６  変化率指定判定部
２７  角度算出部
２８  変化率指定部
３０  タッチパネル表示部
３１  操作部
３２  表示部
【図１】
2014067285.tif 000008
【図２】
2014067285.tif 000009
【図３】
2014067285.tif 000010
【図４】
2014067285.tif 000011
【図５】
2014067285.tif 000012
【図６】
2014067285.tif 000013
【図７】
2014067285.tif 000014
【図８】
2014067285.tif 000015
【図９】
2014067285.tif 000016
【図１０】
2014067285.tif 000017
【図１１】
2014067285.tif 000018
【図１２】
2014067285.tif 000019