電子機器及びプログラム
【課題】手書き入力された数式中での文字位置を容易に修正できるようにする。
【解決手段】
関数電卓1は、タッチパネル30を有する表示部15と、タッチパネル30に手書き入力された数式を認識し、認識された数式を表示部15に表示させるCPU11とを備える。タッチパネル30は、表示された数式中の各文字部分の何れかについて、文字位置の変更指示を受ける。CPU11は、表示部15に表示された数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補を表示部15に表示させて、何れかの変更先候補をユーザに選択させる。また、CPU11は、ユーザに選択された変更先候補に従って前方文字部分に対する指定文字部分の位置を変更し、表示部15の表示内容を更新する。
【解決手段】
関数電卓1は、タッチパネル30を有する表示部15と、タッチパネル30に手書き入力された数式を認識し、認識された数式を表示部15に表示させるCPU11とを備える。タッチパネル30は、表示された数式中の各文字部分の何れかについて、文字位置の変更指示を受ける。CPU11は、表示部15に表示された数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補を表示部15に表示させて、何れかの変更先候補をユーザに選択させる。また、CPU11は、ユーザに選択された変更先候補に従って前方文字部分に対する指定文字部分の位置を変更し、表示部15の表示内容を更新する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器及びプログラムに関する。
【背景技術】
【0002】
従来より、入力される各種数式の演算を実行して演算結果を表示する電子機器として、関数電卓が知られている。
【0003】
このような関数電卓では、近年、取り扱える関数の種類が多くなってきており、積分等の複雑な演算を行うことが可能となっている。但し、入力キー群を操作して積分等の数式を入力するには、上下限値や被演算関数を決められた順序でキー入力しなければならないため、入力作業に手間がかかってしまう。そこで、タッチパネルによって数式の手書き入力を行わせ、入力された数式を認識する技術が開発されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−72718号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、手書き入力時の筆跡や入力スピードはユーザの個人個人で異なっているため、数式を手書き入力させて認識する場合には、例えば、認識した文字自体は合っていても、数式内での認識位置がズレてしまうことが十分考えられる。
【0006】
このような場合、文字の位置を修正するためには、ユーザに数式を再入力させることも考えられるが、手間がかかってしまうし、再入力時にも文字の誤認識や認識位置のズレが発生する可能性があるため、使い勝手が悪い。
そのため、近年、手書き入力された数式中での文字位置を容易に修正できる技術について、要望が強まっている。
【0007】
本発明の課題は、手書き入力された数式中での文字位置を容易に修正できるようにすることである。
【課題を解決するための手段】
【0008】
以上の課題を解決するため、請求項1に記載の発明は、電子機器において、
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする。
【0009】
また、請求項2記載の発明は、請求項1記載の電子機器において、
前記手書き数式認識手段は、
認識された数式を自然表示形式で前記表示手段に表示させるための表示用データ形式と、認識された数式を演算するための演算用データ形式とのそれぞれの数式データを生成するデータ生成手段を有し、
前記候補表示制御手段は、
前記表示用データ形式の数式データに基づいて、前記複数の変更先候補を生成することを特徴とする。
【0010】
また、請求項3記載の発明は、請求項2記載の電子機器において、
前記候補表示制御手段は、少なくとも、
前記前方文字部分と前記指定文字部分とを同じ大きさでこの順に並べた変更先候補と、
前記指定文字部分を前記前方文字部分の指数とした変更先候補とを生成することを特徴とする。
【0011】
また、請求項4記載の発明は、電子機器において、
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする。
【0012】
また、請求項5記載の発明は、プログラムにおいて、
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とする。
【0013】
また、請求項6記載の発明は、プログラムにおいて、
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とする。
【発明の効果】
【0014】
請求項1,5記載の発明によれば、表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザが行うと、表示された数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とが検出され、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補が表示され、何れかの変更先候補をユーザが選択すると、選択された変更先候補に従って前方文字部分に対する指定文字部分の位置が変更され、表示内容が更新されるので、認識した文字自体が合っていて数式内での認識位置がズレている場合であっても、文字位置の変更指示を行って変更先候補を選択するだけで、数式中での文字位置を修正することができる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【0015】
また、請求項4,6記載の発明によれば、手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、表示内容が更新されるので、認識した文字自体が合っていて数式内での位置が認識されていない場合であっても、数式中での文字位置が修正されることとなる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【図面の簡単な説明】
【0016】
【図1】関数電卓の概略構成を示す平面図である。
【図2】関数電卓の機能構成を示すブロック図である。
【図3】数式表示データのデータ構造を示す図である。
【図4】数式テキストデータのデータ構造を示す図である。
【図5】数式テキストデータのデータ構造を示す図である。
【図6】手書き入力処理の流れを示すフローチャートである。
【図7】認識・表示処理の流れを示すフローチャートである。
【図8】手書き入力処理を説明するための図である。
【図9】手書き入力処理を説明するための図である。
【図10】関数部品バッファの構造を示す図である。
【図11】関数部品バッファの構造を示す図である。
【図12】自動訂正処理の流れを示すフローチャートである。
【図13】手書き入力処理を説明するための図である。
【発明を実施するための最良の形態】
【0017】
以下、添付図面を参照して本発明に係る実施の形態の一例を詳細に説明する。ただし、発明の範囲は、図示例に限定されない。
【0018】
(第1の実施形態)
先ず、図1〜図9を参照して、本発明に係る第1の実施形態を説明する。
[1.1 外観構成]
図1は、本発明に係る電子機器を適用した関数電卓1の概略構成を示す平面図である。
この図に示すように、関数電卓1は、各種キー群を有する入力キー群2と、ディスプレイ3と、を備えている。
【0019】
入力キー群2は、ユーザから数値や演算記号等(以下、これらを包括して「文字」とも称する)の数式構成要素の入力操作を受けたり、各種処理の指示操作を受けたりするためのキー群であり、それぞれ固有の機能を割り当てられた複数のキーを備えている。本実施の形態においては、入力キー群2は、数式の演算を指示するためのEXEキー20や、数式内容の訂正を指示するための訂正キー21などを有している。
【0020】
ディスプレイ3は、LCD(Liquid Crystal Display)やELD(Electronic Luminescent Display)等により構成されており、入力キー群2などの操作に応じた文字や符号、数式、演算結果などの他、関数電卓1を使用するために必要な各種データを表示するようになっている。このディスプレイ3には、本発明における位置変更指示手段としてのタッチパネル30(図2参照)が表示画面全面に亘って一体的に設けられている。
【0021】
タッチパネル30は、ディスプレイ3の表示画面に対する入力ペン(図示省略)の接触位置を検出するようになっている。具体的には、タッチパネル30は、例えば、表示画面の全域、或いは表示画面よりも内側に設けられ、電磁誘導方式、磁気歪式、感圧式等の方式により、表示画面上における接触位置のXY座標を検出する。
【0022】
[1.2 機能構成]
続いて、関数電卓1の機能構成を説明する。
図2は、関数電卓1の概略的な機能構成を示すブロック図である。
【0023】
この図に示すように、関数電卓1は、キー入力部14と、本発明における表示手段としての表示部15と、RAM(Random Access Memory)12と、記憶部13と、本発明における手書き数式認識手段、候補表示制御手段、更新手段及びデータ生成手段としてのCPU(Central Processing Unit)11と、を備えて構成されている。
【0024】
キー入力部14は、上述の入力キー群2を備えており、押下されたキーに対応する操作信号をCPU11に出力するようになっている。
【0025】
表示部15は、上述のディスプレイ3を備えており、CPU11からの表示信号に従って各種情報をディスプレイ3に表示するようになっている。また、この表示部15は、ディスプレイ3と一体的に設けられたタッチパネル30を備えており、表示画面に対する入力ペンの接触位置情報をCPU11に出力するようになっている。
【0026】
RAM12は、情報を一時的に格納する揮発性のメモリであり、実行される各種プログラムやこれら各種プログラムに係るデータ等を格納する複数のワークエリアを有する。具体的には、本実施の形態におけるRAM12には、表示ビットマップデータ120と、入力座標データ121と、入力イメージデータ122と、数式表示データ123と、数式テキストデータ124とが格納されるようになっている。
【0027】
このうち、表示ビットマップデータ120は、ディスプレイ3に表示される画像のビットマップデータである。
入力座標データ121は、タッチパネル30に対してペンタッチ入力(手書き入力)された座標位置(ペンタッチ入力された時点での座標位置)を示すデータである。
入力イメージデータ122は、タッチパネル30に対してペンタッチ入力されたデータの座標列を示すデータである。
【0028】
数式表示データ123は、認識された数式を自然表示形式でディスプレイ3に表示させるためのデータであり、表示用のデータ形式で表されている。より具体的には、図3に一例を示すように、数式表示データ123は、表示の位置及び大きさを示すコードCと、コードCによる表示対象の文字との組で構成されている。なお、図3では、後述の図8(c)に図示される積分関数の数式についての数式表示データ123を示しており、各コードCの内容を簡略化して図示している。この図に示すように、コードC1〜C7は、積分記号「∫」,積分変数の上限値「2」,下限値「1」,被積分関数の文字「x」,「2」,被積分関数の終了記号「d」,積分変数「x」について、表示の位置及び大きさをそれぞれ示している。
【0029】
数式テキストデータ124は、認識された数式を演算するためのデータであり、演算用のデータ形式で表されている。より具体的には、図4,図5に一例を示すように、数式テキストデータ124は、いわゆる一行表示形式で記述されている。
【0030】
記憶部13は、ROM(Read Only Memory)等により構成される不揮発性のメモリであり、各種プログラム及び各種データを記憶している。具体的には、記憶部13は、本発明に係るプログラムとしての手書き入力プログラム130を記憶している。
この手書き入力プログラム130は、後述の手書き入力処理(図6〜図7参照)をCPU11に実行させるためのプログラムである。
【0031】
CPU11は、関数電卓1の各部を中央制御する。具体的には、CPU11は、記憶部13に記憶されているシステムプログラム及び各種アプリケーションプログラムの中から指定されたプログラムをRAM12に展開し、RAM12に展開されたプログラムとの協働で、各種処理を実行する。
【0032】
[1.3 関数電卓の動作]
続いて、関数電卓1の動作を説明する。
図6〜図7は、手書き入力処理の動作を説明するためのフローチャートである。なお、この手書き入力処理は、ユーザによりタッチパネル30やキー入力部14を介して手書き入力処理の実行指示が入力されると、記憶部13から手書き入力プログラムが読み出されてRAM12に適宜展開される結果、当該手書き入力プログラム130とCPU11との協働によって実行される。なお、処理の開始時には、数式はペンタッチ入力されておらず、ディスプレイ3には何も表示されていないものとする。
【0033】
この手書き入力処理においては、まず、図6に示すように、CPU11は訂正キー21が操作されるか否かを判定し(ステップS1)、操作されないと判定した場合(ステップS1;No)には、タッチパネル30に対するペンタッチ操作がされるか否かを判定する(ステップS2)。具体的には、ペンタッチ入力されたことを示す信号をタッチパネル30からCPU11が受信したか否かに基づいて、ステップS2の判別が行われる。
【0034】
このステップS2においてペンタッチ操作がされないと判定した場合(ステップS2;No)には、CPU11は、上述のステップS1に移行し、ペンタッチ操作がされたと判定した場合(ステップS2;Yes)には、タッチパネル30に対する数式の手書き入力を受け付け、入力された内容をディスプレイ3に表示させる(ステップS3)。具体的には、ペンタッチ入力された座標位置を示す入力座標データ121がタッチパネル30からCPU11に送信されると、CPU11は、この入力座標データ121をRAM12に記憶させる。また、CPU11は、入力座標データ121に応じた入力イメージデータ122を生成してRAM12に記憶させるとともに、ペンタッチの軌跡として表示部15に表示させる。
【0035】
次に、CPU11は、タッチパネル30からペンが離れるか否かを判定し(ステップS4)、離れていないと判定した場合(ステップS4;No)には、上述のステップS3に移行する。具体的には、このステップS4では、CPU11は、ペン離れから所定の時間が経過しているか否かを判定する。つまり、複数のストロークで構成される文字の入力や、複数の文字の入力において、入力途中のペン離れにより認識処理が開始されることを防止する必要があるために、所定の時間が経過しているか否かの判別が行われる。なお、所定の時間は、予めユーザにより設定された時間であり、記憶部13等に記憶されているものとする。
【0036】
一方、ステップS4において所定の時間だけタッチパネル30からペンが離れたと判定した場合(ステップS4;Yes)には、CPU11は、入力イメージデータ122に基づいて数式を認識できるか否かを判定する(ステップS5)。
【0037】
このステップS5において、認識できないと判定した場合(ステップS5;No)には、CPU11は、後述のステップS7を経由してステップS1に戻り、次のペン入力を待機する。
【0038】
一方、ステップS5において、認識できると判定した場合(ステップS5;Yes)には、CPU11は、認識・表示処理を行う(ステップS6)。
【0039】
具体的には、図7に示すように、まずCPU11は、入力イメージデータ122に基づいて入力形状を認識するとともに(ステップT1)、その大きさ及び位置を認識する(ステップT2)。
【0040】
次に、CPU11は、ステップT1〜T2での認識結果に基づいて、手書き入力された数式を認識するとともに、数式表示データ123及び数式テキストデータ124を生成し、RAM12に記憶させる(ステップT3、T4)。
【0041】
そして、CPU11は、数式表示データ123に基づいて、認識された数式を自然表示形式のテキストとしてディスプレイ3に表示させ(ステップT5)、認識・表示処理を終了する。なお、このステップT5においては、CPU11は、入力イメージデータ122に基づいて、手書き入力された数式のビットマップもディスプレイ3に表示させるようになっている。
【0042】
以上の認識・表示処理が終了したら、図6に示すように、CPU11は、ユーザによりEXEキー20が操作されるか否かを判定し(ステップS7)、操作されないと判定した場合(ステップS7;No)には、上述のステップS1に移行する。
【0043】
一方、ステップS7においてEXEキー20が操作されたと判定した場合(ステップS7;Yes)には、CPU11は、数式テキストデータ124に基づいて、認識された数式の演算を実行し、演算結果をディスプレイ3に表示させ(ステップS8)、手書き入力処理を終了する。
【0044】
また、上述のステップS1において訂正キー21が操作されたと判定した場合(ステップS1;Yes)には、CPU11は、ディスプレイ3に表示されている数式のテキスト部分がペンタッチされるか否かを判定する(ステップS11)。
【0045】
このステップS11においてテキスト部分がペンタッチされないと判定した場合(ステップS11;No)には、CPU11は他の処理へ移行する。
【0046】
一方、ステップS11においてテキスト部分がペンタッチされたと判定した場合(ステップS11;Yes)には、CPU11は、数式表示データ123に基づいて、ペンタッチにより指定された文字部分(以下、指定文字部分とする)と、この指定文字部分よりも前(左側)に位置する前方文字部分とを検出し、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補を生成する(ステップS12)。より詳細には、このステップS12において、CPU11は、前方文字部分と指定文字部分とを同じ大きさでこの順に並べた変更先候補と、指定文字部分を前方文字部分の指数とした変更先候補との少なくとも2つの候補を生成するようになっている。
【0047】
次に、CPU11は、生成した変換先候補をディスプレイ3に一覧表示させ(ステップS13)、何れかの変換先候補がユーザに選択されるか否かを判定する(ステップS14)。
【0048】
このステップS14において変換先候補が選択されないと判定した場合(ステップS14;No)には、CPU11は、選択が行われるまでステップS14の処理を繰り返す。
【0049】
一方、ステップS14において何れかの変換先候補が選択されたと判定した場合(ステップS14;Yes)には、選択された変換先候補に従って前方文字部分に対する指定文字部分の位置を変更し、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とを更新した後(ステップS15)、上述のステップS7に移行する。
【0050】
[1.4 動作例]
続いて、上記の手書き入力処理のうち、特にステップS11〜S15の処理について、具体的に説明する。
【0051】
(動作例1)
まず、図8(a)の中央部に示すような数式をユーザが手書き入力すると(ステップS3)、図中の左上部に示すような数式が認識され、自然表示形式のテキストとして表示される(ステップS6)。なお、ここで認識された数式では、ユーザが積分変数として手書き入力した文字「x」について、数式内での認識位置がズレている。
【0052】
次に、ユーザが訂正キー21を操作し(ステップS1;Yes)、認識位置のズレている文字「x」の部分をペンタッチにより指定すると(ステップS11;Yes)、図8(b)に示すように、指定文字部分「x」と、その直前の前方文字部分「d」とが検出され、指定文字部分「x」を前方文字部分「d」の指数とした1番目の変換先候補「1:dx」と、前方文字部部分「d」と指定文字部分「x」とが同じ大きさで並べられた2番目の変換先候補「2:dx」と、指定文字部分「x」を前方文字部分「d」の下付き文字とした3番目の変換先候補「3:dx」とが表示される(ステップS13)。
【0053】
そして、ユーザが2番目の変換先候補「2:dx」を選択すると(ステップS14;Yes)、図8(c)や図4に示すように、この変換先候補に従って前方文字部分「d」に対する指定文字部分「x」の位置が変更され、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とが更新される(ステップS15)。
【0054】
(動作例2)
まず、図9(a)の中央部に示すような数式をユーザが手書き入力すると(ステップS3)、図中の左上部に示すような数式が認識され、自然表示形式のテキストとして表示される(ステップS6)。なお、ここで認識された数式では、ユーザが「x」の指数として手書き入力した文字「2」について、数式内での認識位置がズレている。
【0055】
次に、ユーザが訂正キー21を操作し(ステップS1;Yes)、認識位置のズレている文字「2」の部分をペンタッチにより指定すると(ステップS11;Yes)、図9(b)に示すように、指定文字部分「2」と、その直前の前方文字部分「x」とが検出され、指定文字部分「2」を前方文字部分「x」の指数とした1番目の変換先候補「1:x2」と、前方文字部部分「x」と指定文字部分「2」とが同じ大きさで並べられた2番目の変換先候補「2:x2」とが表示される(ステップS13)。
【0056】
そして、ユーザが1番目の変換先候補「1:x2」を選択すると(ステップS14;Yes)、図9(c)や図5に示すように、この変換先候補に従って前方文字部分「x」に対する指定文字部分「2」の位置が変更され、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とが更新される(ステップS15)。
【0057】
以上、本実施の形態によれば、図6のステップS11〜S15や、図8,図9等に示したように、表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザが行うと、数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とが検出された後、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補が表示され、何れかの変更先候補をユーザが選択すると、選択された変更先候補に従って前方文字部分に対する指定文字部分の位置が変更され、表示内容が更新されるので、認識した文字自体が合っていて数式内での認識位置がズレている場合であっても、文字位置の変更指示を行って変更先候補を選択するだけで、数式中での文字位置を修正することができる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【0058】
(第2の実施形態)
続いて、本発明に係る電子機器の第2の実施形態について説明する。なお、上記第1の実施形態との間で互いに対応する部分が同様に構成されている場合には、同一の符号を付して、その説明を省略する。
【0059】
[2.1 構成]
本実施の形態における関数電卓1Aの記憶部13Aは、図2に示すように、手書き入力プログラム130Aを備えている。
この手書き入力プログラム130Aは、後述の手書き入力処理(図6,図12参照)をCPU11に実行させるためのプログラムである。
【0060】
また、関数電卓1AのRAM12Aは、図10,図11に示すように、関数部品バッファ125を有している。なお、図2では、図示の便宜上、関数部品バッファ125の図示を省略している。
【0061】
この関数部品バッファ125には、上述の認識・表示処理において認識される関数の種類に基づいて、当該関数の構成要素の種類ごとにバッファBが形成され、各構成要素の内容(表示対象)が格納されるようになっている。
【0062】
例えば、認識される関数が積分関数の場合には、図10に示すように、関数部品バッファ125には、積分記号を格納するバッファB1と、被積分関数を格納するバッファB2と、積分変数の上限値,下限値を格納するバッファB3,B4と、被積分関数の終了記号を格納するバッファB5と、積分変数を格納するバッファB6とが形成され、各バッファB1〜B6には、その構成要素についての表示対象が格納される。なお、この図では、各バッファBに格納される構成要素の種類を図中の左側欄に示し、各構成要素についての表示対象を図中の右側欄に示している。
【0063】
また、認識される関数が微分関数の場合には、図11の左側欄に示すように、関数部品バッファ125には、微分記号を格納するバッファB1と、微分変数を格納するバッファB2と、微分式を格納するバッファB3と、微分点を格納するバッファB4とが形成され、各バッファB1〜B4には、その構成要素についての表示対象が格納される。
【0064】
また、認識される関数が総和関数の場合には、図11の右側欄に示すように、関数部品バッファ125には、総和記号を格納するバッファB1と、変数を格納するバッファB2と、変数の始点,終点を格納するバッファB3,B4と、被総和関数(一般項)を格納するバッファB5とが形成され、各バッファB1〜B5には、その構成要素についての表示対象が格納される。
【0065】
[2.2 関数電卓の動作]
続いて、関数電卓1Aの動作について説明する。なお、本第2の実施形態における関数電卓1Aでは、上記第1の実施形態の手書き入力処理におけるステップS11〜S15(図6参照)に代えて、以下の自動訂正処理を行うようになっている。
【0066】
図12は、CPU11が記憶部13から手書き入力プログラム130Aを読み出して実行する手書き入力処理のうち、自動訂正処理の動作を説明するためのフローチャートである。
【0067】
この図に示すように、上記第1の実施形態における手書き入力処理のステップS1(図6参照)で訂正キー21が操作されたと判定した場合(ステップS1;Yes)には、CPU11は、RAM12から数式表示データ123を読み取った後(ステップU1)、この数式表示データ123に基づいて、手書き入力された数式が所定の関数を有するか否かを判定する(ステップU2)。なお、本実施の形態においては、所定の関数として、積分関数や微分係数、総和関数などが用いられている。
【0068】
このステップU2において数式が所定の関数を有しないと判定した場合(ステップU2;No)には、CPU11は、数式の自動訂正が不可能である旨のメッセージをディスプレイ3に表示させる(ステップU10)。
【0069】
次に、CPU11は、ディスプレイ3の表示内容をステップU1の段階まで戻して、ユーザによるマニュアル操作によって数式の訂正を行った後(ステップU9)、自動訂正処理を終了して、上述のステップS7(図6参照)に移行する。なお、マニュアル操作によって数式の訂正を行うとは、具体的には、上記第1の実施形態の手書き入力処理におけるステップS11〜S15の処理によって数式の訂正を行うことを意味する。
【0070】
一方、上述のステップU2において数式が所定の関数を有すると判定した場合(ステップU2;Yes)には、CPU11は、当該関数の種類と数式表示データ123の内容(特に表示位置の情報など)とに基づいて、この関数の構成要素の種類ごとのバッファBを関数部品バッファ125に形成した後、各構成要素についての表示対象を、対応するバッファBに格納させる(ステップU3)。
【0071】
次に、CPU11は、情報の格納されていないバッファBが関数部品バッファ125にあるか否かを判定し(ステップU4)、ないと判定した場合(ステップU4;No)には、上述のステップU10に移行する。
【0072】
一方、ステップU4において情報の格納されていないバッファBがあると判定した場合(ステップU4;Yes)、つまり関数内の何れかの構成要素について表示対象が未認識であると判定した場合には、CPU11は、数式表示データ123における文字のうち、表示対象が未認識となっている構成要素の表示位置近傍に表示されており、かつ、未だ何れの構成要素の表示対象にもされていない文字を検出し、情報の格納されていないバッファBに入力する(ステップU5)。これにより、情報の格納されていないバッファBの内容、つまり未認識の構成要素についての表示対象が、未だ何れの構成要素の表示対象にもされていない文字とされる。
【0073】
なお、このステップU5において情報の格納されていないバッファBが複数ある場合、つまり関数内の複数の構成要素の表示対象が未認識である場合には、CPU11は、情報の格納されていない何れか1つのバッファBを選択して、このバッファB(以下、選択バッファBとする)に対応する構成要素の種類をディスプレイ3に表示させるとともに、数式表示データ123における文字のうち、未だ何れの構成要素の表示対象にもされていない文字を検出し、入力候補としてディスプレイ3に一覧表示させた後、この中からユーザに選択された文字を、選択バッファBに入力するようになっている。そして、CPU11は、表示対象が未認識となっている各構成要素について、このような処理を繰り返すようになっている。但し、この処理を繰り返すことで、表示対象が未認識となっている構成要素が1つだけになった場合には、通常のステップU5の場合と同様に、数式表示データ123における文字のうち、表示対象が未認識となっている構成要素の表示位置近傍に表示されており、かつ、未だ何れの構成要素の表示対象にもされていない文字を検出し、情報の格納されていないバッファBに自動で入力することとしても良い。
【0074】
次に、CPU11は、関数部品バッファ125の内容に基づいて、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とを更新する(ステップU7)。
【0075】
次に、CPU11は、更新後の数式の内容が正しいか間違っているかをユーザに選択させ(ステップU8)、間違っていると選択された場合(ステップU8;No)には上述のステップU9に移行し、正しいと選択された場合(ステップU8;Yes)には、自動訂正処理を終了して、上述のステップS7(図6参照)に移行する。
【0076】
[2.3 動作例]
続いて、上記の自動訂正処理について、図13を参照しながら具体的に説明する。なお、この図13では、ユーザにより手書き入力された数式の図示を省略している。
【0077】
まず、ユーザにより数式が手書き入力されて(ステップS3)、図13(a)の左上部に示すような積分関数の数式が認識されると(ステップT1,T2)、この数式が自然表示形式のテキストとして表示される(ステップS6)。なお、ここで認識された数式では、ユーザが被積分関数として手書き入力した文字「x2」と,積分変数として手書き入力した文字「x」とについて、数式内での認識位置がズレている。
【0078】
この状態から訂正キー21が操作されると(ステップS1;Yes)、数式表示データ123で表される数式内に積分関数が含まれると判定され(ステップU2;Yes)、関数部品バッファ125には、積分記号を格納するバッファB1と、被積分関数を格納するバッファB2と、積分変数の上限値,下限値を格納するバッファB3,B4と、被積分関数の終了記号を格納するバッファB5と、積分変数を格納するバッファB6とが形成され、各バッファB1〜B6に対し、図中の右部に示すような内容が格納される(ステップU3)。なお、この時点では、被積分関数,積分変数を格納するバッファB2,B4には、情報が格納されておらず、表示対象が未認識な状態となっている。
【0079】
次に、図13(b)に示すように、情報の格納されていない複数のバッファB2,B4が関数部品バッファ125にあると判定された後(ステップU4;Yes)、バッファB2に対応する構成要素の種類「被積分関数」が表示されるとともに、数式表示データ123における文字のうち、未だ何れの構成要素の表示対象にもされていない文字「x2」,「x」がディスプレイ3に一覧表示される。そして、ユーザによって文字「x2」が選択されると、当該文字「x2」がバッファB2に入力される。
【0080】
また、図13(c)に示すように、情報の格納されていないバッファB4に対応する構成要素の種類「積分変数」が表示されるとともに、数式表示データ123における文字のうち、未だ何れの構成要素の表示対象にもされていない文字「x」がディスプレイ3に一覧表示される。そして、ユーザによって文字「x」が選択されると、当該文字「x」がバッファB4に入力される。
【0081】
そして、関数部品バッファ125の内容に基づいて、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とが更新される(ステップU7)。
【0082】
以上、本実施の形態によれば、図12のステップU1〜U7や、図13等に示したように、手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として表示内容が更新されるので、認識した文字自体が合っていて数式内での位置が認識されていない場合であっても、数式中での文字位置が修正されることとなる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【0083】
なお、上記の実施の形態における関数電卓1,1Aの各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能であることは勿論である。
【0084】
例えば、上記では関数電卓の動作として説明しているが、タッチパネル付き表示部を有する電子機器に、上記の実施形態で説明した動作を行わせるプログラムをインストールして、当該電子機器のコンピュータにより本発明を実現させるようにしても良い。
【符号の説明】
【0085】
1,1A 関数電卓
2 入力キー群
3 ディスプレイ
11 CPU
12 RAM
13,13A 記憶部
14 キー入力部
15 表示部
30 タッチパネル
130,130A 手書き入力プログラム
【技術分野】
【0001】
本発明は、電子機器及びプログラムに関する。
【背景技術】
【0002】
従来より、入力される各種数式の演算を実行して演算結果を表示する電子機器として、関数電卓が知られている。
【0003】
このような関数電卓では、近年、取り扱える関数の種類が多くなってきており、積分等の複雑な演算を行うことが可能となっている。但し、入力キー群を操作して積分等の数式を入力するには、上下限値や被演算関数を決められた順序でキー入力しなければならないため、入力作業に手間がかかってしまう。そこで、タッチパネルによって数式の手書き入力を行わせ、入力された数式を認識する技術が開発されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−72718号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、手書き入力時の筆跡や入力スピードはユーザの個人個人で異なっているため、数式を手書き入力させて認識する場合には、例えば、認識した文字自体は合っていても、数式内での認識位置がズレてしまうことが十分考えられる。
【0006】
このような場合、文字の位置を修正するためには、ユーザに数式を再入力させることも考えられるが、手間がかかってしまうし、再入力時にも文字の誤認識や認識位置のズレが発生する可能性があるため、使い勝手が悪い。
そのため、近年、手書き入力された数式中での文字位置を容易に修正できる技術について、要望が強まっている。
【0007】
本発明の課題は、手書き入力された数式中での文字位置を容易に修正できるようにすることである。
【課題を解決するための手段】
【0008】
以上の課題を解決するため、請求項1に記載の発明は、電子機器において、
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする。
【0009】
また、請求項2記載の発明は、請求項1記載の電子機器において、
前記手書き数式認識手段は、
認識された数式を自然表示形式で前記表示手段に表示させるための表示用データ形式と、認識された数式を演算するための演算用データ形式とのそれぞれの数式データを生成するデータ生成手段を有し、
前記候補表示制御手段は、
前記表示用データ形式の数式データに基づいて、前記複数の変更先候補を生成することを特徴とする。
【0010】
また、請求項3記載の発明は、請求項2記載の電子機器において、
前記候補表示制御手段は、少なくとも、
前記前方文字部分と前記指定文字部分とを同じ大きさでこの順に並べた変更先候補と、
前記指定文字部分を前記前方文字部分の指数とした変更先候補とを生成することを特徴とする。
【0011】
また、請求項4記載の発明は、電子機器において、
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする。
【0012】
また、請求項5記載の発明は、プログラムにおいて、
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とする。
【0013】
また、請求項6記載の発明は、プログラムにおいて、
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とする。
【発明の効果】
【0014】
請求項1,5記載の発明によれば、表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザが行うと、表示された数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とが検出され、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補が表示され、何れかの変更先候補をユーザが選択すると、選択された変更先候補に従って前方文字部分に対する指定文字部分の位置が変更され、表示内容が更新されるので、認識した文字自体が合っていて数式内での認識位置がズレている場合であっても、文字位置の変更指示を行って変更先候補を選択するだけで、数式中での文字位置を修正することができる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【0015】
また、請求項4,6記載の発明によれば、手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、表示内容が更新されるので、認識した文字自体が合っていて数式内での位置が認識されていない場合であっても、数式中での文字位置が修正されることとなる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【図面の簡単な説明】
【0016】
【図1】関数電卓の概略構成を示す平面図である。
【図2】関数電卓の機能構成を示すブロック図である。
【図3】数式表示データのデータ構造を示す図である。
【図4】数式テキストデータのデータ構造を示す図である。
【図5】数式テキストデータのデータ構造を示す図である。
【図6】手書き入力処理の流れを示すフローチャートである。
【図7】認識・表示処理の流れを示すフローチャートである。
【図8】手書き入力処理を説明するための図である。
【図9】手書き入力処理を説明するための図である。
【図10】関数部品バッファの構造を示す図である。
【図11】関数部品バッファの構造を示す図である。
【図12】自動訂正処理の流れを示すフローチャートである。
【図13】手書き入力処理を説明するための図である。
【発明を実施するための最良の形態】
【0017】
以下、添付図面を参照して本発明に係る実施の形態の一例を詳細に説明する。ただし、発明の範囲は、図示例に限定されない。
【0018】
(第1の実施形態)
先ず、図1〜図9を参照して、本発明に係る第1の実施形態を説明する。
[1.1 外観構成]
図1は、本発明に係る電子機器を適用した関数電卓1の概略構成を示す平面図である。
この図に示すように、関数電卓1は、各種キー群を有する入力キー群2と、ディスプレイ3と、を備えている。
【0019】
入力キー群2は、ユーザから数値や演算記号等(以下、これらを包括して「文字」とも称する)の数式構成要素の入力操作を受けたり、各種処理の指示操作を受けたりするためのキー群であり、それぞれ固有の機能を割り当てられた複数のキーを備えている。本実施の形態においては、入力キー群2は、数式の演算を指示するためのEXEキー20や、数式内容の訂正を指示するための訂正キー21などを有している。
【0020】
ディスプレイ3は、LCD(Liquid Crystal Display)やELD(Electronic Luminescent Display)等により構成されており、入力キー群2などの操作に応じた文字や符号、数式、演算結果などの他、関数電卓1を使用するために必要な各種データを表示するようになっている。このディスプレイ3には、本発明における位置変更指示手段としてのタッチパネル30(図2参照)が表示画面全面に亘って一体的に設けられている。
【0021】
タッチパネル30は、ディスプレイ3の表示画面に対する入力ペン(図示省略)の接触位置を検出するようになっている。具体的には、タッチパネル30は、例えば、表示画面の全域、或いは表示画面よりも内側に設けられ、電磁誘導方式、磁気歪式、感圧式等の方式により、表示画面上における接触位置のXY座標を検出する。
【0022】
[1.2 機能構成]
続いて、関数電卓1の機能構成を説明する。
図2は、関数電卓1の概略的な機能構成を示すブロック図である。
【0023】
この図に示すように、関数電卓1は、キー入力部14と、本発明における表示手段としての表示部15と、RAM(Random Access Memory)12と、記憶部13と、本発明における手書き数式認識手段、候補表示制御手段、更新手段及びデータ生成手段としてのCPU(Central Processing Unit)11と、を備えて構成されている。
【0024】
キー入力部14は、上述の入力キー群2を備えており、押下されたキーに対応する操作信号をCPU11に出力するようになっている。
【0025】
表示部15は、上述のディスプレイ3を備えており、CPU11からの表示信号に従って各種情報をディスプレイ3に表示するようになっている。また、この表示部15は、ディスプレイ3と一体的に設けられたタッチパネル30を備えており、表示画面に対する入力ペンの接触位置情報をCPU11に出力するようになっている。
【0026】
RAM12は、情報を一時的に格納する揮発性のメモリであり、実行される各種プログラムやこれら各種プログラムに係るデータ等を格納する複数のワークエリアを有する。具体的には、本実施の形態におけるRAM12には、表示ビットマップデータ120と、入力座標データ121と、入力イメージデータ122と、数式表示データ123と、数式テキストデータ124とが格納されるようになっている。
【0027】
このうち、表示ビットマップデータ120は、ディスプレイ3に表示される画像のビットマップデータである。
入力座標データ121は、タッチパネル30に対してペンタッチ入力(手書き入力)された座標位置(ペンタッチ入力された時点での座標位置)を示すデータである。
入力イメージデータ122は、タッチパネル30に対してペンタッチ入力されたデータの座標列を示すデータである。
【0028】
数式表示データ123は、認識された数式を自然表示形式でディスプレイ3に表示させるためのデータであり、表示用のデータ形式で表されている。より具体的には、図3に一例を示すように、数式表示データ123は、表示の位置及び大きさを示すコードCと、コードCによる表示対象の文字との組で構成されている。なお、図3では、後述の図8(c)に図示される積分関数の数式についての数式表示データ123を示しており、各コードCの内容を簡略化して図示している。この図に示すように、コードC1〜C7は、積分記号「∫」,積分変数の上限値「2」,下限値「1」,被積分関数の文字「x」,「2」,被積分関数の終了記号「d」,積分変数「x」について、表示の位置及び大きさをそれぞれ示している。
【0029】
数式テキストデータ124は、認識された数式を演算するためのデータであり、演算用のデータ形式で表されている。より具体的には、図4,図5に一例を示すように、数式テキストデータ124は、いわゆる一行表示形式で記述されている。
【0030】
記憶部13は、ROM(Read Only Memory)等により構成される不揮発性のメモリであり、各種プログラム及び各種データを記憶している。具体的には、記憶部13は、本発明に係るプログラムとしての手書き入力プログラム130を記憶している。
この手書き入力プログラム130は、後述の手書き入力処理(図6〜図7参照)をCPU11に実行させるためのプログラムである。
【0031】
CPU11は、関数電卓1の各部を中央制御する。具体的には、CPU11は、記憶部13に記憶されているシステムプログラム及び各種アプリケーションプログラムの中から指定されたプログラムをRAM12に展開し、RAM12に展開されたプログラムとの協働で、各種処理を実行する。
【0032】
[1.3 関数電卓の動作]
続いて、関数電卓1の動作を説明する。
図6〜図7は、手書き入力処理の動作を説明するためのフローチャートである。なお、この手書き入力処理は、ユーザによりタッチパネル30やキー入力部14を介して手書き入力処理の実行指示が入力されると、記憶部13から手書き入力プログラムが読み出されてRAM12に適宜展開される結果、当該手書き入力プログラム130とCPU11との協働によって実行される。なお、処理の開始時には、数式はペンタッチ入力されておらず、ディスプレイ3には何も表示されていないものとする。
【0033】
この手書き入力処理においては、まず、図6に示すように、CPU11は訂正キー21が操作されるか否かを判定し(ステップS1)、操作されないと判定した場合(ステップS1;No)には、タッチパネル30に対するペンタッチ操作がされるか否かを判定する(ステップS2)。具体的には、ペンタッチ入力されたことを示す信号をタッチパネル30からCPU11が受信したか否かに基づいて、ステップS2の判別が行われる。
【0034】
このステップS2においてペンタッチ操作がされないと判定した場合(ステップS2;No)には、CPU11は、上述のステップS1に移行し、ペンタッチ操作がされたと判定した場合(ステップS2;Yes)には、タッチパネル30に対する数式の手書き入力を受け付け、入力された内容をディスプレイ3に表示させる(ステップS3)。具体的には、ペンタッチ入力された座標位置を示す入力座標データ121がタッチパネル30からCPU11に送信されると、CPU11は、この入力座標データ121をRAM12に記憶させる。また、CPU11は、入力座標データ121に応じた入力イメージデータ122を生成してRAM12に記憶させるとともに、ペンタッチの軌跡として表示部15に表示させる。
【0035】
次に、CPU11は、タッチパネル30からペンが離れるか否かを判定し(ステップS4)、離れていないと判定した場合(ステップS4;No)には、上述のステップS3に移行する。具体的には、このステップS4では、CPU11は、ペン離れから所定の時間が経過しているか否かを判定する。つまり、複数のストロークで構成される文字の入力や、複数の文字の入力において、入力途中のペン離れにより認識処理が開始されることを防止する必要があるために、所定の時間が経過しているか否かの判別が行われる。なお、所定の時間は、予めユーザにより設定された時間であり、記憶部13等に記憶されているものとする。
【0036】
一方、ステップS4において所定の時間だけタッチパネル30からペンが離れたと判定した場合(ステップS4;Yes)には、CPU11は、入力イメージデータ122に基づいて数式を認識できるか否かを判定する(ステップS5)。
【0037】
このステップS5において、認識できないと判定した場合(ステップS5;No)には、CPU11は、後述のステップS7を経由してステップS1に戻り、次のペン入力を待機する。
【0038】
一方、ステップS5において、認識できると判定した場合(ステップS5;Yes)には、CPU11は、認識・表示処理を行う(ステップS6)。
【0039】
具体的には、図7に示すように、まずCPU11は、入力イメージデータ122に基づいて入力形状を認識するとともに(ステップT1)、その大きさ及び位置を認識する(ステップT2)。
【0040】
次に、CPU11は、ステップT1〜T2での認識結果に基づいて、手書き入力された数式を認識するとともに、数式表示データ123及び数式テキストデータ124を生成し、RAM12に記憶させる(ステップT3、T4)。
【0041】
そして、CPU11は、数式表示データ123に基づいて、認識された数式を自然表示形式のテキストとしてディスプレイ3に表示させ(ステップT5)、認識・表示処理を終了する。なお、このステップT5においては、CPU11は、入力イメージデータ122に基づいて、手書き入力された数式のビットマップもディスプレイ3に表示させるようになっている。
【0042】
以上の認識・表示処理が終了したら、図6に示すように、CPU11は、ユーザによりEXEキー20が操作されるか否かを判定し(ステップS7)、操作されないと判定した場合(ステップS7;No)には、上述のステップS1に移行する。
【0043】
一方、ステップS7においてEXEキー20が操作されたと判定した場合(ステップS7;Yes)には、CPU11は、数式テキストデータ124に基づいて、認識された数式の演算を実行し、演算結果をディスプレイ3に表示させ(ステップS8)、手書き入力処理を終了する。
【0044】
また、上述のステップS1において訂正キー21が操作されたと判定した場合(ステップS1;Yes)には、CPU11は、ディスプレイ3に表示されている数式のテキスト部分がペンタッチされるか否かを判定する(ステップS11)。
【0045】
このステップS11においてテキスト部分がペンタッチされないと判定した場合(ステップS11;No)には、CPU11は他の処理へ移行する。
【0046】
一方、ステップS11においてテキスト部分がペンタッチされたと判定した場合(ステップS11;Yes)には、CPU11は、数式表示データ123に基づいて、ペンタッチにより指定された文字部分(以下、指定文字部分とする)と、この指定文字部分よりも前(左側)に位置する前方文字部分とを検出し、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補を生成する(ステップS12)。より詳細には、このステップS12において、CPU11は、前方文字部分と指定文字部分とを同じ大きさでこの順に並べた変更先候補と、指定文字部分を前方文字部分の指数とした変更先候補との少なくとも2つの候補を生成するようになっている。
【0047】
次に、CPU11は、生成した変換先候補をディスプレイ3に一覧表示させ(ステップS13)、何れかの変換先候補がユーザに選択されるか否かを判定する(ステップS14)。
【0048】
このステップS14において変換先候補が選択されないと判定した場合(ステップS14;No)には、CPU11は、選択が行われるまでステップS14の処理を繰り返す。
【0049】
一方、ステップS14において何れかの変換先候補が選択されたと判定した場合(ステップS14;Yes)には、選択された変換先候補に従って前方文字部分に対する指定文字部分の位置を変更し、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とを更新した後(ステップS15)、上述のステップS7に移行する。
【0050】
[1.4 動作例]
続いて、上記の手書き入力処理のうち、特にステップS11〜S15の処理について、具体的に説明する。
【0051】
(動作例1)
まず、図8(a)の中央部に示すような数式をユーザが手書き入力すると(ステップS3)、図中の左上部に示すような数式が認識され、自然表示形式のテキストとして表示される(ステップS6)。なお、ここで認識された数式では、ユーザが積分変数として手書き入力した文字「x」について、数式内での認識位置がズレている。
【0052】
次に、ユーザが訂正キー21を操作し(ステップS1;Yes)、認識位置のズレている文字「x」の部分をペンタッチにより指定すると(ステップS11;Yes)、図8(b)に示すように、指定文字部分「x」と、その直前の前方文字部分「d」とが検出され、指定文字部分「x」を前方文字部分「d」の指数とした1番目の変換先候補「1:dx」と、前方文字部部分「d」と指定文字部分「x」とが同じ大きさで並べられた2番目の変換先候補「2:dx」と、指定文字部分「x」を前方文字部分「d」の下付き文字とした3番目の変換先候補「3:dx」とが表示される(ステップS13)。
【0053】
そして、ユーザが2番目の変換先候補「2:dx」を選択すると(ステップS14;Yes)、図8(c)や図4に示すように、この変換先候補に従って前方文字部分「d」に対する指定文字部分「x」の位置が変更され、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とが更新される(ステップS15)。
【0054】
(動作例2)
まず、図9(a)の中央部に示すような数式をユーザが手書き入力すると(ステップS3)、図中の左上部に示すような数式が認識され、自然表示形式のテキストとして表示される(ステップS6)。なお、ここで認識された数式では、ユーザが「x」の指数として手書き入力した文字「2」について、数式内での認識位置がズレている。
【0055】
次に、ユーザが訂正キー21を操作し(ステップS1;Yes)、認識位置のズレている文字「2」の部分をペンタッチにより指定すると(ステップS11;Yes)、図9(b)に示すように、指定文字部分「2」と、その直前の前方文字部分「x」とが検出され、指定文字部分「2」を前方文字部分「x」の指数とした1番目の変換先候補「1:x2」と、前方文字部部分「x」と指定文字部分「2」とが同じ大きさで並べられた2番目の変換先候補「2:x2」とが表示される(ステップS13)。
【0056】
そして、ユーザが1番目の変換先候補「1:x2」を選択すると(ステップS14;Yes)、図9(c)や図5に示すように、この変換先候補に従って前方文字部分「x」に対する指定文字部分「2」の位置が変更され、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とが更新される(ステップS15)。
【0057】
以上、本実施の形態によれば、図6のステップS11〜S15や、図8,図9等に示したように、表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザが行うと、数式中の各文字部分のうち、指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とが検出された後、前方文字部分に対する指定文字部分の位置関係が互いに異なる複数の変更先候補が表示され、何れかの変更先候補をユーザが選択すると、選択された変更先候補に従って前方文字部分に対する指定文字部分の位置が変更され、表示内容が更新されるので、認識した文字自体が合っていて数式内での認識位置がズレている場合であっても、文字位置の変更指示を行って変更先候補を選択するだけで、数式中での文字位置を修正することができる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【0058】
(第2の実施形態)
続いて、本発明に係る電子機器の第2の実施形態について説明する。なお、上記第1の実施形態との間で互いに対応する部分が同様に構成されている場合には、同一の符号を付して、その説明を省略する。
【0059】
[2.1 構成]
本実施の形態における関数電卓1Aの記憶部13Aは、図2に示すように、手書き入力プログラム130Aを備えている。
この手書き入力プログラム130Aは、後述の手書き入力処理(図6,図12参照)をCPU11に実行させるためのプログラムである。
【0060】
また、関数電卓1AのRAM12Aは、図10,図11に示すように、関数部品バッファ125を有している。なお、図2では、図示の便宜上、関数部品バッファ125の図示を省略している。
【0061】
この関数部品バッファ125には、上述の認識・表示処理において認識される関数の種類に基づいて、当該関数の構成要素の種類ごとにバッファBが形成され、各構成要素の内容(表示対象)が格納されるようになっている。
【0062】
例えば、認識される関数が積分関数の場合には、図10に示すように、関数部品バッファ125には、積分記号を格納するバッファB1と、被積分関数を格納するバッファB2と、積分変数の上限値,下限値を格納するバッファB3,B4と、被積分関数の終了記号を格納するバッファB5と、積分変数を格納するバッファB6とが形成され、各バッファB1〜B6には、その構成要素についての表示対象が格納される。なお、この図では、各バッファBに格納される構成要素の種類を図中の左側欄に示し、各構成要素についての表示対象を図中の右側欄に示している。
【0063】
また、認識される関数が微分関数の場合には、図11の左側欄に示すように、関数部品バッファ125には、微分記号を格納するバッファB1と、微分変数を格納するバッファB2と、微分式を格納するバッファB3と、微分点を格納するバッファB4とが形成され、各バッファB1〜B4には、その構成要素についての表示対象が格納される。
【0064】
また、認識される関数が総和関数の場合には、図11の右側欄に示すように、関数部品バッファ125には、総和記号を格納するバッファB1と、変数を格納するバッファB2と、変数の始点,終点を格納するバッファB3,B4と、被総和関数(一般項)を格納するバッファB5とが形成され、各バッファB1〜B5には、その構成要素についての表示対象が格納される。
【0065】
[2.2 関数電卓の動作]
続いて、関数電卓1Aの動作について説明する。なお、本第2の実施形態における関数電卓1Aでは、上記第1の実施形態の手書き入力処理におけるステップS11〜S15(図6参照)に代えて、以下の自動訂正処理を行うようになっている。
【0066】
図12は、CPU11が記憶部13から手書き入力プログラム130Aを読み出して実行する手書き入力処理のうち、自動訂正処理の動作を説明するためのフローチャートである。
【0067】
この図に示すように、上記第1の実施形態における手書き入力処理のステップS1(図6参照)で訂正キー21が操作されたと判定した場合(ステップS1;Yes)には、CPU11は、RAM12から数式表示データ123を読み取った後(ステップU1)、この数式表示データ123に基づいて、手書き入力された数式が所定の関数を有するか否かを判定する(ステップU2)。なお、本実施の形態においては、所定の関数として、積分関数や微分係数、総和関数などが用いられている。
【0068】
このステップU2において数式が所定の関数を有しないと判定した場合(ステップU2;No)には、CPU11は、数式の自動訂正が不可能である旨のメッセージをディスプレイ3に表示させる(ステップU10)。
【0069】
次に、CPU11は、ディスプレイ3の表示内容をステップU1の段階まで戻して、ユーザによるマニュアル操作によって数式の訂正を行った後(ステップU9)、自動訂正処理を終了して、上述のステップS7(図6参照)に移行する。なお、マニュアル操作によって数式の訂正を行うとは、具体的には、上記第1の実施形態の手書き入力処理におけるステップS11〜S15の処理によって数式の訂正を行うことを意味する。
【0070】
一方、上述のステップU2において数式が所定の関数を有すると判定した場合(ステップU2;Yes)には、CPU11は、当該関数の種類と数式表示データ123の内容(特に表示位置の情報など)とに基づいて、この関数の構成要素の種類ごとのバッファBを関数部品バッファ125に形成した後、各構成要素についての表示対象を、対応するバッファBに格納させる(ステップU3)。
【0071】
次に、CPU11は、情報の格納されていないバッファBが関数部品バッファ125にあるか否かを判定し(ステップU4)、ないと判定した場合(ステップU4;No)には、上述のステップU10に移行する。
【0072】
一方、ステップU4において情報の格納されていないバッファBがあると判定した場合(ステップU4;Yes)、つまり関数内の何れかの構成要素について表示対象が未認識であると判定した場合には、CPU11は、数式表示データ123における文字のうち、表示対象が未認識となっている構成要素の表示位置近傍に表示されており、かつ、未だ何れの構成要素の表示対象にもされていない文字を検出し、情報の格納されていないバッファBに入力する(ステップU5)。これにより、情報の格納されていないバッファBの内容、つまり未認識の構成要素についての表示対象が、未だ何れの構成要素の表示対象にもされていない文字とされる。
【0073】
なお、このステップU5において情報の格納されていないバッファBが複数ある場合、つまり関数内の複数の構成要素の表示対象が未認識である場合には、CPU11は、情報の格納されていない何れか1つのバッファBを選択して、このバッファB(以下、選択バッファBとする)に対応する構成要素の種類をディスプレイ3に表示させるとともに、数式表示データ123における文字のうち、未だ何れの構成要素の表示対象にもされていない文字を検出し、入力候補としてディスプレイ3に一覧表示させた後、この中からユーザに選択された文字を、選択バッファBに入力するようになっている。そして、CPU11は、表示対象が未認識となっている各構成要素について、このような処理を繰り返すようになっている。但し、この処理を繰り返すことで、表示対象が未認識となっている構成要素が1つだけになった場合には、通常のステップU5の場合と同様に、数式表示データ123における文字のうち、表示対象が未認識となっている構成要素の表示位置近傍に表示されており、かつ、未だ何れの構成要素の表示対象にもされていない文字を検出し、情報の格納されていないバッファBに自動で入力することとしても良い。
【0074】
次に、CPU11は、関数部品バッファ125の内容に基づいて、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とを更新する(ステップU7)。
【0075】
次に、CPU11は、更新後の数式の内容が正しいか間違っているかをユーザに選択させ(ステップU8)、間違っていると選択された場合(ステップU8;No)には上述のステップU9に移行し、正しいと選択された場合(ステップU8;Yes)には、自動訂正処理を終了して、上述のステップS7(図6参照)に移行する。
【0076】
[2.3 動作例]
続いて、上記の自動訂正処理について、図13を参照しながら具体的に説明する。なお、この図13では、ユーザにより手書き入力された数式の図示を省略している。
【0077】
まず、ユーザにより数式が手書き入力されて(ステップS3)、図13(a)の左上部に示すような積分関数の数式が認識されると(ステップT1,T2)、この数式が自然表示形式のテキストとして表示される(ステップS6)。なお、ここで認識された数式では、ユーザが被積分関数として手書き入力した文字「x2」と,積分変数として手書き入力した文字「x」とについて、数式内での認識位置がズレている。
【0078】
この状態から訂正キー21が操作されると(ステップS1;Yes)、数式表示データ123で表される数式内に積分関数が含まれると判定され(ステップU2;Yes)、関数部品バッファ125には、積分記号を格納するバッファB1と、被積分関数を格納するバッファB2と、積分変数の上限値,下限値を格納するバッファB3,B4と、被積分関数の終了記号を格納するバッファB5と、積分変数を格納するバッファB6とが形成され、各バッファB1〜B6に対し、図中の右部に示すような内容が格納される(ステップU3)。なお、この時点では、被積分関数,積分変数を格納するバッファB2,B4には、情報が格納されておらず、表示対象が未認識な状態となっている。
【0079】
次に、図13(b)に示すように、情報の格納されていない複数のバッファB2,B4が関数部品バッファ125にあると判定された後(ステップU4;Yes)、バッファB2に対応する構成要素の種類「被積分関数」が表示されるとともに、数式表示データ123における文字のうち、未だ何れの構成要素の表示対象にもされていない文字「x2」,「x」がディスプレイ3に一覧表示される。そして、ユーザによって文字「x2」が選択されると、当該文字「x2」がバッファB2に入力される。
【0080】
また、図13(c)に示すように、情報の格納されていないバッファB4に対応する構成要素の種類「積分変数」が表示されるとともに、数式表示データ123における文字のうち、未だ何れの構成要素の表示対象にもされていない文字「x」がディスプレイ3に一覧表示される。そして、ユーザによって文字「x」が選択されると、当該文字「x」がバッファB4に入力される。
【0081】
そして、関数部品バッファ125の内容に基づいて、数式表示データ123及び数式テキストデータ124の内容と、ディスプレイ3の表示内容とが更新される(ステップU7)。
【0082】
以上、本実施の形態によれば、図12のステップU1〜U7や、図13等に示したように、手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として表示内容が更新されるので、認識した文字自体が合っていて数式内での位置が認識されていない場合であっても、数式中での文字位置が修正されることとなる。従って、数式を再入力する場合と比較して、手書き入力された数式中での文字位置を容易に修正することができる。
【0083】
なお、上記の実施の形態における関数電卓1,1Aの各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能であることは勿論である。
【0084】
例えば、上記では関数電卓の動作として説明しているが、タッチパネル付き表示部を有する電子機器に、上記の実施形態で説明した動作を行わせるプログラムをインストールして、当該電子機器のコンピュータにより本発明を実現させるようにしても良い。
【符号の説明】
【0085】
1,1A 関数電卓
2 入力キー群
3 ディスプレイ
11 CPU
12 RAM
13,13A 記憶部
14 キー入力部
15 表示部
30 タッチパネル
130,130A 手書き入力プログラム
【特許請求の範囲】
【請求項1】
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする電子機器。
【請求項2】
前記手書き数式認識手段は、
認識された数式を自然表示形式で前記表示手段に表示させるための表示用データ形式と、認識された数式を演算するための演算用データ形式とのそれぞれの数式データを生成するデータ生成手段を有し、
前記候補表示制御手段は、
前記表示用データ形式の数式データに基づいて、前記複数の変更先候補を生成することを特徴とする請求項1記載の電子機器。
【請求項3】
前記候補表示制御手段は、少なくとも、
前記前方文字部分と前記指定文字部分とを同じ大きさでこの順に並べた変更先候補と、
前記指定文字部分を前記前方文字部分の指数とした変更先候補とを生成することを特徴とする請求項2記載の電子機器。
【請求項4】
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする電子機器。
【請求項5】
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とするプログラム。
【請求項6】
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とするプログラム。
【請求項1】
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする電子機器。
【請求項2】
前記手書き数式認識手段は、
認識された数式を自然表示形式で前記表示手段に表示させるための表示用データ形式と、認識された数式を演算するための演算用データ形式とのそれぞれの数式データを生成するデータ生成手段を有し、
前記候補表示制御手段は、
前記表示用データ形式の数式データに基づいて、前記複数の変更先候補を生成することを特徴とする請求項1記載の電子機器。
【請求項3】
前記候補表示制御手段は、少なくとも、
前記前方文字部分と前記指定文字部分とを同じ大きさでこの順に並べた変更先候補と、
前記指定文字部分を前記前方文字部分の指数とした変更先候補とを生成することを特徴とする請求項2記載の電子機器。
【請求項4】
タッチパネルを有する表示手段と、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
を備えることを特徴とする電子機器。
【請求項5】
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記表示手段に表示された数式中の各文字部分の何れかについて、文字位置の変更指示をユーザから受ける位置変更指示手段と、
前記表示手段に表示された数式中の各文字部分のうち、前記位置変更指示手段によって指定された指定文字部分と、この指定文字部分よりも前に位置する前方文字部分とを検出するとともに、前記前方文字部分に対する前記指定文字部分の位置関係が互いに異なる複数の変更先候補を前記表示手段に表示させて、何れかの変更先候補をユーザに選択させる候補表示制御手段と、
ユーザに選択された変更先候補に従って前記前方文字部分に対する前記指定文字部分の位置を変更し、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とするプログラム。
【請求項6】
タッチパネルを有する表示手段を備えた電子機器のコンピュータを、
前記タッチパネルに手書き入力された数式を認識し、当該認識された数式を前記表示手段に表示させる手書き数式認識手段と、
前記手書き入力された数式が所定の関数を有しており、かつ、当該所定の関数における複数の構成要素のうち、何れかの構成要素について表示対象が未認識の場合に、この構成要素についての表示対象を、前記手書き入力された数式中の文字のうち、未だ何れの構成要素の表示対象にもされていない文字として、前記表示手段の表示内容を更新する更新手段と、
として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−34263(P2011−34263A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−178685(P2009−178685)
【出願日】平成21年7月31日(2009.7.31)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願日】平成21年7月31日(2009.7.31)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]