(57)【要約】【課題】文字の運筆を表現することを目的とする。【解決手段】字画（コンター）を書き始めるべき位置に各コンターで最小の制御点番号の制御点を配置し、さらに規則的な順序が割り当てられた複数の制御点によって字画を表現する。そして、文字を表示する際には、各制御点の制御点番号に基づいて、字画を一部の領域ずつ時系列に徐々に表示していくから、ユーザは文字を構成する各々の字画をどのような筆の運びで描けばよいかを視覚的に把握することができる。また、１つの字画を表現するコンターと、その字画の運筆の方向を表す記号又は図形を表現したコンターとを対応付けた構造のフォントデータを用いてもよい。この場合、制御点に割り当てられた制御点番号に基づいて、字画における運筆方向を判断し、判断した運筆方向を字画と共に表示するから、ユーザは文字を構成する各々の字画をどのような筆の運びで描けばよいかを視覚的に把握することができる。【選択図】図６
2008076555.tif 000002
【特許請求の範囲】
【請求項１】
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、
前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の一部の領域ずつ表示体に表示させる運筆描画手段と
を備えることを特徴とする画像表示装置。
【請求項２】
前記制御点に割り当てられた順序は、運筆が開始される輪郭部分を起点として前記輪郭に沿って昇順又は降順となる番号によって表されており、
前記運筆描画手段は、前記字画において最小番号の制御点及び最大番号の制御点によって表された輪郭部分を表示開始位置とし、前記最小番号の制御点からは昇順に従うとともに前記最大番号の制御点から降順に従って、各制御点によって表された輪郭部分を順番に表示していく
ことを特徴とする請求項１記載の画像表示装置。
【請求項３】
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、
前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の運筆方向を判断し、判断した運筆方向を表示体に表示させる運筆描画手段と
を備えることを特徴とする画像表示装置。
【請求項４】
前記制御点に割り当てられた順序は、運筆が開始される輪郭部分を起点として前記輪郭に沿って昇順又は降順となる番号によって表されており、
前記運筆描画手段は、前記字画において最小番号の制御点によって表された輪郭から当該最小番号よりも大きい番号の制御点によって表された輪郭に向かう方向、及び、前記字画において最大番号の制御点によって表された輪郭部分から当該最大番号よりも小さい番号の制御点によって表された輪郭に向かう方向を、前記運筆方向と判断する
ことを特徴とする請求項３記載の画像表示装置。
【請求項５】
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表されるとともに、前記字画の運筆方向を表す記号又は図形の輪郭が、複数の制御点によって表された字形データを取得する取得手段と、
前記字形データの制御点に基づいて、前記字画及び前記記号又は前記図形を表示体に表示させる運筆描画手段と
を備えることを特徴とする画像表示装置。
【請求項６】
複数の前記字形データの各々には、筆順に相当する順序が割り当てられており、
前記字形データの制御点によって表される輪郭の字画を表示する通常描画手段と、
前記字形データの各々に割り当てられた前記順序に従って、各々の前記字画を順番に表示体に表示させる筆順描画手段と、
前記通常描画手段、前記筆順描画手段又は前記運筆描画手段のうちのどの描画手段によって表示体に表示させるかを選択する選択手段と
を備えることを特徴とする請求項１〜５のいずれか１項に記載の画像表示装置。
【請求項７】
前記制御点は、隣り合う２つの制御点間を直線で結ぶオンカーブ制御点と、自身の隣にある２つの前記オンカーブ制御点間を２次ベジエ曲線で結ぶオフカーブ制御点とを含むことを特徴とする請求項１〜６のいずれか１項に記載の画像表示装置。
【請求項８】
コンピュータを、
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、
前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の一部の領域ずつ表示体に表示させる運筆描画手段と
して機能させるためのプログラム。
【請求項９】
コンピュータを、
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、
前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の運筆方向を判断し、判断した運筆方向を表示体に表示させる運筆描画手段と
して機能させるためのプログラム。
【請求項１０】
コンピュータを、
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表されるとともに、前記字画の運筆方向を表す記号又は図形の輪郭が複数の制御点によって表された字形データを取得する取得手段と、
前記字形データの制御点に基づいて、前記字画及び前記記号又は前記図形を表示体に表示させる運筆描画手段と
して機能させるためのプログラム。
【請求項１１】
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データのデータ構造であって、当該字画の運筆開始位置に相当する輪郭を表す前記制御点には、所定の順序が割り当てられている
ことを特徴とするデータ構造。
【請求項１２】
規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データのデータ構造であって、前記字画の運筆の方向を表す記号又は図形の輪郭が複数の制御点によって表されている
ことを特徴とするデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字を構成する字画の運筆を表現するための技術に関する。
【背景技術】
【０００２】
文字は複数の字画が組み合わされることによって表現されている。字画とは、一筆で描くことができる線のことである。例えば「口」という漢字は３つの字画によって構成されているし、「Ｃ」というアルファベットは１つの字画によって構成されている。それぞれの字画を描く順番は予め決められているから、文字を学習する者にとって、その字画を描く順番（以下、筆順という）を知ることは重要である。特許文献１には、文字を構成する字画の輪郭を、文字全体の輪郭とともに記憶しておき、字画を筆順どおりに１画ずつ表示する技術が開示されている。
【特許文献１】特開平９−２４４６１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、字画の筆順のほかに、それぞれの字画をどのような筆の運びで書くかという点も重要である。例えば、「口」という漢字の場合、最初に描くべき字画は、上から下に向かって筆を運ぶことで描かれる。このように字画をどの位置からどのような方向に筆を運んで描くかということを「運筆」というが、特許文献１に記載の技術では、この運筆を表現することはできない。
【０００４】
そこで、本発明は、文字を構成する字画の運筆を表現することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る画像表示装置は、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の一部の領域ずつ表示体に表示させる運筆描画手段とを備えることを特徴とする。本発明によれば、文字を構成する字画の運筆を表現することができる。
【０００６】
上記発明の好ましい態様において、前記制御点に割り当てられた順序は、運筆が開始される輪郭部分を起点として前記輪郭に沿って昇順又は降順となる番号によって表されており、前記運筆描画手段は、前記字画において最小番号の制御点及び最大番号の制御点によって表された輪郭部分を表示開始位置とし、前記最小番号の制御点からは昇順に従うとともに前記最大番号の制御点から降順に従って、各制御点によって表された輪郭部分を順番に表示していく。
【０００７】
また、本発明に係る画像表示装置は、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の運筆方向を判断し、判断した運筆方向を表示体に表示させる運筆描画手段とを備えることを特徴とする。本発明によれば、文字を構成する字画の運筆を表現することができる。
【０００８】
上記発明の好ましい態様において、前記制御点に割り当てられた順序は、運筆が開始される輪郭部分を起点として前記輪郭に沿って昇順又は降順となる番号によって表されており、前記運筆描画手段は、前記字画において最小番号の制御点によって表された輪郭から当該最小番号よりも大きい番号の制御点によって表された輪郭に向かう方向、及び、前記字画において最大番号の制御点によって表された輪郭部分から当該最大番号よりも小さい番号の制御点によって表された輪郭に向かう方向を、前記運筆方向と判断することを特徴とする。
【０００９】
また、本発明に係る画像表示装置は、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表されるとともに、前記字画の運筆方向を表す記号又は図形の輪郭が、複数の制御点によって表された字形データを取得する取得手段と、前記字形データの制御点に基づいて、前記字画及び前記記号又は前記図形を表示体に表示させる運筆描画手段とを備えることを特徴とする。本発明によれば、文字を構成する字画の運筆を表現することができる。
【００１０】
上記のいずれの発明においても、複数の前記字形データの各々には、筆順に相当する順序が割り当てられており、前記字形データの制御点によって表される輪郭の字画を表示する通常描画手段と、前記字形データの各々に割り当てられた前記順序に従って、各々の前記字画を順番に表示体に表示させる筆順描画手段と、前記通常描画手段、前記筆順描画手段又は前記運筆描画手段のうちのどの描画手段によって表示体に表示させるかを選択する選択手段とを備えるようにしてもよい。
【００１１】
また、上記のいずれの発明においても、例えば前記制御点は、隣り合う２つの制御点間を直線で結ぶオンカーブ制御点と、自身の隣にある２つの前記オンカーブ制御点間を２次ベジエ曲線で結ぶオフカーブ制御点とを含んでいる。これにより、一般的なアウトライン方式のフォントデータとフォーマットを合わせることができる。
【００１２】
また、本発明に係るプログラムは、コンピュータを、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の一部の領域ずつ表示体に表示させる運筆描画手段として機能させる。
【００１３】
また、本発明に係るプログラムは、コンピュータを、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データを取得する取得手段と、前記取得手段において取得された字形データの運筆が開始される輪郭部分を表す前記制御点を特定し、特定した前記制御点から前記順序に基づいて前記字画の運筆方向を判断し、判断した運筆方向を表示体に表示させる運筆描画手段として機能させる。
【００１４】
また、本発明に係るプログラムは、コンピュータを、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表されるとともに、前記字画の運筆方向を表す記号又は図形の輪郭が複数の制御点によって表された字形データを取得する取得手段と、前記字形データの制御点に基づいて、前記字画及び前記記号又は前記図形を表示体に表示させる運筆描画手段として機能させる。
【００１５】
本発明に係るデータ構造は、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データのデータ構造であって、当該字画の運筆開始位置に相当する輪郭を表す前記制御点には、所定の順序が割り当てられていることを特徴とする。
【００１６】
また、本発明に係るデータ構造は、規則的な順序が割り当てられた複数の制御点によって字画の輪郭が表された字形データのデータ構造であって、前記字画の運筆の方向を表す記号又は図形の輪郭が複数の制御点によって表されていることを特徴とする。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態を説明する。
（１）実施の形態
図１は、実施形態に係る画像表示装置１のハードウェア構成を示した図である。
図示のように、画像表示装置１は、ＣＰＵ（Central Processing Unit）１１と、ＲＯＭ（Read Only Memory）１２と、ＲＡＭ（Random Access Memory）１３と、ＶＲＡＭ（Video Random Access Memory）１４と、記憶性液晶表示体１５と、表示制御装置１６と、電源１７と、電源制御装置１８と、コネクタ１９と、記憶制御装置２０と、Ｉ／Ｏ２１と、キー２２と、記憶装置２３とを備えている。ＣＰＵ１１は、ＲＯＭ１２に記憶されている制御プログラムを読み出してＲＡＭ１３に展開し、その制御プログラムに記述された手順に従って処理を実行する。コネクタ１９に対しては、所謂リムーバブルメディアのような可搬性の記憶媒体２４が着脱自在である。この記憶媒体２４は、例えばＳＤ（Secure Digital）カードのようなフラッシュメモリ内蔵のカード型記憶媒体であってもよいし、例えばフロッピー（登録商標）ディスクなどの磁気媒体を利用したディスク型記憶媒体であってもよい。記憶装置２３はフラッシュメモリやハードディスクなどの不揮発性の記憶手段である。記憶装置２３又は記憶媒体２４には、文字の輪郭を表すフォントデータが多数記憶されている。また、記憶装置２３には、ＣＰＵ１１によって実行されるＯＳ（Operating System）や、フォントデータに基づいて記憶性液晶表示体１５に文字を表示するためのプログラムであるレンダラが記憶されている。
【００１８】
記憶制御装置２０は、ＣＰＵ１１の指示に従い、コネクタ１９に装着された記憶媒体２４又は記憶装置２３からフォントデータを読み出してＲＡＭ１３に転送する。ＣＰＵ１１は、このフォントデータを解釈してビットマップ形式の画像データに変換し、これをＶＲＡＭ１４に格納する。記憶性液晶表示体１５は、コレステリック液晶や電気泳動などを利用した表示手段であり、電力供給が停止しても画像を表示し続けることができるという記憶性を有している。ＶＲＡＭ１４に書き込まれた画像データはＣＰＵ１１の指示のもとで表示制御装置１６に供給される。表示制御装置１６は記憶性液晶表示体１５を制御して上記画像データに基づいた画像を表示させる。キー２２は、利用者によって操作される操作手段であり、ペンデバイスやジョイスティックなどの操作デバイスを含んでいる。Ｉ／Ｏ２１は、キー２２の操作状態を監視しており、ユーザによってキー２２が操作されるとその操作に応じた信号をＣＰＵ１１に供給する。電源１７は、例えば充電可能な電池であり、電源制御装置１８は、電源１７のオンオフ制御や電力の残量監視など各種の電源管理を行う。
【００１９】
ところで、フォントデータには、大別してビットマップ形式と、アウトライン形式と、ストローク形式の３種類があるが、本実施形態では、アウトライン方式のフォントデータの特にＴＴＦ（True Type Font）と呼ばれるものを用いる。
ここで、図２を参照しながらＴＴＦの基本技術について説明する。図２上段は、「口」という文字（漢字）をＴＴＦによって表したものである。文字の輪郭の周囲に沿って、矩形と円形の図形が配置されているが、これらはいずれも「制御点」と呼ばれるものである。矩形の図形はオンカーブ制御点（オンカーブポイント）であり、円形の図形はオフカーブ制御点（オフカーブポイント）である（以降の図において同じ）。ＴＴＦでは、文字の輪郭を１又は複数の「コンター」によって表現する。コンターとは、直線または２次ベジエ曲線を連結することによって表される閉じた線図のことであり、この線図によって文字の輪郭（字形）が表わされる。例えばオンカーブ制御点が連続している場合は、それら隣り合う２つの制御点が直線で結ばれる。一方、オフカーブ制御点が現れた場合には、そのオフカーブ制御点の隣にある２つのオンカーブ制御点が２次ベジエ曲線で結ばれる。なお、２つのオフカーブ制御点が隣り合う場合は、それらの中点にオンカーブ制御点を補って２つの２次ベジエ曲線で結べばよい。
【００２０】
例えば図３に示す制御点Ａ，Ｂ，Ｃ，Ｅをオンカーブ制御点とし、制御点Ｄをオフカーブ制御点とすると、直線Ａ−Ｂと、２次ベジエ曲線Ｃ−Ｄ−Ｅはそれぞれ、次の数式で表される点Ｐの集合（直線）と、点Ｑの集合（２次ベジエ曲線）として表現される。
Ｐ＝（１−ｔ）Ａ＋ｔＢ
Ｑ＝（１−ｔ）2Ｃ＋２ｔ（１−ｔ）Ｄ＋ｔ2Ｅ
ｔは、０≦ｔ≦１の範囲で連続的に変化する媒介変数である。直線Ａ−Ｂにおいて、ｔ＝０の場合には点Ｐは点Ａに一致し、ｔ＝１の場合には点Ｐは点Ｂに一致する。同様に、２次ベジエ曲線Ｃ−Ｄ−Ｅにおいて、ｔ＝０の場合には点Ｑは点Ｃに一致し、ｔ＝１の場合には点Ｑは点Ｅに一致する。
【００２１】
ここで、図４は、１つの文字を表すフォントデータを例示した図である。
図４に示すように、フォントデータは、各制御点に対して昇順に割り当てられた「制御点番号」と、その「制御点の種別」（オンカーブ制御点かオフカーブ制御点か）と、その制御点の平面上の「位置」（Ｘ，Ｙ座標）との集合によって表されている。これらのフォントデータによって１つの文字の輪郭が表わされる。さらに、１つのフォントデータに対しては、そのフォントデータに含まれるコンターの総数と、各々のコンターの終端となる制御点番号とが対応付けられている。例えば図５に示すように、「Ｄ」というアルファベットの輪郭は、２つのコンターｃ１，ｃ２によって表されているから、図４に示すとおり、コンターの総数は「２」である。また、コンターｃ１においては、コンターの終端となる制御点番号は「７」であり、コンターｃ２においては、コンターの終端となる制御点番号は「１２」である。よって、図４に示すとおり、コンターの終端となる制御点番号は「７，１２」である。なお、図４及び後述する各図においては制御点番号を「１」から開始する例を示すが、制御点番号は「０」から開始されてもよいし、それ以外の数から開始されるものであってもよい。
【００２２】
ＣＰＵ１１は、レンダラを実行することによって、アウトライン方式のフォントデータをビットマップの画像データに変換し、これを表示制御装置１６に供給する。この場合、ＣＰＵ１１は、ＶＲＡＭ上に展開された画像データを一定の方向（通常は水平方向）に沿って走査し、その走査ラインとコンターとが交差する点を求める。このとき、ＣＰＵ１１は、或る変数ｗ（初期値は０）をＲＡＭ１３上に保持しておく。そして、ＣＰＵ１１は、小さい制御点番号から大きい制御点番号に進む方向に描いたコンターが、走査ラインに対して下から上に交差したか又は上から下に交差したかを判定する。そして、ＣＰＵ１１は、判断の結果が前者なら変数ｗに１を加え、後者なら変数ｗから１を減じる。図５に示すように、走査ラインＬはコンターｃ１，ｃ２によっていくつかの区間に区分されることになるが、ＣＰＵ１１は、変数ｗ＝０の区間においては何も処理を行わず、変数ｗが０でない区間（図中のｗ＝１の区間）には有色画素を配置する（つまり有色で塗りつぶす）。なお、この手順の詳細は、例えばhttp://developer.apple.com/textfonts/TTRefMan/RM０2/Chap2.html において公開されている
【００２３】
以上のような規則に従って、ＣＰＵ１１が、図２上段のように配置された制御点に従ってコンターを形成し、さらにそのコンターの内側を塗りつぶすと、図２下段に示すように、「口」という文字が記憶性液晶表示体１５に表示されることになる。なお、この図では、オンカーブ制御点及びオフカーブ制御点といった制御点を示しているが、これは補助的に示しているに過ぎず、実際の画像には現れない。
以上が、ＴＴＦの基本技術である。
【００２４】
一般的なＴＴＦでは、字画が連結していれば、それらの字画の輪郭を１つのコンターで表現している。これに対し、本実施形態では、一筆で描くことができる字画ごとにコンターを定義する。図６は、コンターをそれぞれの字画ごとに定義して、「口」という文字をＴＴＦによって表したものである。コンターを字画ごとに定義した結果として、図２のものに比べると、図６では制御点の数が増えていることが分かる。
【００２５】
また、各々のコンターにおいて、最も小さい制御点番号が割り当てられた制御点は、それぞれの字画の運筆が開始される位置（領域部分）に配置されている。そして、その最小番号の制御点を起点として、輪郭に沿って配置された他の制御点に対して、輪郭の周りを１周するようにして制御点番号が昇順に割り当てられている。例えば、１画目の字画において最も小さい制御点番号「１」が割り当てられた制御点は、その１画目の字画を描き始める位置に配置されている。そして、その制御点番号「１」の制御点から輪郭に沿って時計回りに昇順の番号が割り当てられている。従って、ＣＰＵ１１は、１画目の字画を表現する制御点を参照して、まずは、運筆が開始される輪郭部分を表す制御点（最も小さい制御点番号「１」）を特定し、特定した制御点から制御点番号の順序に従って、字画の一部の領域ずつ表示することで、運筆を表現することができる。
【００２６】
同様に、２画目の字画において最も小さい制御点番号「２５」が割り当てられた制御点は、その２画目の字画を描き始める位置に配置され、その制御点番号「２５」の制御点から輪郭に沿って時計回りに昇順の番号が割り当てられている。従って、ＣＰＵ１１は、２画目の字画を表現する制御点を参照して、まずは、運筆が開始される輪郭部分を表す制御点（最も小さい制御点番号「２５」）を特定し、特定した制御点から制御点番号の順序に従って、字画の一部の領域ずつ表示することで、運筆を表現することができる。さらに、３画目の字画においても、最も小さい制御点番号「６８」が割り当てられた制御点は、その３画目の字画を描き始める位置に配置され、その制御点番号「６８」の制御点から輪郭に沿って時計回りに昇順の番号が割り当てられている。従って、ＣＰＵ１１は、３画目の字画を表現する制御点を参照して、まずは、運筆が開始される輪郭部分を表す制御点（最も小さい制御点番号「６８」）を特定し、特定した制御点から制御点番号の順序に従って、字画の一部の領域ずつ表示することで、運筆を表現することができる。
【００２７】
この場合、図７に示すように、フォントデータは、それぞれの字画に対応するコンターを表すコンターデータを複数個含んでいる。それぞれのコンターデータには筆順に対応するコンター番号が割り当てられている。例えば、１画目の字画に対応するコンターデータには、コンター番号「１」が割り当てられ、２画目の字画に対応するコンターデータには、コンター番号「２」が割り当てられいる。ＣＰＵ１１は上述した規則に従って、図６上段に示した制御点を結んでコンターを形成し、さらにそのコンターの内側を塗りつぶすと、図６下段に示すように、「口」という文字が記憶性液晶表示体１５に表示されることになる。さらに、コンター番号が筆順に従って割り当てられているので、ＣＰＵ１１は、それぞれのコンターをコンター番号の小さい順から表示することにより、筆順を表現することも可能となっている。
【００２８】
次に、画像表示装置１の動作を説明する。
図８は、ＣＰＵ１１のメインルーチンを表すフローチャートである。
図８において、ユーザがキー２２を用いて、或る文字を指定し、その文字を表示するように指示する。また、画像表示装置１による文字の表示態様には、文字を構成する字画を筆順に従って表示する「筆順描画」と、各字画の運筆を表現する「運筆描画」と、筆順も運筆も表現せずに単に文字だけを表示する「通常描画」とがある。ユーザは、表示対象の文字と共に、これらの表示態様のうちのいずれかを選択指示する。ＣＰＵ１１は、これらの指示に従って、図７に示すメインルーチンを開始する。ＣＰＵ１１は、まず、表示するように指示された文字のフォントデータを記憶装置２３から読み出してＲＡＭに展開する（ステップＳ１００）。
【００２９】
次に、ＣＰＵ１１は、ユーザによって指定された表示態様が筆順描画であるか否かを判断する（ステップＳ２００）。筆順描画であると判断された場合には（ステップＳ２００；Ｙｅｓ）、ＣＰＵ１１は、後述する図９のサブルーチンに従って、筆順描画を行う（ステップＳ３００）。一方、筆順描画ではないと判断された場合には（ステップＳ２００；Ｎｏ）、ＣＰＵ１１は、ユーザによって指定された表示態様が運筆描画であるか否かを判断する（ステップＳ４００）。ここで運筆描画であると判断された場合には（ステップＳ４００；Ｙｅｓ）、ＣＰＵ１１は、後述する図１１のサブルーチンに従って、運筆描画を行う（ステップＳ５００）。なお、ステップＳ４００において運筆描画ではないと判断された場合には（ステップＳ４００；Ｎｏ）、ＣＰＵ１１は、図２〜５を用いて説明した手順で、従来どおりの文字の表示（通常描画）を行う（ステップＳ６００）。
【００３０】
次に、「口」という漢字を表示する場合を例に挙げて、上述した筆順描画及び運筆描画の詳細を説明する。なお、これらの筆順描画及び運筆描画の方法には幾つかのバリエーションがあるので、まずは、第１の筆順描画方法と第１の運筆描画方法について述べる。
図９は、第１の筆順描画方法に関するＣＰＵ１１のサブルーチンを表すフローチャートである。ＣＰＵ１１は、図８のステップＳ３００において筆順描画を開始すると、まず、字画の画数番号を指定するための画面を記憶性液晶表示体１５に表示させるなどして、描画対象となる字画の画数番号を指定するようユーザに促す。ここで、ユーザがキー２２を用いて例えば１画目の字画を指定した場合、ＣＰＵ１１は、描画対象となる字画の画数番号として「１」を取得し、ｎ＝１とする（図９のステップＳ３０１）。次に、ＣＰＵ１１は、このｎの値に等しいコンター番号（ここではコンター番号１）のコンターデータを取得する（ステップＳ３０２）。
【００３１】
ＣＰＵ１１は、描画対象のコンターデータを取得すると（ステップＳ３０３；Ｙｅｓ）、図２〜５において説明した手順と同様の手順で、記憶性液晶表示体１５にコンターを表示するとともに、そのコンターの内側を塗りつぶす（ステップＳ３０４）。これにより、図１０に示した字画ｄ１が表示される。さらに、ユーザが所定のキーを押下するなどして、次の字画（２画目の字画）を指定すると、ＣＰＵ１１は再びステップＳ３０１に戻ってｎ＝２とし、コンター番号２のコンターデータを取得し、このコンターデータに基づいて図１０の字画ｄ２を表示する。同様に、ユーザがさらに次の字画（３画目の字画）を指定すると、ＣＰＵ１１は変数ｎ＝３とし、コンター番号３のコンターデータを取得し、このコンターデータに基づいて図１０の字画ｄ３を表示する。さらに、ユーザが次の字画（４画目の字画）を指定した場合、ＣＰＵ１１は、図９のステップＳ３０１にて変数ｎ＝４とするが、図６に示したように、「口」という漢字にはコンター番号４のコンターデータは存在しない。よって、この場合は、ＣＰＵ１１はコンターデータを取得することができず（ステップＳ３０３；Ｎｏ）、字画を表示することができない旨のメッセージを含むエラー画面を記憶性液晶表示体１５に表示する（ステップＳ３０５）。
このようにして、筆順描画では、文字を構成する各々の字画が筆順どおりに表示される。
【００３２】
次に、図１１は、第１の運筆描画方法に関するＣＰＵ１１のサブルーチンを表すフローチャートである。ＣＰＵ１１は、図８のステップＳ５００において運筆描画を開始すると、まず、字画の画数番号を指定するための画面を記憶性液晶表示体１５に表示するなどして、描画対象となる字画の画数番号を指定するようユーザに促す。ここで、ユーザがキー２２を用いて例えば１画目の字画を指定した場合、ＣＰＵ１１は、描画対象となる字画の画数番号として「１」を取得し、変数ｎ＝１とする（図１１のステップＳ５０１）。次に、ＣＰＵ１１は、この変数ｎの値に等しいコンター番号（ここではコンター番号１）のコンターデータを取得する（ステップＳ５０２）。
【００３３】
ＣＰＵ１１は、描画対象のコンターデータを取得すると（ステップＳ５０３；Ｙｅｓ）、そのコンターデータに含まれるオンカーブ制御点の制御点番号のうち、最も小さい制御点番号を「ｂ」とする（ステップＳ５０４）。これにより、運筆が開始される領域部分の制御点が特定される。次に、ＣＰＵ１１は、そのコンターデータに含まれるオンカーブ制御点の制御点番号のうち、最も大きい制御点番号を「ｅ」とする（ステップＳ５０５）。ただし、オンカーブ制御点の制御点番号のうち最も大きい制御点番号は、図７に示した終端の制御点番号にさらに「１」を加えた値とする。よって、図６に示した「口」という漢字の１画目のコンターの場合には、ｂ＝１，ｅ＝２５となる。つまり、コンター番号「１」のコンターにおけるｅ＝２５の制御点は、コンター番号「２」のコンターにおける制御点番号２５の制御点を意味しているのではなく、コンター番号「１」のコンターの開始点である制御点番号「１」の制御点を複製したものを指している。
【００３４】
次に、ＣＰＵ１１は、変数ｓ＝１として（ステップＳ５０６）、制御点番号ｂから昇順に数えてｓ番目のオンカーブ制御点の制御点番号ｂ’を特定する（ステップＳ５０７）。ここでは、ｂ＝１，ｓ＝１だから、図６の内容に従うと、ｂ’＝２となる。次に、ＣＰＵ１１は、制御点番号ｅから降順に数えてｓ番目のオンカーブ制御点の制御点番号ｅ’を特定する（ステップＳ５０８）。ここでは、ｅ＝２５，ｓ＝１だから、図６の内容に従うと、ｅ’＝２３となる。そして、ＣＰＵ１１は、特定したｂ’，ｅ’について、ｂ’＞ｅ’という関係にはないことを確認してから（ステップＳ５０９；Ｎｏ）、制御点番号ｂ，ｂ’，ｅ，ｅ’の４つのオンカーブ制御点によって囲まれた領域を塗りつぶす（ステップＳ５１０）。ここでは、ｂ＝１，ｂ’＝２，ｅ＝２５，ｅ’＝２３だから、ＣＰＵ１１が図６の内容に従ってこれらオンカーブ制御点によって囲まれた領域を塗りつぶすと、図１２に示した領域ａ１が塗りつぶされた状態で表示されることになる。
【００３５】
次に、ＣＰＵ１１は、変数ｓに「１」を加算して（ステップＳ５１２）、ステップＳ５０７の処理に戻る。そして、ＣＰＵ１１は、変数ｓ＝２として、制御点番号ｂから昇順に数えてｓ番目のオンカーブ制御点の制御点番号ｂ’を特定する（ステップＳ５０７）。ここでは、ｂ＝１，ｓ＝２だから、図６の内容に従うと、ｂ’＝４となる。次に、ＣＰＵ１１は、制御点番号ｅから降順に数えてｓ番目のオンカーブ制御点の制御点番号ｅ’を特定する（ステップＳ５０８）。ここでは、ｅ＝２５，ｓ＝２だから、図６の内容に従うと、ｅ’＝２１となる。そして、ＣＰＵ１１は、特定したｂ’，ｅ’について、ｂ’＞ｅ’という関係にはないことを確認してから（ステップＳ５０９；Ｎｏ）、制御点番号ｂ，ｂ’，ｅ，ｅ’のオンカーブ制御点によって囲まれた領域を塗りつぶす（ステップＳ５１０）。ここでは、ｂ＝１，ｂ’＝４，ｅ＝２５，ｅ’＝２１だから、ＣＰＵ１１が図６の内容に従ってこれら４つのオンカーブ制御点によって囲まれた領域を塗りつぶすと、図１２に示した領域ａ２が塗りつぶされた状態で表示されることになる。
【００３６】
以降、ＣＰＵ１１は、上述したステップＳ５０７〜Ｓ５１１の処理を、ｂ’＞ｅ’という関係になるまで（ステップＳ５０９；Ｙｅｓ）繰り返す。これにより、領域ａ１→ａ２→ａ３→ａ４→ａ５→ａ６→ａ７というように、塗りつぶされた領域が図中上方から下方へと徐々に広がっていくようにして表示される。ユーザは、このような領域の広がり方を参照することで、「口」の１画目は上から下に筆を運ぶことで描けばよいということを知ることができる。
【００３７】
さて、ステップＳ５０９において、ｂ’＞ｅ’という関係が満たされた場合には（ステップＳ５０９；Ｙｅｓ）、処理が運筆終了の輪郭部分まで到達したことを意味するので、ＣＰＵ１１は、ｅ’＝ｂ’として（ステップＳ５１１）、ＣＰＵ１１は、制御点番号ｂ，ｅ，ｂ’（＝ｅ’）によって囲まれた領域を塗りつぶせばよい（ステップＳ５１０）。これにより、指定された字画の全域（図１２の領域ａ７）が表示されたことになる。
【００３８】
さらに、ユーザが所定のキーを押下するなどして、次の字画（２画目の字画）を指定すると、ＣＰＵ１１は再びステップＳ３０１に戻ってｎ＝２とし、コンター番号２のコンターデータを取得し、このコンターデータに基づいて上記と同様の処理を行う。これにより、図１３に示すように、領域ａ１１→ａ１２→ａ１３→ａ１４→ａ１５→ａ１６→ａ１７→ａ１８→ａ１９→ａ２０→ａ２１→ａ２２、というように表示される。つまり、塗りつぶされた領域が、最初は図中左側から右側へと徐々に広がっていき、途中から図中上方から下方へと徐々に広がっていく。ユーザは、このような領域の広がり方を参照することで、「口」の２画目は、まず左から右に筆を運び、途中からは、上から下に筆を運ぶことで描けばよいということを知ることができる。３画目についても同様に、図１４に示すように、領域ａ２１→ａ２２→ａ２３→ａ２４→ａ２５→ａ２６→ａ２７、というように、塗りつぶされた領域が図中左側から右側へと徐々に広がっていくので、ユーザはこれを見て３画目の筆の運びを知ることができる。
【００３９】
さらに、ユーザが次の字画（４画目の字画）を指定した場合、ＣＰＵ１１は、ステップＳ５０１にてｎ＝４とするが、図６に示したように、「口」という漢字にはコンター番号４のコンターデータは存在しない。よって、この場合は、ＣＰＵ１１はコンターデータを取得することができず（ステップＳ５０３；Ｎｏ）、字画を表示することができない旨のメッセージを含むエラー画面を記憶性液晶表示体１５に表示する（ステップＳ５１３）。
このように、運筆描画においては、文字を構成する各々の字画が運筆どおりに表示される。
【００４０】
次に、筆順描画と運筆描画のその他の方法について説明する。
（２）筆順描画の別の方法
前述の第１の筆順描画方法では、指定された筆順の字画のみを表示していたが、そうではなくて、１画目から指定された画数目までを時系列で表示するようにしてもよい。
図１５は、第２の筆順描画方法に関するＣＰＵ１１のサブルーチンを表すフローチャートである。ＣＰＵ１１は、図８のステップＳ３００において筆順描画を開始すると、まず、字画の画数番号を指定するための画面を記憶性液晶表示体１５に表示するなどして、描画対象となる字画の画数番号を指定するようユーザに促す。ここで、ユーザがキー２２を用いて例えば３画目の字画を指定した場合、ＣＰＵ１１は、字画の画数番号として「３」を取得し、ｎ＝３とする（図１５のステップＳ３１１）。
【００４１】
次に、ＣＰＵ１１は、変数ｉ＝１として（ステップＳ３１２）、ｉ≦ｎという関係を満たすことを確認してから（ステップＳ３１３）、ｉの値に等しいコンター番号（ここではコンター番号１）のコンターデータを取得する（ステップＳ３１４）。ＣＰＵ１１は、描画対象のコンターデータを取得すると（ステップＳ３１５；Ｙｅｓ）、図２〜５において説明した手順と同様の手順で、記憶性液晶表示体１５にコンターを表示するとともに、そのコンターの内側を塗りつぶす（ステップＳ３１６）。これにより、図１６に示した字画ｄ１１が表示される。
【００４２】
次に、ＣＰＵ１１は、ｉの値に１を加算してｉ＝２とする（ステップＳ３１７）。そして、ＣＰＵ１１は、再びステップＳ３１３に戻って、ｉ≦ｎという関係を満たすことを確認してから（ステップＳ３１３；Ｙｅｓ）、ｉの値に等しいコンター番号２のコンターデータを取得する（ステップＳ３１４）。このコンターデータを取得することができれば（ステップＳ３１５；Ｙｅｓ）、ＣＰＵ１１は、前述と同様にして、記憶性液晶表示体１５にコンターを表示するとともにそのコンターの内側を塗りつぶす（ステップＳ３１６）。これにより、図１６に示した字画ｄ１１に加えて、字画ｄ１２が表示される。同様に、ＣＰＵ１１は、変数ｉに１を加算してｉ＝３とし、コンター番号３のコンターデータを取得する。そして、このコンターデータに基づいて図１６の字画ｄ１１，ｄ１２に加えて、字画ｄ１３を表示する。
【００４３】
さらに、ＣＰＵ１１は、ｉの値に１を加算してｉ＝４とすると（ステップＳ３１７）、この場合は、ステップＳ３１３においてｉ≦ｎという関係が満たされないことになる（ステップＳ３１３；Ｎｏ）。これは、ユーザによって指定された画数の字画を表示し終えたことを意味するから、ＣＰＵ１１の処理は終了する。なお、ステップＳ３１５でコンターデータを取得することができなかった場合には（ステップＳ３１５；Ｎｏ）、ＣＰＵ１１は、字画を表示することができない旨のメッセージを含むエラー画面を記憶性液晶表示体１５に表示する（ステップＳ３１８）。
画像表示装置１は、このような方法によっても、字画の筆順を表示することができる。
【００４４】
（３）運筆描画の別の方法
次に、運筆描画の別の方法について説明する。
（３−ａ）第２の運筆描画方法
この第２の運筆描画方法では、字画を表示すると共に、字画の輪郭上に運筆の方向を表す記号又は図形を表示する。
図１７は、第２の運筆描画方法に関するＣＰＵ１１のサブルーチンを表すフローチャートである。ＣＰＵ１１は、図８のステップＳ５００において運筆描画を開始すると、まず、字画の画数番号を指定するための画面を記憶性液晶表示体１５に表示するなどして、描画対象となる字画の画数番号を指定するようユーザに促す。ここで、ユーザがキーを用いて例えば１画目の字画を指定した場合、ＣＰＵ１１は、描画対象となる字画の画数番号として「１」を取得し、変数ｎ＝１とする（図１７のステップＳ５２１）。次に、ＣＰＵ１１は、この変数ｎの値に等しいコンター番号（ここではコンター番号１）のコンターデータを記憶装置２３から読み出すことで、描画対象のコンターデータを取得する（ステップＳ５２２）。
【００４５】
ＣＰＵ１１は、描画対象のコンターデータを取得すると（ステップＳ５２３；Ｙｅｓ）、そのコンターデータに含まれるオンカーブ制御点の制御点番号のうち、最も小さい制御点番号を「ｂ」とする（ステップＳ５２４）。これにより、運筆が開始される領域部分の制御点が特定される。次に、ＣＰＵ１１は、そのコンターデータに含まれるオンカーブ制御点の制御点番号のうち、最も大きい制御点番号を「ｅ」とする（ステップＳ５２５）。このとき、オンカーブ制御点の制御点番号のうち最も大きい制御点番号は、図７に示した終端の制御点番号に１を加えた値とする。よって、例えば図６、７に示した「口」という漢字の１画目のコンターの場合には、ｂ＝１，ｅ＝２５となる。
【００４６】
次に、ＣＰＵ１１は、制御点番号ｂから昇順に数えて次のオンカーブ制御点の制御点番号ｂ’を特定する（ステップＳ５２６）。ここでは、ｂ＝１，ｓ＝１だから、図６の内容に従うと、ｂ’＝２となる。次に、ＣＰＵ１１は、制御点番号ｅから降順に数えて次のオンカーブ制御点の制御点番号ｅ’を特定する（ステップＳ５２７）。ここでは、ｅ＝２５，ｓ＝１だから、図６の内容に従うと、ｅ’＝２３となる。
【００４７】
そして、ＣＰＵ１１は、特定したｂ’，ｅ’について、ｂ’＞ｅ’という関係にはないことを確認する（ステップＳ５２８）。これを確認した後に（ステップＳ５２８；Ｎｏ）、ＣＰＵ１１は、コンターと、運筆方向を表す記号又は図形とを表示する（ステップＳ５２９）。具体的には、ＣＰＵ１１は、制御点番号ｂのオンカーブ制御点と制御番号点ｂ’のオンカーブ制御点とを結ぶコンターを表示する。さらに、ＣＰＵ１１は、そのコンター上に制御点番号ｂのオンカーブ制御点から制御番号点ｂ’のオンカーブ制御点に向かう方向を運筆の方向と判断して、運筆方向を意味する記号又は図形（ここでは、鏃（やじり）形状の記号）を表示する。この表示とともに、ＣＰＵ１１は、制御点番号ｅのオンカーブ制御点と制御番号点ｅ’のオンカーブ制御点とを結ぶコンターを表示する。さらに、ＣＰＵ１１は、そのコンター上に制御点番号ｅのオンカーブ制御点から制御番号点ｅ’のオンカーブ制御点に向かう方向を運筆の方向と判断して、運筆方向を意味する記号又は図形（鏃記号）を表示する。ここでは、ｂ＝１，ｂ’＝２，ｅ＝２５，ｅ’＝２３だから、図１８に示すように、鏃記号は、制御点番号１から制御点番号２に向かう方向と、制御点番号２５（つまり図示の制御点番号１）から制御点番号２３に向かう方向に表示される。なお、図１８においては鏃記号が非常に小さいので、制御点番号「２」に対応する鏃記号を拡大して図示している。
【００４８】
次に、ＣＰＵ１１は、上記制御点番号ｂ’を新たな制御点番号ｂとし（ステップＳ５３０）、さらに、上記制御点番号ｅ’を新たな制御点番号ｅとして（ステップＳ５３１）、ステップＳ５２６の処理に戻る。つまり、ｂ＝２，ｅ＝２３として、ＣＰＵ１１は、上記ステップＳ５２６〜Ｓ５２９の処理を再度行うことになる。これにより、制御点番号２から制御点番号４に向かう方向の鏃記号と、制御点番号２３から制御点番号２１に向かう方向の鏃記号とがコンターと共に表示されることとなる。
【００４９】
このように、ＣＰＵ１１は、上記ステップＳ５２６〜Ｓ５３１の処理を、ｂ’＞ｅ’という関係となるまで繰り返し実行する。これにより、記憶性液晶表示体１５には、図１８に示すようなコンターｃと、複数の鏃記号ｄが表示されることになる。ユーザは、この鏃記号の向きを参照することで、「口」の１画目は上から下に筆を運ぶことで描けばよいということを知ることができる。
【００５０】
さて、ステップＳ５２８において、ｂ’＞ｅ’という関係が満たされた場合（ステップＳ５２８；Ｙｅｓ）、ＣＰＵ１１は処理を終了する。さらに、ユーザが所定のキーを押下するなどして、次の字画（２画目の字画）を指定すると、ＣＰＵ１１は再びステップＳ５２１においてｎ＝２とし、コンター番号２のコンターデータを取得し、このコンターデータに基づいて上記と同様の処理を行う。以降同様に、ユーザが描画対象となる字画を指定する度にＣＰＵ１１はステップＳ５２１〜Ｓ５３１の処理を実行する。ただし、ユーザが４画目の字画を指定した場合、ＣＰＵ１１は、ステップＳ５２１にてｎ＝４とするが、図６に示したように、「口」という漢字にはコンター番号４のコンターデータは存在しない。よって、この場合は、ＣＰＵ１１はコンターデータを取得することができず（ステップＳ５２３；Ｎｏ）、字画を表示することができない旨のメッセージを含むエラー画面を記憶性液晶表示体１５に表示する（ステップＳ５３２）。
【００５１】
（３−ｂ）第３の運筆描画方法
次に説明する第３の運筆描画方法では、１つの字画を表現するコンターと、その字画の運筆の方向を表す記号又は図形を表現したコンターとを対応付けた構造のフォントデータを用いる。具体的には、フォントデータが、図１９上段に示すように、それぞれの字画（コンター）を表示するためのコンターデータと、矢印の図形を表示するためのコンターデータから構成されている。図１９上段に示すように、「口」という漢字の１画目のコンターｃ１１の内側には、その運筆方向（図中上方から下方へと向かう方向）を意味する矢印の図形のコンターｃ１２が配置されている。同様に、２画目のコンターｃ２１の内側には、その運筆方向を意味する矢印の図形のコンターｃ２２が配置され、３画目のコンターｃ３１の内側には、その運筆方向を意味する矢印の図形のコンターｃ３２が配置されている。このようなコンターを表すフォントデータを、図７に倣って図示すると、図２０に示すように、それぞれの字画（コンター）を表示するためのコンターデータ（コンター番号１，３，５）と、矢印の図形を表示するためのコンターデータ（コンター番号２，４，６）というように、字画のコンター番号と矢印図形のコンター番号とが交互になるように構成されている。
【００５２】
図２１は、この第３の運筆描画方法に関するＣＰＵ１１のサブルーチンを表すフローチャートである。ＣＰＵ１１は、図８のステップＳ５００において運筆描画を開始すると、まず、字画の画数番号を指定するための画面を記憶性液晶表示体１５に表示するなどして、描画対象となる字画の画数番号を指定するようユーザに促す。ここで、ユーザがキー２２を用いて例えば１画目の字画を指定した場合、ＣＰＵ１１は、描画対象となる字画の画数番号として「１」を取得し、変数ｎ＝１とする（図２１のステップＳ５４１）。次に、ＣＰＵ１１は、この（ｎ×２-１）の値に等しいコンター番号（ここではｎ＝１だから、１×２−１＝１、つまりコンター番号１）のコンターデータを記憶装置２３から読み出し、これをコンターＡとする（ステップＳ５４２）。これにより、ＣＰＵ１１は、描画対象の字画（コンターＡ）のコンターデータを取得する。次に、ＣＰＵ１１は、（ｎ×２）の値に等しいコンター番号（ここではｎ＝１だから、１×２＝２、つまりコンター番号２）のコンターデータを記憶装置２３から読み出し、これをコンターＢとする（ステップＳ５４３）。これにより、ＣＰＵ１１は、描画対象の矢印図形（コンターＢ）のコンターデータを取得する。
【００５３】
ＣＰＵ１１は、コンターＡ及びＢ、つまり描画対象となる字画と矢印図形のコンターデータの双方を取得できたことを確認すると（ステップＳ５４４；Ｙｅｓ）、コンターＢのコンターデータの制御点番号の並びを逆にする（ステップＳ５４５）。図１９の例の場合、コンターＢ、つまり矢印図形のコンターｃ１２を表現する制御点のうち、最小の制御点番号２５を、最大の制御点番号３１に置き換える。同様に、ＣＰＵ１１は、制御点番号２６を制御点番号３０に置き換え、制御点番号２７を制御点番号２９に置き換え、制御点番号２８はそのままとし、制御点番号２９を制御点番号２７に置き換え、制御点番号３０を制御点番号２６に置き換え、制御点番号３１を制御点番号２５に置き換える。これにより、置き換え前の制御点番号が時計回りに２５→２６→２７→２８→２９→３０→３１という並びであったものが、３１→３０→２９→２８→２７→２６→２５という並びとなる。
【００５４】
そして、ＣＰＵ１１は、コンターＡと、制御点番号が並び替えられたコンターＢについて、図２〜５を用いて説明した手順で表示を行う（ステップＳ５４６）。コンターＢの制御点番号が並び替えられたことにより、前述した走査ライン上の変数ｗの値は、コンターｃ１１の内側では「１」となり、且つ、コンターｃ１２の内側では「０」となるので、図１９下段に示すように、黒色で塗りつぶされた字画の上に、白抜きの矢印図形が表示されることになる。ユーザは、この矢印図形の向きを参照することで、「口」の１画目は上から下に筆を運ぶことで描けばよいということを知ることができる。
【００５５】
さらに、ユーザが所定のキー２２を押下するなどして、次の字画（２画目の字画）を指定すると、ＣＰＵ１１は再びステップＳ５４１においてｎ＝２とし、上記と同様の処理を行う。以降同様に、ユーザが描画対象となる字画を指定する度にＣＰＵ１１はステップＳ５４１〜Ｓ５４６の処理を実行する。ただし、ユーザが４画目の字画を指定した場合、ＣＰＵ１１は、ステップＳ５４１にてｎ＝４とするが、「口」という漢字にはコンター番号７のコンターデータは存在しない。よって、この場合は、ＣＰＵ１１はステップＳ５４４においてコンターＡ，Ｂのコンターデータを取得することができず（ステップＳ５４４；Ｎｏ）、字画を表示することができない旨のメッセージを含むエラー画面を記憶性液晶表示体１５に表示する（ステップＳ５４７）。
【００５６】
（３−ｃ）第４の運筆描画方法
第４の運筆描画方法では、第３の運筆描画方法で表示した矢印図形の近傍に、筆順番号を表す数字又は文字を表示する。このため、１つの字画を表現するコンターと、その字画の運筆の方向を表す記号又は図形を表現したコンターと、筆順番号を表す数字を表現したコンターという３種類のコンターを定義する。具体的には、フォントデータは、図２２上段に示すように、それぞれの字画（コンター）を表示するためのコンターデータと、矢印の図形を表示するためのコンターデータと、筆順番号の数字を表示するためのコンターデータから構成されている。例えば「口」という漢字の場合には、それぞれの字画（コンター）を表示するためのコンターデータ（コンター番号１，４，７）と、矢印の図形を表示するためのコンターデータ（コンター番号２，５，８）と、筆順番号の数字を表示するためのコンターデータ（コンター番号３，６，９）というように、字画、矢印図形及び数字のコンター番号が順番になるように構成されている。
【００５７】
図２２上段に示すように、「口」という漢字の１画目のコンターｃ１１の内側には、その運筆方向（図中上方から下方へと向かう方向）を意味する矢印の図形のコンターｃ１２が配置され、さらに、その矢印図形の近傍には、筆順番号「１」を意味する数字のコンターｃ１３が配置されている。同様に、２画目のコンターｃ２１の内側には、その運筆方向を意味する矢印の図形のコンターｃ２２が配置され、筆順番号「２」を意味する数字のコンターｃ２３が配置されている。また、３画目のコンターｃ３１の内側には、その運筆方向を意味する矢印の図形のコンターｃ３２が配置され、筆順番号「３」を意味する数字のコンターｃ３３が配置されている。
【００５８】
図２３は、この第４の運筆描画方法に関するＣＰＵ１１のサブルーチンを表すフローチャートである。ＣＰＵ１１は、図８のステップＳ５００において運筆描画を開始すると、まず、字画の画数番号を指定するための画面を記憶性液晶表示体１５に表示するなどして、描画対象となる字画の画数番号を指定するようユーザに促す。ここで、ユーザがキーを用いて例えば１画目の字画を指定した場合、ＣＰＵ１１は、描画対象となる字画の画数番号として「１」を取得し、変数ｎ＝１とする（図２３のステップＳ５５１）。次に、ＣＰＵ１１は、この（ｎ×３−２）の値に等しいコンター番号（ここではｎ＝１だから、１×３−２＝１、つまりコンター番号１）のコンターデータを記憶装置２３から読み出し、これをコンターAとする（ステップＳ５５２）。これにより、ＣＰＵ１１は、描画対象の字画のコンターデータを取得する。次に、ＣＰＵ１１は、（ｎ×３−１）の値に等しいコンター番号（ここではｎ＝１だから、１×３−１＝２、つまりコンター番号２）のコンターデータを記憶装置２３から読み出し、これをコンターＢとする（ステップＳ５５３）。これにより、ＣＰＵ１１は、描画対象の矢印図形のコンターデータを取得する。次に、ＣＰＵ１１は、（ｎ×３）の値に等しいコンター番号（ここではｎ＝１だから、１×３＝３、つまりコンター番号３）のコンターデータを記憶装置２３から読み出し、これをコンターＣとする（ステップＳ５５４）。これにより、ＣＰＵ１１は、筆順番号の数字のコンターデータを取得する。
【００５９】
ＣＰＵ１１は、コンターＡ，Ｂ及びＣ、つまり描画対象となる字画と矢印図形と筆順番号のコンターデータの全てを取得できたことを確認すると（ステップＳ５５５；Ｙｅｓ）、第２の描画運筆方法と同様に、コンターＢとコンターＣのそれぞれのコンターデータの制御点番号の並びを逆にする（ステップＳ５５６）。そして、ＣＰＵ１１は、コンターＡと、制御点番号が並び替えられたコンターＢ，Ｃについて、図２〜５を用いて説明した手順で表示を行う（ステップＳ５５７）。コンターＢの制御点番号が並び替えられたことにより、前述した走査ライン上の変数ｗの値は、コンターｃ１２の内側では「０」となる。同様に、コンターＣの制御点番号が並び替えられたことにより、前述した走査ライン上の変数ｗの値は、コンターｃ１３の内側では「０」となる。よって、図２２下段に示すように、黒色で塗りつぶされた字画の上に、白抜きの矢印図形と、白抜きの数字が表示されることになる。ユーザは、この数字を参照することで、筆順を知ることができると共に、矢印図形の向きを参照することで、「口」の１画目は上から下に筆を運ぶことで描けばよいということを知ることができる。
【００６０】
さらに、ユーザが所定のキー２２を押下するなどして、次の字画（２画目の字画）を指定すると、ＣＰＵ１１は再びステップＳ５５１においてｎ＝２とし、上記と同様の処理を行う。以降同様に、ユーザが描画対象となる字画を指定する度にＣＰＵ１１はステップＳ５５１〜Ｓ５５７の処理を実行する。ただし、ユーザが４画目の字画を指定した場合、ＣＰＵ１１は、ステップＳ５５１にてｎ＝４とするが、「口」という漢字にはコンター番号１０のコンターデータは存在しない。よって、この場合は、ＣＰＵ１１はステップＳ５５５においてコンターＡ，Ｂ，Ｃのコンターデータを取得することができず（ステップＳ５５５；Ｎｏ）、字画を表示することができない旨のメッセージを含むエラー画面を記憶性液晶表示体１５に表示する（ステップＳ５５８）。
なお、筆順番号を表す数字が例えば「８」のようにコンター内に空隙があるような場合や、「１２」のように２つの数字からなる場合であっても、これらの数字を１つのコンターで表現する必要がある。そこで図２４に示すように、一筆書きの要領でコンターを描けばよい。
【００６１】
以上説明した実施形態によれば次のような効果を奏する。
まず、第１の運筆描画方法においては、字画（コンター）を書き始めるべき位置（運筆開始位置）に、各コンターで最小の制御点番号の制御点を配置しておき、さらに規則的な順序が割り当てられた複数の制御点によって字画を表現する。そして、文字を表示する際には、運筆が開始される輪郭部分を表す制御点を特定し、特定した制御点から各制御点の制御点番号に基づいて、字画を一部の領域ずつ時系列に徐々に表示していく。よって、ユーザは文字を構成する各々の字画をどのような筆の運びで描けばよいかを視覚的に把握することができる。
【００６２】
次に、第２の運筆描画方法によれば、字画（コンター）を書き始めるべき位置（運筆開始位置）に、各コンターで最小の制御点番号の制御点を配置しておき、さらに規則的な順序が割り当てられた複数の制御点によって字画を表現する。そして、文字を表示する際には、運筆が開始される輪郭部分を表す制御点を特定し、特定した制御点から各制御点の制御点番号に基づいて字画の運筆方向を判断し、判断した運筆方向を表示する。よって、ユーザは文字を構成する各々の字画をどのような筆の運びで描けばよいかを視覚的に把握することができる。
【００６３】
次に、第３の運筆描画方法によれば、１つの字画を表現するコンターと、その字画の運筆の方向を表す記号又は図形を表現したコンターとを対応付けた構造のフォントデータを用いる。そして、制御点に割り当てられた制御点番号に基づいて、字画における運筆方向を判断し、判断した運筆方向を字画と共に表示するから、ユーザは文字を構成する各々の字画をどのような筆の運びで描けばよいかを視覚的に把握することができる。
【００６４】
次に、第４の運筆描画方法によれば、第３の運筆描画方法に加えて、筆順番号を表す数字を表現したコンターをさらに定義する。そして、字画、運筆方向を表す記号又は図形、及び、筆順番号を表す数字を表示するから、ユーザは文字を構成する字画の筆順と共に、各々の字画をどのような筆の運びで描けばよいかを視覚的に把握することができる。
【００６５】
なお、各文字の運筆を表す運筆情報を新たに定義し、全ての文字についてその運筆情報を予め記憶しておけば、運筆を表現することは可能である。しかし、その運筆情報のデータ量は膨大になることが予想される。本実施形態で用いたコンターデータは、汎用のＴＴＦのフォーマットに則っているから、コンターデータそのもののデータ量は、従来用いられているコンターデータのそれと大差ない。さらに本実施形態に係る画像表示装置であれば、このコンターデータに基づいて筆順及び運筆を表現することができる一方、本実施形態に係る画像表示装置のようなレンダラを実装していない画像表示装置であっても、筆順及び運筆を表現することはできないまでも、通常の文字描画は行うことができる。例えば、図２０に示したフォントデータの場合、さらに本実施形態に係る画像表示装置であれば、字画と矢印の図形を表示することができる。一方、本実施形態に係る画像表示装置のようなレンダラを実装していない画像表示装置は、矢印の図形の制御点番号の並びを逆にする処理ができないが、その場合であっても、ＴＴＦの規則に従って、矢印の図形の内側を塗りつぶすことはできるから、字画を表現することは可能である。よって、画像表示装置に実装されたレンダラの種類に応じて、その画像表示装置に記憶させるコンターデータの内容も変える必要はない。つまり、フォントデータとしても汎用性を維持することができる。
【００６６】
（４）変形例
上述した実施形態の内容を次のように変形してもよい。
実施形態では、各字画において運筆開始位置に相当する制御点を、その字画（コンター）を表現する制御点番号のうちの最小となる番号を割り当てていた。しかし、これは必ずしも最小である必要はなく、その制御点に対して、運筆開始位置であることを識別し得るような所定の順番を割り当てればよい。例えば、その字画を表現する制御点番号のうちの最大となる制御点番号であってもよい。
【００６７】
また、１つのコンターを表現する複数の制御点番号は、１つずつ増加するような昇順の並びではなく、２つ以上の所定数ずつ増加するような昇順の並びであってもよい。また、ある数から降順で減少するような並びであってもよい。降順の並びの場合には、図６に示した時計回りに増加するような制御点番号の並びが、反時計回りに増加するような制御点番号の並びになるだけであるから、図１５，１７，２１に示した手順に従って運筆を表現することができる。要するに、字画の輪郭を表現する制御点は、或る規則的な順序が割り当てられたものであればよい。
【００６８】
本発明に係る画像表示装置は、例えば単体のパーソナルコンピュータに適用することもできるし、また、例えばＰＤＡ（Personal Digital Assistants）のようなタブレット型のコンピュータや、電子ペーパーなどと呼ばれるような可搬性に富む単体の画像表示装置に適用することも可能である。また、上述した各フローチャートに示すような手順が記述されたプログラムや、フォントデータ（コンターデータ）は、磁気テープ、磁気ディスク、フロッピー（登録商標）ディスク、光記録媒体、光磁気記録媒体、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＲＡＭなどの記録媒体に記録した状態で提供し得る。即ち、本発明をプログラムやデータ構造として実現することもできる。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施形態に係る画像画像表示装置のハードウェア構成を示した図である。
【図２】ＴＴＦに規定された制御点と、画像表示装置に表示される画像の例を説明する図である。
【図３】ＴＴＦに規定された制御点を含むフォントデータの構造を説明する図である。
【図４】制御点を結ぶコンターを説明する図である。
【図５】コンターで輪郭を形成し、その内側を塗りつぶす様子を示した図である。
【図６】字画毎にコンターが定義された様子を説明する図である。
【図７】制御点を含むフォントデータの構造を説明する図である。
【図８】ＣＰＵが実行する手順を示すフローチャートである。
【図９】ＣＰＵが実行する手順を示すフローチャートである。
【図１０】画像表示装置に表示される画像の例を示す図である。
【図１１】ＣＰＵが実行する手順を示すフローチャートである。
【図１２】画像表示装置に表示される画像の例を示す図である。
【図１３】画像表示装置に表示される画像の例を示す図である。
【図１４】画像表示装置に表示される画像の例を示す図である。
【図１５】ＣＰＵが実行する手順を示すフローチャートである。
【図１６】画像表示装置に表示される画像の例を示す図である。
【図１７】ＣＰＵが実行する手順を示すフローチャートである。
【図１８】画像表示装置に表示される画像の例を示す図である。
【図１９】制御点と、画像表示装置に表示される画像の例を説明する図である。
【図２０】制御点を含むフォントデータの構造を説明する図である。
【図２１】ＣＰＵが実行する手順を示すフローチャートである。
【図２２】制御点と、画像表示装置に表示される画像の例を説明する図である。
【図２３】ＣＰＵが実行する手順を示すフローチャートである。
【図２４】数字を表す制御点を説明する図である。
【符号の説明】
【００７０】
１…画像表示装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＶＲＡＭ、１５…記憶性液晶表示体、１６…表示制御装置、１７…電源、１８…電源制御装置、１９…コネクタ、２０…記憶制御装置、２１…Ｉ／Ｏ、２２…キー、２３…記憶装置、２４…記憶媒体。
【図１】
2008076555.tif 000003
【図２】
2008076555.tif 000004
【図３】
2008076555.tif 000005
【図４】
2008076555.tif 000006
【図５】
2008076555.tif 000007
【図６】
2008076555.tif 000008
【図７】
2008076555.tif 000009
【図８】
2008076555.tif 000010
【図９】
2008076555.tif 000011
【図１０】
2008076555.tif 000012
【図１１】
2008076555.tif 000013
【図１２】
2008076555.tif 000014
【図１３】
2008076555.tif 000015
【図１４】
2008076555.tif 000016
【図１５】
2008076555.tif 000017
【図１６】
2008076555.tif 000018
【図１７】
2008076555.tif 000019
【図１８】
2008076555.tif 000020
【図１９】
2008076555.tif 000021
【図２０】
2008076555.tif 000022
【図２１】
2008076555.tif 000023
【図２２】
2008076555.tif 000024
【図２３】
2008076555.tif 000025
【図２４】
2008076555.tif 000026