(57)【要約】【課題】第２の方法で量子化された距離の少なくとも１つを調整することで、調整後の文字や図形の形状および大きさを調整前と同じにする。【解決手段】本発明による文字図形表示装置は、文字または図形を表示する表示デバイスと、表示デバイスを制御する制御部とを備えた文字図形表示装置であって、制御部は文字図形表示処理を実行し、文字図形表示処理は、スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、第１の方法で量子化された合計を生成するステップと、スケーリングされた基準点間の距離を第２の方法で量子化することにより、第２の方法で量子化された距離を生成するステップと、第２の方法で量子化された距離の合計が第１の方法で量子化された合計に等しくなるように、第２の方法で量子化された距離の少なくとも１つを調整するステップとを包含する。【選択図】  図１
2004341253.tif 000002
【特許請求の範囲】
【請求項１】
文字または図形を表示する表示デバイスと、
前記表示デバイスを制御する制御部と
を備えた文字図形表示装置であって、
前記制御部は文字図形表示処理を実行し、
前記文字図形表示処理は、
（ａ）特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、
（ｂ）前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、
（ｃ）前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、
（ｄ）前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、
（ｅ）前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップと
を包含する、文字図形表示装置。
【請求項２】
前記第２の方法での量子化は、前記第２の方法で量子化された距離として最低限必要な距離を示すフラグを考慮して行われる、請求項１に記載の文字図形表示装置。
【請求項３】
前記ステップ（ｄ）は、前記第２の方法で量子化された距離として最低限必要な距離を示すフラグを考慮して行われる、請求項１に記載の文字図形表示装置。
【請求項４】
前記ステップ（ｄ）は、前記第２の方法で量子化された距離を広げるステップを含む、請求項１に記載の文字図形表示装置。
【請求項５】
前記ステップ（ｄ）は、前記第２の方法で量子化された距離を狭めるステップを含む、請求項１に記載の文字図形表示装置。
【請求項６】
前記ステップ（ｄ）は、前記第２の方法で量子化された距離を０にするステップを含む、請求項１に記載の文字図形表示装置。
【請求項７】
前記ステップ（ｅ）は、距離ａ／距離ｂの値が距離Ａ／距離Ｂの値に最も近くなるように、スケーリングされた文字上の所定の点である第１の点を表示するステップを含み、
ここで、前記第１の点に対応し、スケーリングされる前の文字上の点である第２の点は、スケーリングされる前の基準点のうち、互いに隣接する第１の基準点と第２の基準点との間にあり、
距離Ａは、前記第２の点と前記第１の基準点との間の距離であり、
距離Ｂは、前記第２の点と前記第２の基準点との間の距離であり、
距離ａは、前記第１の点とスケーリングされた第１の基準点との間の距離であり、
距離ｂは、前記第１の点とスケーリングされた第２の基準点との間の距離である、請求項１に記載の文字図形表示装置。
【請求項８】
前記文字は複数のブロックから構成されており、
前記文字図形表示処理は、前記ステップ（ｂ）〜（ｄ）を前記ブロック毎に実行するステップをさらに包含する、請求項１に記載の文字図形表示装置。
【請求項９】
前記距離を０にするステップは、第２の方法で量子化された距離を０にする順位を示すフラグを考慮して行われる、請求項６に記載の文字図形表示装置。
【請求項１０】
特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、
前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、
前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、
前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、
前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップと
を包含する、文字図形表示方法。
【請求項１１】
文字または図形を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた文字図形表示装置に文字図形表示処理を実行させるためのプログラムであって、
前記文字図形表示処理は、
特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、
前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、
前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、
前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、
前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップと
を包含する、プログラム。
【請求項１２】
文字または図形を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた文字図形表示装置によって読み取り可能な記録媒体であって、
前記記録媒体は、
特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、
前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、
前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、
前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、
前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップと
を包含する処理を前記制御部に実行させるためのプログラムを記録している、記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する利用分野】
本発明は、スケーリングされた文字または図形を表示する文字図形表示装置、文字図形表示方法、プログラムおよび記録媒体に関する。
【０００２】
【従来の技術】
文字を表示するための文字データには、例えば、ビットマップデータとベクトルデータとがある。
【０００３】
ビットマップデータは、固定の座標値を含む。固定の座標値をカラー液晶表示デバイス等の表示デバイスに出力することによって、表示デバイスに、文字を表示することができる。しかし、ビットマップデータは、文字の大きさに応じて固定されている。したがって、ビットマップデータは、必要とされる文字の大きさごとに用意されなければならない。
【０００４】
ベクトルデータには、例えば、文字のアウトラインを示すデータや文字を構成するストロークを示すデータが含まれる。ベクトルデータをカラー液晶表示デバイス等の表示デバイスに出力する場合には、表示デバイスに表示する文字の大きさに応じて、ベクトルデータをスケーリングしなければならない。しかし、必要とされる文字の大きさが多種類であったとしても、必要とされるベクトルデータは、一種類でよい。ベクトルデータは、文字の大きさに応じて固定されていないからである。したがって、文字データを記憶するための記憶装置の容量は少なくてもよい。
【０００５】
ベクトルデータをスケーリングした後に、スケーリングされたベクトルデータを所定の方法（例えば、四捨五入）で量子化することによって、量子化誤差が生じる。量子化誤差とは、所定の方法で量子化される前の数と所定の方法で量子化された後の数との差である。例えば、四捨五入される前の数４．６と四捨五入された後の数５との差は、０．４である。この場合、量子化誤差は、０．４である。
【０００６】
図１９は、ストロークを示す座標値が四捨五入される前と四捨五入された後とのストロークを示す。図１９には、座標Ａと座標Ｂとが含まれる。座標Ａに示されるストロークは、座標値が四捨五入される前のストロークである。座標Ｂに示されるストロークは、座標値が四捨五入された後のストロークである。ストロークを示す座標値を四捨五入した結果、ストロークとストロークとの間の距離が逆転している。
【０００７】
ストロークを示す座標値を四捨五入する前は、座標Ａに示される４本のストロークは、座標値０．３（ストロークａ）、座標値４．５（ストロークｂ）、座標値８．３（ストロークｃ）、座標値１１．５（ストロークｄ）で示される。ストロークを示す座標値を四捨五入した結果、座標値０．３（ストロークａ）は座標値０（ストロークａ’）に、座標値４．５（ストロークｂ）は座標値５（ストロークｂ’）に、座標値８．３（ストロークｃ）は座標値８（ストロークｃ’）に、座標値１１．５（ストロークｄ）は座標値１２（ストロークｄ’）になる。
【０００８】
ストロークａとストロークｂとの間の距離（距離ａｂ）は４．２、ストロークｂとストロークｃとの間の距離（距離ｂｃ）は３．８、ストロークｃとストロークｄとの間の距離（距離ｃｄ）は３．２である。ストロークを示す座標値を四捨五入した結果、ストロークａ’とストロークｂ’との間の距離（距離ａ’ｂ’）は５、ストロークｂ’とストロークｃ’との間の距離（距離ｂ’ｃ’）は３、ストロークｃ’とストロークｄ’との間の距離（距離ｃ’ｄ’）は４となる。
【０００９】
ストロークを示す座標値を四捨五入する前は、距離ａｂ＞距離ｂｃ＞距離ｃｄであったが、ストロークを示す座標値を四捨五入した結果、距離ａ’ｂ’＞距離ｃ’ｄ’＞距離ｂ’ｃ’になった。距離ｂｃと距離ｃｄとの順番は、ストロークを示す座標値を四捨五入した結果、逆転している。
【００１０】
距離の順番の逆転を防ぐ技術が、特開平６−１７５６３８号公報に開示されている。図１９に示される座標値を用いて、以下に、この技術を説明する。
【００１１】
ストロークを示す座標値を四捨五入する前に、ストロークとストロークとの間の距離（四捨五入前の距離）を求める。ストロークを示す座標値を四捨五入した後に、ストロークとストロークとの間の距離（四捨五入後の距離）を求める。四捨五入前の距離と四捨五入後の距離との比率を計算する。計算された比率のうち、最大の比率と最小の比率との差が小さくなるように、ストロークを移動する。
【００１２】
図２０は、座標Ｃを示す。座標Ｃに示されるストロークは、特開平６−１７５６３８号公報に開示されている技術を用いて座標Ａに示されたストロークを移動させた後のストロークである。
【００１３】
具体的には、以下のようにストロークが移動される。
【００１４】
ストロークを示す座標値を四捨五入した結果、座標値０．３（ストロークａ）は座標値０（ストロークａ’）に、座標値４．５（ストロークｂ）は座標値５（ストロークｂ’）に、座標値８．３（ストロークｃ）は座標値８（ストロークｃ’）に、座標値１１．５（ストロークｄ）は座標値１２（ストロークｄ’）になる。四捨五入後の距離と四捨五入前の距離との比率は、距離ａ’ｂ’／距離ａｂ＝５／４．２＝１．１９、距離ｂ’ｃ’／距離ｂｃ＝３／３．８＝０．７９、距離ｃ’ｄ’／距離ｃｄ＝４／３．２＝１．２５である。
【００１５】
最大の比率１．２５（距離ｃ’ｄ’／距離ｃｄ）と最小の比率０．７９（距離ｂ’ｃ’／距離ｂｃ）との差は、０．４６である。最大の比率と最小の比率との差を小さくするために、距離ｃ’ｄ’から１を引いた値と距離ｃｄとの比率を求める。距離ｃ’ｄ’から１を引いた値と距離ｃｄとの比率は、０．９４（（距離ｃ’ｄ’−１）／距離ｃｄ＝３／３．２＝０．９４）になる。最大の比率と最小の比率との差を小さくするために、距離ｂ’ｃ’に１を足した値と距離ｂｃとの比率を求める。距離ｂ’ｃ’に１を足した値と距離ｂｃとの比率は１．０５（（ｂ’ｃ’＋１）／ｂｃ＝４／３．８＝１．０５）になる。
【００１６】
この結果、比率１．１９（距離ａ’ｂ’／距離ａｂ）、比率１．０５（（距離ｂ’ｃ’＋１）／距離ｂｃ）、比率０．９４（（距離ｃ’ｄ’−１）／距離ｃｄ）になる。最大の比率１．１９（距離ａ’ｂ’／距離ａｂ）と最小の比率０．９４（（距離ｃ’ｄ’−１）／距離ｃｄ）との差は、０．２５になる。最大の比率と最小の比率との差が小さくなった。これらの比率を実現させるために、ストロークを移動させる。この場合、ストロークｃ’をストロークｂ’と逆の方向に移動させる。
【００１７】
【特許文献】特開平６−１７５６３８号公報
【００１８】
【発明が解決しようとする課題】
図２１は、座標Ｄと座標Ｅとを示す。座標Ｄは、４本のストロークを示す。座標Ｅは、特開平６−１７５６３８号公報に開示されている技術を用いて座標Ｄに示されたストロークを移動させた後のストロークを示す。
【００１９】
座標Ｄに示される４本のストロークは、座標値０．２（ストロークａ）、座標値４．４（ストロークｂ）、座標値８．２（ストロークｃ）、座標値１１．４（ストロークｄ）で示される。ストロークを示す座標値を四捨五入した結果、座標値０．２（ストロークａ）は座標値０（ストロークａ’）に、座標値４．４（ストロークｂ）は座標値４（ストロークｂ’）に、座標値８．２（ストロークｃ）は座標値８（ストロークｃ’）に、座標値１１．４（ストロークｄ）は座標値１１（ストロークｄ’）になる。
【００２０】
四捨五入後の距離と四捨五入前の距離との比率は、距離ａ’ｂ’／距離ａｂ＝４／４．２＝０．９５、距離ｂ’ｃ’／距離ｂｃ＝４／３．８＝１．０５、距離ｃ’ｄ’／距離ｃｄ＝３．２／３．４＝０．９４である。最大の比率は１．０５（距離ｂ’ｃ’／距離ｂｃ）である。最小の比率は０．９４（距離ｃ’ｄ’／距離ｃｄ）である。最大の比率と最小の比率との差を小さくするために、距離ｂ’ｃ’から１を引いた値と距離ｂｃとの比率を求める。距離ｂ’ｃ’から１を引いた値と距離ｂｃとの比率は０．７９（（距離ｂ’ｃ’−１）／距離ｂｃ）になる。最大の比率と最小の比率との差を小さくするために、距離ｃ’ｄ’に１を足した値と距離ｃｄとの比率を求める。距離ｃ’ｄ’に１を足した値と距離ｃｄとの比率は１．２５（（距離ｃ’ｄ’＋１）／距離ｃｄ）になる。最大の比率と最小の比率との差は小さくならない。しかし、ストロークを示す座標値を四捨五入する前は、距離ａｂ＞距離ｂｃ＞距離ｃｄであったが、ストロークを示す座標値を四捨五入した結果、距離ａ’ｂ’＝距離ｃ’ｄ’＞距離ｂ’ｃ’になった。距離ａｂと、距離ｂｃと、距離ｃｄとの順番は、逆転していないため、隣接するストロークの間の距離のバランスは保たれる。
【００２１】
座標Ｃに示されるストロークは、特開平６−１７５６３８号公報に開示されている技術を用いて座標Ａに示されたストロークを移動させた後のストロークである。  座標Ｅに示されるストロークは、特開平６−１７５６３８号公報に開示されている技術を用いて座標Ｄに示されたストロークを移動させた後のストロークである。
【００２２】
座標Ｄに示されたストロークは、座標Ａに示されたストロークを下に０．１だけ移動したストロークである。したがって、座標Ｄに示されたストロークと座標Ａに示されたストロークとは、同じ形状と同じ大きさを有する。しかし、座標Ｄに示されたストロークと座標Ａに示されたストロークとは、示された位置が異なった結果、座標Ｅに示されたストロークと座標Ｃに示されたストロークとは、異なった形状と異なった大きさを有することとなる。
【００２３】
具体的には、座標Ｃに示されたストロークの間の距離ａ’ｄ’が１２である。座標Ｅに示されたストロークの間の距離ａ’ｄ’が１１である。
【００２４】
図２２は、座標Ｆと座標Ｇとを示す。座標Ｆは、６本のストロークを示す。座標Ｇは、特開平６−１７５６３８号公報に開示されている技術を用いて座標Ｆに示されたストロークを移動させた後のストロークを示す。
【００２５】
座標Ｆに示される６本のストロークは、座標値０．３（ストロークａ）、座標値４．５（ストロークｂ）、座標値８．３（ストロークｃ）、座標値１１．５（ストロークｄ）、座標値１５．２（ストロークｅ）、座標値１８．６（ストロークｆ）で示される。ストロークを示す座標値を四捨五入した結果、座標値０．３（ストロークａ）は座標値０（ストロークａ’）に、座標値４．５（ストロークｂ）は座標値５（ストロークｂ’）に、座標値８．３（ストロークｃ）は座標値８（ストロークｃ’）に、座標値１１．５（ストロークｄ）は座標値１２（ストロークｄ’）に、座標値１５．２（ストロークｅ）は座標値１５（ストロークｅ’）に、座標値１８．６（ストロークｆ）は座標値１９（ストロークｄ’）になる。
【００２６】
四捨五入後の距離と四捨五入前の距離との比率は、距離ａ’ｂ’／距離ａｂ＝５／４．２＝１．１９、距離ｂ’ｃ’／距離ｂｃ＝３／３．８＝０．７９、距離ｃ’ｄ’／距離ｃｄ＝４／３．２＝１．２５、距離ｄ’ｅ’／距離ｄｅ＝３／３．７＝０．８１、距離ｅ’ｆ’／距離ｅｆ＝４／３．４＝１．１８である。最大の比率は１．２５（距離ｃ’ｄ’／距離ｃｄ）である。最大の比率と最小の比率との差を小さくするために、距離ｃ’ｄ’から１を引いた値と距離ｃｄとの比率を求める。距離ｃ’ｄ’から１を引いた値と距離ｃｄとの比率は０．９４（（距離ｃ’ｄ’−１）／距離ｃｄ）になる。最小の比率は０．７９（距離ｂ’ｃ’／距離ｂｃ）である。最大の比率と最小の比率との差を小さくするために、距離ｂ’ｃ’に１を足した値と距離ｂｃとの比率を求める。距離ｂ’ｃ’に１を足した値と距離ｂｃとの比率は１．０５（（距離ｂ’ｃ’＋１）／距離ｂｃ）になる。
【００２７】
最大の比率と最小の比率の差が小さくなるため、ストロークｃ’をストロークｂ’の方向に移動させる。しかし、座標Ｇに示された一部のストロークの距離の間隔は改善されているが、距離ｄｅと距離ｅｆの逆転が残っている。
【００２８】
図２３は、座標Ｈと、座標Ｉと、座標Ｊとを示す。座標Ｈは、２本のストロークを示す。座標Ｉは、座標Ｈに示されたストロークの座標値が四捨五入された後のストロークを示す。座標Ｊは、表示デバイスに表示されたストロークを示す。
【００２９】
座標Ｈに示される２本のストロークは、座標値０．６（ストロークａ）、座標値２．４（ストロークｂ）で示される。ストロークを示す座標値を四捨五入した結果、座標値０．６（ストロークａ）は座標値１（ストロークａ’）に、座標値２．４（ストロークｂ）は座標値２（ストロークｂ’）になる。
【００３０】
２つのストロークの間の距離は１つしかないため、特開平６−１７５６３８号公報に開示されている技術を用いてストロークを移動させることはできない。座標Ｉに示されたストロークのデータから描画データを生成し、描画データを表示デバイスに表示する場合、座標Ｊに示されるように、２つのストロークが、潰れたように見える。
【００３１】
上述したように、特開平６−１７５６３８号公報に開示されている技術を用いてストロークの移動を行う場合、以下に示す（１）〜（３）の問題点があった。
【００３２】
（１）座標Ｄに示されたストロークと座標Ａに示されたストロークとは、同じ形状と同じ大きさを有する。しかし、特開平６−１７５６３８号公報に開示されている技術を用いてストロークの位置を調整する場合、座標Ｅに示された位置調整後のストロークと座標Ｃに示された位置調整後のストロークとは、異なった形状と異なった大きさを有することとなる。
【００３３】
（２）座標Ｇに示された一部のストロークの距離の間隔は改善されているが、距離ｄｅと距離ｅｆの逆転が残っているため、すべてのストロークの距離の間隔が改善されているわけではない。したがって、ストロークの位置を調整する前のストロークのバランスが、ストロークの位置を調整した後では維持されない。
【００３４】
（３）ストロークの位置を調整した結果、２つのストロークが互いに平行に接触してしまい、２つのストロークが潰れて１つのストロークになったかのように見える。
【００３５】
本発明は、上述した（１）〜（３）の問題点の少なくとも１つを解決することができる文字図形表示装置、文字図形表示方法、プログラムおよび記録媒体を提供することを目的とする。
【００３６】
【課題を解決するための手段】
本発明による文字図形表示装置は、文字または図形を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた文字図形表示装置であって、前記制御部は文字図形表示処理を実行し、前記文字図形表示処理は、特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップとを包含し、これにより上記目的が達成される。
【００３７】
前記第２の方法での量子化は、前記第２の方法で量子化された距離として最低限必要な距離を示すフラグを考慮して行われてもよい。
【００３８】
前記第２の方法で量子化された距離を生成するステップは、前記第２の方法で量子化された距離として最低限必要な距離を示すフラグを考慮して行われてもよい。
【００３９】
前記第２の方法で量子化された距離を生成するステップは、前記第２の方法で量子化された距離を広げるステップを含んでもよい。
【００４０】
前記第２の方法で量子化された距離を生成するステップは、前記第２の方法で量子化された距離を狭めるステップを含んでもよい。
【００４１】
前記第２の方法で量子化された距離を生成するステップは、前記第２の方法で量子化された距離を０にするステップを含んでもよい。
【００４２】
前記スケーリングされた文字または図形を表示するステップは、距離ａ／距離ｂの値が距離Ａ／距離Ｂの値に最も近くなるように、スケーリングされた文字上の所定の点である第１の点を表示するステップを含んでもよく、ここで、前記第１の点に対応し、スケーリングされる前の文字上の点である第２の点は、スケーリングされる前の基準点のうち、互いに隣接する第１の基準点と第２の基準点との間にあり、距離Ａは、前記第２の点と前記第１の基準点との間の距離であり、距離Ｂは、前記第２の点と前記第２の基準点との間の距離であり、距離ａは、前記第１の点とスケーリングされた第１の基準点との間の距離であり、距離ｂは、前記第１の点とスケーリングされた第２の基準点との間の距離である。
【００４３】
前記文字は複数のブロックから構成されており、前記文字図形表示処理は、前記第１の方法で量子化された合計を生成するステップと、第２の方法で量子化された距離を生成するステップと、前記第２の方法で量子化された距離を生成するステップとを前記ブロック毎に実行するステップをさらに包含してもよい。
【００４４】
前記距離を０にするステップは、第２の方法で量子化された距離を０にする順位を示すフラグを考慮して行われてもよい。
【００４５】
本発明による文字図形表示方法は、特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップとを包含し、これにより上記目的が達成される。
【００４６】
本発明によるプログラムは、文字または図形を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた文字図形表示装置に文字図形表示処理を実行させるためのプログラムであって、前記文字図形表示処理は、特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップとを包含し、これにより上記目的が達成される。
【００４７】
本発明による記録媒体は、文字または図形を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた文字図形表示装置によって読み取り可能な記録媒体であって、前記記録媒体は、特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップと、前記スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、前記第１の方法で量子化された合計を生成するステップと、前記スケーリングされた基準点間の距離を第２の方法で量子化することにより、前記第２の方法で量子化された距離を生成するステップと、前記第２の方法で量子化された距離の合計が前記第１の方法で量子化された合計に等しくなるように、前記第２の方法で量子化された距離の少なくとも１つを調整するステップと、前記調整された少なくとも１つの距離を伴う前記スケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップとを包含する処理を前記制御部に実行させるためのプログラムを記録しており、これにより上記目的が達成される。
【００４８】
【発明の実施の形態】
本明細書中で用いられる「文字」は、例えば、ひらがな、カタカナ、漢字、アルファベット、絵文字および数字を含む。しかし、本発明はこれらに限定されない。
【００４９】
本明細書中で用いられる「図形」は、例えば、文字の一部、模様、記号を含む。しかし、本発明はこれらに限定されない。
【００５０】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００５１】
図１は、本発明の実施の形態の文字表示装置１００の構成を示す。文字表示装置１００は、例えば、パーソナルコンピュータであり得る。パーソナルコンピュータとしては、デスクトップ型またはラップトップ型などの任意のタイプのコンピュータが使用され得る。あるいは、文字表示装置１００は、ワードプロセッサであってもよい。
【００５２】
さらに、文字表示装置１００は、カラー表示が可能な表示デバイスを備えた電子機器や情報機器などの任意の情報表示装置であり得る。例えば、文字表示装置１００は、カラー液晶表示デバイスを備えた電子機器や、携帯情報ツールである携帯情報端末や、ＰＨＳを含む携帯電話機や、一般の電話機／ＦＡＸなどの通信機器などであってもよい。
【００５３】
文字表示装置１００は、入力デバイス１１０と、文字を表示する表示デバイス１３０と、表示デバイスを制御する制御部１２０と、補助記憶装置１４０とを含む。制御部１２０には、入力デバイス１１０と、表示デバイス１３０と、補助記憶装置１４０とが接続されている。
【００５４】
入力デバイス１１０は、表示デバイス１３０に表示すべき文字を示す文字情報を制御部１２０に入力するために使用される。文字情報は、例えば、文字を識別する文字コードと文字の大きさを示すサイズ情報とを含む。入力デバイス１１０としては、文字コードとサイズ情報とを入力することが可能な任意のタイプの入力デバイスが使用され得る。例えば、キーボードやマウスやペン入力装置などの入力デバイスが入力デバイス１１０として好適に使用され得る。
【００５５】
文字表示装置１００が携帯電話である場合には、通信先の電話番号を指定するための数字キーが、文字コードまたはサイズ情報を入力するために用いられてもよい。文字表示装置１００が、インターネットを含む電話通信回線に文字表示装置１００を接続するための手段を備えている場合には、その電話通信回線から受信した電子メールに含まれるメッセージが表示デバイス１３０に表示されてもよい。文字表示装置１００が、インターネットを含む電話通信回線に文字表示装置１００を接続するための手段を備えている場合には、その通信回線に接続するための手段が、入力デバイス１１０として機能する。
【００５６】
補助記憶装置１４０には、文字表示プログラム１４１と、文字表示プログラム４１を実行するために必要な文字データ１４２とが格納されている。文字データ１４２は、座標データを含む。
【００５７】
文字表示プログラム１４１は、表示デバイスに出力する文字サイズに合うように文字データ１４２によって含まれる座標データをスケーリングし、スケーリングされた座標データを生成するプログラム１４１ａと、スケーリングされた座標データをグリッドフィッティングし、グリットフィッティングされた座標データを生成するプログラム１４１ｂと、グリッドフィッティングされた座標データを表示デバイスに表示可能になるように描画データを生成する描画データ生成プログラム１４１ｃとを含む。
【００５８】
プログラム１４１ａ〜１４１ｃの機能の詳細は、後述される。
【００５９】
文字データ１４２は、例えば、ベクトルデータである。本実施の形態では、ベクトルデータは２５６メッシュの解像度をもっている。しかし、ベクトルデータの解像度は、２５６メッシュに限らない。３２メッシュでもよい。１４メッシュでもよい。
【００６０】
補助記憶装置１４０としては、文字表示プログラム１４１および文字データ１４２を格納することが可能な任意のタイプの記憶装置が使用され得る。補助記憶装置１４０において、文字表示プログラム１４１および文字データ１４２を格納する記録媒体としては、任意の記録媒体が使用され得る。例えば、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＭＤ、ＤＶＤ、ＩＣカード、光カードなどの記録媒体が好適に使用され得る。
【００６１】
なお、文字表示プログラム１４１および文字データ１４２は、補助記憶装置１４０によって含まれる記録媒体に格納されることに限定されない。例えば、文字表示プログラム１４１および文字データ１４２は、制御部１２０に含まれる主メモリ１２２に格納されてもよいし、ＲＯＭ（図示せず）に格納されてもよい。ＲＯＭは、例えば、マスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭなどであり得る。このＲＯＭ方式の場合には、そのＲＯＭを交換するだけでいろいろな処理のバリエーションを容易に実現することかできる。例えば、ＲＯＭ方式は、文字表示装置１００が携帯型の端末装置または携帯電話機である場合に好適に適用され得る。
【００６２】
さらに、文字表示プログラム１４１および文字データ１４２を格納する記録媒体は、ディスクやカードなどの記憶装置や半導体メモリなどのようにプログラムやデータを固定的に担持する媒体以外に、通信ネットワークにおいてプログラムやデータを搬送するために使用される通信媒体のようにプログラムやデータを流動的に保持する媒体であってもよい。文字表示装置１００が、インターネットを含む電話通信回線に文字表示装置１００を接続するための手段を備えている場合には、その電話通信回線から文字表示プログラム１４１および文字データ１４２の少なくとも一部をダウンロードすることができる。この場合、ダウンロードに必要なローダープログラムは、ＲＯＭ（図示せず）に予め格納されていてもよいし、補助記憶装置１４０から制御部１２０にインストールされてもよい。
【００６３】
制御部１２０は、ＣＰＵ１２１と主メモリ１２２とを含む。
【００６４】
ＣＰＵ１２１は、文字表示装置１００の全体を制御および監視するとともに、補助記憶装置１４０に格納されている文字表示プログラム１４１を実行する。
【００６５】
主メモリ１２２は、入力デバイス１１０から主メモリ１２２に入力されたデータや、表示デバイス１３０に表示するためのデータや、文字表示プログラム１４１を実行するのに必要なデータを一時的に格納する。主メモリ１２２は、ＣＰＵ１２１によって制御される。
【００６６】
ＣＰＵ１２１は、主メモリ１２２に格納された各種のデータに基づいて文字表示プログラム１４１を実行することにより、描画データを生成する。生成された描画データは、主メモリ１２２に一旦格納された後、表示デバイス１３０に出力される。描画データが表示デバイス１３０に出力されるタイミングは、ＣＰＵ１２１によって制御される。
【００６７】
表示デバイス１３０は、例えば、カラー液晶表示デバイスである。カラー液晶表示デバイスとしては、パソコンなどに多く用いられている透過型の液晶表示デバイスのほか、反射型やリアプロ型の液晶表示デバイスが使用され得る。しかし、表示デバイス１３０は、カラー液晶表示デバイスに限定されない。表示デバイス１３０として、Ｘ方向およびＹ方向に配列された複数のピクセルを有する任意のカラー表示装置（いわゆるＸＹマトリクス表示装置）が使用され得る。
【００６８】
図２は、文字「葦」を構成するストロークを示す。文字「葦」は、ストロークＬ０１〜Ｌ１５で示された１５本のストロークから構成されている。
【００６９】
図３は、図２で示されたストロークから構成された文字「葦」の文字データ１４２を示す。
【００７０】
図３に示されるように、文字「葦」の文字データは、文字「葦」を構成するストロークＬ０１〜Ｌ１５のストロークごとに、座標データと、Ｙ軸方向のブロック番号と、Ｘ軸方向のブロック番号と、Ｙ軸方向の基準点データと、Ｘ軸方向の基準点データと、Ｙ軸方向の距離フラグと、Ｘ軸方向の距離フラグと、Ｙ軸方向の省略フラグと、Ｘ軸方向の省略フラグとを含む。
【００７１】
以下、図３に示される、座標データと、Ｙ軸方向のブロック番号と、Ｘ軸方向のブロック番号と、Ｙ軸方向の基準点データと、Ｘ軸方向の基準点データと、Ｙ軸方向の距離フラグと、Ｘ軸方向の距離フラグと、Ｙ軸方向の省略フラグと、Ｘ軸方向の省略フラグとを説明する。
【００７２】
座標データは、ストローク上の点を示すデータである。座標データは、１組のＸ座標値とＹ座標値とから構成される。座標データは、複数の組のＸ座標値とＹ座標値とから構成されてもよい。ストロークＬ０１〜Ｌ１５は、各々、２組のＸ座標値とＹ座標値とから構成されている。Ｘ座標値は、値０〜値２５５を有する。Ｙ座標値は、値０〜値２５５を有する。
【００７３】
ストロークＬ０１は、座標データの１つ目の点（０，２３１）と座標データの２つ目の点（２５５，２３１）とを結ぶ直線である。ストロークＬ０２は、座標データの１つ目の点（７９，２５５）と座標データの２つ目の点（７９，２１０）とを結ぶ直線である。ストロークＬ０３は、座標データの１つ目の点（１７６，２５５）と座標データの２つ目の点（１７６，２１０）とを結ぶ直線である。ストロークＬ０４は、座標データの１つ目の点（１９，１９４）と座標データの２つ目の点（２１８，１９４）とを結ぶ直線である。ストロークＬ０５は、座標データの１つ目の点（２１８，１９４）と座標データの２つ目の点（２１８，１６２）とを結ぶ直線である。ストロークＬ０６は、座標データの１つ目の点（１１８，２１３）と座標データの２つ目の点（１１３，１６２）とを結ぶ直線である。ストロークＬ０７は、座標データの１つ目の点（０，１６２）と座標データの２つ目の点（２５５，１６２）とを結ぶ直線である。ストロークＬ０８は、座標データの１つ目の点（３７，１３１）と座標データの２つ目の点（３７，９９）とを結ぶ直線である。ストロークＬ０９は、座標データの１つ目の点（３７，１３１）と座標データの２つ目の点（２１８，１３１）とを結ぶ直線である。ストロークＬ１０は、座標データの１つ目の点（２１８，１３１）と座標データの２つ目の点（２１８，９９）とを結ぶ直線である。ストロークＬ１１は、座標データの１つ目の点（３７，９９）と座標データの２つ目の点（２１８，９９）とを結ぶ直線である。ストロークＬ１２は、座標データの１つ目の点（３７，６４）と座標データの２つ目の点（２４７，６４）とを結ぶ直線である。ストロークＬ１３は、座標データの１つ目の点（３７，６４）と座標データの２つ目の点（３７，３０）とを結ぶ直線である。ストロークＬ１４は、座標データの１つ目の点（０，３０）と座標データの２つ目の点（２５５，３０）とを結ぶ直線である。ストロークＬ１５は、座標データの１つ目の点（１４５，９７）と座標データの２つ目の点（１４５，０）とを結ぶ直線である。
【００７４】
ブロック番号は、文字を構成するブロックの番号を示す。１つのブロックは、文字の部首や部品等から構成されている。なお、必ずしも文字が複数のブロックから構成されているとは限らない。文字が１つのブロックから構成されていてもよい。図３で示されるように、Ｙ軸方向のブロック番号は、全てのストロークにおいて、１である。図３で示されるように、Ｘ軸方向のブロック番号は、全てのストロークにおいて、１である。これは、文字「葦」は、１つのブロックから構成されていることを示す。
【００７５】
図４は、文字「明」の文字データを示す。
【００７６】
以下、図４を参照して、文字が複数のブロックから構成されている場合を説明する。
【００７７】
図４で示されるように、ストロークＬ０１〜ストロークＬ０５において、Ｙ軸方向のブロック番号は、１である。ストロークＬ０６〜ストロークＬ１１において、Ｙ軸方向のブロック番号は、２である。Ｘ軸方向のブロック番号は、全てのストロークにおいて、１である。これは、文字「明」は、２つのブロックから構成されていることを示す。偏「日」は、１つ目のブロックから構成されている。旁「月」は、２つ目のブロックから構成されている。
【００７８】
以上、図４を参照して、文字が複数のブロックから構成されている場合を説明した。
【００７９】
再び、図３を参照して、文字データ１４２に含まれるデータを説明する。
【００８０】
基準点データは、ストロークが基準点を含むか否かを示す。基準点データは、ストロークが基準点を含む場合には、基準点が座標データの幾つ目の点であるかを示す。
【００８１】
ストロークＬ０１において、ストロークＬ０１がＹ軸方向の基準点を含むか否かを示す基準点データは１である。ストロークＬ０１がＹ軸方向の基準点を含むか否かを示す基準点データが１であることは、ストロークＬ０１がＹ軸方向の基準点を含み、ストロークＬ０１において、基準点の位置は、座標データの１つ目の点（０，２３１）であることを示す。
【００８２】
同様に、ストロークＬ０４、Ｌ０７、Ｌ０９、Ｌ１１、Ｌ１２、Ｌ１４において、ストロークがＹ軸方向の基準点を含むか否かを示す基準点データは１である。ストロークＬ０４において、基準点の位置は、座標データの１つ目の点（１９，１９４）である。ストロークＬ０７において、基準点の位置は、座標データの１つ目の点（０，１６２）である。ストロークＬ０９において、基準点の位置は、座標データの１つ目の点（３７，１３１）である。ストロークＬ１１において、基準点の位置は、座標データの１つ目の点（３７，９９）である。ストロークＬ１２において、基準点の位置は、座標データの１つ目の点（３７，６４）である。ストロークＬ１４において、基準点の位置は、座標データの１つ目の点（０，３０）である。
【００８３】
ストロークＬ０２において、ストロークがＹ軸方向の基準点を含むか否かを示す基準点データは×である。ストロークＬ０１がＹ軸方向の基準点を含むか否かを示す基準点データが×であることは、ストロークＬ０２がＹ軸方向の基準点を含まないことを示す。
【００８４】
同様に、ストロークＬ０３、Ｌ０５、Ｌ０６、Ｌ０８、Ｌ１０およびＬ１３において、ストロークがＹ軸方向の基準点を含むか否かを示す基準点データは×である。ストロークがＹ軸方向の基準点を含むか否かを示す基準点データが×であることは、ストロークＬ０３、Ｌ０５、Ｌ０６、Ｌ０８、Ｌ１０およびＬ１３がＹ軸方向の基準点を含まないことを示す。
【００８５】
ストロークＬ１５において、ストロークがＹ軸方向の基準点を含むか否かを示す基準点データは２である。ストロークがＹ軸方向の基準点を含むか否かを示す基準点データが２であることは、ストロークＬ１５がＹ軸方向の基準点を含み、ストロークＬ１５において、基準点の位置は、座標データの２つ目の点（１４５，０）であることを示す。
【００８６】
ストロークＬ０１、Ｌ０４、Ｌ０５、Ｌ０６、Ｌ０７、Ｌ０９およびＬ１１〜Ｌ１５において、ストロークがＸ軸方向の基準点を含むか否かを示す基準点データは×である。ストロークがＸ軸方向の基準点を含むか否かを示す基準点データが×であることは、ストロークＬ０１、Ｌ０４、Ｌ０５、Ｌ０６、Ｌ０７、Ｌ０９およびＬ１１〜Ｌ１５がＸ軸方向の基準点を含まないことを示す。
【００８７】
ストロークＬ０２、Ｌ０３、Ｌ０８およびＬ１０において、ストロークがＸ軸方向の基準点を含むか否かを示す基準点データは１である。ストロークＬ０２において、基準点の位置は、座標データの１つ目の点（７９，２５５）である。ストロークＬ０３において、基準点の位置は、座標データの１つ目の点（１７６，２５５）である。ストロークＬ０８において、基準点の位置は、座標データの１つ目の点（３７，１３１）である。ストロークＬ１０において、基準点の位置は、座標データの１つ目の点（２１８，１３１）である。
【００８８】
基準点は、文字を構成するブロック内に含まれた点である。基準点は、Ｘ軸方向に伸びたストローク上だけでなく、Ｙ軸方向に伸びたストローク上にも設定することができる。例えば、Ｙ軸方向に伸びたストロークＬ１５上には、上述したように、座標データの２つ目の点が基準点である。基準点は、Ｙ軸方向に伸びたストローク上だけでなく、Ｘ軸方向に伸びたストローク上にも設定することができる。
【００８９】
基準点は、必ずしも、Ｙ軸方向に伸びたストローク上に設定される必要はない。基準点は、必ずしも、Ｘ軸方向に伸びたストローク上に設定される必要はない。
【００９０】
例えば、基準点は、ストローク上にない点であってもよい。基準点は、文字の種類に応じて、固有に与えられる点であってもよい。文字データ１４２を計算して求められる点であってもよい。
【００９１】
図５は、Ｙ軸に沿った基準点間の距離と、Ｘ軸に沿った基準点間の距離とを示す。
【００９２】
図５で示されるＹ軸に沿った基準点間の距離は、８つである。この８つの距離は、距離ＹＹ１、距離ＹＹ２、距離ＹＹ３、距離ＹＹ４、距離ＹＹ５、距離ＹＹ６、距離ＹＹ７および距離ＹＹ８で示される。
【００９３】
距離ＹＹ１は、Ｙ軸に沿った基準点（０，２３１）と最大のＹ座標の点（０，２５５）との間の距離２４である。距離ＹＹ２は、Ｙ軸に沿った基準点（０，１９４）とＹ軸に沿った基準点（０，２３１）との間の距離３７である。距離ＹＹ３は、Ｙ軸に沿った基準点（０，１６２）とＹ軸に沿った基準点（０，１９４）との間の距離３２である。距離ＹＹ４は、Ｙ軸に沿った基準点（０，１３１）とＹ軸に沿った基準点（０，１６２）との間の距離３１である。距離ＹＹ５は、Ｙ軸に沿った基準点（０，９９）とＹ軸に沿った基準点（０，１３１）との間の距離３２である。距離ＹＹ６は、Ｙ軸に沿った基準点（０，６４）とＹ軸に沿った基準点（０，９９）との間の距離３５である。距離ＹＹ７は、Ｙ軸に沿った基準点（０，３０）とＹ軸に沿った基準点（０，６４）との間の距離３４である。距離ＹＹ８は、最小のＹ座標の点（０，０）とＹ軸に沿った基準点（０，３０）との間の距離３０である。
【００９４】
図５で示されるＸ軸に沿った基準点間の距離は、５つである。この５つの距離は、距離ＸＸ１、距離ＸＸ２、距離ＸＸ３、距離ＸＸ４および距離ＸＸ５である。
【００９５】
距離ＸＸ１は、最小のＸ座標の点（０，０）とＸ軸に沿った基準点（３７，０）との間の距離３７である。距離ＸＸ２は、Ｘ軸に沿った基準点（７９，０）とＸ軸に沿った基準点（３７，０）との間の距離４２である。距離ＸＸ３は、Ｘ軸に沿った基準点（１７６，０）とＸ軸に沿った基準点（７９，０）との間の距離９７である。距離ＸＸ４は、Ｘ軸に沿った基準点（２１８，０）とＸ軸に沿った基準点（１７６，０）との間の距離４２である。距離ＸＸ５は、最大のＸ座標の点（２５５，０）とＸ軸に沿った基準点（２１８，０）との間の距離３７である。
【００９６】
距離フラグは、最低限必要な距離を有するか否かを示す。さらに、距離フラグは、特定の軸に沿った基準点間の距離として最低限必要な距離がいくらであるかを示す。例えば、距離フラグは、×である。距離フラグが×であることは、距離フラグが、最低限必要な距離を有しないことを示す。例えば、距離フラグは、数Ｍである。距離フラグが数Ｍであることは、距離フラグが、最低限必要な距離を有することを示す。さらに、距離フラグが数Ｍであることは、距離フラグが、特定の軸に沿った基準点間の距離として最低限必要な距離Ｍを必要とすることを示す。
【００９７】
ストロークＬ０１において、Ｙ軸方向の距離フラグは１である。Ｙ軸方向の距離フラグが１であることは、最低限必要な距離を有することを示す。さらに、距離フラグが１であることは、Ｙ軸に沿った基準点間の距離が最低限必要な距離１を必要とすることを示す。
【００９８】
ストロークＬ０２において、Ｙ軸方向の距離フラグは×である。Ｙ軸方向の距離フラグが×であることは、最低限必要な距離を有しないことを示す。
【００９９】
同様に、ストロークＬ０３、Ｌ０５、Ｌ０６、Ｌ０８、Ｌ１０およびＬ１３において、Ｙ軸方向の距離フラグは×である。Ｙ軸方向の距離フラグが×であることは、最低限必要な距離を有しないことを示す。
【０１００】
ストロークＬ０４において、Ｙ軸方向の距離フラグは２である。Ｙ軸方向の距離フラグが２であることは、最低限必要な距離を有することを示す。さらに、距離フラグが２であることは、Ｙ軸に沿った基準点間の距離が最低限必要な距離２を必要とすることを示す。
【０１０１】
同様に、ストロークＬ０７、Ｌ０９、Ｌ１１、Ｌ１２およびＬ１４において、Ｙ軸方向の距離フラグは２である。Ｙ軸方向の距離フラグが２であることは、最低限必要な距離を有することを示す。さらに、距離フラグが２であることは、Ｙ軸に沿った基準点間の距離が最低限必要な距離２を必要とすることを示す。
【０１０２】
ストロークＬ１５において、Ｙ軸方向の距離フラグは１である。Ｙ軸方向の距離フラグが１であることは、最低限必要とする距離を有することを示す。さらに、距離フラグが１であることは、Ｙ軸に沿った基準点間の距離が最低限必要な距離１を必要とすることを示す。
【０１０３】
ストロークＬ０１、０４、０５、０６、０９および１１〜１５において、Ｘ軸方向の距離フラグは×である。Ｘ軸方向の距離フラグが×であることは、最低限必要とする距離を有しないことを示す。
【０１０４】
ストロークＬ０２において、Ｘ軸方向の距離フラグは３である。Ｘ軸方向の距離フラグが３であることは、最低限必要な距離を有することを示す。さらに、距離フラグが３であることは、Ｘ軸に沿った基準点間の距離として最低限必要な距離３を必要とすることを示す。
【０１０５】
ストロークＬ０３およびＬ０８において、Ｘ軸方向の距離フラグは２である。Ｘ軸方向の距離フラグが２であることは、最低限必要とする距離を有することを示す。さらに、距離フラグが２であることは、Ｘ軸に沿った基準点間の距離が最低限必要な距離２を必要とすることを示す。
【０１０６】
ストロークＬ０７およびＬ１０において、Ｘ軸方向の距離フラグは１である。Ｘ軸方向の距離フラグが１であることは、最低限必要とする距離を有することを示す。さらに、距離フラグが１であることは、Ｘ軸に沿った基準点間の距離が最低限必要な距離１を必要とすることを示す。
【０１０７】
省略フラグは、特定の軸に沿った基準点間の距離をグリッドフィッティングにより調整する際に、調整する距離を０にできるか否かを示す。さらに、省略フラグは、調整する距離を０にできる場合には、調整する距離を０にする順番を示す。
【０１０８】
例えば、省略フラグは、×である。省略フラグが×であることは、調整する距離を０にすることができないことを示す。例えば、省略フラグは、整数Ｎである。省略フラグが整数Ｎであることは、調整する距離を０にできることを示す。さらに、省略フラグが整数Ｎであることは、調整する距離を０にする順番がＮ番目であることを示す。
【０１０９】
ストロークＬ０１において、Ｙ軸方向の省略フラグは×である。Ｙ軸方向の省略フラグが×であることは、調整する距離を０にすることができないことを示す。
【０１１０】
同様に、ストロークＬ０２〜ストロークＬ０８、ストロークＬ１０およびストロークＬ１３〜ストロークＬ１５において、Ｙ軸方向の省略フラグは×である。Ｙ軸方向の省略フラグが×であることは、調整する距離を０にすることができないことを示す。
【０１１１】
ストロークＬ０９において、Ｙ軸方向の省略フラグは１である。Ｙ軸方向の省略フラグが１であることは、調整する距離を０にできることを示す。さらに、Ｙ軸方向の省略フラグが１であることは、調整する距離を０にする順番が１番目であることを示す。
【０１１２】
ストロークＬ１１において、Ｙ軸方向の省略フラグは２である。Ｙ軸方向の省略フラグが２であることは、調整する距離を０にできることを示す。さらに、Ｙ軸方向の省略フラグが２であることは、調整する距離を０にする順番が２番目であることを示す。
【０１１３】
ストロークＬ１２において、Ｙ軸方向の省略フラグは３である。Ｙ軸方向の省略フラグが３であることは、調整する距離を０にできることを示す。さらに、Ｙ軸方向の省略フラグが３であることは、調整する距離を０にする順番が３番目であることを示す。
【０１１４】
ストロークＬ０１〜ストロークＬ１５において、Ｘ軸方向の省略フラグは×である。Ｘ軸方向の省略フラグが×であることは、調整する距離を０にすることができないことを示す。
【０１１５】
図６は、文字表示プログラム１４１の処理手順を示すフローチャートである。文字表示プログラム１４１は、ＣＰＵ１２１によって実行される。
【０１１６】
以下、文字表示プログラム１４１の処理の手順をステップごとに説明する。
【０１１７】
ステップＳ１０１：表示デバイス１３０に表示すべき文字を示す文字情報が、入力デバイス１１０を介して主メモリ１２２に入力される。入力された文字情報に応じて、ＣＰＵ１２１は、補助記憶装置１４０に格納されている文字データ１４２を補助記憶装置１４０から読み込む。読み込まれた文字データ１４２は、例えば、図３に示される文字データ１４２である。文字データ１４２は、座標データおよび基準点を示すデータを含む。
【０１１８】
ステップＳ１０２：ＣＰＵ１２１は、表示デバイス１３０に出力する文字サイズに合わせて、文字データ１４２が含む座標データと文字データ１４２が含む基準点を示すデータとをスケーリングし、スケーリングされた座標データとスケーリングされた基準点を示すデータを生成する。ＣＰＵ１２１が、文字表示プログラム１４１に含まれたプログラム１４１ａを実行することによって、ステップＳ１０２が処理される。
【０１１９】
スケーリングされた座標データは、主メモリ１２２に格納される。
【０１２０】
出力する文字サイズがｎドットの場合には、スケーリングされた座標データ（Ｘ，Ｙ）は、例えば、（（ｎ−１）×Ｘ／２５５，（ｎ−１）×Ｙ／２５５）である。
【０１２１】
例えば図６に示される実施の形態では、ステップＳ１０２が「特定の軸に沿った基準点を含む文字または図形をスケーリングすることにより、スケーリングされた基準点を生成するステップ」に対応する。しかし、本発明はこれに限定されない。
【０１２２】
ステップＳ１０３：ＣＰＵ１２１は、スケーリングされた座標データをグリッドフィッティングし、グリットフィッティングされた座標データを生成する。ＣＰＵ１２１が、文字表示プログラム１４１に含まれたプログラム１４１ｂを実行することによって、ステップＳ１０３が処理される。グリットフィッティングされた座標データは、主メモリ１２２に格納される。
【０１２３】
グリッドフィッティングの処理の手順の詳細は、後述される。
【０１２４】
ステップＳ１０４：ＣＰＵ１２１は、グリッドフィッティングされた座標データを表示デバイスに表示可能になるように描画データを生成する。例えば、ＣＰＵ１２１は、グリットフィッティングされた座標データを直線引きやスプライン等の曲線引きプログラムを用いて描画データにする。ＣＰＵ１２１が、文字表示プログラム１４１に含まれたプログラム１４１ｃを実行することによって、ステップＳ１０４が処理される。生成された描画データは、主メモリ１２２に格納される。
【０１２５】
ステップＳ１０５：ＣＰＵ１２１は、ステップＳ１０４で生成された描画データを表示デバイス１３０に表示する。
【０１２６】
図７は、ステップＳ１０３におけるグリッドフィッティングの処理（プログラム１４１ｂの処理）の手順の詳細を説明するフローチャートである。プログラム１４１ｂは、ＣＰＵ１２１によって実行される。
【０１２７】
以下、ステップＳ１０３におけるグリッドフィッティングの処理（プログラム１４１ｂの処理）の手順の詳細をステップごとに説明する。
【０１２８】
ステップＳ２０１：ＣＰＵ１２１は、ブロックのＹ軸方向の処理をブロック番号ごとに行う。
【０１２９】
ステップＳ２０１におけるブロックのＹ軸方向の処理の詳細は、後述される。
【０１３０】
ステップＳ２０２：ＣＰＵ１２１は、文字データ１４２に基づいて、ブロックのＹ軸方向の処理がすべて終わったか否かを判定する。
【０１３１】
例えば、ステップＳ２０１を繰り返した回数とＹ軸方向のブロック番号の最大値とを比較することによって、ＣＰＵ１２１は、ブロックのＹ軸方向の処理がすべて終わったか否かを判定する。
【０１３２】
ステップＳ２０１を繰り返した回数がＹ軸方向のブロック番号の最大値に等しくなった場合には、ステップＳ２０２の判定は「Ｙｅｓ」である。ステップＳ２０２の判定が「Ｙｅｓ」の場合、処理は、ステップＳ２０３に進む。
【０１３３】
ステップＳ２０１を繰り返した回数がＹ軸方向のブロック番号の最大値より小さい場合には、ステップＳ２０２の判定は「Ｎｏ」である。ステップＳ２０２の判定が「Ｎｏ」の場合、処理は、Ｓ２０１に進む。
【０１３４】
ステップＳ２０３：ＣＰＵ１２１は、ブロックのＸ軸方向の処理をブロック番号ごとに行う。
【０１３５】
ステップＳ２０３におけるブロックのＸ軸方向の処理の詳細は、後述される。
【０１３６】
ステップＳ２０４：ＣＰＵ１２１は、文字データ１４２に基づいて、ブロックのＸ軸方向の処理がすべて終わったか否かを判定する。
【０１３７】
例えば、ステップＳ２０３を繰り返した回数とＸ軸方向のブロック番号の最大値とを比較することによって、ＣＰＵ１２１は、ブロックのＸ軸方向の処理がすべて終わったか否かを判定する。
【０１３８】
ステップＳ２０３を繰り返した回数がＸ軸方向のブロック番号の最大値に等しくなった場合には、ステップＳ２０４の判定は「Ｙｅｓ」である。ステップＳ２０４の判定が「Ｙｅｓ」の場合、グリッドフィッティングの処理（プログラム１４１ｂの処理）は、終了する。
【０１３９】
ステップＳ２０３を繰り返した回数がＸ軸方向のブロック番号の最大値より小さい場合には、ステップＳ２０４の判定は「Ｎｏ」である。ステップＳ２０４の判定が「Ｎｏ」の場合、処理は、Ｓ２０３に進む。
【０１４０】
図８は、ステップＳ２０１およびステップＳ２０３における、ブロックの特定の軸方向の処理の詳細を説明するフローチャートである。文字表示プログラム１４１は、ＣＰＵ１２１によって実行される。
【０１４１】
以下、ステップＳ２０１およびステップＳ２０３における、ブロックの軸方向の処理の詳細をステップごとに説明する。
【０１４２】
ステップＳ３０１：ＣＰＵ１２１は、スケーリングされた座標データに基づいて、スケーリングされた基準点の座標値を生成する。ＣＰＵ１２１は、この座標値に基づいて、スケーリングされた基準点間の距離を求める。
【０１４３】
ステップＳ３０２：ＣＰＵ１２１は、スケーリングされた基準点間の距離の合計を求める。ＣＰＵ１２１は、距離の合計を第１の方法で量子化することにより、第１の方法で量子化された合計を生成する。
【０１４４】
スケーリングされた基準点のうち、最大のＹ座標値から最小のＹ座標値を引いた値を求めることによって、基準点の間のＹ軸方向の距離の合計を求めてもよい。
【０１４５】
スケーリングされた基準点のうち、最大のＸ座標値から最小のＸ座標値を引いた値を求めることによって、基準点の間のＹ軸方向の距離の合計を求めてもよい。
【０１４６】
例えば、ＣＰＵ１２１は、距離の合計を量子化する第１の方法として、四捨五入を利用する。
【０１４７】
四捨五入によって量子化された合計を生成することにより、文字の大きさの統一を図ることが出来る。例えば、図１９に示された座標Ａにおける距離ａｄと図２１に示された座標Ｄにおける距離ａｄとはどちらも１１．２である。四捨五入によって量子化された合計はどちらも１１となる。
【０１４８】
なお、距離の合計を量子化する第１の方法として、四捨五入を利用したが、距離の合計を量子化する第１の方法は、四捨五入に限らない。文字を出来るだけ大きく見せる場合は、距離の合計を量子化する第１の方法として、切り上げを利用してもよい。文字を出来るだけ小さく見せる場合は、距離の合計を量子化する第１の方法として、切り捨てを利用してもよい。距離の合計を量子化する第１の方法では、所望の閾値を利用してもよい。
【０１４９】
例えば、図８に示される実施の形態では、ステップＳ３０２が「スケーリングされた基準点間の距離の合計を第１の方法で量子化することにより、第１の方法で量子化された合計を生成するステップ」に対応する。しかし、本発明はこれに限定されない。
【０１５０】
ステップＳ３０３：ＣＰＵ１２１は、スケーリングされた基準点間の距離を第２の方法で量子化することにより、第２の方法で量子化された距離を生成する。第２の方法での量子化は、距離フラグを考慮して行われる。
【０１５１】
距離フラグは、第２の方法で量子化された距離として最低限必要な距離を示す。例えば、スケーリングされた２つの基準点の間の距離が２．４の場合、距離フラグがなければ、四捨五入によって量子化された距離は２となる。距離フラグが１ならば、四捨五入によって量子化された距離は２となる。距離フラグが２ならば、四捨五入によって量子化された距離は２となる。しかし、距離フラグが３ならば、距離フラグを考慮することで、量子化された距離を３とする。
【０１５２】
距離を量子化する第２の方法として、四捨五入を利用したが、距離を量子化する第２の方法は、四捨五入に限らない。距離を量子化する第２の方法として、切り上げを利用してもよい。切り捨てを利用してもよい。距離を量子化する第２の方法では、所望の閾値を利用してもよい。
【０１５３】
距離の合計を量子化する第１の方法と距離を量子化する第２の方法とは同じでもよいし、異なっていてもよい。例えば、距離の合計を量子化する第１の方法として、四捨五入を利用し、距離を量子化する第２の方法として、四捨五入を利用してもよい。文字を出来るだけ大きく見せる場合は、距離の合計を量子化する第１の方法として、切り上げを利用し、距離を量子化する第２の方法として、四捨五入を利用してもよい。
【０１５４】
例えば、図８に示される実施の形態では、ステップＳ３０３が「スケーリングされた基準点間の距離を第２の方法で量子化することにより、第２の方法で量子化された距離を生成するステップ」に対応する。しかし、本発明はこれに限定されない。
【０１５５】
ステップＳ３０４：ＣＰＵ１２１は、第２の方法で量子化された距離の合計が第１の方法で量子化された合計より小さいか否かを判定する。ステップＳ３０４の判定が「Ｙｅｓ」の場合、処理はステップＳ３０５に進む。ステップＳ３０４の判定が「Ｎｏ」の場合、処理はステップＳ３０６に進む。
【０１５６】
ステップＳ３０５：ＣＰＵ１２１は、第２の方法で量子化された距離のうち、量子化誤差が一番大きかった距離を広げる。量子化誤差の大きいものを優先的に広げるので、量子化前と量子化後で距離が逆転することはない。処理はステップＳ３０４に進む。なお、ステップＳ３０５における処理は、距離フラグを考慮して行われてもよい。例えば、距離フラグの値が大きいものを優先的に広げてもよい。
【０１５７】
ステップＳ３０６：ＣＰＵ１２１は、第２の方法で量子化された距離の合計が第１の方法で量子化された合計より大きいか否かを判定する。ステップＳ３０６の判定が「Ｙｅｓ」の場合、処理はステップＳ３０７に進む。ステップＳ３０６の判定が「Ｎｏ」の場合、処理はステップＳ３１０に進む。
【０１５８】
ステップＳ３０７：距離フラグの合計が、第１の方法で量子化された合計より大きいか否かを判定する。ステップＳ３０７の判定が「Ｙｅｓ」の場合、処理はステップＳ３０８に進む。ステップＳ３０７の判定が「Ｎｏ」の場合、処理はステップＳ３０９に進む。
【０１５９】
ステップＳ３０８：省略フラグを考慮して、第２の方法で量子化された距離を０にする。処理はステップＳ３０４に進む。
【０１６０】
なお、ステップＳ３０８では、省略フラグを考慮して、ストロークを省略してもよい。第２の方法で量子化された距離を０にすることとストロークを省略することとは同等である。
【０１６１】
ステップＳ３０９：ＣＰＵ１２１は、第２の方法で量子化された距離のうち、量子化誤差が一番大きかった距離を狭める。量子化誤差の大きいものを優先的に狭めるので、量子化前と量子化後で距離が逆転することはない。処理はステップＳ３０４に進む。なお、ステップＳ３０９における処理は、距離フラグを考慮して行われてもよい。例えば、距離フラグの値がないもの、または小さいものを優先的に狭めてもよい。
【０１６２】
例えば、図８に示される実施の形態では、ステップＳ３０５、ステップＳ３０８またはステップＳ３０９が「第２の方法で量子化された距離の少なくとも１つを調整するステップ」に対応する。しかし、本発明はこれに限定されない。
【０１６３】
ステップＳ３１０：文字を構成するブロックの最大座標値と最小座標値とを決める。具体的には、スケーリングされた基準点の最大座標値を四捨五入した結果生じた量子化誤差とスケーリングされた基準点の最小座標値を四捨五入した結果生じた量子化誤差とを比較し、量子化誤差が小さいほうの座標値に基づいて、ブロックの座標値を決定する。文字を構成するブロックの大きさは第１の方法で量子化された合計である。
【０１６４】
例えば、スケーリングされた基準点の最大座標値を四捨五入した結果生じた量子化誤差がスケーリングされた基準点の最小座標値を四捨五入した結果生じた量子化誤差より小さい場合は、スケーリングされた基準点の最大座標値がブロックの最大座標値である。ブロックの最小座標値は、ブロックの最大座標値から、文字を構成するブロックの大きさである第１の方法で量子化された合計を引いた値である。
【０１６５】
例えば、スケーリングされた基準点の最小座標値を四捨五入した結果生じた量子化誤差がスケーリングされた基準点の最大座標値を四捨五入した結果生じた量子化誤差より小さい場合は、スケーリングされた基準点の最小座標値がブロックの最小座標値である。ブロックの最大座標値は、ブロックの最小座標値から、文字を構成するブロックの大きさである第１の方法で量子化された合計を足した値である。
【０１６６】
ステップＳ３１１：文字を構成するブロックの最大座標値と、文字を構成するブロックの最小座標値と、第２の方法で量子化された距離に基づいて、グリッドフィティング処理後の基準点の座標値を決める。
【０１６７】
ステップＳ３１２：基準点以外の座標を決定する。距離ａ／距離ｂの値が距離Ａ／距離Ｂの値に最も近くなるように、スケーリングされた文字上の所定の点が決定される。ここで、決定される所定の点に対応し、スケーリングされる前の文字上の点は、スケーリングされる前の基準点のうち、互いに隣接する第１の基準点と第２の基準点との間にある。距離Ａは、スケーリングされる前の文字上の点と第１の基準点との間の距離である。距離Ｂは、スケーリングされる前の文字上の点と第２の基準点との間の距離である。距離ａは、決定される所定の点とスケーリングされた第１の基準点との間の距離である。距離ｂは、決定される所定の点とスケーリングされた第２の基準点との間の距離である。
【０１６８】
例えば、図６および図８に示される実施の形態では、ステップＳ３１０、ステップＳ３１１、ステップＳ３１２、ステップＳ１０４およびステップＳ１０５が「調整された少なくとも１つの距離を伴うスケーリングされた基準点に基づいて、スケーリングされた文字または図形を表示するステップ」に対応する。しかし、本発明はこれに限定されない。
【０１６９】
例えば、図６および図８に示される実施の形態では、ステップＳ１０２、ステップＳ１０４、ステップＳ１０５、ステップＳ３０２、ステップＳ３０３、ステップＳ３０５およびステップＳ３０８〜ステップＳ３１２が「文字図形表示処理」に対応する。しかし、本発明はこれに限定されない。
【０１７０】
ＣＰＵ１２１を含む制御部は、文字図形表示処理を実行する。しかし、本発明はこれに限定されない。
【０１７１】
なお、上述した実施の形態では、文字をスケーリングし、スケーリングされた文字を表示する場合を例にとり説明したが、本発明はこれに限定されない。文字に代えて、あるいは文字に加えて、図形をスケーリングし、スケーリングされた図形を表示する場合にも本発明を適用することができる。この場合、文字表示プログラム１４１に代えて、あるいは文字表示プログラム１４１に加えて図形表示プログラムを使用するようにし、文字データ１４２に代えて、あるいは文字データ１４２に加えて図形データを使用するようにすればよい。図形表示プログラムもまた、文字表示プログラム１４１と同様のステップを含み得る。文字データと同様に図形データもまた少なくとも１つの基準点を含み得る。
【０１７２】
本発明の文字図形表示装置によれば、第２の方法で量子化された距離の合計が第１の方法で量子化された合計に等しくなるように、第２の方法で量子化された距離の少なくとも１つが調整される。このように、第２の方法で量子化された距離の合計が第１の方法で量子化された合計よりも大きい場合は、第２の方法で量子化された距離の少なくとも１つを狭めるように調整する。第２の方法で量子化された距離の合計が第１の方法で量子化された合計よりも小さい場合は、第２の方法で量子化された距離の少なくとも１つを広げるように調整する。その結果、第２の方法で量子化された距離の合計が第１の方法で量子化された合計に等しくなり、位置調整後の文字や図形の形状および大きさを調整前と同じにすることができる。また、第２の方法で量子化された距離の逆転が起こらないため、表示デバイスに表示される文字または図形のバランスを保つことができる。
【０１７３】
本発明の文字図形表示装置によれば、第２の方法で量子化された距離として最低限必要な距離を示すフラグを考慮して、第２の方法で量子化された距離の少なくとも１つを調整する。したがって、第２の方法で量子化された距離は最低限必要な距離を保つことができる。その結果、文字または図形が潰れて表示デバイスに表示されることがなくなる。
【０１７４】
具体例として、文字「葦」を３０ドットの大きさで表示する場合における、文字表示プログラム１４１の処理の手順を説明する。
【０１７５】
ステップＳ１０１：表示デバイス１３０に表示すべき文字「葦」を示す文字情報が、入力デバイス１１０を介して主メモリ１２２に入力される。入力された文字情報に応じて、ＣＰＵ１２１は、補助記憶装置１４０に格納されている文字データ１４２を補充記憶装置１４０から読み込む。読み込まれた文字データ１４２は、図３に示される文字データ１４２である。文字データ１４２は、座標データを含む。
【０１７６】
ステップＳ１０２：ＣＰＵ１２１は、表示デバイス１３０に出力する文字サイズ（３０ドット）に合わせて、文字データ１４２が含む座標データをスケーリングし、スケーリングされた座標データを生成する。スケーリングされた座標データ（Ｘ，Ｙ）は、（（３０−１）×Ｘ／２５５，（３０−１）×Ｙ／２５５）である。スケーリングされた座標データは、小数第２位まで計算される。
【０１７７】
図９は、スケーリング前の座標データとスケーリング後の座標データとを示す。
【０１７８】
ステップＳ１０３：ＣＰＵ１２１は、スケーリングされた座標データをグリッドフィッティングし、グリッドフィッティングされた座標データを生成する。
【０１７９】
以下、ステップＳ１０３におけるグリッドフィティングの処理（プログラム１４１ｂの処理）の詳細をステップごとに説明する。
【０１８０】
ステップＳ２０１：ＣＰＵ１２１は、Ｙ軸方向のブロック番号１を有するストロークに対してブロックのＹ軸方向の処理を行う。
【０１８１】
以下、ステップＳ２０１における、ブロックのＹ軸方向の処理の詳細をステップごとに説明する。
【０１８２】
ステップＳ３０１：ＣＰＵ１２１は、スケーリングされた座標データに基づいて、スケーリングされた基準点の座標値を生成する。ＣＰＵ１２１は、この座標値に基づいて、スケーリングされた基準点間の距離を求める。基準点の間の距離は８つある。距離番号が距離Ｙ１である１つ目の距離は２．７３となる。距離番号が距離Ｙ２である２つ目の距離は４．２１となる。距離番号が距離Ｙ３である３つ目の距離は３．６４となる。距離番号が距離Ｙ４である４つ目の距離は３．５２となる。距離番号が距離Ｙ５である５つ目の距離は３．６４となる。距離番号が距離Ｙ６である６つ目の距離は３．９８となる。距離番号が距離Ｙ７である７つ目の距離は３．８７となる。距離番号が距離Ｙ８である８つ目の距離は３．４１となる。
【０１８３】
図１０は、文字データをＹ軸方向にグリッドフィティングすることによって求められたデータを示す。
【０１８４】
これらの８つの距離は、図１０の「距離」に示される。
【０１８５】
ステップＳ３０２：ＣＰＵ１２１は、距離Ｙ１〜Ｙ８の距離の合計を求める。距離の合計は、２９．００である。ＣＰＵ１２１は、距離の合計を四捨五入によって量子化する。四捨五入によって量子化された距離の合計は、２９である。
【０１８６】
ステップＳ３０３：ＣＰＵ１２１は、距離フラグを考慮して、距離Ｙ１〜Ｙ８の距離の各々を四捨五入によって量子化する。四捨五入によって量子化された距離の各々は、図１０の「量子化」に示される。
【０１８７】
ステップＳ３０４：ＣＰＵ１２１は、四捨五入によって量子化された距離の合計が四捨五入によって量子化された合計より小さいか否かを判定する。四捨五入で量子化された距離の合計が３０で、四捨五入によって量子化された合計は２９である。したがって、ステップＳ３０４の判定は「Ｎｏ」となり、処理は、ステップＳ３０６に進む。
【０１８８】
ステップＳ３０６：ＣＰＵ１２１は、四捨五入によって量子化された距離の合計が四捨五入によって量子化された合計より大きいか否かを判定する。ステップＳ３０６の判定は「Ｙｅｓ」となり、処理は、ステップＳ３０７に進む。
【０１８９】
ステップＳ３０７：ＣＰＵ１２１は、距離フラグの合計が四捨五入によって量子化された合計より大きいか否かを判定する。距離フラグの合計は１４である。距離フラグの合計が四捨五入によって量子化された合計より大きくないので、ステップＳ３０７の判定は「Ｎｏ」となり、処理は、ステップＳ３０９に進む。
【０１９０】
ステップＳ３０９：ＣＰＵ１２１は、四捨五入によって量子化された距離のうち、量子化誤差が一番大きかった距離を狭める。図１０を参照すれば、距離Ｙ４の量子化誤差が一番大きいので、距離Ｙ４の距離が４から３に調整される。処理はステップＳ３０４に進む。
【０１９１】
ここで距離の合計は２９となり、四捨五入によって量子化された合計と等しくなっている。したがって、処理は、ステップＳ３０４からステップＳ３０６を介してステップＳ３１０に進む。
【０１９２】
ステップＳ３１０：文字「葦」を構成するＹ軸方向のブロックの最大座標値とＹ軸方向のブロックの最小座標値とが決定される。Ｙ軸方向のブロックの最大座標値は２９である。Ｙ軸方向のブロックの最小座標値は０である。
【０１９３】
ステップＳ３１１：グリッドフィティング処理後の基準点のＹ座標値を求める。距離Ｙ１の距離が３であるので、距離Ｙ１を決めている基準点のＹ座標値は２９−３＝２６になる。同様に他の基準点も決定される。
【０１９４】
ステップＳ３１２：基準点以外のＹ座標値が決定される。図１１は、グリッドフィッティング後の座標値を示す。
【０１９５】
Ｙ軸方向のブロック番号１の処理が終了したため、処理は、ステップＳ２０２に進む。
【０１９６】
ステップＳ２０２：ステップＳ２０１を繰り返す回数（１回）がＹ軸方向のブロック番号の最大値（１）に等しいため、ブロックのＹ軸方向の処理が終わったと判断される。処理は、ステップＳ２０３に進む。
【０１９７】
ステップＳ２０３：Ｘ軸方向のブロック番号１の処理が行われる。上述したように、Ｙ軸方向のブロック番号１の処理と同様の処理がなされる。図１２は、文字データをＸ軸方向にグリッドフィティングすることによって求められたデータを示す。
【０１９８】
ステップＳ２０４：ステップＳ２０３を繰り返す回数（１回）がＸ軸方向のブロック番号の最大値（１）に等しいため、ブロックのＸ軸方向の処理が終わったと判断される。グリッドフィッティングの処理が終了する。
【０１９９】
ステップＳ１０４：描画データが生成される。
【０２００】
ステップＳ１０５：ＣＰＵ１２１は、ステップＳ１０４で生成された描画データを表示デバイス１３０に表示する。図１３は、表示デバイスに表示された３０ドットの大きさの文字「葦」を示す。
【０２０１】
具体例として、文字「葦」を１４ドットの大きさで表示する場合における、文字表示プログラム１４１の処理の手順を説明する。
【０２０２】
ステップＳ１０１：表示デバイス１３０に表示すべき文字「葦」を示す文字情報が、入力デバイス１１０を介して主メモリ１２２に入力される。入力された文字情報に応じて、ＣＰＵ１２１は、補助記憶装置１４０に格納されている文字データ１４２を補充記憶装置１４０から読み込む。読み込まれた文字データ１４２は、図３に示される文字データ１４２である。文字データ１４２は、座標データを含む。
【０２０３】
ステップＳ１０２：ＣＰＵ１２１は、表示デバイス１３０に出力する文字サイズ（１４ドット）に合わせて、文字データ１４２が含む座標データをスケーリングし、スケーリングされた座標データを生成する。スケーリングされた座標データ（Ｘ，Ｙ）は、（（１４−１）×Ｘ／２５５，（１４−１）×Ｙ／２５５）である。スケーリングされた座標データは、小数第２位まで計算される。
【０２０４】
図１４は、スケーリング前の座標データとスケーリング後の座標データとを示す。
【０２０５】
ステップＳ１０３：ＣＰＵ１２１は、スケーリングされた座標データをグリッドフィッティングし、グリッドフィッティングされた座標データを生成する。
【０２０６】
以下、ステップＳ１０３におけるグリッドフィティングの処理（プログラム１４１ｂの処理）の詳細をステップごとに説明する。
【０２０７】
ステップＳ２０１：ＣＰＵ１２１は、Ｙ軸方向のブロック番号１を有するストロークに対してブロックのＹ軸方向の処理を行う。
【０２０８】
以下、ステップＳ２０１における、ブロックのＹ軸方向の処理の詳細をステップごとに説明する。
【０２０９】
ステップＳ３０１：ＣＰＵ１２１は、スケーリングされた座標データに基づいて、スケーリングされた基準点の座標値を生成する。ＣＰＵ１２１は、この座標値に基づいて、スケーリングされた基準点間の距離を求める。基準点の間の距離は８つある。距離番号が距離ｙ１である１つ目の距離は１．２２となる。距離番号が距離ｙ２である２つ目の距離は１．８９となる。距離番号が距離ｙ３である３つ目の距離は１．６３となる。距離番号が距離ｙ４である４つ目の距離は１．５８となる。距離番号が距離ｙ５である５つ目の距離は１．６３となる。距離番号が距離ｙ６である６つ目の距離は１．７９となる。距離番号が距離ｙ７である７つ目の距離は１．７３となる。距離番号が距離ｙ８である８つ目の距離は１．５３となる。
【０２１０】
図１５は、文字データをＹ軸方向にグリッドフィティングすることによって求められたデータを示す。
【０２１１】
これらの８つの距離は、図１５の「距離」に示される。
【０２１２】
ステップＳ３０２：ＣＰＵ１２１は、距離ｙ１〜ｙ８の距離の合計を求める。距離の合計は、１３．００である。ＣＰＵ１２１は、距離の合計を四捨五入によって量子化する。四捨五入によって量子化された距離の合計は、１３である。
【０２１３】
ステップＳ３０３：ＣＰＵ１２１は、距離フラグを考慮して、距離ｙ１〜ｙ８の距離の各々を四捨五入によって量子化する。四捨五入によって量子化された距離の各々は、図１５の「量子化」に示される。
【０２１４】
ステップＳ３０４：ＣＰＵ１２１は、四捨五入によって量子化された距離の合計が四捨五入によって量子化された合計より小さいか否かを判定する。四捨五入で量子化された距離の合計が１３で、四捨五入によって量子化された合計は１５である。したがって、ステップＳ３０４の判定は「Ｎｏ」となり、処理は、ステップＳ３０６に進む。
【０２１５】
ステップＳ３０６：ＣＰＵ１２１は、四捨五入によって量子化された距離の合計が四捨五入によって量子化された合計より大きいか否かを判定する。ステップＳ３０６の判定は「Ｙｅｓ」となり、処理は、ステップＳ３０７に進む。
【０２１６】
ステップＳ３０７：ＣＰＵ１２１は、距離フラグの合計が四捨五入によって量子化された合計より大きいか否かを判定する。距離フラグの合計は１４である。距離フラグの合計が四捨五入によって量子化された合計より大きいので、ステップＳ３０７の判定は「Ｙｅｓ」となり、処理は、ステップＳ３０８に進む。
【０２１７】
ステップＳ３０８：省略フラグ１を考慮して、四捨五入によって量子化された距離ｙ４を０にする。処理はステップＳ３０４に進む。
【０２１８】
ここで距離の合計は１３となり、四捨五入によって量子化された合計と等しくなっている。したがって、処理は、ステップＳ３０４からステップＳ３０６を介してステップＳ３１０に進む。
【０２１９】
ステップＳ３１０：文字「葦」を構成するＹ軸方向のブロックの最大座標値とＹ軸方向のブロックの最小座標値とが決定される。Ｙ軸方向のブロックの最大座標値は１３である。Ｙ軸方向のブロックの最小座標値は０である。
【０２２０】
ステップＳ３１１：グリッドフィティング処理後の基準点のＹ座標値を求める。距離ｙ１の距離が１であるので、距離ｙ１を決めている基準点のＹ座標値は１３−１＝１２になる。同様に他の基準点も決定される。
【０２２１】
ステップＳ３１２：基準点以外のＹ座標値が決定される。図１６は、グリッドフィッティング後の座標値を示す。
【０２２２】
Ｙ軸方向のブロック番号１の処理が終了したため、処理は、ステップＳ２０２に進む。
【０２２３】
ステップＳ２０２：ステップＳ２０１を繰り返す回数（１回）がＹ軸方向のブロック番号の最大値（１）に等しいため、ブロックのＹ軸方向の処理が終わったと判断される。処理は、ステップＳ２０３に進む。
【０２２４】
ステップＳ２０３：Ｘ軸方向のブロック番号１の処理が行われる。上述したように、Ｙ軸方向のブロック番号１の処理と同様の処理がなされる。図１７は、文字データをＸ軸方向にグリッドフィティングすることによって求められたデータを示す。
【０２２５】
ステップＳ２０４：ステップＳ２０３を繰り返す回数（１回）がＸ軸方向のブロック番号の最大値（１）に等しいため、ブロックのＸ軸方向の処理が終わったと判断される。グリッドフィッティングの処理が終了する。
【０２２６】
ステップＳ１０４：描画データが生成される。
【０２２７】
ステップＳ１０５：ＣＰＵ１２１は、ステップＳ１０４で生成された描画データを表示デバイス１３０に表示する。図１８は、表示デバイスに表示された１４ドットの大きさの文字「葦」を示す。
【０２２８】
【発明の効果】
本発明の文字図形表示装置によれば、第２の方法で量子化された距離の合計が第１の方法で量子化された合計に等しくなるように、第２の方法で量子化された距離の少なくとも１つが調整される。このように、第２の方法で量子化された距離の合計が第１の方法で量子化された合計よりも大きい場合は、第２の方法で量子化された距離の少なくとも１つを狭めるように調整する。第２の方法で量子化された距離の合計が第１の方法で量子化された合計よりも小さい場合は、第２の方法で量子化された距離の少なくとも１つを広げるように調整する。その結果、第２の方法で量子化された距離の合計が第１の方法で量子化された合計に等しくなり、位置調整後の文字や図形の形状および大きさを調整前と同じにすることができる。また、第２の方法で量子化された距離の逆転が起こらないため、表示デバイスに表示される文字または図形のバランスを保つことができる。
【０２２９】
本発明の文字図形表示装置によれば、第２の方法で量子化された距離として最低限必要な距離を示すフラグを考慮して、第２の方法で量子化された距離の少なくとも１つを調整する。したがって、第２の方法で量子化された距離は最低限必要な距離を保つことができる。その結果、文字または図形が潰れて表示デバイスに表示されることがなくなる。
【図面の簡単な説明】
【図１】本発明の実施の形態の文字表示装置１００の構成を示す図である。
【図２】文字「葦」を構成するストロークを示す図である。
【図３】図２で示されたストロークから構成された文字「葦」の文字データ１４２を示す図である。
【図４】文字「明」の文字データを示す図である。
【図５】Ｙ軸に沿った基準点間の距離と、Ｘ軸に沿った基準点間の距離とを示す図である。
【図６】文字表示プログラム１４１の処理手順を示すフローチャートである。
【図７】ステップＳ１０３におけるグリッドフィッティングの処理（プログラム１４１ｂの処理）の手順の詳細を説明するフローチャートである。
【図８】ステップＳ２０１およびステップＳ２０３における、ブロックの特定の軸方向の処理の詳細を説明するフローチャートである。
【図９】スケーリング前の座標データとスケーリング後の座標データとを示す図である。
【図１０】文字データをＹ軸方向にグリッドフィティングすることによって求められたデータを示す図である。
【図１１】グリッドフィッティング後の座標値を示す図である。
【図１２】文字データをＸ軸方向にグリッドフィティングすることによって求められたデータを示す図である。
【図１３】表示デバイスに表示された３０ドットの大きさの文字「葦」を示す図である。
【図１４】スケーリング前の座標データとスケーリング後の座標データとを示す図である。
【図１５】文字データをＹ軸方向にグリッドフィティングすることによって求められたデータを示す図である。
【図１６】グリッドフィッティング後の座標値を示す図である。
【図１７】文字データをＸ軸方向にグリッドフィティングすることによって求められたデータを示す図である。
【図１８】表示デバイスに表示された１４ドットの大きさの文字「葦」を示す図である。
【図１９】ストロークを示す座標値が四捨五入される前と四捨五入された後とのストロークを示す図である。
【図２０】座標Ｃを示す図である。
【図２１】座標Ｄと座標Ｅとを示す図である。
【図２２】座標Ｆと座標Ｇとを示す図である。
【図２３】座標Ｈと、座標Ｉと、座標Ｊとを示す図である。
【符号の説明】
１００  文字表示装置
１１０  入力デバイス
１２０  制御部
１２１  ＣＰＵ
１２２  主メモリ
１３０  表示デバイス
１４０  補助記憶装置
１４１  文字表示プログラム
１４２  文字データ
【図１】
2004341253.tif 000003
【図２】
2004341253.tif 000004
【図３】
2004341253.tif 000005
【図４】
2004341253.tif 000006
【図５】
2004341253.tif 000007
【図６】
2004341253.tif 000008
【図７】
2004341253.tif 000009
【図８】
2004341253.tif 000010
【図９】
2004341253.tif 000011
【図１０】
2004341253.tif 000012
【図１１】
2004341253.tif 000013
【図１２】
2004341253.tif 000014
【図１３】
2004341253.tif 000015
【図１４】
2004341253.tif 000016
【図１５】
2004341253.tif 000017
【図１６】
2004341253.tif 000018
【図１７】
2004341253.tif 000019
【図１８】
2004341253.tif 000020
【図１９】
2004341253.tif 000021
【図２０】
2004341253.tif 000022
【図２１】
2004341253.tif 000023
【図２２】
2004341253.tif 000024
【図２３】
2004341253.tif 000025