(57)【要約】【課題】記憶しておくデータ量を低減すること。【解決手段】制御点データのOn-curve Flag、座標（文字を構成する字画の輪郭の情報）と、Overlapped Flag（前記字画が重なっている部分を表す情報）とを記憶し、それら情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画するようにした。そのため、文字を構成する字画の輪郭と文字全体の輪郭とを同じデータから描画することができ、例えば、文字を構成する字画の輪郭と文字全体の輪郭とを専用データから描画する方法に比べ、記憶しておくデータ量を少なくすることができる。【選択図】図６
2007248583.tif 000002
【特許請求の範囲】
【請求項１】
文字を構成する字画の輪郭の情報を記憶手段から取得し、その情報に基づいて前記字画を描画して表示する表示プログラムであって、
前記文字を構成する字画の輪郭の情報と前記字画が重なっている部分を表す情報とを前記記憶手段から取得する取得機能と、それら取得された情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画する描画機能と、をコンピュータに実行させることを特徴とする表示プログラム。
【請求項２】
前記文字全体を一色で描画する通常描画、前記文字全体の輪郭を描画する白抜き輪郭描画、及び前記文字を構成する字画の輪郭それぞれを描画する全輪郭描画のいずれかを選択する選択機能を備え、
前記描画機能は、前記白抜き輪郭描画が選択された場合に、前記取得機能で取得された情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画することを特徴とする請求項１に記載の表示プログラム。
【請求項３】
前記字画の輪郭の情報は、前記字画の輪郭を構成する各要素の情報であり、
前記字画が重なっている部分を表す情報は、前記要素の情報に対応する各要素のいずれが前記字画が重なっている要素であるか否かを表す重なり情報であり、
前記描画機能は、前記取得機能で取得された情報に基づいて、前記字画が重なっていない要素の輪郭を描画することを特徴とする請求項１に記載の表示プログラム。
【請求項４】
前記重なり情報は、前記要素の情報に対応する各要素それぞれについて前記字画が重なっている要素であるか否かを表す情報であることを特徴とする請求項２に記載の表示プログラム。
【請求項５】
前記要素の情報は、連続する番号が付された情報であり、
前記重なり情報は、前記要素の情報を前記番号順に処理したときに、前記字画が重なっている要素が連続して現れる回数及び前記字画が重なっていない要素が連続して現れる回数を表す情報であることを特徴とする請求項２に記載の表示プログラム。
【請求項６】
前記要素の情報は、所定の番号が付された情報であり、
前記重なり情報は、前記要素の情報のうち対応する要素が前記字画が重なっている要素である前記要素の情報の番号を示す情報であることを特徴とする請求項２に記載の表示プログラム。
【請求項７】
文字を構成する字画の輪郭の情報を記憶手段から取得し、その情報に基づいて前記字画を描画して表示する表示プログラムに用いられるデータ構造であって、
前記文字を構成する字画の輪郭の情報と前記字画が重なっている部分を表す情報とを含むことを特徴とするデータ構成。
【請求項８】
文字を構成する字画の輪郭の情報を取得し、その情報に基づいて前記字画を描画して表示する表示装置であって、
前記文字を構成する字画の輪郭の情報と前記字画が重なっている部分を表す情報とを記憶する記憶手段と、その記憶手段から前記字画の輪郭の情報と前記字画が重なっている部分を表す情報とを取得する取得手段と、それら取得された情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画する描画手段と、を備えたことを特徴とする表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字を構成する字画の輪郭の情報を記憶手段から取得し、その情報に基づいて前記字画を描画して表示する表示プログラム、データ構造及び表示装置に関する。
【背景技術】
【０００２】
従来、この種の技術としては、例えば、文字を構成する字画の輪郭の情報と、文字全体の輪郭の情報とを記憶装置に記憶しておき、その記憶装置から前記字画の輪郭の情報と前記文字全体の輪郭の情報とのいずれかを取得し、その情報に基づいて文字を構成する字画の輪郭又は文字全体の輪郭を描画して表示するものがある（例えば、特許文献１参照）。
【特許文献１】特開平９−２４４６１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の表示装置にあっては、文字を構成する字画の輪郭と文字全体の輪郭とを描画できるものの、文字を構成する字画の輪郭の情報と文字全体の輪郭の情報との両情報を記憶するため、予め記憶しておくデータ量が増大する恐れがあった。
本発明は、上記従来の表示装置の未解決の課題を解決することを目的とするものであって、記憶しておくデータ量を低減可能な表示装置を提供することを課題とする。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明の表示装置は、文字を構成する字画の輪郭の情報を記憶手段から取得し、その情報に基づいて前記字画を描画して表示する表示プログラムであって、前記文字を構成する字画の輪郭の情報と前記字画が重なっている部分を表す情報とを前記記憶手段から取得する取得機能と、それら取得された情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画する描画機能と、をコンピュータに実行させることを特徴とする。
【０００５】
また、前記文字全体を一色で描画する通常描画、前記文字全体の輪郭を描画する白抜き輪郭描画、及び前記文字を構成する字画の輪郭それぞれを描画する全輪郭描画のいずれかを選択する選択機能を備え、前記描画機能は、前記白抜き輪郭描画が選択された場合に、前記取得機能で取得された情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画するようにした。
【０００６】
さらに、前記字画の輪郭の情報は、前記字画の輪郭を構成する各要素の情報であり、前記字画が重なっている部分を表す情報は、前記要素の情報に対応する各要素のいずれが前記字画が重なっている要素であるか否かを表す重なり情報であり、前記描画機能は、前記取得機能で取得された情報に基づいて、前記字画が重なっていない要素の輪郭を描画するようにしてもよい。
【０００７】
また、前記重なり情報は、前記要素の情報に対応する各要素それぞれについて前記字画が重なっている要素であるか否かを表す情報であってもよい。
さらに、前記要素の情報は、連続する番号が付された情報であり、前記重なり情報は、前記要素の情報を前記番号順に処理したときに、前記字画が重なっている要素が連続して現れる回数及び前記字画が重なっていない要素が連続して現れる回数を表す情報であってもよい。
【０００８】
また、前記要素の情報は、所定の番号が付された情報であり、前記重なり情報は、前記要素の情報のうち対応する要素が前記字画が重なっている要素である前記要素の情報の番号を示す情報であってもよい。
さらに、本発明のデータ構成は、文字を構成する字画の輪郭の情報を記憶手段から取得し、その情報に基づいて前記字画を描画して表示する表示プログラムに用いられるデータ構造であって、前記文字を構成する字画の輪郭の情報と前記字画が重なっている部分を表す情報とを含むことを特徴とする。
【０００９】
また、本発明の表示装置は、文字を構成する字画の輪郭の情報を取得し、その情報に基づいて前記字画を描画して表示する表示装置であって、前記文字を構成する字画の輪郭の情報と前記字画が重なっている部分を表す情報とを記憶する記憶手段と、その記憶手段から前記字画の輪郭の情報と前記字画が重なっている部分を表す情報とを取得する取得手段と、それら取得された情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画する描画手段と、を備えたことを特徴とする。
【００１０】
このような構成によれば、文字を構成する字画の輪郭と文字全体の輪郭とを同じ情報から描画することができ、例えば、文字を構成する字画の輪郭と文字全体の輪郭とを個別の情報を用いて描画する方法に比べ、記憶しておくデータ量を少なくすることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の表示装置の一実施形態を図面に基づいて説明する。
＜表示装置の構成＞
図１は、本実施形態の表示装置の内部構成を示すブロック図である。この図１に示すように、表示装置１は、入力手段２、入力手段コントローラ３、メモリ４、メモリコントローラ５、外部記憶６、外部記憶コントローラ７、ＣＰＵ８、表示コントローラ９、表示体１０、バスコントローラ１１、及び電源コントローラ１２を含んで構成される。
【００１２】
入力手段２は、マウスやキーボード等、文字の描画を指示するときに操作させる機器である。そして、入力手段２は、文字の描画を指示するための操作が行われると、文字の描画指示を入力手段コントローラ３を介してＣＰＵ８に出力する。
ここで、文字の描画指示としては、通常描画指示、白抜き輪郭描画指示、全輪郭描画指示、及び一画描画指示の４種類が挙げられる。
【００１３】
通常描画指示は、図２に示すように、文字全体を一色で描画する指示である。
白抜き輪郭描画指示は、図３に示すように、文字全体の輪郭を描画する指示である。
全輪郭描画指示は、図４に示すように、文字を構成する字画の輪郭それぞれを描画する指示である。
一画描画指示は、図５に示すように、文字を構成する字画を描画する指示である。ただし、図５において、細い線は補助的に図示したものである。
【００１４】
入力手段コントローラ３は、入力手段２とＣＰＵ８との間のデータ転送を制御する。
メモリ４は、ＣＰＵ８がプログラムを実行するときに各種プログラムを展開するワークエリアを形成するとともに、ＣＰＵ８により実行される各種プログラムに係るデータや、表示対象である情報のデータを記憶する記憶領域を形成する。
メモリコントローラ５は、メモリ４とＣＰＵ８との間のデータ転送を制御する。
【００１５】
外部記憶６は、ＣＰＵ８により実行される基本制御プログラムやアプリケーションプログラム等の各種プログラム及びこれら各種プログラムに係るデータを格納する。
ここで、外部記憶６に記憶されているデータとしては、表示対象となる文字の輪郭を描画するためのコンター＆筆順データ、及び制御点データが挙げられる。
コンター＆筆順データは、図６（ｂ）に示すように、前記字画の輪郭を構成する制御点の組を示すためのデータであり、当該データの順番を示す番号、及び前記文字を構成する字画の輪郭の終端の制御点を示す終端制御点番号（制御点データの番号）で構成される。
【００１６】
制御点データは、図６（ｃ）に示すように、前記字画の輪郭を構成する制御点を示すデータであり、当該データの順番を示す番号、当該データが曲線の制御点に対応することを示すOn-curve Flag（曲線の制御点に対応する場合に「１」となる）、当該データが字画が重なる部分に対応するものであることを示すOverlapped Flag（字画が重なっている部分に対応する場合に「１」となる）、及び前記制御点の座標値で構成される。
【００１７】
外部記憶コントローラ７は、外部記憶６とＣＰＵ８との間のデータ転送を制御する。
ＣＰＵ８は、外部記憶６に格納されている各種プログラムを読み込み、それらをメモリ４内に形成されるワークエリアに展開して各部２〜１２を制御する。
具体的には、ＣＰＵ８は、入力手段２から文字の描画指示が出力されると、ビットマップ生成処理を実行する。そして、ビットマップ生成処理によって、その描画指示の種類（通常描画指示、白抜き輪郭描画指示、全輪郭描画指示、一画描画指示）に基づいて、前記描画指示があった文字（文字全体の輪郭、文字、字画）のビットマップを生成する。
【００１８】
表示コントローラ９は、ＣＰＵ８でビットマップが生成されると、そのビットマップを表示体１０に描画する。
表示体１０は、電力供給が停止されても表示内容を保持できる記憶性表示体（コレステリック液晶）を含んで構成される。そして、表示体１０は、表示コントローラ９の描画動作によって表示内容が書き換えられる。
バスコントローラ１１は、ＣＰＵ８と各部２〜１２との間のデータ転送を制御する。
電源コントローラ１２は、ＣＰＵ８からの指令に従って、表示装置１の各部２〜１２への電源供給を制御する。
【００１９】
＜ＣＰＵの動作＞
次に、ＣＰＵ８で実行されるビットマップ生成処理を図７のフローチャートに基づいて説明する。
このビットマップ生成処理は、文字の描画指示があると実行される処理であって、まず、そのステップＳ１０１で、前記描画指示された文字のデータ（外部記憶６に記憶されているコンター＆筆順データ、及び制御点データ）を取得する。
次にステップＳ１０２に移行して、前記描画指示が通常描画指示であるか否かを判定する。そして、通常描画指示である場合には（Ｙｅｓ）ステップＳ１０３に移行し、通常描画指示でない場合には（Ｎｏ）ステップＳ１０４に移行する。
【００２０】
前記ステップＳ１０３では、前記ステップＳ１０１で取得されたデータに基づいて、前記描画指示された文字全体を一色で描画する通常描画処理（後述）を実行してから、この演算処理を終了する。
一方、前記ステップＳ１０４では、前記描画指示が白抜き輪郭描画指示であるか否かを判定する。そして、白抜き輪郭描画指示である場合には（Ｙｅｓ）ステップＳ１０５に移行し、白抜き輪郭描画指示でない場合には（Ｎｏ）ステップＳ１０６に移行する。
【００２１】
前記ステップＳ１０５では、前記ステップＳ１０１で取得されたデータに基づいて、前記描画指示された文字全体の輪郭のみ描画する白抜き輪郭描画処理（後述）を実行してから、この演算処理を終了する。
一方、前記ステップＳ１０６では、前記描画指示が全輪郭描画指示であるか否かを判定する。そして、全輪郭描画指示である場合には（Ｙｅｓ）ステップＳ１０７に移行し、全輪郭描画指示でない場合には（Ｎｏ）ステップＳ１０８に移行する。
【００２２】
前記ステップＳ１０７では、前記ステップＳ１０１で取得されたデータに基づいて、前記描画指示された文字を構成する字画の輪郭それぞれを描画する全輪郭描画処理（後述）を実行してから、この演算処理を終了する。
一方、前記ステップＳ１０８では、前記ステップＳ１０１で取得されたデータに基づいて、前記描画指示された文字を構成する字画を一つだけ描画する一画描画処理（後述）を実行してから、この演算処理を終了する。
【００２３】
次に、前記ビットマップ生成処理のステップＳ１０３で実行される通常描画処理を図８のフローチャートに基づいて説明する。この通常描画処理は、まず、そのステップＳ２０１で、白抜き輪郭描画処理を実行する。
次にステップＳ２０２に移行して、前記ステップＳ２０１で描画された輪郭の内部を塗りつぶすビットマップを生成してから、この演算処理を終了する。
【００２４】
次に、前記ビットマップ生成処理のステップＳ１０５、或いは前記通常描画処理のステップＳ２０１で実行される白抜き輪郭描画処理を図９のフローチャートに基づいて説明する。この白抜き輪郭描画処理は、まず、そのステップＳ３０１で、後述するステップＳ３０２、Ｓ３０３の処理が行われていないコンター＆筆順データを当該データに含まれる番号に従って前記ステップＳ１０１で取得されたコンター＆筆順データから１つ取得する。
【００２５】
次いで、そのコンター＆筆順データの終端制御番号に対応する制御点データ群（それまで取得した制御点データに続く制御点データ（取得した制御データがない場合は番号１の制御点データ）から前記終端制御番号を持つ制御点データまで）を前記ステップＳ１０１で取得された制御点データから取得する（次の一画分のデータを取得する）。
次にステップＳ３０２に移行して、前記ステップＳ３０２でデータを取得できたか否かを判定する。そして、データを取得できた場合には（Ｙｅｓ）ステップＳ３０３に移行し、取得できなかった場合には（Ｎｏ）この演算処理を終了する。
【００２６】
前記ステップＳ３０３では、前記ステップＳ３０１で取得された制御点データに基づいて前記描画指示された文字の輪郭のビットマップを生成する非交差一画輪郭情報生成処理（後述）を実行してから、前記ステップＳ３０１に移行する。
次に、前記ビットマップ生成処理のステップＳ１０７で実行される全輪郭描画処理を図１０のフローチャートに基づいて説明する。この全輪郭描画処理は、まず、そのステップＳ４０１で、後述するステップＳ４０２、Ｓ４０３の処理が行われていないコンター＆筆順データを当該データに含まれる番号に従って前記ステップＳ１０１で取得されたコンター＆筆順データから１つ取得する。
【００２７】
次いで、そのコンター＆筆順データの終端制御番号に対応する制御点データ群（それまで取得した制御点データに続く制御点データ（取得した制御データがない場合は番号１の制御点データ）から前記終端制御番号を持つ制御点データまで）を前記ステップＳ１０１で取得された制御点データから取得する（次の一画分のデータを取得する）。
次にステップＳ４０２に移行して、前記ステップＳ４０１でデータを取得できたか否かを判定する。そして、データを取得できた場合には（Ｙｅｓ）ステップＳ４０３に移行し、取得できなかった場合には（Ｎｏ）この演算処理を終了する。
前記ステップＳ４０３では、一画輪郭情報生成処理を実行してから、前記ステップＳ４０１に移行する。
【００２８】
次に、前記ビットマップ生成処理のステップＳ１０８で実行される一画描画処理を図１１のフローチャートに基づいて説明する。この一画描画処理は、まず、そのステップＳ５０１で、一画輪郭情報生成処理（後述）を実行する。
次にステップＳ５０２に移行して、前記ステップＳ５０１で描画された輪郭の内部を塗りつぶすビットマップを生成してから、この演算処理を終了する。
【００２９】
次に、前記白抜き輪郭描画処理のステップＳ３０３で実行される非交差一画輪郭情報生成処理を図１２のフローチャートに基づいて説明する。この非交差一画輪郭情報生成処理は、まず、不図示のステップで、前記ステップＳ３０１で取得された一画分の制御点データに対し、連続した２個の制御点データで且つOn-curve Flagが共に「０」である全ての場合に対し、On-curve Flagが「１」となる新たな制御点データを挿入する。新たな制御点データの座標は前記２個の制御点データの中点と一致するように、Overlapped Flagは新たな制御点データの次に位置する制御点データのOverlapped Flagと一致するように、それぞれ設定する。次に、ステップＳ６０１で、前記不図示のステップで取得された制御点データから当該データの番号に従って１つの線分データを選出する（次の線分データを取得する）。ここで線分のデータとは、２個あるいは３個の制御点データから構成されるデータであり、２個の場合は直線を、３個の場合はベジエ曲線を、それぞれ示している。図中では省略しているが、これらの区別は、２個目の制御点データのOn-curve Flagによって判別される。On-curve Flagが「０」である場合は、さらに次の制御点データを取得し、３個の制御点データから構成されるベジエ曲線データであると判別する。一方、２個目の制御点データのOn-curve Flagが「０」でない場合は、２個の制御点データから構成される直接データであると判別する。
【００３０】
次にステップＳ６０２に移行して、前記ステップＳ６０１でデータを選出できたか否かを判定する。そして、データを選出できなかった場合には（Ｎｏ）この演算処理を終了し、選出できた場合には（Ｙｅｓ）ステップＳ６０３に移行する。
次にステップＳ６０３に移行して、前記ステップＳ６０１で選出された線分データの、１個目の制御点データのOverlapped Flagが「１」であるか否かを判定する（他の領域と重なるフラグは１であるか否かを判定する）。そして、「１」である場合には（Ｙｅｓ）前記ステップＳ６０１に移行し、「１」でない場合には（Ｎｏ）ステップＳ６０４に移行する。
【００３１】
前記ステップＳ６０４では、前記ステップＳ６０１で選出された線分データが直線であるか否かを判定する。そして、「直線」である場合には（Ｙｅｓ）ステップＳ６０５に移行し、「直線」でない場合には（Ｎｏ）ステップＳ６０６に移行する。
前記ステップＳ６０５では、前記ステップＳ６０１で選出された線分データに基づいて、前記描画指示された文字を構成する字画の輪郭の一部（直線）を描画するビットマップを生成してから、前記ステップＳ６０１に移行する。
一方、前記ステップＳ６０６では、前記ステップＳ６０１で選出された線分データに基づいて、前記描画指示された文字を構成する字画の輪郭の一部（ベジエ曲線）を描画するビットマップを生成してから、前記ステップＳ６０１に移行する。
【００３２】
次に、前記一画描画処理のステップＳ５０１で実行される一画輪郭情報生成処理を図１３のフローチャートに基づいて説明する。この一画輪郭情報生成処理は、まず、不図示のステップで、前記ステップＳ１０１で取得されたコンター＆筆順データから指定された番号のデータを取得し、そのコンター＆筆順データの終端制御番号に対応する制御点データ群（番号１の制御点データから前記終端制御番号を持つ制御点データまで）を前記ステップＳ１０１で取得された全ての制御点データから取得された一画分の制御点データ、あるいは前記ステップＳ４０１で取得された一画分の制御点データに対し、連続した２個の制御点データで且つOn-curve Flagが共に「０」である全ての場合に対し、On-curve Flagが「１」となる新たな制御点データを挿入する。新たな制御点データの座標は前記２個の制御点データの中点と一致するように、Overlapped Flagは新たな制御点データの次に位置する制御点データのOverlapped Flagと一致するように、それぞれ設定する。次に、ステップＳ７０１で、前記不図示のステップで取得された制御点データから当該データの番号に従って１つの線分データを選出する（次の線分データを取得する）。ここで線分のデータとは、２個あるいは３個の制御点データから構成されるデータであり、２個の場合は直線を、３個の場合はベジエ曲線を、それぞれ示している。図中では省略しているが、これらの区別は、２個目の制御点データのOn-curve Flagによって判別される。On-curve Flagが「０」である場合は、さらに次の制御点データを取得し、３個の制御点データから構成されるベジエ曲線データであると判別する。一方、２個目の制御点データのOn-curve Flagが「０」でない場合は、２個の制御点データから構成される直接データであると判別する。
【００３３】
次にステップＳ７０２に移行して、前記ステップＳ７０１でデータを取得できたか否かを判定する。そして、データを取得できなかった場合には（Ｎｏ）この演算処理を終了し、取得できた場合には（Ｙｅｓ）ステップＳ７０３に移行する。
前記ステップＳ７０３では、前記ステップＳ７０１で選出された線分データが「線分」であるか否かを判定する。そして、「線分」である場合には（Ｙｅｓ）ステップＳ７０４に移行し、「線分」でない場合には（Ｎｏ）ステップＳ７０５に移行する。
【００３４】
前記ステップＳ７０４では、前記ステップＳ７０１で選出された線分データに基づいて、前記描画指示された文字を構成する字画の輪郭の一部（直線）を描画するビットマップを生成してから、前記ステップＳ７０１に移行する。
一方、前記ステップＳ７０５では、前記ステップＳ７０１で選出された線分データに基づいて、前記描画指示された文字を構成する字画の輪郭の一部（ベジエ曲線）を描画するビットマップを生成してから、前記ステップＳ７０１に移行する。
【００３５】
＜表示装置の動作＞
次に、本実施形態の表示装置１の動作を具体的状況に基づいて説明する。
まず、利用者が白抜き輪郭描画による文字の描画を指示する操作を行い、入力手段２によって、文字の描画指示がＣＰＵ８に出力されたとする。すると、ＣＰＵ８によって、ビットマップ生成処理が実行され、図７に示すように、まず、ステップＳ１０１で、前記描画指示された文字のデータ（外部記憶６に記憶されているコンター＆筆順データ、及び制御点データ）が取得され、ステップＳ１０２の判定が「Ｎｏ」となり、ステップＳ１０４の判定が「Ｙｅｓ」となり、ステップＳ１０５で、白抜き輪郭描画処理が実行される。
【００３６】
白抜き輪郭描画処理が実行されると、図９に示すように、まず、ステップＳ３０１で、図６（ｂ）に示すように、前記取得されたコンター＆筆順データから番号１のデータが取得され、図６（ｃ）に示すように、そのコンター＆筆順データの終端制御番号（２１）に対応する制御点データ群（番号１〜２１の制御点データ）が前記取得された制御点データから取得される（一画目のデータが取得される）、ステップＳ３０２の判定が「Ｙｅｓ」となり、ステップＳ３０３で、非交差一画輪郭情報生成処理が実行される。
【００３７】
非交差一画輪郭情報生成処理が実行されると、図１２に示すように、前記ステップＳ６０１で、前記取得された制御点データのうち番号１及び番号２のデータが線分データとして選出され、ステップＳ６０２の判定が「Ｙｅｓ」となり、図６（ｃ）に示すように、前記選出された制御点データのOverlapped Flagが「１」であったとすると、ステップＳ６０３の判定が「Ｙｅｓ」となり、前記ステップＳ６０１から上記フローが繰り返し実行される。
【００３８】
上記フローが繰り返されるうちに、Overlapped Flagが「０」の番号４の制御点データを含む、番号４ないし番号６の制御点データが線分データとして選出されたとすると、前記ステップＳ６０３の判定が「Ｎｏ」となり、前記線分データが「直線」でなかったとすると、ステップＳ６０４の判定が「Ｎｏ」となり、ステップＳ６０６で、前記選出された線分データに基づいて、前記描画指示された文字を構成する字画（文字「よ」の一画目）の輪郭の一部（ベジエ曲線）を描画するビットマップが生成され、前記ステップＳ６０１から上記フローが繰り返し実行され、図６（ａ）に示すように、前記文字「よ」の一画目から二画目と重なっている部分を除いた輪郭を描画するビットマップが生成される。
【００３９】
そして、図９に示すように、前記ステップＳ３０１で、図６（ｂ）に示すように、コンター＆筆順データの番号２のデータが取得され、図６（ｃ）に示すように、そのコンター＆筆順データの終端制御番号（８５）に対応する制御点データ群（番号２２〜８５の制御点データ）が取得される（二画目のデータが取得される）、前記ステップＳ３０２を経て、前記ステップＳ３０３で、再び非交差一画輪郭情報生成処理が実行される。
【００４０】
非交差一画輪郭情報生成処理が実行されると、図１２に示すように、前記ステップＳ６０１で、前記取得された制御点データのうち番号２２ないし番号２４のデータが線分データとして選出され、前記ステップＳ６０２を経て、前記線分データの始点となる制御点データ（番号２２）のOverlapped Flagが「０」であったとすると、前記ステップＳ６０３の判定が「Ｎｏ」となり、前記線分データが「直線」でないとすると、前記ステップＳ６０４の判定が「Ｎｏ」となり、前記ステップＳ６０６で、前記選出された線分データに基づいて、前記描画指示された文字を構成する字画の輪郭の一部（ベジエ曲線）を描画するビットマップが生成され、前記ステップＳ６０１から上記フローが繰り返し実行され、図６（ａ）に示すように、前記字画（文字「よ」の二画目）の輪郭を描画するビットマップが生成される。
【００４１】
そして、図９に示すように、前記ステップＳ３０１で、図６（ｂ）に示すように、コンター＆筆順データの番号３のデータEnd of glyphが取得され、前記ステップＳ３０２の判定が「Ｎｏ」となり、この演算処理を終了する。その後、表示コントローラ９によって、それら生成されたビットマップが表示体１０に描画され、図３に示すように、前記描画指示された文字「よ」全体の輪郭のみが表示体１０に表示される。
【００４２】
また、利用者が一画描画による文字の描画を指示する操作を行い、入力手段２によって、文字の描画指示がＣＰＵ８に出力されたとする。すると、ＣＰＵ８によって、ビットマップ生成処理が実行され、図７に示すように、前記ステップＳ１０１で、前記描画指示された文字のデータが取得され、前記ステップＳ１０２の判定が「Ｎｏ」となり、ステップＳ１０４の判定が「Ｙｅｓ」となり、ステップＳ１０５で、一画描画処理が実行される。
【００４３】
一画描画処理が実行されると、図１１に示すように、ステップＳ５０１で、一画輪郭情報生成処理が実行される。すると、図１３に示すように、ステップＳ７０１で、前記取得されたコンター＆筆順データから指示された番号のデータが取得され、そのコンター＆筆順データの終端制御番号に対応する制御点データ群が前記取得された制御点データから取得され、その制御点データから当該データの番号に従って１つの線分データが選出され、ステップＳ７０２の判定が「Ｙｅｓ」となり、ステップＳ７０３の判定が「Ｎｏ」となり、ステップＳ７０５で、前記選出された線分データに基づいて、前記描画指示された文字を構成する字画（文字「よ」の一画目）の輪郭の一部（ベジエ曲線）を描画するビットマップが生成され、図５に示すように、前記ステップＳ７０１から上記フローが繰り返し実行され、前記文字「よ」の一画目の輪郭を描画するビットマップが生成される。
【００４４】
そして、図１１に示すように、ステップＳ５０２で、前記輪郭の内部を塗りつぶすビットマップが生成されてから、この演算処理を終了する。その後、表示コントローラ９によって、それら生成されたビットマップが表示体１０に描画され、図５に示すように、前記描画指示された文字「よ」の一画目が表示体１０に表示される。
また、利用者が通常描画による文字の描画を指示する操作を行い、入力手段２によって、文字の描画指示がＣＰＵ８に出力されたとする。すると、ＣＰＵ８によって、ビットマップ生成処理が実行され、図７に示すように、前記ステップＳ１０１で、前記描画指示された文字のデータが取得され、前記ステップＳ１０２の判定が「Ｙｅｓ」となり、前記ステップＳ１０３で、通常描画処理が実行される。
【００４５】
通常描画処理が実行されると、図８に示すように、まず、そのステップＳ２０１で、白抜き輪郭描画処理が実行され、前記描画指示された文字「よ」の一画目から二画目と重なっている部分を除いた輪郭を描画するビットマップが生成される。
そして、ステップＳ２０２で、その描画された輪郭の内部を塗りつぶすビットマップが生成され、この演算処理を終了する。その後、表示コントローラ９によって、それら生成されたビットマップが表示体１０に描画され、図２に示すように、前記描画指示された文字全体が一色で表示体１０に表示される。
【００４６】
さらに、利用者が全輪郭描画による文字の描画を指示する操作を行い、入力手段２によって、文字の描画指示がＣＰＵ８に出力されたとする。すると、ＣＰＵ８によって、ビットマップ生成処理が実行され、図７に示すように、前記ステップ１０１で、前記描画指示された文字のデータが取得され、前記ステップＳ１０２及びＳ１０４の判定が「Ｎｏ」となり、前記ステップＳ１０６の判定が「Ｙｅｓ」となり、前記ステップＳ１０７で、全輪郭描画処理が実行される。
【００４７】
全輪郭描画処理が実行されると、図１０に示すように、ステップＳ４０１で、前記取得されたコンター＆筆順データから番号１のデータが取得され、そのコンター＆筆順データの終端制御番号（２１）に対応する制御点データ群（番号１〜２１の制御点データ）が前記取得された制御点データから取得される（一画目のデータが取得される）、ステップＳ４０２の判定が「Ｙｅｓ」となり、ステップＳ４０３で、一画輪郭情報生成処理が実行され、前記文字「よ」の一画目の輪郭を描画するビットマップが生成される。
【００４８】
そして、前記ステップＳ４０１で、コンター＆筆順データの番号２のデータが取得され、そのコンター＆筆順データの終端制御番号（８５）に対応する制御点データ群（番号２２〜８５の制御点データ）が取得される（二画目のデータが取得される）、前記ステップＳ４０２を経て、前記ステップＳ４０３で、再び一画輪郭情報生成処理が実行され、前記文字「よ」の二画目の輪郭を描画するビットマップが生成される。
【００４９】
そして、前記ステップＳ４０１で、コンター＆筆順データの番号３のデータEnd of glyphが取得され、前記ステップＳ４０２の判定が「Ｎｏ」となり、この演算処理を終了する。その後、表示コントローラ９によって、それら生成されたビットマップが表示体１０に描画され、図４に示すように、前記描画指示された文字「よ」を構成する字画の輪郭それぞれが表示体１０に表示される。
【００５０】
このように、本実施形態の表示装置にあっては、制御点データのOn-curve Flag、座標（文字を構成する字画の輪郭の情報）と、Overlapped Flag（前記字画が重なっている部分を表す情報）とを記憶し、それら記憶された情報に基づいて前記字画が重なっている部分を除いた前記字画の輪郭を描画するようにした。そのため、文字を構成する字画の輪郭と文字全体の輪郭とを同じデータから描画することができ、例えば、文字を構成する字画の輪郭と文字全体の輪郭とを専用データから描画する方法に比べ、記憶しておくデータ量を少なくすることができ、外部記憶装置６の記憶容量を低減できる。
【００５１】
ちなみに、文字を構成する字画の輪郭のデータと文字全体の輪郭のデータとの両データを記憶する従来の方法にあっては、文字「よ」のデータの場合、一画目に２１個、二画目に５６個の制御点が必要となり、合計１４７個の制御点が必要となる。
これに対し、本実施形態の方法にあっては、一画目に２１個、二画目に６０個の制御点が必要となり、合計８１個の制御点（制御点データ）が必要となる。
【００５２】
また、各制御点データにおいて、座標に１６ビット、On-curve Flagに１ビット、Overlapped Flagに１ビットのデータ量を用いると、前記従来の方法にあっては、１制御点に３３ビット必要となり、文字「よ」のデータ量は合計４８５１ビットとなる。
これに対し、本実施形態の方法にあっては、１制御点に３４ビットのデータ量が必要となり、文字「よ」のデータ量は合計２７５４ビットとなる。そのため、前記従来の方法に比べ、データ量が５３％で済むこととなる。
【００５３】
さらに、通常描画処理にあっては、文字全体の輪郭のビットマップを生成する白抜き輪郭描画処理を実行してから内部を塗りつぶすようにしたため、例えば、文字を構成する字画の輪郭それぞれのビットマップを生成してから内部を塗りつぶす方法と異なり、輪郭同士の交差がないことが保証され、レンダラの構成を単純化することができる。
上記実施形態では、図１２のステップＳ６０１が特許請求の範囲に記載の取得機能を構成し、以下同様に、図１２のステップＳ６０３〜Ｓ６０６が描画機能を構成し、図７のステップＳ１０２、Ｓ１０４及びＳ１０６が選択機能を構成し、図１のメモリ４が記憶手段を構成し、図１のＣＰＵ８、図１２のステップＳ６０１が取得手段を構成し、図１のＣＰＵ８、表示コントローラ９、表示体１０、図１２のステップＳ６０３〜Ｓ６０６が描画手段を構成する。
【００５４】
なお、本発明の表示装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
上記実施形態では、制御点データが字画が重なる部分に対応するか否かを示すOverlapped Flagを当該データそれぞれに付加する例を示したが、これに限られるものではない。例えば、図１４（ｄ）に示すように、Overlapped Flagが「０」又は「１」である制御点が連続して現れる回数をまとめてOverlapped情報として記憶してもよい。
【００５５】
具体的には、Overlapped情報は、当該情報の順番を示す番号、Overlapped Flagが「０」である制御点が連続して現れる回数を示す連続Normal制御点数、及び前記連続Normal制御点数が示す「０」が現れた後に、Overlapped Flagが「１」である制御点が連続して現れる回数を示す連続Overlapped制御点数で構成される。
なお、図１４（ｄ）では、番号１の連続Normal制御点数の値が「０」となっているが、これは一画目の最初の制御点のOverlapped Flagが「１」となるためである（Overlapped Flagが「０」から始まらず、Overlapped Flag「１」が連続して現れる回数が０となっているためである）。また、End of dataは、Overlapped情報がそこで終了し、残りのOverlapped Flagが「０」であることを示す情報である。
【００５６】
また、図１５に示すように、Overlapped情報として、On-curve Flagが「１」で且つOverlapped Flagが「１」である制御点番号を記憶するようにしてもよい。
さらに、座標値が曲線の制御点に対応することを示すOn-curve Flagを用いる例を示したが、これに限られるものではない。例えば、図１６（ｃ）に示すように、座標値が示す線分の種類（直線、ベジエ曲線）を示すElement Typeを用いてもよい。
【００５７】
なお、Moveエレメントは、コンターの切れ目に現れるため、Element Typeを先頭から順番にスキャンしてＭｏｖｅエレメントを検出することで字画が変わる場所を検出できるが、図１６（ｂ）に示すように、コンター＆筆順データを用いることで、例えば、二画目を描画する要求に対してスキャンの必要がなく早急に応答することができる。
また、図１７に示すように、自分自身の字画と重なる部分のデータを持たないようにしてもよい。また、コンター＆筆順データを用いずに、対応するデータを制御点データ内のフラグ（End-of-contour Flag、Head-of-stroke Flag）で記憶してもよい。
【００５８】
具体的には、制御点データは、番号、On-curve Flag、End-of-contour Flag、Head-of-stroke Flag、Overlapped Flag、及び座標値を含んで構成される。
End-of-contour Flagは、コンターの終了する制御点を示すものであり、「１」はコンターがそこで終了していることを示し、「０」は同じコンターが続くことを示す。
Head-of-stroke Flagは、字画の最初の制御点を示すフラグであり、「１」は字画の最初の制御点であることを示し、「０」である場合には当該制御点でないことを示す。
【００５９】
この例では、図１７では、コンターの開始は、１、２２、６４の３カ所となる（最初の制御点、End-of-contour Flagが１になっている制御点（最後の制御点は除く））。
また、一画目の開始は番号１の制御点となり、二画目の開始は番号２２の制御点となる。番号６４のHead-of-stroke Flagが「０」であるため、それまでの字画の続きのコンターとなっている。
【図面の簡単な説明】
【００６０】
【図１】本発明の表示装置の一実施形態の内部構成を示すブロック図である。
【図２】通常描画指示を説明するための説明図である。
【図３】白抜き輪郭描画指示を説明するための説明図である。
【図４】全輪郭描画指示を説明するための説明図である。
【図５】一画描画指示を説明するための説明図である。
【図６】文字のデータを説明するための説明図である。
【図７】ビットマップ生成処理のフローを示すフローチャートである。
【図８】通常描画処理のフローを示すフローチャートである。
【図９】白抜き輪郭描画処理のフローを示すフローチャートである。
【図１０】全輪郭描画処理のフローを示すフローチャートである。
【図１１】一画描画処理のフローを示すフローチャートである。
【図１２】非交差一画輪郭情報生成処理のフローを示すフローチャートである。
【図１３】一画輪郭情報生成処理のフローを示すフローチャートである。
【図１４】本発明の変形例を説明するための説明図である。
【図１５】本発明の変形例を説明するための説明図である。
【図１６】本発明の変形例を説明するための説明図である。
【図１７】本発明の変形例を説明するための説明図である。
【符号の説明】
【００６１】
１は表示装置、２は入力手段、３は入力手段コントローラ、４はメモリ、５はメモリコントローラ、６は外部記憶、７は外部記憶コントローラ、８はＣＰＵ、９は表示コントローラ、１０は表示体、１１はバスコントローラ、１２は電源コントローラ
【図１】
2007248583.tif 000003
【図２】
2007248583.tif 000004
【図３】
2007248583.tif 000005
【図４】
2007248583.tif 000006
【図５】
2007248583.tif 000007
【図６】
2007248583.tif 000008
【図７】
2007248583.tif 000009
【図８】
2007248583.tif 000010
【図９】
2007248583.tif 000011
【図１０】
2007248583.tif 000012
【図１１】
2007248583.tif 000013
【図１２】
2007248583.tif 000014
【図１３】
2007248583.tif 000015
【図１４】
2007248583.tif 000016
【図１５】
2007248583.tif 000017
【図１６】
2007248583.tif 000018
【図１７】
2007248583.tif 000019