(57)【要約】【課題】文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置を提供する。【解決手段】文字描画装置２２０は、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第１の記憶手段２１２−１と、文字コード１０と、文字に割り当てられた第１の矩形領域の大きさ１１Ａと、文字の線幅１２とを受け付ける受付手段１１０と、第１の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第２の矩形領域の大きさ１１Ｂを取得する取得手段１０４と、文字コードに基づいて第１の記憶手段から形状データを読み出して、対応する文字が第２の矩形領域に収まるように形状データに対して拡縮処理を行う拡縮手段１０６と、拡縮処理された形状データを出力する出力手段１０７とを備える。【選択図】図２
2010039375.tif 000002
【特許請求の範囲】
【請求項１】
表示デバイスに文字を表示させる文字描画装置であって、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第１の記憶手段と、
前記文字コードと、前記文字に割り当てられた第１の矩形領域の大きさと、前記文字の線幅とを受け付ける受付手段と、
前記第１の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第２の矩形領域の大きさを取得する取得手段と、
前記文字コードに基づいて前記第１の記憶手段から形状データを読み出して、対応する文字が前記第２の矩形領域に収まるように前記形状データに対して拡縮処理を行う拡縮手段と、
前記拡縮処理された前記形状データを出力する出力手段とを備える、文字描画装置。
【請求項２】
前記第１の矩形領域はボディ領域であって、
前記第１の矩形領域の大きさはボディサイズであって、
前記第２の矩形領域はレター領域であって、
前記第２の矩形領域の大きさはレターサイズである、請求項１に記載の文字描画装置。
【請求項３】
形状データに基づいて、対応する文字を構成する部位のうち、対称性を持つ対称部位を抽出する抽出手段をさらに備え、
前記取得手段は、第２の矩形領域の大きさとして、前記対称部位が表示される第２の矩形領域の、対称軸に直角な方向の長さを取得する、請求項１に記載の文字描画装置。
【請求項４】
前記表示デバイスは、マトリクス状に配列された複数の画素から構成され、
前記取得手段は、
前記第１の矩形領域の一辺の画素数を取得し、
前記線幅を示す画素数が奇数である場合に、前記第２の矩形領域の大きさとして、前記一辺の画素の数よりも少ない奇数の画素数を取得し、
前記線幅を示す画素数が偶数である場合に、前記第２の矩形領域の大きさとして、前記一辺の画素の数よりも少ない偶数の画素数を取得する、請求項１から３のいずれか１項に記載の文字描画装置。
【請求項５】
前記第２の矩形領域の大きさを、前記第１の矩形領域の大きさと前記線幅とに対応付けて記憶する第２の記憶手段をさらに備え、
前記取得手段は、前記第１の矩形領域の大きさと前記線幅とに基づいて、前記第２の記憶手段から対応する第２の矩形領域の大きさを読み出す、請求項１から４のいずれか１項に記載の文字描画装置。
【請求項６】
文字描画装置に、表示デバイスに文字を表示させるための文字描画方法であって、
前記文字描画装置は、
前記文字描画装置を制御する演算処理部と、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第１の記憶手段とを備え、
前記演算処理部が、前記文字コードと、前記文字に割り当てられた第１の矩形領域の大きさと、前記文字の線幅とを受け付けるステップと、
前記演算処理部が、前記第１の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第２の矩形領域の大きさを取得するステップと、
前記演算処理部が、前記文字コードに基づいて前記第１の記憶手段から形状データを読み出して、対応する文字が前記第２の矩形領域に収まるように前記形状データに対して拡縮処理を行うステップと、
前記演算処理部が、前記拡縮処理された前記形状データを出力するステップとを備える、文字描画方法。
【請求項７】
文字描画装置に、表示デバイスに文字を表示させるための文字描画プログラムであって、
前記文字描画装置は、
前記文字描画装置を制御する演算処理部と、
文字の形状を表す形状データの各々を前記文字を特定する文字コードに対応付けて記憶する第１の記憶手段とを備え、
前記文字コードと、前記文字に割り当てられた第１の矩形領域の大きさと、前記文字の線幅とを受け付けるステップと、
前記第１の矩形領域の大きさと前記文字の線幅とに基づいて、前記文字が表示される第２の矩形領域の大きさを取得するステップと、
前記文字コードに基づいて前記第１の記憶手段から形状データを読み出して、対応する文字が前記第２の矩形領域に収まるように前記形状データに対して拡縮処理を行うステップと、
前記演算処理部が、前記拡縮処理された前記形状データを出力するステップとを前記演算処理部に実行させる、文字描画プログラム。
【請求項８】
請求項７に記載の文字描画プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マトリクス状に配列された複数の画素からなる表示デバイスに文字を表示させる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な媒体に関し、特に、文字の対称性を保持しながら文字を表示デバイスに表示させる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な媒体に関する。
【背景技術】
【０００２】
近年、テレビジョン放送のデジタル化に伴い、ユーザが電子番組表（ＥＰＧ：Ｅｌｅｃｔｒｏｎｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅ）などのテキストデータを利用する頻度が高くなっている。そのため、文字描画装置には、見やすく読み易いテキストデータを描画することが望まれる。
【０００３】
ここで、見やすく読み易いテキストデータを描画する際に着目する点の一つとして、対称性の保持という観点がある。対称性のある文字の対称性が崩れた場合、ユーザには違和感が生じ、非常に読みにくい文字になってしまう。例えば、「山」という文字のように、文字を構成する少なくとも１つストロークに対して左右対称な文字の場合、対称軸となる「山」の真ん中のストロークは当該文字の中央に位置する必要がある。しかしながら、「山」の真ん中のストロークが文字の中心に位置しない場合、すなわち「山」の両端のストロークのうちの一方のストロークが中央側に移動する場合、もしくは外側に移動するような場合、「山」という文字の左右対称性が崩れてしまい、ユーザには違和感が生じ、非常に読みにくい文字になってしまう。
【０００４】
そこで、特開平６−２７４１５１号公報（特許文献１）には、アウトラインフォントの対称性を保持しながら変倍して文字を描画するヒンティング処理方法が開示されている。特開平６−２７４１５１号公報（特許文献１）によると、ヒンティング処理方法においては、制御点情報入力部からアウトラインデータに対して、制御点を与える。展開部は、制御点をピクセル中心またはピクセル境界に移動する。この移動量に合わせてアウトラインフォントの輪郭点を移動することにより、対称性の保持されたビットマップデータを生成する。
【特許文献１】特開平６−２７４１５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特開平６−２７４１５１号公報（特許文献１）に示されるように、従来は、アウトラインデータに対してある制御点を与え、当該アウトラインデータを変倍した後に当該制御点をピクセル中心またはピクセル境界に移動し、この移動量に合わせてアウトラインフォントを構成する全ての輪郭点を移動させることにより、対称性の保持された文字を描画していた。なお、ピクセルは、格子点を左下隅とする単位正方形であるものとし、ピクセルの中心座標は（ｍ＋０．５，ｎ＋０．５）と表される。そして、ｍ，ｎは整数である。
【０００６】
しかしながら、従来技術においては、アウトラインデータを変倍した後、変倍後の制御点の移動量に応じて、全ての輪郭線の構成する輪郭点を移動させる必要があり、対称文字の描画が完了するまでに多くのステップを要してしまう。
【０００７】
本発明は上記問題点に鑑みてなされたものであり、本発明の主たる目的は、対称性のある文字を描画する際に、当該文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明のある局面に従えば、表示デバイスに文字を表示させる文字描画装置が提供される。文字描画装置は、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第１の記憶手段と、文字コードと、文字に割り当てられた第１の矩形領域の大きさと、文字の線幅とを受け付ける受付手段と、第１の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第２の矩形領域の大きさを取得する取得手段と、文字コードに基づいて第１の記憶手段から形状データを読み出して、対応する文字が第２の矩形領域に収まるように形状データに対して拡縮処理を行う拡縮手段と、拡縮処理された形状データを出力する出力手段とを備える。
【０００９】
好ましくは、第１の矩形領域はボディ領域である。第１の矩形領域の大きさはボディサイズである。第２の矩形領域はレター領域である。第２の矩形領域の大きさはレターサイズである。
【００１０】
好ましくは、文字描画装置は、形状データに基づいて、対応する文字を構成する部位のうち、対称性を持つ対称部位を抽出する抽出手段をさらに備える。取得手段は、第２の矩形領域の大きさとして、対称部位が表示される第２の矩形領域の、対称軸に直角な方向の長さを取得する。
【００１１】
好ましくは、表示デバイスは、マトリクス状に配列された複数の画素から構成される。取得手段は、第１の矩形領域の一辺の画素数を取得し、線幅を示す画素数が奇数である場合に、第２の矩形領域の大きさとして、一辺の画素の数よりも少ない奇数の画素数を取得し、線幅を示す画素数が偶数である場合に、第２の矩形領域の大きさとして、一辺の画素の数よりも少ない偶数の画素数を取得する。
【００１２】
好ましくは、文字描画装置は、第２の矩形領域の大きさを、第１の矩形領域の大きさと線幅とに対応付けて記憶する第２の記憶手段をさらに備える。取得手段は、第１の矩形領域の大きさと線幅とに基づいて、第２の記憶手段から対応する第２の矩形領域の大きさを読み出す。
【００１３】
この発明の別の局面に従うと、文字描画装置に、表示デバイスに文字を表示させるための文字描画方法が提供される。文字描画装置は、文字描画装置を制御する演算処理部と、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第１の記憶手段とを備える。文字描画方法は、演算処理部が、文字コードと、文字に割り当てられた第１の矩形領域の大きさと、文字の線幅とを受け付けるステップと、演算処理部が、第１の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第２の矩形領域の大きさを取得するステップと、演算処理部が、文字コードに基づいて第１の記憶手段から形状データを読み出して、対応する文字が第２の矩形領域に収まるように形状データに対して拡縮処理を行うステップと、演算処理部が、拡縮処理された形状データを出力するステップとを備える。
【００１４】
この発明の別の局面に従うと、文字描画装置に、表示デバイスに文字を表示させるための文字描画プログラムが提供される。文字描画装置は、文字描画装置を制御する演算処理部と、文字の形状を表す形状データの各々を文字を特定する文字コードに対応付けて記憶する第１の記憶手段とを備える。文字描画プログラムは、文字コードと、文字に割り当てられた第１の矩形領域の大きさと、文字の線幅とを受け付けるステップと、第１の矩形領域の大きさと文字の線幅とに基づいて、文字が表示される第２の矩形領域の大きさを取得するステップと、文字コードに基づいて第１の記憶手段から形状データを読み出して、対応する文字が第２の矩形領域に収まるように形状データに対して拡縮処理を行うステップと、演算処理部が、拡縮処理された形状データを出力するステップとを演算処理部に実行させる。
【００１５】
この発明の別の局面に従うと、上記の文字描画プログラムを記録したコンピュータ読取可能な記録媒体が提供される。
【発明の効果】
【００１６】
以上のように、この発明によれば、対称性のある文字を描画する際に、当該文字の対称性を保持しつつ当該文字を容易に拡大または縮小することができる文字描画装置、文字描画方法、文字描画プログラム、およびコンピュータ読取可能な記録媒体が提供される。
【発明を実施するための最良の形態】
【００１７】
以下、図面に基づいて本発明の実施の形態について説明する。なお以下の説明では、同一の部品については同一の符号を付すものとし、その部品の名称や機能が同一である場合には、その部品についての詳細な説明は繰り返さない。
【００１８】
（コンピュータシステム２００の全体構成）
まず、文字描画システムの一例として、本実施の形態に係るコンピュータシステム２００の全体構成について説明する。図１は、本実施の形態に係るコンピュータシステム２００を示す概略図である。本実施の形態に係る文字描画システム（コンピュータシステム２００）や文字描画装置（コンピュータ２２０）は、実質的には、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。
【００１９】
このコンピュータシステム２００は、光ディスクドライブ２０１および磁気ディスクドライブ２０２を有するコンピュータ２２０と、モニタ２０３と、リモートコントローラ（以下、「リモコン」と呼ぶ）２０４とを含む。すなわち、本実施の形態においては、文字描画装置の一例として、コンピュータ２２０を用いて説明する。
【００２０】
コンピュータ２２０は、光ディスクドライブ２０１および磁気ディスクドライブ２０２に加えて、コンピュータ２２０の各部を制御するＣＰＵ（Central Processing Unit；中央処理装置）１００と、リモコン２０４からの信号を受信するリモコンインターフェイス（Ｉ／Ｆ）２０５と、ブートアッププログラム等を記憶するＲＯＭ（Read-Only Memory；読出専用メモリ）２０８と、プログラム命令やシステムプログラムや作業データなどを一時的に記憶するＲＡＭ（Random Access Memory）２０９と、制御プログラムや各種データベースを不揮発に記憶するハードディスク２１２と、モニタ２０３に形状データや画像データなどを送信するモニタインターフェイス２１３と、それらを相互に接続するバス２０７とを含む。
【００２１】
なお、コンピュータ２２０は、さらにＬＡＮ（Local Area Network）への接続を提供するネットワークアダプタボード（通信インターフェイス２１６）を含んでいてもよい。
【００２２】
コンピュータシステム２００に文字描画システムの機能を実現させるためのプログラム、文字コード１０（図２参照）、第１および第２の矩形領域サイズ１１Ａ，１１Ｂ、線幅１２、形状データ１３などは、光ディスクドライブ２０１に挿入される光ディスク２１０、磁気ディスクドライブ２０２に挿入される磁気ディスク２１１に記憶されて流通され、ハードディスク２１２へと転送される。あるいは、プログラム、文字コード１０（図２参照）、第１および第２の矩形領域サイズ１１Ａ，１１Ｂ、線幅１２、形状データ１３は、図示しないネットワークから通信インターフェイス２１６を介してコンピュータ２２０に送信され、ハードディスク２１２に記憶される。
【００２３】
ＣＰＵ１００は、ハードディスク２１２からプログラムを読み出すことによって、当該プログラムをＲＡＭ２０９にロードする。あるいは、ＣＰＵ１００は、光ディスク２１０から光ディスクドライブ２０１を介して、磁気ディスク２１１から磁気ディスクドライブ２０２を介して、ネットワークから通信インターフェイス２１６を介してプログラムを取得し、当該プログラムをＲＡＭ２０９にロードしてもよい。
【００２４】
このプログラムは、コンピュータ２２０に文字描画装置としての機能を実現させる複数の命令を含む。これら機能を実現するために必要な基本的機能のいくつかはコンピュータ２２０上で動作するオペレーティングシステム（ＯＳ）又はサードパーティのプログラム、若しくはコンピュータ２２０にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムは、本実施の形態に係るコンピュータ２２０の機能を実現するのに必要な機能全てを必ずしも含まなくてよい。
【００２５】
また、このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記したコンピュータ２２０の制御を実行する命令のみを含んでいればよい。コンピュータシステム２００の動作は周知であるので、ここでは繰り返さない。
【００２６】
なお、文字描画装置としての機能を実現するためのプログラム、文字コード１０（図２参照）、第１の矩形領域サイズ１１Ａ、線幅１２、形状データ１３などが記録される記録媒体は、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＭＯ（Magneto-Optical disc）、ＭＤ（Mini Disc）、及びＤＶＤ（Digital Versatile Disc）等の光ディスク２１０、ＦＤ（フレキシブルディスク）、ハードディスク等の磁気ディスクに限らない。磁気テープおよびカセットテープ等のテープ、ＩＣ（Integrated Circuit）カードおよび光カード等のカード型記録媒体、マスクＲＯＭ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）、及びフラッシュＲＯＭ等の半導体メモリのいずれかでもよい。ただし、コンピュータシステム２００は、これらの記録媒体からの読出を行うための読出装置を実装する必要がある。
【００２７】
＜機能構成＞
次に、本実施の形態に係るコンピュータ（文字描画装置）２２０が有する機能構成について説明する。図２は、本実施の形態に係るコンピュータ（文字描画装置）２２０の機能構成を示す機能ブロック図である。
【００２８】
前述したように、図２に示される各部は、ＣＰＵ１００がハードディスク２１２に記憶されるプログラムを実行することによって実現される機能である。ただし、図２に示される１または複数の機能ブロックが、専用のハードウェア回路によって実現される構成であってもよい。
【００２９】
図２に示すように、本実施の形態に係るコンピュータ２２０は、文字コード受付部１０１、サイズ受付部１０２、線幅受付部１０３、取得部１０４、拡縮部１０６、出力部１０７、および形状データ記憶部２１２−１を備えている。なお、文字コード受付部１０１、サイズ受付部１０２、線幅受付部１０３は、外部からデータを受け付ける受付部１１０に含まれる。
【００３０】
まずは、コンピュータ２２０の各機能ブロックに入出力されるデータについて説明する。文字コード１０は、描画する文字を識別するために一意に振られた番号である。
【００３１】
第１の矩形領域サイズ１１Ａは、文字コード１０で示された文字を描画する際における、当該文字に割り当てられた領域の大きさを表す。本実施の形態においては、第１の矩形領域を文字のボディ枠とし、第１の矩形領域サイズ１１Ａを文字のボディサイズとする。たとえば、文字のボディ枠が左右方向および上下方向に２０ドット（画素）を有する場合、第１の矩形領域サイズ１１Ａには第１の矩形領域の大きさとして２０ドットがセットされる。
【００３２】
また、第２の矩形領域サイズ１１Ｂは、文字コード１０で示された文字を描画する際における、当該文字が実際に描画される領域の大きさを表す。本実施の形態においては、第２の矩形領域を文字のレター枠とし、第２の矩形領域サイズ１１Ｂを文字のレターサイズとする。たとえば、文字のレター枠が左右方向および上下方向に１９ドットを有する場合、第２の矩形領域サイズ１１Ｂには第２の矩形領域の大きさとして１９ドットがセットされる。
【００３３】
すなわち、第２の矩形領域は第１の矩形領域よりも小さい画素領域であって、第２の矩形領域サイズ１１Ｂは、第１の矩形領域サイズ１１Ａよりも小さい。
【００３４】
なお、第１および第２の矩形領域の形状は必ずしも正方形であるとは限らず、長方形であっても構わない。第１および第２の矩形領域が長方形である場合、矩形領域サイズ１１として、例えば左右方向（水平方向あるいは横方向）の大きさ（ドット数）と上下方向（垂直方向あるいは縦方向）の大きさ（ドット数）で表される情報がセットされる。
【００３５】
線幅１２は、文字コード１０で示された形状データ１３を描画する際における、各ストロークの線幅（太さ）を指す。例えば、１ドットの線幅にて文字を描画する場合には、線幅は１ドットとなり、２ドット線幅で文字を描画する場合には線幅は２ドットとなる。
【００３６】
形状データ１３は、文字を構成するデータを表す。なお、形状データ１３の形式にはこだわらない。例えば、形状データ１３は、アウトラインフォントのように、輪郭線を構成する点列データおよび制御点データからなる輪郭線情報を示すものであっても構わないし、文字のストロークを表す骨格データを示すものであっても構わない。
【００３７】
ここで、形状データ記憶部２１２−１について説明する。形状データ記憶部２１２−１は、各種記録媒体やネットワークなどを介して提供される形状データ１３を蓄積し、当該形状データ１３を管理する。形状データ記憶部２１２−１は、ハードディスク２１２に格納されるデータベースや、文字コード１０に対応する形状データ１３を記憶するためにＲＡＭ２０９に一時的に確保されるメモリ領域などによって実現される。
【００３８】
図３は、形状データ記憶部２１２−１が記憶する形状データ１３の例を示すイメージ図である。より詳細には、図３（ａ）は、形状データ記憶部２１２−１が「山」を示す文字コードに対応付けて格納している形状データ１３Ａである。図３（ｂ）は、形状データ記憶部２１２−１が「三」を示す文字コードに対応付けて格納している形状データ１３Ｂである。図３（ｃ）は、形状データ記憶部２１２−１が「仲」を示す文字コードに対応付けて格納している形状データ１３Ｃである。
【００３９】
なお、図３（ａ）（ｂ）（ｃ）に示される各ストロークの端点１および端点２は、１０２４ドット×１０２４ドットの画素領域における座標で表されている。
【００４０】
図３（ａ）に示すように、形状データ記憶部２１２−１は、「山」という漢字の骨格データを形状データ１３Ａとして格納する。ストローク識別子は各文字内で一意に振られ、端点１および端点２を両端点とするストロークデータを示す。なお、端点１および端点２の位置は、ボディサイズを１０２４×１０２４ドットの大きさとした場合の座標で示している。
【００４１】
オブジェクト識別子は、各ストロークが属するオブジェクト（部位）を示すものであって、同じオブジェクトに属するストロークには同じオブジェクト識別子が割り当てられる。ここで、オブジェクトとは、文字を構成する「偏」や「冠」などの部首や、部首以外のストロークの集合（ストローク群）などをいう。本実施の形態に係る形状データ記憶部２１２−１は、各文字の各ストロークをオブジェクト識別子に対応付けて記憶する。
【００４２】
対称性フラグは、当該文字あるいは当該文字に含まれるオブジェクトが対称性を有しているか否かを示すものである。すなわち、対称性フラグが「１」の文字あるいはオブジェクトは左右対称性を有し、対称性フラグが「２」の文字あるいはオブジェクトは上下対称性を有し、対称性フラグが「３」の文字あるいはオブジェクトは左右対称性と上下対称性と有し、対称性フラグが「０」の文字あるいはオブジェクトは対称性を有しない。
【００４３】
なお、対称性を有している文字は、完全な線対称性を有している必要はない。実施の形態３において詳述するが、たとえば、文字（オブジェクト）の右側と左側との類似度（あるいは上側と下側との類似度）が所定の閾値以上であれば、当該文字を左右対称（上下対称）であるものとして取り扱うことが好ましい。
【００４４】
すなわち、各文字において、同一のオブジェクト識別子を有するストロークは、同一の識別子を有する。ただし、「山」や「三」などのように、１種類のオブジェクト識別子だけを含む文字も存在する。換言すれば、そのような文字については、取得部１０４（ＣＰＵ１００）が、文字全体を１つのオブジェクトとして取り扱うことができる。
【００４５】
例えば、「山」は４つのストロークからなる。４つのストロークとも、全て同じオブジェクト「１」に属している。また、「山」という文字が左右対称性を持っていることが分かる。これによって、取得部１０４は、形状データ１３Ａを参照して、「山」という文字（オブジェクト）はオブジェクト識別子が全て「１」で同じなので一つのオブジェクトからなっていることを認識することができる。また、取得部１０４は、「山」という文字（オブジェクト）の対称性フラグが「１」であるので、「山」という文字（オブジェクト）が左右対称性を有することを認識することができる。
【００４６】
図３（ｂ）に示すように、形状データ記憶部２１２−１は、「三」という漢字の骨格データを形状データ１３Ｂとして格納する。取得部１０４は、形状データ１３Ｂを参照して、「三」という文字（オブジェクト）はオブジェクト識別子が全て「１」で同じなので一つのオブジェクトからなっていることを認識することができる。また、取得部１０４は、「三」という文字（オブジェクト）の対称性フラグが「２」であるので、「三」という文字（オブジェクト）が上下対称性を有することを認識することができる。
【００４７】
図３（ｃ）に示すように、形状データ記憶部２１２−１は、「仲」という漢字の骨格データを形状データ１３Ｃとして格納する。取得部１０４は、形状データ１３Ｃを参照して、「仲」という文字が、８つのストロークから構成され、ストローク識別子が１〜３のストローク群（人偏）からなるオブジェクトと、４〜８のストローク群（「中」の部分）からなるオブジェクトから構成されていることを認識することができる。また、取得部１０４は、形状データ１３Ｃを参照して、人偏のオブジェクトの対称性フラグが「０」であるので、人偏が対称性を有しないことを認識することができる。一方、取得部１０４は、形状データ１３Ｃを参照して、「中」のオブジェクトの対称性フラグが「１」であるので、「中」のオブジェクトが左右対称性を有することを認識することができる。
【００４８】
図２に戻って、文字コード受付部１０１は、例えば無線もしくは有線を介して提供される文字コード１０を受信するインターフェイスを備えており、外部から文字コード１０の入力を受け付ける。あるいは、文字コード受付部１０１は、他のプログラム（アプリケーション）から提供される文字コードを受け付ける。
【００４９】
サイズ受付部１０２は、例えば無線もしくは有線を介して提供される矩形領域サイズ１１を受信するインターフェイスを備えており、第１および第２の矩形領域サイズ１１Ａ，１１Ｂの入力を受け付ける。あるいは、サイズ受付部１０２は、他のプログラム（アプリケーション）から提供される第１および第２の矩形領域サイズ１１Ａ，１１Ｂを受け付ける。
【００５０】
線幅受付部１０３は、例えば無線もしくは有線を介して提供される線幅１２を受信するインターフェイスを備えており、線幅１２の入力を受け付ける。あるいは、線幅受付部１０３は、他のプログラム（アプリケーション）から提供される線幅１２を受け付ける。
【００５１】
本実施の形態に係る取得部１０４は、線幅受付部１０３を介して入力された線幅１２と、サイズ受付部１０２を介して入力された第１および第２の矩形領域サイズ１１Ａ，１１Ｂとに基づいて、描画する際の最終的な第２の矩形領域サイズ１１Ｂを決定する。すなわち、本実施の形態に係る取得部１０４は、線幅受付部１０３を介して入力された線幅１２と、サイズ受付部１０２を介して入力された第１の矩形領域サイズ１１Ａとに基づいて、サイズ受付部１０２を介して入力された第２の矩形領域サイズ１１Ｂを修正する。
【００５２】
拡縮部１０６は、文字コード受付部１０１を介して入力された文字コード１０に対応する形状データ１３を形状データ記憶部２１２−１から読み出し、最終的な第２の矩形領域サイズ１１Ｂに収まるように当該形状データ１３の拡大処理または縮小処理を行う。例えば、第２の矩形領域サイズ１１Ｂが２３ドットである場合、上下方向および左右方向の大きさが２３ドットの第２の矩形領域に収まるように文字の大きさを調整する。
【００５３】
出力部１０７は、拡縮部１０６で処理された形状データ１３をモニタインターフェイス２１３を介してモニタ２０３に出力する。あるいは、出力部１０７は、拡縮部１０６で処理された形状データ１３を通信インターフェイス２１６を介してもネットワークへと出力する。なお、コンピュータ２２０自体が描画機能（モニタ）を備えている場合は、拡縮処理された形状データ１３に従って文字描画を行った結果を当該モニタに表示するものであっても構わない。
【００５４】
（本実施の形態に係るコンピュータ２２０の動作概要１）
（線幅が２ドットの場合）
ここで、本実施の形態に係る取得部１０４の動作概要について詳述する。以下では、左右対称性を持つ文字の文字コード１０が入力された場合に、モニタ２０３などに左右対称性を持つ文字を描画する（表示する）際の動作概要について説明する。
【００５５】
本実施の形態においては、文字コード１０としてＳＪＩＳコードが入力されるものとする。さらに、ここでは、「山」という文字の文字コード「０ｘ８ｅ５２」が、文字コード受付部１０１を介して入力されるものとする。そして、第１の矩形領域サイズ１１Ａ（ボディサイズ）として１６ドットという情報が、第２の矩形領域サイズ１１Ｂ（レターサイズ）として１５ドットという情報が、サイズ受付部１０２を介して入力されるものとする。また、線幅として２ドットという情報が、線幅受付部１０３に入力される。
【００５６】
換言すれば、文字コード受付部１０１は文字コード（ＳＪＩＳコード）０ｘ８ｅ５２という情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第１の矩形領域サイズ１１Ａとして１６ドットという情報を受け付けて、取得部１０４に受け渡す。線幅受付部１０３は線幅として２ドットという情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第２の矩形領域サイズ１１Ｂとして１５ドットという情報を受け付けて、取得部１０４に受け渡す。
【００５７】
そして、取得部１０４は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が２ドットであって、すなわち線幅が偶数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂが偶数であるか否かを判断する。ここでは、第２の矩形領域サイズ１１Ｂが１５ドットであり、すなわち第２の矩形領域サイズ１１Ｂが奇数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂから１だけ小さい値を第２の矩形領域サイズ１１Ｂとしてセットし直す。すなわち、取得部１０４は、第２の矩形領域サイズ１１Ｂを１４ドットにセットし直す。
【００５８】
図４は、線幅が２ドットの場合の「山」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図４（ａ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域とを示すイメージ図である。図４（ｂ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。図４（ｃ）は、通常の文字描画システムにおける第１の矩形領域と第２の矩形領域と表示される文字画像とを示す第１のイメージ図である。図４（ｄ）は、通常の文字描画システムにおける第１の矩形領域と第２の矩形領域と表示される文字画像とを示す第２のイメージ図である。
【００５９】
図４（ａ）に示すように、本実施の形態に係るコンピュータシステム２００においては、取得部１０４が第２の矩形領域サイズ１１Ｂを１４ドットにセットし直す。たとえば、「山」という文字に割り当てられるボディ枠として、上下方向および左右方向に１６ドット分の画素が確保される。そして、取得部１０４は、「山」という文字が表示される（占有する）レター枠として、上下方向および左右方向に１４ドット分の画素を確保する。
【００６０】
拡縮部１０６は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ８ｅ５２」の形状データ１３を呼び出して、文字がレター枠（１４ドット）に収まるように、形状データ１３に対して拡大処理または縮小処理を行う。
【００６１】
なお、拡縮部１０６による、形状データ１３に対する拡大処理または縮小処理は、たとえばベクトルデータに基づいた計算などによって実現される。すなわち、図３（ａ）を参照して、「山」という文字を１６ドット×１６ドットの画素領域に描画する際には、拡縮部１０６は以下の計算に基づいて、各ストロークの端点１および端点２を計算することによって、縮小処理を行う。
ストローク識別子１の端点１：（448×16/1024, 896×16/1024）=（7,14）
ストローク識別子１の端点２：（448×16/1024, 64×16/1024）=（7,1）
ストローク識別子２の端点１：（64×16/1024, 512×16/1024）=（1,8）
ストローク識別子２の端点２：（64×16/1024, 64×16/1024）=（1,1）
ストローク識別子３の端点１：（64×16/1024, 64×16/1024）=（1,1）
ストローク識別子３の端点２：（832×16/1024, 64×16/1024）=（13,1）
ストローク識別子４の端点１：（832×16/1024, 512×16/1024）=（13,8）
ストローク識別子４の端点２：（832×16/1024, 64×16/1024）=（13,1）
そして、図４（ｂ）に示すように、出力部１０７は、拡大処理または縮小処理された形状データ１３に基づいて、モニタ２０３に文字を描画する。このように、線幅が２ドット（偶数）の場合に、第２の矩形領域サイズ１１Ｂが１４ドット（偶数）のレター枠に文字を描画することにより、「山」のような中央のストロークに対して線対称な漢字を描画する場合に、左右対称性を維持したまま「山」という文字を描画することができる。
【００６２】
一方、通常のコンピュータシステム２００は、線幅が２ドット（偶数）の場合であっても、サイズ受付部１０２が受け付けた第２の矩形領域サイズ１１Ｂである１５ドット（奇数）のままで、文字コード（ＳＪＩＳコード）０ｘ８ｅ５２に基づいて「山」という文字を描画するので、図４（ｃ）または図４（ｄ）のような文字画像が表示されてしまう。すなわち、図４（ｃ）に示すように「山」の真ん中のストロークが右側に寄ってしまったり、図４（ｄ）に示すように「山」の真ん中のストロークが左側に寄ってしまったりして、文字が左右対称性を崩してしまい、ユーザに違和感を与えてしまう。
【００６３】
本実施の形態に係るコンピュータ２２０は、線幅が偶数の場合に、第２の矩形領域サイズ１１Ｂを偶数に設定し直すため、図４（ｂ）に示すように左右対称性を保持した文字を描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【００６４】
（線幅が３ドットの場合）
次に、線幅として３ドットという情報が、線幅受付部１０３に入力された場合について説明する。
【００６５】
換言すれば、文字コード受付部１０１は文字コード（ＳＪＩＳコード）０ｘ８ｅ５２という情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第１の矩形領域サイズ１１Ａとして１６ドットという情報を受け付けて、取得部１０４に受け渡す。線幅受付部１０３は線幅として３ドットという情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第２の矩形領域サイズ１１Ｂとして１５ドットという情報を受け付けて、取得部１０４に受け渡す。
【００６６】
そして、取得部１０４は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が３ドットであって、すなわち線幅が奇数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂが奇数であるか否かを判断する。ここでは、第２の矩形領域サイズ１１Ｂが１５ドットであり、すなわち第２の矩形領域サイズ１１Ｂが奇数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂを変更しない。あるいは、サイズ受付部１０２にて受け付けられた第２の矩形領域サイズ１１Ｂが１６ドットである場合には、取得部１０４は、第２の矩形領域サイズ１１Ｂを１５ドットに設定し直す。
【００６７】
図５は、線幅が３ドットの場合の「山」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図５（ａ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域とを示すイメージ図である。図５（ｂ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【００６８】
図５（ａ）に示すように、本実施の形態に係るコンピュータシステム２００においては、取得部１０４が第２の矩形領域サイズ１１Ｂを１５ドットのまま変更しない。たとえば、「山」という文字に割り当てられる第１の矩形領域（ボディ枠）として、上下方向および左右方向に１６ドット分の画素が確保される。そして、取得部１０４は、「山」という文字が表示される（占有する）第２の矩形領域（レター枠）として、上下方向および左右方向に１５ドット分の画素を確保する。
【００６９】
拡縮部１０６は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ８ｅ５２」の形状データ１３を呼び出して、文字が第２の矩形領域（１５ドット）に収まるように、形状データ１３に対して拡大処理または縮小処理を行う。
【００７０】
そして、図５（ｂ）に示すように、出力部１０７は、拡大処理または縮小処理された形状データ１３に基づいて、モニタ２０３に文字を描画する。このように、線幅が３ドット（奇数）の場合に、第２の矩形領域サイズ１１Ｂが１５ドット（奇数）のレター枠に文字を描画することにより、「山」のような中央のストロークに対して線対称な漢字を描画する場合に、左右対称性を維持したまま「山」という文字を描画することができる。
【００７１】
本実施の形態に係るコンピュータ２２０は、線幅が奇数の場合に、第２の矩形領域サイズ１１Ｂを奇数に設定し直すため、図５（ｂ）に示すように左右対称性を保持した文字を描画することができる。
【００７２】
（本実施の形態に係るコンピュータ２２０の動作概要１）
（線幅が２ドットの場合）
次に、本実施の形態に係る取得部１０４の動作概要について、上下対称性を持つ文字の文字コード１０が入力された場合に、モニタ２０３などに上下対称性を持つ文字を描画する（表示する）際の動作概要について説明する。
【００７３】
本実施の形態においても、文字コード１０としてＳＪＩＳコードが入力されるものとする。さらに、ここでは、「三」という文字の文字コード「０ｘ８ｅ４ｆ」が、文字コード受付部１０１を介して入力されるものとする。そして、第１の矩形領域サイズ１１Ａ（ボディサイズ）として１２ドットという情報が、第２の矩形領域サイズ１１Ｂ（レターサイズ）として１１ドットという情報が、サイズ受付部１０２を介して入力されるものとする。また、線幅として２ドットという情報が、線幅受付部１０３に入力される。
【００７４】
換言すれば、文字コード受付部１０１は文字コード（ＳＪＩＳコード）０ｘ８ｅ４ｆという情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第１の矩形領域サイズ１１Ａとして１２ドットという情報を受け付けて、取得部１０４に受け渡す。線幅受付部１０３は線幅として２ドットという情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第２の矩形領域サイズ１１Ｂとして１１ドットという情報を受け付けて、取得部１０４に受け渡す。
【００７５】
そして、取得部１０４は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が２ドットであって、すなわち線幅が偶数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂが偶数であるか否かを判断する。ここでは、第２の矩形領域サイズ１１Ｂが１１ドットであり、すなわち第２の矩形領域サイズ１１Ｂが奇数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂから１だけ小さい値を第２の矩形領域サイズ１１Ｂとしてセットし直す。すなわち、取得部１０４は、第２の矩形領域サイズ１１Ｂを１０ドットにセットし直す。
【００７６】
図６は、線幅が２ドットの場合の「三」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図６（ａ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域とを示すイメージ図である。図６（ｂ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【００７７】
図６（ａ）に示すように、本実施の形態に係るコンピュータシステム２００においては、取得部１０４が第２の矩形領域サイズ１１Ｂを１０ドットにセットし直す。たとえば、「三」という文字に割り当てられるボディ枠として、上下方向および左右方向に１２ドット分の画素が確保される。そして、取得部１０４は、「三」という文字が表示される（占有する）レター枠として、上下方向および左右方向に１０ドット分の画素を確保する。
【００７８】
拡縮部１０６は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ８ｅ４ｆ」の形状データ１３を呼び出して、文字がレター枠（１０ドット）に収まるように、形状データ１３に対して拡大処理または縮小処理を行う。
【００７９】
そして、図６（ｂ）に示すように、出力部１０７は、拡大処理または縮小処理された形状データ１３に基づいて、モニタ２０３に文字を描画する。このように、線幅が２ドット（偶数）の場合に、第２の矩形領域サイズ１１Ｂが１０ドット（偶数）のレター枠に文字を描画することにより、「三」のような中央のストロークに対して線対称な漢字を描画する場合に、上下対称性を維持したまま「三」という文字を描画することができる。
【００８０】
（線幅が１ドットの場合）
次に、線幅として１ドットという情報が、線幅受付部１０３に入力された場合について説明する。
【００８１】
換言すれば、文字コード受付部１０１は文字コード（ＳＪＩＳコード）０ｘ８ｅ４ｆという情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第１の矩形領域サイズ１１Ａとして１２ドットという情報を受け付けて、取得部１０４に受け渡す。線幅受付部１０３は線幅として１ドットという情報を受け付けて、取得部１０４に受け渡す。サイズ受付部１０２は第２の矩形領域サイズ１１Ｂとして１１ドットという情報を受け付けて、取得部１０４に受け渡す。
【００８２】
そして、取得部１０４は、線幅が偶数であるか否かを判断する。ここでは、入力された線幅が１ドットであって、すなわち線幅が奇数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂが奇数であるか否かを判断する。ここでは、第２の矩形領域サイズ１１Ｂが１１ドットであり、すなわち第２の矩形領域サイズ１１Ｂが奇数であるため、取得部１０４は第２の矩形領域サイズ１１Ｂを変更しない。あるいは、サイズ受付部１０２にて受け付けられた第２の矩形領域サイズ１１Ｂが１２ドットである場合には、取得部１０４は、第２の矩形領域サイズ１１Ｂを１１ドットに設定し直す。
【００８３】
図７は、線幅が１ドットの場合の「三」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図７（ａ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域とを示すイメージ図である。図７（ｂ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【００８４】
図７（ａ）に示すように、本実施の形態に係るコンピュータシステム２００においては、取得部１０４が第２の矩形領域サイズ１１Ｂを１１ドットのまま変更しない。たとえば、「三」という文字に割り当てられる第１の矩形領域（ボディ枠）として、上下方向および左右方向に１２ドット分の画素が確保される。そして、取得部１０４は、「三」という文字が表示される（占有する）第２の矩形領域（レター枠）として、上下方向および左右方向に１１ドット分の画素を確保する。
【００８５】
拡縮部１０６は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ８ｅ４ｆ」の形状データ１３を呼び出して、文字が第２の矩形領域（１１ドット）に収まるように、形状データ１３に対して拡大処理または縮小処理を行う。
【００８６】
そして、図７（ｂ）に示すように、出力部１０７は、拡大処理または縮小処理された形状データ１３に基づいて、モニタ２０３に文字を描画する。このように、線幅が１ドット（奇数）の場合に、第２の矩形領域サイズ１１Ｂが１１ドット（奇数）のレター枠に文字を描画することにより、「三」のような中央のストロークに対して線対称な漢字を描画する場合に、上下対称性を維持したまま「三」という文字を描画することができる。
【００８７】
なお、「田」のように、左右方向に対しても対称性を持ち、かつ上下方向に対しても対称性を持つような文字に対しても上記と同様の機能を適用することができる。
【００８８】
＜文字描画処理＞
次に、本実施の形態にかかるコンピュータ２２０における文字描画処理の処理手順について説明する。図８は、本実施の形態にかかるコンピュータ２２０における文字描画処理の処理手順を示すフローチャートである。
【００８９】
図８を参照して、コンピュータ２２０の電源が入れられると、ＣＰＵ１００は、ハードディスク２１２から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずＣＰＵ１００は、文字コード１０が入力されるのを待ち受ける（ステップＳ１０２）。ＣＰＵ１００は、文字コード１０が入力されると（ステップＳ１０２にてＹＥＳである場合）、入力された文字コード１０を読み込んで、文字コードに対応する形状データ１３を読み出す。
【００９０】
次に、ＣＰＵ１００は、第１の矩形領域サイズ１１Ａが入力されるのを待ち受ける（ステップＳ１０４）。ＣＰＵ１００は、第一の矩形領域サイズ１１Ａが入力されると（ステップＳ１０４にてＹＥＳである場合）、入力された第１の矩形領域サイズ１１ＡをＲＡＭ２０９に記憶する。同様に、ＣＰＵ１００は、線幅１２が入力されるのを待ち受ける（ステップＳ１０６）。ＣＰＵ１００は、線幅１２が入力されると（ステップＳ１０６にてＹＥＳである場合）、入力された線幅１２を読み込んで、ＲＡＭ２０９に記憶する。
【００９１】
ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが入力されるのを待ち受ける（ステップＳ１０８）。ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが入力されると、入力された第２の矩形領域サイズ１１Ｂを読み込んで、ＲＡＭ２０９に記憶する。そして、ＣＰＵ１００は、第２矩形領域サイズ決定処理（ステップＳ２００）によって、第２の矩形領域サイズ１１Ｂを修正する。第２矩形領域サイズ決定処理（ステップＳ２００）については後述する。
【００９２】
ＣＰＵ１００は、第２矩形領域サイズ決定処理（ステップＳ２００）が終了すると、文字コード１０に相当する形状データ１３を形状データ記憶部２１２−１から読み出して、第２矩形領域サイズ決定処理（ステップＳ２００）にて修正された後の第２の矩形領域サイズ１１Ｂに適合するように、形状データ１３に拡大処理または縮小処理を行う（ステップＳ１１０）。
【００９３】
そして、ＣＰＵ１００は、拡縮処理された後の形状データ１３をモニタインターフェイス２１３を介してモニタ２０３に出力し（ステップＳ１１２）、文字描画処理を終了する。なお、前述したように、コンピュータ２２０自体が文字を描画する機能を備えている場合には、ステップＳ１１２において、拡縮処理されたのちの形状データ１３に基づいて文字を表示装置に表示してもよい。
【００９４】
＜第２の矩形領域サイズ決定処理＞
次に、本実施の形態にかかるコンピュータ２２０における第２の矩形領域サイズ決定処理（ステップＳ２００）の処理手順について説明する。図９は、本実施の形態にかかるコンピュータ２２０における第２の矩形領域サイズ決定処理（ステップＳ２００）の処理手順を示すフローチャートである。
【００９５】
図９を参照して、第２の矩形領域サイズ決定処理（ステップＳ２００）が開始されると、ＣＰＵ１００は、入力された線幅１２が偶数であるか否かを判断する（ステップＳ２０２）。ＣＰＵ１００は、線幅が偶数である場合（ステップＳ２０２にてＹＥＳである場合）、入力された第２の矩形領域サイズ１１Ｂが偶数であるか否かを判断する（ステップＳ２０４）。
【００９６】
ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが奇数である場合（ステップＳ２０４にてＮＯである場合）、第２の矩形領域サイズ１１Ｂを現在の第２の矩形領域サイズ１１Ｂ（ステップＳ１０８にて入力された時点の第２の矩形領域サイズ１１Ｂ）から１だけ小さい値にセットし直して、第２の矩形領域サイズ決定処理（ステップＳ２００）を終了する。
【００９７】
本実施の形態においては、ステップＳ２０６に示すように、最終的な第２の矩形領域サイズ１１Ｂが、ステップＳ１０８にて入力された第２の矩形領域サイズ１１Ｂより１だけ小さい値になっているが、必ずしもこのような構成に限定されない。最終的な第２の矩形領域サイズ１１Ｂが第１の矩形領域サイズ１１Ａを超えない範囲の偶数の値であれば構わない。ゆえに、第２の矩形領域サイズ１１Ｂを第１の矩形領域サイズ１１Ａを超えない範囲での最大の偶数値とするものであっても構わない。
【００９８】
一方、ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが偶数である場合（ステップＳ２０４にてＹＥＳである場合）、第２の矩形領域サイズ決定処理（ステップＳ２００）を終了する。
【００９９】
本実施の形態においては、ステップＳ２０４において、第２の矩形領域サイズ１１Ｂが偶数であれば処理を終了したが、第２の矩形領域サイズ１１Ｂを第１の矩形領域サイズ１１Ａを超えない範囲での最大の偶数値として設定し直すものであっても構わない。
【０１００】
そして、ステップＳ２０２において、ＣＰＵ１００は、線幅が奇数である場合（ステップＳ２０２にてＮＯである場合）、入力された第２の矩形領域サイズ１１Ｂが偶数であるか否かを判断する（ステップＳ２０８）。ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが奇数である場合（ステップＳ２０８にてＮＯである場合）、第２の矩形領域サイズ決定処理（ステップＳ２００）を終了する。
【０１０１】
本実施の形態においては、ステップＳ２０８において、第２の矩形領域サイズ１１Ｂが奇数であれば処理を終了したが、第２の矩形領域サイズ１１Ｂを第１の矩形領域サイズ１１Ａを超えない範囲での最大の奇数値として設定し直すものであっても構わない。
【０１０２】
一方、ステップＳ２０８において、ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが偶数である場合（ステップＳ２０８にてＹＥＳである場合）、第２の矩形領域サイズ１１Ｂを現在の第２の矩形領域サイズ１１Ｂ（ステップＳ１０８にて入力された時点の第２の矩形領域サイズ１１Ｂ）から１だけ小さい値にセットし直して、第２の矩形領域サイズ決定処理（ステップＳ２００）を終了する。
【０１０３】
本実施の形態においては、ステップＳ２１０に示すように、最終的な第２の矩形領域サイズ１１Ｂが、ステップＳ１０８にて入力された第２の矩形領域サイズ１１Ｂより１だけ小さい値になっているが、必ずしもこのような構成に限定されない。最終的な第２の矩形領域サイズ１１Ｂが第１の矩形領域サイズ１１Ａを超えない範囲の奇数の値であれば構わない。ゆえに、第２の矩形領域サイズ１１Ｂを第１の矩形領域サイズ１１Ａを超えない範囲での最大の奇数値とするものであっても構わない。
【０１０４】
このように、本実施の形態に係るコンピュータ２２０においては、線幅１２と第２の矩形領域サイズ１１Ｂとを整合させるための処理を行うため、左右対称性あるいは上下対称性を有した対称オブジェクトを、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【０１０５】
［実施の形態２］
次に、本発明の実施の形態２について説明する。上述の実施の形態１に係るコンピュータ２２０は、受付部１１０が受け付けた第１の矩形領域サイズ１１Ａと第２の矩形領域サイズ１１Ｂと線幅１２とに応じて、文字が表示される第２の矩形領域サイズ１１Ｂ（レター枠のサイズ）を更新するものであった。一方、本実施の形態に係るコンピュータ２２０ｂにおいては、受付部１１０が受け付けた第１の矩形領域サイズ１１Ａと線幅１２とに応じて、第２の矩形領域サイズ１１Ｂを設定する。
【０１０６】
なお、実施の形態２におけるコンピュータ２２０ｂやコンピュータシステムのハードウェア構成は、図１に示した実施の形態１におけるコンピュータ２２０やコンピュータシステム２００と同じであるため、ここでは説明を繰り返さない。
【０１０７】
＜機能構成＞
図１０は、本実施の形態にかかるコンピュータ（文字描画装置）２２０ｂの機能構成を示すブロック図である。本実施の形態に係るコンピュータ２２０ｂにおいても、図１０に示される各部は、ＣＰＵ１００がハードディスク２１２やＲＡＭ２０９に記憶されるプログラムを実行することによって実現される機能である。ただし、図１０に示される１または複数の機能ブロックが専用のハードウェア回路によって実現される構成であってもよい。
【０１０８】
なお、図２に示した実施の形態１におけるコンピュータ２２０と同じ機能ブロックについては、ここでは説明を繰り返さない。
【０１０９】
図１０を参照して、本実施の形態にかかるコンピュータ２２０ｂは、文字コード受付部１０１、サイズ受付部１０２ｂ、線幅受付部１０３、取得部１０４ｂ、拡縮部１０６、出力部１０７、形状データ記憶部２１２−１、および矩形情報記憶部２１２−２を備えている。なお、文字コード受付部１０１、サイズ受付部１０２ｂ、線幅受付部１０３は、外部からデータを受け付ける受付部１１０に含まれる。
【０１１０】
まずは、矩形情報記憶部２１２−２について説明する。図１１は、矩形情報記憶部２１２−２に格納される矩形データ２１２Ａを示すイメージ図である。図１１に示すように、矩形情報記憶部２１２−２は、第２の矩形領域サイズ１１Ｂを、線幅１２と第１の矩形領域サイズ１１Ａとに対応付けて格納する矩形データ２１２Ａを記憶する。これにより、取得部１０４ｂは、矩形情報記憶部２１２−２を参照して、第１の矩形領域サイズ１１Ａと線幅１２とに基づいて、第２の矩形領域サイズ１１Ｂを取得することができる。
【０１１１】
図１０に戻って、サイズ受付部１０２ｂは、例えば無線もしくは有線を介して提供される矩形領域サイズ１１を受信するインターフェイスを備えており、第１の矩形領域サイズ１１Ａの入力を受け付ける。あるいは、サイズ受付部１０２ｂは、他のプログラム（アプリケーション）から提供される第１の矩形領域サイズ１１Ａを受け付ける。
【０１１２】
ただし、本実施の形態に係るサイズ受付部１０２ｂは、第２の矩形領域サイズ１１Ｂを受け付けてもよい。より詳細には、たとえば、サイズ受付部１０２ｂは、受け付けた第１の矩形領域サイズ１１Ａと線幅１２とに対応する第２の矩形領域サイズ１１Ｂが矩形情報記憶部２１２−２に記憶されていない場合に、第２の矩形領域サイズ１１Ｂを受け付けてもよい。
【０１１３】
本実施の形態に係る取得部１０４ｂは、矩形情報記憶部２１２−２を参照し、線幅受付部１０３を介して入力された線幅１２とサイズ受付部１０２ｂを介して入力された第１の矩形領域サイズ１１Ａとに基づいて、両者に対応する第２の矩形領域サイズ１１Ｂを取得することによって、描画する際の最終的な第２の矩形領域サイズ１１Ｂを決定する。より詳細には、たとえば、図１１に示すように、受付部１１０が、線幅として２ドットいう情報を、第１の矩形領域サイズ１１Ａとして１６ドットいう情報を受け付けると、取得部１０４ｂは、矩形情報記憶部２１２−２の矩形データ２１２Ａを参照して、両者に対応する第２の矩形領域サイズ１１Ｂ（１４ドット）を取得する。
【０１１４】
ただし、本実施の形態に係るサイズ受付部１０２ｂは、線幅受付部１０３を介して入力された線幅１２と、サイズ受付部１０２ｂを介して入力された第１の矩形領域サイズ１１Ａと、同じくサイズ受付部１０２ｂを介して入力された第２の矩形領域サイズ１１Ｂに基づいて、当該第２の矩形領域サイズ１１Ｂを修正してもよい。より詳細には、たとえば、受け付けた第１の矩形領域サイズ１１Ａと線幅１２とに対応する第２の矩形領域サイズ１１Ｂが矩形情報記憶部２１２−２に記憶されていない場合に、線幅１２と第１の矩形領域サイズ１１Ａとに基づいて、第２の矩形領域サイズ１１Ｂを修正してもよい。
【０１１５】
＜文字描画処理＞
次に、本実施の形態にかかるコンピュータ２２０ｂにおける文字描画処理の処理手順について説明する。図１２は、本実施の形態にかかるコンピュータ２２０ｂにおける文字描画処理の処理手順を示すフローチャートである。
【０１１６】
図１２を参照して、コンピュータ２２０ｂの電源が入れられると、ＣＰＵ１００は、ハードディスク２１２から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずＣＰＵ１００は、文字コード１０が入力されるのを待ち受ける（ステップＳ３０２）。ＣＰＵ１００は、文字コード１０が入力されると（ステップＳ３０２にてＹＥＳである場合）、入力された文字コード１０を読み込んで、文字コードに対応する形状データを読み出す。
【０１１７】
次に、ＣＰＵ１００は、第１の矩形領域サイズ１１Ａが入力されるのを待ち受ける（ステップＳ３０４）。ＣＰＵ１００は、第一の矩形領域サイズ１１Ａが入力されると（ステップＳ３０４にてＹＥＳである場合）、入力された第１の矩形領域サイズ１１ＡをＲＡＭ２０９に記憶する。同様に、ＣＰＵ１００は、線幅１２が入力されるのを待ち受ける（ステップＳ３０６）。ＣＰＵ１００は、線幅１２が入力されると（ステップＳ３０６にてＹＥＳである場合）、入力された線幅１２を読み込んで、ＲＡＭ２０９に記憶する。
【０１１８】
ＣＰＵ１００は、矩形情報記憶部２１２−２を参照して、第１の矩形領域サイズ１１Ａと線幅１２とに対応する第２の矩形領域サイズ１１Ｂが矩形データ２１２Ａに格納されているか否かを判断する（ステップＳ３０８）。第１の矩形領域サイズ１１Ａと線幅１２とに対応する第２の矩形領域サイズ１１Ｂが矩形データ２１２Ａに格納されている場合（ステップＳ３０８にてＹＥＳである場合）、ＣＰＵ１００は、当該第２の矩形領域サイズ１１Ｂを抽出して、文字コード１０に対応する第２の矩形領域サイズ１１Ｂとしてセットする（ステップＳ３１０）。
【０１１９】
一方、第１の矩形領域サイズ１１Ａと線幅１２とに対応する第２の矩形領域サイズ１１Ｂが矩形データ２１２Ａに格納されていない場合（ステップＳ３０８にてＮＯである場合）、ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが入力されるのを待ち受ける（ステップＳ３１２）。ＣＰＵ１００は、第２の矩形領域サイズ１１Ｂが入力されると（ステップＳ３１２にてＹＥＳである場合）、入力された第２の矩形領域サイズ１１Ｂを読み込んで、ＲＡＭ２０９に記憶する。そして、ＣＰＵ１００は、第２矩形領域サイズ決定処理（ステップＳ２００）によって、入力された第２の矩形領域サイズ１１Ｂを修正する。第２矩形領域サイズ決定処理（ステップＳ２００）については、図９に示した第２矩形領域サイズ決定処理（ステップＳ２００）と同様であるので、ここでは説明を繰り返さない。
【０１２０】
第２の矩形領域サイズ１１Ｂがセットされると（ステップＳ３１０あるいはステップＳ２００が終了すると）、ＣＰＵ１００は、文字コード１０に相当する形状データ１３を形状データ記憶部２１２−１から読み出して、セットされた第２の矩形領域サイズ１１Ｂに収まる（適合する）ように、形状データ１３に拡大処理または縮小処理を行う（Ｓ３１４）。
【０１２１】
そして、ＣＰＵ１００は、拡縮処理された後の形状データ１３をモニタインターフェイス２１３を介してモニタ２０３に出力し（ステップＳ３１６）、文字描画処理を終了する。なお、前述したように、コンピュータ２２０自体が文字を描画する機能を備えている場合には、ステップＳ３１６において、拡縮処理されたのちの形状データ１３に基づいて文字を表示装置に表示してもよい。
【０１２２】
このように、本実施の形態に係るコンピュータ２２０においては、このように、本実施の形態に係るコンピュータ２２０においては、左右対称性あるいは上下対称性を有した文字を、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【０１２３】
［実施の形態３］
次に、本発明の実施の形態３について説明する。上述の実施の形態１に係るコンピュータ２２０は、文字全体に対する第１の矩形領域サイズ１１Ａと第２の矩形領域サイズ１１Ｂと線幅１２とに応じて、文字全体が表示される第２の矩形領域サイズ１１Ｂ（レター枠のサイズ）を更新するものであった。一方、本実施の形態に係るコンピュータ２２０ｃにおいては、文字を構成する対称オブジェクトに対する第１の矩形領域サイズ１１Ａと第２の矩形領域サイズ１１Ｂと線幅１２とに応じて、当該対称オブジェクトの第２の矩形領域サイズ１１Ｂを更新する。
【０１２４】
なお、実施の形態３におけるコンピュータ２２０ｃおよびコンピュータシステムのハードウェア構成は、図１に示した実施の形態１におけるコンピュータ２２０ｃおよびコンピュータシステム２００と同じであるため、ここでは説明を繰り返さない。
【０１２５】
＜機能構成＞
図１３は、本実施の形態にかかるコンピュータ（文字描画装置）２２０ｃの機能構成を示すブロック図である。本実施の形態に係るコンピュータ２２０ｃにおいても、図１３に示される各部は、ＣＰＵ１００がハードディスク２１２やＲＡＭ２０９に記憶されるプログラムを実行することによって実現される機能である。ただし、図１３に示される１または複数の機能ブロックが専用のハードウェア回路によって実現される構成であってもよい。
【０１２６】
なお、図２に示した実施の形態１におけるコンピュータ２２０と同じ機能ブロックについては、ここでは説明を繰り返さない。
【０１２７】
図１３を参照して、本実施の形態にかかるコンピュータ２２０ｃは、文字コード受付部１０１、サイズ受付部１０２ｃ、線幅受付部１０３、取得部１０４ｃ、拡縮部１０６、出力部１０７、対称部位抽出部１０９、および形状データ記憶部２１２−１を備えている。なお、文字コード受付部１０１、サイズ受付部１０２ｃ、線幅受付部１０３は、外部からデータを受け付ける受付部１１０に含まれる。
【０１２８】
まず、対称部位抽出部１０９は、文字コード受付部１０１を介して入力された文字コード１０に対応する形状データ１３を形状データ記憶部２１２−１から読み出す。そして、対称部位抽出部１０９は、形状データ１３から文字を構成するストローク群を抽出し、それらのストローク群のうち左右対称性あるいは上下対称性を有するストローク群からなる対称オブジェクト（対称部位）を検出する。
【０１２９】
なお、対称性を見つける方法は限定しない。対称部位抽出部１０９が動的に検出するものであっても構わないし、図３に示したように、形状データ１３が対称性を示す付加情報を予め保持していてもよい。
【０１３０】
あるいは、対称部位抽出部１０９は、各ストローク群について、上下方向のストロークの本数をカウントし、当該本数が奇数であればストローク群が左右対称性を持つと判断してもよい。また、上下対称のストローク群を抽出する場合には、対称部位抽出部１０９は、各ストローク群について、左右方向のストロークの本数をカウントし、当該本数が奇数であればストローク群が上下対称性を持つと判断してもよい。例えば、対称部位抽出部１０９は、「山」という漢字は、上下方向のストロークの本数が３本であり奇数であるため、左右対称性を持つと判断する。また、対称部位抽出部１０９は、「三」という漢字で、左右方向のストロークの本数が３本であり奇数であるため、上下対称性を持つと判断する。
【０１３１】
あるいは、ハードディスク２１２が、予め対称性を持つストローク群のパターン（対称性パターン）を格納してもよい。対称部位抽出部１０９は、文字コード１０から呼び出された形状データ１３を、ハードディスク２１２やＲＡＭ２０９に格納された対称性パターンと比較して、文字がそのパターンを有するか、ストローク群がそのパターンに一致するか否かを判断してもよい。より詳細には、対称部位抽出部１０９は、パターンマッチングに基づいて、類似度（近接度）が予め設定された所定値以上である場合に、ストローク群がその対称性パターンに一致したものと判断する。
【０１３２】
例えば、ハードディスク２１２が「山」という対称性パターンを予め保持しておき、呼び出された形状データ１３内に「山」という対称性パターンがあるかどうかを判定する。「山」という漢字の形状データ１３が呼び出された場合には、文字全体を含むストローク群が対称性パターンに一致する。「嶋」や「島」という漢字の形状データ１３が呼び出された場合には、文字を構成するストローク群が対称性パターンに一致する。
【０１３３】
そして、左右対称性パターンとして「山」と「甲」が登録されていれば、対称部位抽出部１０９は、例えば、「岬」という漢字の形状データ１３を読み出した場合に、「山」というストローク群と「甲」というストローク群の両方が左右対称性パターンに一致すると判断し、２つの対称オブジェクトを抽出する。
【０１３４】
サイズ受付部１０２ｃは、例えば無線もしくは有線を介して提供される矩形領域サイズ１１を受信するインターフェイスを備えており、対称オブジェクトに対する第１および第２の矩形領域サイズ１１Ａ，１１Ｂの入力を受け付ける。あるいは、サイズ受付部１０２ｃは、他のプログラム（アプリケーション）から提供される対称オブジェクトに対する第１および第２の矩形領域サイズ１１Ａ，１１Ｂを受け付ける。
【０１３５】
本実施の形態に係る取得部１０４ｃは、線幅受付部１０３を介して入力された線幅１２と、サイズ受付部１０２ｃを介して入力された第１および第２の矩形領域サイズ１１Ａ，１１Ｂとに基づいて、描画する際の最終的な第２の矩形領域サイズ１１Ｂを決定する。すなわち、本実施の形態に係る取得部１０４ｃは、線幅受付部１０３を介して入力された線幅１２と、サイズ受付部１０２ｃを介して入力された第１の矩形領域サイズ１１Ａとに基づいて、サイズ受付部１０２ｃを介して入力された第２の矩形領域サイズ１１Ｂを修正する。
【０１３６】
拡縮部１０６は、文字コード受付部１０１を介して入力された文字コード１０に対応する形状データ１３を形状データ記憶部２１２−１から読み出し、最終的な第２の矩形領域の大きさに収まるように当該形状データ１３の拡大処理または縮小処理を行う。例えば、第２の矩形領域サイズが２３ドットである場合、左右方向の大きさが２３ドットの第２の矩形領域に収まるように文字の大きさを調整する。
【０１３７】
出力部１０７は、拡縮部１０６で処理された形状データ１３をモニタインターフェイス２１３を介してモニタ２０３に出力する。あるいは、出力部１０７は、拡縮部１０６で処理された形状データ１３を通信インターフェイス２１６を介してもネットワークへと出力する。なお、コンピュータ２２０自体が描画機能（モニタ）を備えている場合は、拡縮処理された形状データに従って文字描画を行った結果を当該モニタに表示するものであっても構わない。
【０１３８】
（本実施の形態に係るコンピュータ２２０ｃの動作概要１）
（線幅が２ドットの場合）
ここで、本実施の形態に係る取得部１０４ｃの動作概要について詳述する。以下では、左右対称性を持つ対称オブジェクトを含む文字の文字コード１０が入力された場合において、モニタ２０３などに当該対称オブジェクトを含む文字を描画する（表示する）際の動作概要について説明する。
【０１３９】
本実施の形態においても、文字コード１０としてＳＪＩＳコードが入力されるものとする。さらに、ここでは、「仲」という文字の文字コード「０ｘ９２８７」が、文字コード受付部１０１を介して入力されるものとする。そして、サイズ受付部１０２ｃは、文字全体のボディサイズとして２０ドットという情報を、レターサイズとして１８ドットという情報、線幅として２ドットという情報を受け付ける。あるいは、文字全体のボディサイズとして２０ドットという情報が、レターサイズとして１８ドットという情報が予め設定されている。
【０１４０】
対称部位抽出部１０９は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ９２８７」の形状データ１３を呼び出して、呼び出した形状データ１３を構成するストローク群から、対称性を持つストローク群からなる対称オブジェクトを検出する。この場合、「仲」という文字を構成する形状データ１３には「中」という対称性を持つストローク群からなる対称オブジェクトが存在するため、対称部位抽出部１０９は「中」という対称オブジェクトを抽出する。
【０１４１】
サイズ受付部１０２ｃは、対称オブジェクトに対する第１の矩形領域サイズ１１Ａ（ボディサイズ）として左右方向に１３ドットおよび上下方向に１８ドットという情報が、第２の矩形領域サイズ１１Ｂ（レターサイズ）として左右方向に１３ドットおよび上下方向に１８ドットという情報が、サイズ受付部１０２ｃを介して入力されるものとする。また、線幅として２ドットという情報が、線幅受付部１０３に入力される。
【０１４２】
換言すれば、文字コード受付部１０１は文字コード（ＳＪＩＳコード）０ｘ９２８７という情報を受け付けて、対称部位抽出部１０９に受け渡す。対称部位抽出部１０９は形状データ１３と、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とを取得部１０４ｃに受け渡す。サイズ受付部１０２ｃは第１の矩形領域サイズ１１Ａとして左右方向１３ドットおよび上下方向に１８ドットという情報を受け付けて、取得部１０４ｃに受け渡す。線幅受付部１０３は線幅として２ドットという情報を受け付けて、取得部１０４ｃに受け渡す。サイズ受付部１０２ｃは第２の矩形領域サイズ１１Ｂとして左右方向１３ドット、上下方向に１８ドットという情報を受け付けて、取得部１０４ｃに受け渡す。
【０１４３】
そして、取得部１０４ｃは、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とに基づいて、線幅が偶数であるか否かを判断する。ここでは、対称オブジェクトが左右対称であって、入力された線幅が２ドット（偶数）であるため、取得部１０４ｃは第２の矩形領域サイズ１１Ｂの左右方向のドット数が偶数であるか否かを判断する。ここでは、第２の矩形領域サイズ１１Ｂの左右方向の大きさが１３ドットであり、すなわち第２の矩形領域サイズ１１Ｂが奇数であるため、取得部１０４ｃは第２の矩形領域サイズ１１Ｂから１だけ小さい値を第２の矩形領域サイズ１１Ｂとしてセットし直す。すなわち、取得部１０４ｃは、第２の矩形領域サイズ１１Ｂの左右方向の大きさを１２ドットにセットし直す。
【０１４４】
図１４は、線幅が２ドットの場合の「仲」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図１４（ａ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域とを示すイメージ図である。図１４（ｂ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【０１４５】
図１４（ａ）に示すように、本実施の形態に係るコンピュータシステム２００においては、取得部１０４ｃが第２の矩形領域サイズ１１Ｂの左右方向の大きさを１２ドットにセットし直す。たとえば、「中」という対称オブジェクトに割り当てられるボディ枠として、左右方向１３ドット分および上下方向に１８ドット分の画素を確保する。そして、取得部１０４ｃは、「中」という対称オブジェクトが表示される（占有する）レター枠として、左右方向に１２ドット分および上下方向に１８ドット分の画素を確保する。
【０１４６】
拡縮部１０６は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ９２８７」の形状データ１３を呼び出して、「仲」という文字全体がレター枠（１８ドット）に収まるように、そして「中」という対称オブジェクトがレター枠（左右方向に１２ドット、上下方向に１８ドット）に収まるように、形状データ１３に対して拡大処理または縮小処理を行う。
【０１４７】
そして、図１４（ｂ）に示すように、出力部１０７は、拡大処理または縮小処理された形状データ１３に基づいて、モニタ２０３に文字を描画する。このように、線幅が２ドット（偶数）の場合に、第２の矩形領域サイズ１１Ｂが１２ドット（偶数）のレター枠に対称オブジェクトを描画することにより、「中」のような中央のストロークに対して線対称な対称オブジェクトを描画する場合に、左右対称性を維持したまま「中」という文字を描画することができる。
【０１４８】
（線幅が１ドットの場合）
次に、線幅として１ドットいう情報が、線幅受付部１０３に入力された場合について説明する。
【０１４９】
対称部位抽出部１０９は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ９２８７」の形状データ１３を呼び出して、呼び出した形状データ１３を構成するストローク群から、対称性を持つストローク群からなる対称オブジェクトを検出する。この場合、「仲」という文字には「中」という対称性を持つストローク群からなる対称オブジェクトが存在するため、対称部位抽出部１０９は「中」という対称オブジェクトを抽出する。
【０１５０】
サイズ受付部１０２ｃは、対称オブジェクトに対する第１の矩形領域サイズ１１Ａ（ボディサイズ）として左右方向に１２ドットおよび上下方向に１８ドットという情報が、第２の矩形領域サイズ１１Ｂ（レターサイズ）として左右方向に１２ドットおよび上下方向に１８ドットという情報が、サイズ受付部１０２ｃを介して入力されるものとする。また、線幅として１ドットという情報が、線幅受付部１０３に入力される。
【０１５１】
換言すれば、文字コード受付部１０１は文字コード（ＳＪＩＳコード）０ｘ９２８７という情報を受け付けて、対称部位抽出部１０９に受け渡す。対称部位抽出部１０９は形状データ１３と、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とを取得部１０４ｃに受け渡す。サイズ受付部１０２ｃは第１の矩形領域サイズ１１Ａとして左右方向に１２ドットおよび上下方向に１８ドットという情報を受け付けて、取得部１０４ｃに受け渡す。線幅受付部１０３は線幅として１ドットという情報を受け付けて、取得部１０４ｃに受け渡す。サイズ受付部１０２ｃは第２の矩形領域サイズ１１Ｂとして左右方向に１２ドットおよび上下方向に１８ドットという情報を受け付けて、取得部１０４ｃに受け渡す。
【０１５２】
そして、取得部１０４ｃは、「中」という対称オブジェクトを指定する情報と、左右対称である旨の情報とに基づいて、線幅が偶数であるか否かを判断する。ここでは、対称オブジェクトが左右対称であって、入力された線幅が１ドット（奇数）であるため、取得部１０４ｃは第２の矩形領域サイズ１１Ｂの左右方向のドット数が奇数であるか否かを判断する。ここでは、第２の矩形領域サイズ１１Ｂの左右方向の大きさが１２ドットであり、すなわち第２の矩形領域サイズ１１Ｂが偶数であるため、取得部１０４ｃは第２の矩形領域サイズ１１Ｂから１だけ小さい値を第２の矩形領域サイズ１１Ｂとしてセットし直す。すなわち、取得部１０４ｃは、第２の矩形領域サイズ１１Ｂの左右方向の大きさを１１ドットにセットし直す。
【０１５３】
図１５は、線幅が１ドットの場合の「仲」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。より詳細には、図１５（ａ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域とを示すイメージ図である。図１５（ｂ）は、本実施の形態に係るコンピュータシステム２００における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【０１５４】
図１５（ａ）に示すように、本実施の形態に係るコンピュータシステム２００においては、取得部１０４ｃが第２の矩形領域サイズ１１Ｂの左右方向の大きさを１１ドットにセットし直す。たとえば、「中」という対称オブジェクトに割り当てられるボディ枠として、左右方向に１２ドット分および上下方向に１８ドット分の画素を確保する。そして、取得部１０４ｃは、「中」という対称オブジェクトが表示される（占有する）レター枠として、左右方向に１１ドット分および上下方向に１８ドット分の画素を確保する。
【０１５５】
拡縮部１０６は、形状データ記憶部２１２−１から文字コード１０、すなわちＳＪＩＳコードが「０ｘ９２８７」の形状データ１３を呼び出して、「仲」という文字全体がレター枠（１８ドット）に収まるように、そして「中」という対称オブジェクトがレター枠（左右方向に１１ドット、上下方向に１８ドット）に収まるように、形状データ１３に対して拡大処理または縮小処理を行う。
【０１５６】
そして、図１５（ｂ）に示すように、出力部１０７は、拡大処理または縮小処理された形状データ１３に基づいて、モニタ２０３に文字を描画する。このように、線幅が１ドット（奇数）の場合に、第２の矩形領域サイズ１１Ｂが１１ドット（奇数）のレター枠に対称オブジェクトを描画することにより、「中」のような中央のストロークに対して線対称な対称オブジェクトを描画する場合に、左右対称性を維持したまま「中」という文字を描画することができる。
【０１５７】
なお、ここでは、旁の部分に対称性を持つストローク群からなる対称オブジェクトが存在するような例を示したが、このような機能に限定されない。例えば、「峠」のように、偏の部分に対称性を持つストローク群からなる対称オブジェクトに対しても上記と同様の機能を適用することができる。さらに、「岸」のように冠の部分に対称性を持つストローク群からなるオブジェクトや、「島」などのようにある部分に対称性を持つストローク群、ここでは「山」というストローク群、からなる対称オブジェクトに対しても上記と同様の機能を適用することができる。
【０１５８】
＜文字描画処理＞
次に、本実施の形態にかかるコンピュータ２２０ｃにおける文字描画処理の処理手順について説明する。図１６は、本実施の形態にかかるコンピュータ２２０ｃにおける文字描画処理の処理手順を示すフローチャートである。
【０１５９】
図１６を参照して、コンピュータ２２０の電源が入れられると、ＣＰＵ１００は、ハードディスク２１２から文字描画プログラムを読み出して、文字描画プログラムを起動する。まずＣＰＵ１００は、文字コード１０が入力されるのを待ち受ける（ステップＳ４０２）。ＣＰＵ１００は、文字コード１０が入力されると（ステップＳ４０２にてＹＥＳである場合）、入力された文字コード１０を読み込んで、文字コードに対応する形状データ１３を読み出して、対応する文字に対称オブジェクトが含まれるか否かを判断する（ステップＳ４０４）。あるいは、ＣＰＵ１００は、対応する文字から対称オブジェクトを抽出する。対応する文字に対称オブジェクトが含まれない場合（ステップＳ４０４にてＮＯである場合）、ＣＰＵ１００は、形状データ１３に基づいてモニタ２０３に文字を描画させる。
【０１６０】
対応する文字に対称オブジェクトが含まれる場合（ステップＳ４０４にてＹＥＳである場合）、ＣＰＵ１００は、対称オブジェクトに対する第１の矩形領域サイズ１１Ａが入力されるのを待ち受ける（ステップＳ４０６）。ＣＰＵ１００は、対称オブジェクトに対する第一の矩形領域サイズ１１Ａが入力されると（ステップＳ４０６にてＹＥＳである場合）、入力された第１の矩形領域サイズ１１ＡをＲＡＭ２０９に記憶する。
【０１６１】
同様に、ＣＰＵ１００は、線幅１２が入力されるのを待ち受ける（ステップＳ４０８）。ＣＰＵ１００は、線幅１２が入力されると（ステップＳ４０８にてＹＥＳである場合）、入力された線幅１２を読み込んで、ＲＡＭ２０９に記憶する。
【０１６２】
ＣＰＵ１００は、対称オブジェクトに対する第２の矩形領域サイズ１１Ｂが入力されるのを待ち受ける（ステップＳ４１０）。ＣＰＵ１００は、対称オブジェクトに対する第２の矩形領域サイズ１１Ｂが入力されると、入力された第２の矩形領域サイズ１１Ｂを読み込んで、ＲＡＭ２０９に記憶する。そして、ＣＰＵ１００は、第２矩形領域サイズ決定処理（ステップＳ２００）によって、対称オブジェクトに対する第２の矩形領域サイズ１１Ｂを修正する。第２矩形領域サイズ決定処理（ステップＳ２００）については図９に示した第２矩形領域サイズ決定処理（ステップＳ２００）と同様であるので、ここでは説明を繰り返さない。
【０１６３】
ＣＰＵ１００は、第２矩形領域サイズ決定処理（ステップＳ２００）が終了すると、文字コード１０に相当する形状データ１３を形状データ記憶部２１２−１から読み出して、第２矩形領域サイズ決定処理（ステップＳ２００）にて修正された後の第２の矩形領域サイズ１１Ｂに適合するように、形状データ１３に拡大処理または縮小処理を行う（ステップＳ４１２）。
【０１６４】
そして、ＣＰＵ１００は、拡縮処理された後の形状データ１３をモニタインターフェイス２１３を介してモニタ２０３に出力し（ステップＳ４１４）、文字描画処理を終了する。なお、ＣＰＵ１００は、ステップＳ４１４において、形状データのうち、対称性を持たないストローク群からなるオブジェクトも同時に描画するものとし、一つの文字、すなわち入力された文字コード１０に対する文字を描画する。なお、前述したように、コンピュータ２２０自体が文字を描画する機能を備えている場合には、ステップＳ４１２において、拡縮処理されたのちの形状データ１３に基づいて文字を表示装置に表示してもよい。
【０１６５】
このように、本実施の形態に係るコンピュータ２２０においては、左右対称性あるいは上下対称性を有した対称オブジェクトを、左右対称性あるいは上下対称性を有したまま描画することができる。その結果、ユーザが当該文字を読みやすくなり、テキストデータ全体における可読性を向上させることができる。
【０１６６】
なお、上記の実施の形態１〜３に係る文字描画装置の有する機能同士を組み合わせることも可能である。より詳細には、たとえば、実施の形態２に係るコンピュータ２２０ｂに、実施の形態３に係るコンピュータ２２０ｃの対称部位抽出部１０９を追加することが可能である。逆に、実施の形態３に係るコンピュータ２２０ｃに、実施の形態２に係るコンピュータ２２０ｂの矩形情報記憶部２１２−２を追加することなども可能である。
【０１６７】
上記開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内においてのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１６８】
【図１】本実施の形態に係るコンピュータシステムを示す概略図である。
【図２】実施の形態１に係る文字描画装置の機能構成を示す機能ブロック図である。
【図３】形状データ記憶部が記憶する形状データの例を示すイメージ図である。
【図４】線幅が２ドットの場合の「山」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【図５】線幅が３ドットの場合の「山」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【図６】線幅が２ドットの場合の「三」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【図７】線幅が１ドットの場合の「三」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【図８】実施の形態１にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【図９】実施の形態１にかかる文字描画装置における第２の矩形領域サイズ決定処理の処理手順を示すフローチャートである。
【図１０】実施の形態２にかかる文字描画装置の機能構成を示すブロック図である。
【図１１】矩形情報記憶部に格納される矩形データを示すイメージ図である。
【図１２】実施の形態２にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【図１３】実施の形態３にかかる文字描画装置の機能構成を示すブロック図である。
【図１４】線幅が２ドットの場合の「仲」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【図１５】線幅が１ドットの場合の「仲」という文字が表示される場合における第１の矩形領域と第２の矩形領域と表示される文字画像とを示すイメージ図である。
【図１６】実施の形態３にかかる文字描画装置における文字描画処理の処理手順を示すフローチャートである。
【符号の説明】
【０１６９】
１０  文字コード、１１Ａ  第１の矩形領域サイズ、１１Ｂ  第２の矩形領域サイズ、１３，１３Ａ，１３Ｂ，１３Ｃ  形状データ、１００  ＣＰＵ、１０１  文字コード受付部、１０２，１０２ｂ，１０２ｃ  サイズ受付部、１０３  線幅受付部、１０４，１０４ｂ，１０４ｃ  取得部、１０６  拡縮部、１０７  出力部、１０９  対称部位抽出部、１１０  受付部、２００  文字描画システム（コンピュータシステム）、２０１  光ディスクドライブ、２０２  磁気ディスクドライブ、２０３  モニタ、２０４  リモコン、２０７  バス、２１０  光ディスク、２１１  磁気ディスク、２１２  ハードディスク、２１２−１  形状データ記憶部、２１２−２  矩形情報記憶部、２１３  モニタインターフェイス、２１６  通信インターフェイス、２２０，２２０ｂ，２２０ｃ  文字描画装置（コンピュータ）。
【図１】
2010039375.tif 000003
【図２】
2010039375.tif 000004
【図３】
2010039375.tif 000005
【図４】
2010039375.tif 000006
【図５】
2010039375.tif 000007
【図６】
2010039375.tif 000008
【図７】
2010039375.tif 000009
【図８】
2010039375.tif 000010
【図９】
2010039375.tif 000011
【図１０】
2010039375.tif 000012
【図１１】
2010039375.tif 000013
【図１２】
2010039375.tif 000014
【図１３】
2010039375.tif 000015
【図１４】
2010039375.tif 000016
【図１５】
2010039375.tif 000017
【図１６】
2010039375.tif 000018