(57)【要約】ストローク中心線技術で描く自己定義フォントデータフォーマットの曲線漢字フォント復元表示方法を提供する。複種類の文字と多フォント漢字の処理機能を増加するように、何れかのコンピュータオペレーティングシステムに用いられ、使用しているストロークはその中心線を基礎として描き、ストローク厚さと曲率変化パラメーターを導入して、きれいなフォントを保証して、ストローク構パーツ、パーツ構字する時のフォントデータを多重複用させて、フォントデータベースと復元プログラムの格納容量が極めて小さくさせて、復元表示出力速度を速めて、この方法でフォントインタプリタチップ製品を生成でき、ＣＰＵに差し込まれることで、システムは直接に中国語化にさせてゼロコストを実現され、組込み型デバイスのコストを低下したので、組込み型の応用に好適である。【特許請求の範囲】
【請求項１】
組込み型応用ＺＧＸ曲線フォントライブラリであって、
（１）ストローク中心線に基づく基準ストロークライブラリにおいて、ストロークごとに、その形状によって幾らかのストローク段に分けられ、それぞれはストローク先頭段、正常段、折段及び末段で、正常段と折段は幾らかの段があればよいし、まず直線あるいはベッセル曲線で当該ストロークの中心線の各ストローク段を描き、さらにこのストローク中心線の各段のキーポイントを各ストローク段の制御点とし、各ストローク段は各段の制御点を基準とする相対位置で各ストローク段の輪郭線を描いた、ストロークデータの長さは等しくなく、末段データビットでこのストロークが完了することを表し、
ストロークライブラリのデータフォーマット：フォントの総ストローク数が２バイトを占め、
ストローク先頭データ：総ストローク数＊４バイトで、各ストロークは４バイトを用い、前の３バイトは各ストロークデータの位置ポインタで、末のバイトは曲率変化が４ビットを占める方式と４ビットを占める段号を描き、
ストロークデータは、ストロークの各段中心線データ、ストロークの各段輪郭線データを含まれ、
同じでないフォントのストローク数は互いに異ない、一般１０００個程度があり、各ストロークデータの長さは一般的に２０〜１００バイトで、
（２）ストロークにより直接に構築するフォントライブラリであって、そのデータフォーマットは次のように、
ファイル先頭に対するストロークライブラリデータの始め位置が４バイトで、
フォントライブラリが含んでいる漢字（キャラクタ）の総計数が４バイトで、
漢字（キャラクタ）のインデックステーブルが、含まれた漢字（キャラクタ）の総計数バイトの４割を占め、漢字ごとがバイトを占め、先頭のバイトはこの漢字が使用したストローク数で、末の三つのバイトはこの漢字を構成された各ストロークの記述パラメーターの位置ポインタで、
漢字パラメーターデータが８＊当該漢字（キャラクタ）のストローク数で得られたバイトであり、各ストロークパラメーターデータが８バイトで、それぞれ２バイトのストローク番号、１バイトの厚さ係数、２バイトのストローク位置、１２ビットのストローク拡縮係数、１２ビットのストローク曲率変化インクリメントで、
ストロークライブラリが前記の１に示すようなストロークライブラリのデータフォーマットを有し、
（３）ストロークにより構築する漢字パーツライブラリであって、そのデータフォーマットは次のように、
パーツライブラリに含まれた最大なストロークが構築されるパーツのストローク数は４バイトを占め、一般は２０〜２９となり、つまり、１個のパーツは最も２０〜２９個のストロークで構成し、パーツの配列は２ストロークパーツ、３ストロークパーツ・・・ｎストロークパーツまでの順に並べられ、
ｎストロークパーツのインデックステーブルは次のように、最多のストローク数をＮとして、各ストローク数パーツの位置が４バイトを占め、それぞれ２ストロークパーツ位置、３ストロークパーツ位置、ｎストロークパーツ位置までであり、各ストローク数パーツが幾らかあり、１番目からこのストローク数パーツの総数までに配列され、各２ストロークパーツのパラメーターデータが２＊８バイトを占め、各３ストロークパーツのパラメーターデータが３＊８バイトを占め、これから類推し、
パラメーターデータは８＊当該漢字（キャラクタ）のストローク数で得られたバイトであり、各ストロークパラメーターデータが８バイトで、それぞれ２バイトのストローク番号、２バイトの厚さ係数、２バイトのストローク位置、１２バイトのストローク拡縮係数、１２バイトのストローク曲率変化インクリメントであり、
（４）パーツで構築される漢字フォントパラメーターライブラリであって、そのデータフォーマットは次のように、
バージョン情報は４バイトであり、前の２バイトは会社標識の略称で、３番目のバイトはフォント標識で、４番目のバイトはキャラクタセットで、
漢字パラメーター領域の始め位置は４バイトであり、
パーツパラメーター領域の始め位置は４バイトであり、
ストロークデータ領域の始め位置は４バイトであり、
漢字インデックステーブルは４＊総字数に１を掛けた和により得られるバイトであり、１番目の４バイトは総字数で、以降の各４バイトは各漢字のインデックスを示し、そのうち、前の３バイトは漢字パラメーターデータの位置を示し、末の１バイトは当該漢字を構成するパーツ数で、
漢字パラメーターデータは、漢字構成する各パーツを記述されるパラメーターが６バイトを占め、それぞれ１１ビットのパーツ番号、このパーツが含まれる５ビットのストローク数、２バイトのパーツ位置、１２ビットのパーツ拡縮係数、６ビットのパーツ厚さ係数で、
パーツパラメーターデータは３を参照し、ストロークライブラリは１を参照し、
（５）多フォントコンパクト共通タイプのフォントライブラリにおいて、各フォントが各漢字を構成するパーツ番号は同じで、各フォントがパーツを構成するストローク番号は同じで、この部分のデータは一種類の基本フォントに記述されれば、他のフォントはこの部分のデータを共通でき、そのデータフォーマットは次のように、
基本フォントのタイプは４に記述されたものになり、
他のフォントのデータフォーマットは、
漢字パラメーター領域の始め位置が４バイトであり、
パーツパラメーター領域の始め位置が４バイトであり、
ストロークデータ領域の始め位置が４バイトであり、
漢字インデックステーブルは４＊（総字数に１を掛けた）和により得られるバイトであり、１番目の４バイトは総字数で、以降の各４バイトは各漢字のインデックスを示し、そのうち、前の３バイトは漢字パラメーターデータの位置を示し、末の１バイトは当該漢字を構成するパーツ数で、
漢字パラメーターデータは、漢字構成する各パーツを記述されるパラメーターが４バイトを占め、それぞれ２バイトのパーツ位置、１２ビットのパーツ拡縮係数、６ビットのパーツ厚さ係数で、
パーツパラメーターデータは３を参照するが、ストローク番号を取り去り、ストロークライブラリは１を参照し、
（６）ＺＧＸフォントライブラリのストローク復元インタプリタ（プログラムモージュル）
（７）ＺＧＸフォントライブラリのストローク構字復元インタプリタ（インタフェースアプリケーションモージュル）
（８）ＺＧＸフォントライブラリのストローク構築パーツ復元インタプリタ（プログラムモージュル）
（９）ＺＧＸフォントライブラリのパーツ構築漢字復元インタプリタ（インタフェースアプリケーションモージュル）
（１０）ＺＧＸフォントライブラリの多フォント一部データ共通復元インタプリタ（インタフェースアプリケーションモージュル）、
を含まれていることを特徴とする組込み型応用ＺＧＸ曲線フォントライブラリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数字データ処理に関し、特にコンピュータ漢字情報出力処理に用いられるように、処理したいデータをコンピュータ処理可能なデータ形態に変換されるためのフォントライブラリに関する。
【背景技術】
【０００２】
フォントライブラリは、コンピュータオペレーティングシステムの重要な構成部分の一つで、漢字の量は多く、中国文のキャラクタセットは大きく、フォントライブラリは中国文の情報処理の基礎であり、コンピュータに漢字、キャラクタを入出力することはフォントライブラリに依存する。
【０００３】
従来のフォントライブラリ技術は、ドットフォントライブラリ、ベクトルフォントライブラリ、アウトラインフォントライブラリがある。
【０００４】
ドットフォントライブラリは、製作するのが簡単で、復元解釈プログラムが簡単である等長所があるが、その短所は拡大や縮小不可能（拡大や縮小効果が極めて悪い）で、且大ドットフォントライブラリの容量は幾何倍数になるように増加し、一つのアプリケーションは複数種類の異なる寸法規格のフォントライブラリが必要になり、占める記憶は非常に大きく、従って、ドットフォントライブラリは、初期のコンピュータシステムとある漢字を少なく使用したり、フォント出力品質の要求が高くないである簡単な組込み型専門デバイスに用いられる。
【０００５】
ベクトルフォントライブラリとアウトラインフォントライブラリとは、現在にコンピュータが使用しているメインなフォントライブラリ、主にＴＴＦタイプフォントライブラリとＰＯＳＴＳＣＲＩＰＴタイプフォントライブラリがあり、現在、ＰＣ機器の市場にはこれら両種類のフォントライブラリを使用することが多く、その長所は技術が成熟し、フォントが美しく、拡大縮小可能で、ＰＣ機器以上なコンピュータに使用できることが満たす。その短所は、データフォーマットが複雑で、フォント復元インタプリタが複雑で、復元速度が比較的に遅くて、フォントの記憶が大きくて、それを組込み型システム上に応用するのが満たされないで、且この両タイプのフォントライブラリは米国の会社が発明されたものであるため、そのインタプリタは我国の大量金銭を取りながら、我国が中国語情報処理技術に対する発展に支障をきたす。我国が漢字フォントライブラリ技術分野で外国に制限されたのは不正常である。
【０００６】
発明の開示
先ず、現在、市場には未だ組込み型システムが使用できるアウトラインフォントライブラリがありません、これは、組込み型システムは一般的に記憶が少ないであり、メモリを増加すると、コストが必ず高くなるためである。あるＧＢ１８０３０フォントのＴＴＦタイプフォントライブラリは２０Ｍ程度の記憶空間を必要であり、４種類が８０Ｍを必要になり、現在のハイクラス組込み型システムは通常に１６Ｍの格納空間しかありません、オペレーティングシステムが一部を占めし、アプリケーションが一部を占めし、基本的に漢字フォントライブラリを設置できないである。今、多くのハイクラスな外国語ＰＤＡあるいは携帯電話は中国語化されないため、中国に投入して使用できなく、従って、現在のハイクラスな中国語組込み型システムは適切な技術解決方案が見つけられない。従って、漢字のフォントが美しく、拡大・縮小でき、データフォーマットがはっきりで、復元ゼネレータ装置がはっきりと適用され、漢字フォントの復元表示出力速度が速くて、上述前提の下で記憶が小さくて、特に中国語組込み型システムに適用される高いコストパフォーマンスがある新型フォントライブラリは非常に必要になる。
【０００７】
また、私たちは中国の自己定義タイプのフォントライブラリを開発しなければならない、国家規格になったり、外国会社の組込み型製品が中国に入れる技術障壁を形成したり、我国が組込み型システムの中国語情報処理応用技術分野のリード地位を保証したりするように、その中国自立著作権のフォントインタプリタを自分で開発する。
【０００８】
本発明は、まず標準Ｃ言語プログラムでＰＣ機器のＷＩＮＤＯＷＳオペレーティングシステムには実現され、そして組込み型オペレーティングシステムＮＵＣＬＥＵＳ上に実現されてメモリには搭載し（試験製品）、また近い将来には、それをフォントライブラリチップ及びフォントライブラリインタプリタチップとして組込み型ＣＰＵに搭載する予定である。
【０００９】
本フォントライブラリの全名は「ストローク中心線技術に基づき漢字を描くデータファーマットの系列フォントライブラリ製品」であり、「組込み型応用ＺＧＸ曲線フォントライブラリ」に略称した。簡単のために、「ＺＧＸ」で「ストローク中心線技術に基づいて描く」に代える。
【００１０】
１．ストローク中心線に基づく基準ストロークライブラリにおいて、ストロークごとに、その形状によって幾らかのストローク段に分けられ、それぞれはストローク先頭段、正常段、折段及び末段で、正常段と折段は幾らかの段があればよいし、まず直線あるいはベッセル曲線で当該ストロークの中心線の各ストローク段を描き、さらにこのストローク中心線の各段のキーポイントを各ストローク段の制御点とし、各ストローク段は各段の制御点を基準とする相対位置で各ストローク段のアウトラインを描いた、ストロークデータの長さは等しくなく、末段データビットでこのストロークが完了することを表し、
ストロークライブラリのデータフォーマット：フォントの総ストローク数が２バイトを占め、
ストローク先頭データ：総ストローク数＊４バイトで、各ストロークは４バイトを用い、前の３バイトは各ストロークデータの位置ポインタで、末のバイトは曲率変化が４ビットを占める方式と４ビットを占める段号を描き、
ストロークデータは、ストロークの各段中心線データ、ストロークの各段アウトラインデータを含まれ、
同じでないフォントのストローク数は互いに異ない、一般１０００個程度があり、各ストロークデータの長さは一般的に２０〜１００バイトである。
【００１１】
２．ストロークにより直接に構築するフォントライブラリであって、そのデータフォーマットは次のように、
ファイル先頭に対するストロークライブラリデータの始め位置が４バイトで、
フォントライブラリが含んでいる漢字や文字の総計数が４バイトで、
漢字や文字のインデックステーブルが、含まれた漢字や文字の総計数バイトの４割を占め、漢字ごとがバイトを占め、先頭のバイトはこの漢字が使用したストローク数で、末の三つのバイトはこの漢字を構成された各ストロークの記述パラメーターの位置ポインタで、
漢字パラメーターデータが８＊当該漢字や文字のストローク数で得られたバイトであり、各ストロークパラメーターデータが８バイトで、それぞれ２バイトのストローク番号、１バイトの厚さ係数、２バイトのストローク位置、１２ビットのストローク拡縮係数、１２ビットのストローク曲率変化インクリメントで、
ストロークライブラリが前記の１に示すようなストロークライブラリのデータフォーマットを有する。
【００１２】
３．ストロークにより構築する漢字パーツライブラリであって、そのデータフォーマットは次のように、
パーツライブラリに含まれた最大なストロークが構築されるパーツのストローク数は４バイトを占め、一般は２０〜２９となり、つまり、１個のパーツは最も２０〜２９個のストロークで構成し、パーツの配列は２ストロークパーツ、３ストロークパーツ・・・ｎストロークパーツまでの順に並べられ、
ｎストロークパーツのインデックステーブルは次のように、最多のストローク数をＮとして、各ストローク数パーツの位置が４バイトを占め、それぞれ２ストロークパーツ位置、３ストロークパーツ位置、ｎストロークパーツ位置までであり、各ストローク数パーツが幾らかあり、１番目からこのストローク数パーツの総数までに配列され、各２ストロークパーツのパラメーターデータが２＊８バイトを占め、各３ストロークパーツのパラメーターデータが３＊８バイトを占め、これから類推し、
パラメーターデータは８＊当該漢字や文字のストローク数で得られたバイトであり、各ストロークパラメーターデータが８バイトで、それぞれ２バイトのストローク番号、２バイトの厚さ係数、２バイトのストローク位置、１２バイトのストローク拡縮係数、１２バイトのストローク曲率変化インクリメントである。
【００１３】
４．パーツで構築される漢字フォントパラメーターライブラリであって、そのデータフォーマットは次のように、
バージョン情報は４バイトであり、前の２バイトは会社標識の略称で、３番目のバイトはフォント標識で、４番目のバイトは文字セットで、
漢字パラメーター領域の始め位置は４バイトであり、
パーツパラメーター領域の始め位置は４バイトであり、
ストロークデータ領域の始め位置は４バイトであり、
漢字インデックステーブルは４＊総字数に１を掛けた和により得られるバイトであり、１番目の４バイトは総字数で、以降の各４バイトは各漢字のインデックスを示し、そのうち、前の３バイトは漢字パラメーターデータの位置を示し、末の１バイトは当該漢字を構成するパーツ数で、
漢字パラメーターデータは、漢字構成する各パーツを記述されるパラメーターが６バイトを占め、それぞれ１１ビットのパーツ番号、このパーツが含まれる５ビットのストローク数、２バイトのパーツ位置、１２ビットのパーツ拡縮係数、６ビットのパーツ厚さ係数で、
パーツパラメーターデータは３を参照し、ストロークライブラリは１を参照する。
【００１４】
５．多フォントコンパクト共通タイプのフォントライブラリにおいて、各フォントが各漢字を構成するパーツ番号は同じで、各フォントがパーツを構成するストローク番号は同じで、この部分のデータは一種類の基本フォントに記述されれば、他のフォントはこの部分のデータを共通でき、そのデータフォーマットは次のように、
基本フォントのタイプは４に記述されたものになり、
他のフォントのデータフォーマットは、
漢字パラメーター領域の始め位置が４バイトであり、
パーツパラメーター領域の始め位置が４バイトであり、
ストロークデータ領域の始め位置が４バイトであり、
漢字インデックステーブルは４＊（総字数に１を掛けた）和により得られるバイトであり、１番目の４バイトは総字数で、以降の各４バイトは各漢字のインデックスを示し、そのうち、前の３バイトは漢字パラメーターデータの位置を示し、末の１バイトは当該漢字を構成するパーツ数で、
漢字パラメーターデータは、漢字構成する各パーツを記述されるパラメーターが４バイトを占め、それぞれ２バイトのパーツ位置、１２ビットのパーツ拡縮係数、６ビットのパーツ厚さ係数で、
パーツパラメーターデータは３を参照するが、ストローク番号を取り去り、ストロークライブラリは１を参照する。
【００１５】
６．ＺＧＸフォントライブラリのストローク復元インタプリタ（プログラムモージュル）
【００１６】
７．ＺＧＸフォントライブラリのストローク構字復元インタプリタ（インタフェースアプリケーションモージュル）
【００１７】
８．ＺＧＸフォントライブラリのストローク構築パーツ復元インタプリタ（プログラムモージュル）
【００１８】
９．ＺＧＸフォントライブラリのパーツ構築漢字復元インタプリタ（インタフェースアプリケーションモージュル）
【００１９】
１０．ＺＧＸフォントライブラリの多フォント一部データ共通復元インタプリタ（インタフェースアプリケーションモージュル）。
【００２０】
本発明は従来技術に比較すると、フォントの美しさを保証する前提の下には、最も省記憶となることを長所とする。一種類のＧＢ１８０３０フォントライブラリ（２７５９０個の漢字と１１３６個の半角・全角キャラクタとを含んで、合計２８７２６個のコードである）の標準フォーマットフォントライブラリファイルは１．１Ｍバイト（現在の市場に使用されているＴＴＦタイプフォントライブラリは２０Ｍバイト程度である）である。このフォントライブラリの一種類のフォントのコンパクトフォーマットは８００Ｋバイトを占める。四種類のフォントはコンパクトフォーマットフォントライブラリを共通し、宋体が８００Ｋで、倣宋体、ゴシック体、楷書体がそれぞれ６００Ｋで、四種類のフォントは合計２６００Ｋバイト（２．６Ｍ）である。７種類のフォントは４．５Ｍバイトである（ＴＴＦタイプを使用すれば、１００Ｍ上回りを必要とする）。
【００２１】
本発明のフォントインタプリタははっきりし、好適し、記憶が少なく、実行コードが４０Ｋバイト程度しかあり、復元速度が速いである。本発明は標準Ｃ言語でプログラムし、コアモージュルが全て整数で演算し、何れかのコンピュータオペレーティングシステムとインタフェースをしやすい。本発明のフォントライブラリは無制限に拡大縮小できること以外には、無制限にフォントストロークの粗さを変えられる機能を増加し、これは従来のフォントライブラリができなくないものである。特に、メモリ資源有限の組込み型機器の応用では、本発明の技術は比べようのない優位性が表され、比較ハイクラスの中国語組込み型システムのために、適切な替わられない技術解決方案を見つけ、従って、本発明の応用見込みは非常に広いである。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の一実施形態について、図面１乃至３２に基づいて説明する。
一、概略記述
この技術はコンピュータ漢字情報出力処理の範囲に属する。この技術は、まず、一種類の独特な曲線輪郭フォントライブラリのデータフォーマットを自己定義し、このデータフォーマットは本発明に基づいて定義されたストロークとパーツで、そして、このデータフォーマットに従って、インタプリタプログラムで必要な漢字字形を復元する。本発明は、フォントの美しさを保証する前提の下には、最も省記憶容量となることを長所とする。一種類のＧＢ１８０３０フォントライブラリ（２７５９０個の漢字と１１３６個の半角・全角キャラクタとを含んで、合計２８７２６個のコードである）の標準フォーマットフォントライブラリファイルは１．１Ｍバイト（現在の市場に使用されているＴＴＦタイプフォントライブラリは２０Ｍバイト程度である）である。コンパクトフォーマットは８００Ｋバイトを占める。四種類のフォントはコンパクトフォーマットフォントライブラリを共通し、宋体が８００Ｋで、倣宋体、ゴシック体、楷書体がそれぞれ６００Ｋで、四種類のフォントは合計２６００Ｋバイト（２．６Ｍ）である。７種類のフォントは４．５Ｍバイトである（ＴＴＦタイプを使用すれば、１００Ｍ上回りを必要とする）。
【００２３】
ＺＧＸフォントライブラリが用いられている術語以下のように定義される（ＺＧＸは「ストローク中心線技術に基づいて描く」を代表して、以下は同じである）。
【００２４】
１．ＺＧＸフォントライブラリのストローク
ＺＧＸフォントライブラリのストロークは、漢字を構成する最も基本的な元素である。ストローク番号で異なるストロークを示し、漢字のストロークは横棒、縦棒、はね（左払い）、右払い、点などの五つ大類別があり、約３０種類であるが、ＺＧＸフォントライブラリには、同じではない必要により、１０００個過ぎた同じでないストロークを作らなければならない。ストロークはストローク中心線と、ストローク段とからなり、各ストローク段がアウトラインで描かれ、ストロークの外アウトラインのクローズ曲線を構成した。
【００２５】
ストローク中心線はストロークのスケルトン線で、ストロークの各段の制御点を含み、尚、自身は直線とベッセル曲線とからなる。
【００２６】
ストローク段は先頭段、正常段（主力段）、曲がり段、末段に分けられ、各段はストローク中心線が定義された制御点に基準として、制御点に対する座標で各段の輪郭線を描き、輪郭線は直線とベッセル曲線とからなる。
【００２７】
ストローク段の段番号は、ストローク正常段が属する段番号が意味し、０から最大な段番号までである。
【００２８】
ストローク段の曲率変化方式は、先頭段、末段、ある正常段が方式の違いに従い、その制御点の座標位置が変化を発生されることが意味する。曲率変化方式は１５種類があり、１から１５までである。
【００２９】
曲率変化の段番号と曲率変化方式は、ストロークライブラリのインデックスファイルには指定される予定である。
【００３０】
２．ＺＧＸフォントライブラリのパーツ
ＺＧＸフォントライブラリのパーツは、幾らかのストロークで構成し、構成されたストローク数で、１ストロークのパーツ、２ストロークのパーツ、３ストロークのパーツ・・・に分類され、一番多いのは３１ストロークのパーツである。パーツは、元素（幾らかのストロークのパーツである）と当該元素中のパーツ番号にて標記する。多フォントライブラリ製品には、これらのデータは共通できる。
【００３１】
パーツを構成した各ストロークのパラメーターデータは、ストローク番号と、ストローク厚さ係数と、ストローク中心のパーツ座標系での座標と、ストロークのｘ方向とｙ方向の拡縮係数と、ストロークのｘ方向とｙ方向の曲率変化インクリメントとからなる。
【００３２】
パーツを構成されたストローク番号は、多フォントライブラリ製品には、これらのデータは共通できる。
【００３３】
ストローク中心のパーツ座標系での座標は、−１２８から＋１２７までに限り、一つのバイトで表し、これらのデータはフォントライブラリ製品を注文する時に決定することである。
【００３４】
ストローク厚さ係数は、ストロークの輪郭線に作用され、厚さ係数が異なれば、ストロークが異なる粗さになり、特別な段も変化することで、フォントの修飾を変化する。
【００３５】
ストロークのｘ方向とｙ方向の拡縮係数は、ストローク中心線の各制御点だけに作用し、ストロークの粗さに影響を与えないことにより、フォントストロークの粗さの一致性を保障する。ストロークのｘ方向とｙ方向の拡縮係数もフォントライブラリ製品を注文する時に決定し、０から２５５までに限り、それぞれは一つのバイトで示し、「１２８」は拡縮係数が１倍であるのを示す。コンパクトフォーマットには、６ビットで示してもよい、３２から９５までの間に限り、記憶タイプは前述数字から３２を減らしたため、０〜６３の間にあり、「６４」は拡縮係数が１倍であるのを示す。
【００３６】
ストロークのｘ方向とｙ方向の曲率変化インクリメントとは、ストロークの先頭段、末段及びある正常段の曲率変化を意味して、曲率変化の方式は１５種類があって、それぞれ同時に正常段中の一段あるいは両段（最も多いのは両段である）に作用され、例えば、先頭段のｘ座標インクリメント或いは末段のｙ座標インクリメントはその中の一種類曲率変化方式で、ある正常段曲率ｘ座標インクリメント及び曲率ｙ座標インクリメントもその中の一種類曲率変化方式である。前者は複合ストローク（例えば、横折）の横段と折段の違い比例の問題を解決し、後者はストロークが同じでないパーツには曲率が異なる問題を解決する。曲率インクリメントを導入したのは、ＺＧＸフォントライブラリのフォントを完全精確的に何れかのフォントパターンに近似させることで、フォントライブラリのフォントの精確と美しさを保証する。曲率変化インクリメントは−１２８から１２７までの間にあり、それぞれは一つのバイトで示し、コンパクトフォーマットには、６ビットで示してもよい、一般的に、曲率変化インクリメントは比較小さいである。
【００３７】
３．ＺＧＸフォントライブラリの漢字
ＺＧＸフォントライブラリの漢字は、漢字番号で標記され、漢字番号は１からＮ（Ｎは長い整数であってもよい）にかけてであるから、本フォントライブラリは漢字の数量に対して制限がないで、超大なフォントライブラリを作成できる。ＺＧＸフォントライブラリは、Ｕｎｉｃｏｄｅコードで並べてもよいし、国家標準（ＧＢ２３１２、ＧＢＫ、ＧＢ１８０３０）コードで並べてもよい。
【００３８】
ＺＧＸフォントライブラリの漢字は、幾らかのパーツで構成してもよいし、直接に幾らかのストロークで構成してもよい。前者はパーツ構字と言い、後者はストローク構字と言える。
【００３９】
ストローク構字とは、幾らかのストロークで漢字を構成することで、そのパラメーターデータは当該漢字を構成する各ストロークのストローク番号と、ストローク厚さ係数と、ストローク中心の漢字座標系での座標と、ストロークのｘ方向とｙ方向の拡縮係数と、ストロークのｘ方向とｙ方向の曲率変化インクリメントとからなる。ストローク構字の各パラメーターの説明は、一、２の中のＺＧＸフォントライブラリのパーツの記載と同じである。
【００４０】
パーツ構字とは、幾らかのパーツで漢字を構成することで、そのパラメーターデータは当該漢字を構成する各パーツがある元数（幾ストロークのパーツ）と、パーツ番号と、当該パーツ中心座標の漢字座標系での座標と、当該パーツのｘ方向とｙ方向の拡縮係数と、当該パーツの厚さ係数とからなる。また、パーツはストロークで構成され、一、２に記載されている。
【００４１】
この漢字を構成される各パーツがある元数（幾ストロークのパーツ）と、パーツ番号とは、多フォントライブラリ製品には、共通できるデータであり、一種類のフォントライブラリファイルに存在すれば十分である。
【００４２】
パーツ中心座標の漢字座標系での座標は、この座標が当該パーツの構造位置番号に決定され、構造位置番号は３１種類があり、例えば、左右構造、上下構造、囲み構造などで、これらのデータはフォントライブラリ製品を注文する時に決定された。
【００４３】
当該パーツのｘ方向とｙ方向の拡縮係数は、０から２５５の間に限られ、それぞれ一つのバイトで示し、コンパクトフォーマットには、０〜６３で３２から９５を示し、６ビットで表され、「６４」は拡縮係数が１倍であるのを示す。
【００４４】
４．漢字生成の外部呼出パラメーター
デバイス座標系では漢字を生成し、使用されているパラメーターは、漢字のフォント番号、漢字の国家標準コード（或いはＵｎｉｃｏｄｅコード）、漢字の長さ（画素点単位とする）、漢字の幅（画素点単位とする）、漢字の厚さ係数、漢字の前景色、漢字の表示方式（漢字の回転、太り、傾き、詰め方式など）のようにである。バッファエリアには、漢字のビットマップデータを回復される。
【００４５】
漢字生成の外部呼出パラメーター中、漢字の長さ、幅、厚さデータは、基本的に限りがなく、これは一種類のフォントが何れかの長さ、幅、厚さでゲラ字、扁平字及び何れかの漢字を生成でき、一種類のフォントは複数のフォントとして使用できる。
【００４６】
５．ＺＧＸフォントライブラリ製品の技術指標
ＺＧＸフォントライブラリ製品は、フォントの精確と美しさを保証する前提には、最大限りに記憶容量を省いて、復元速度を向上できる。
【００４７】
一種類のフォントのＧＢ１８０３０フォントライブラリ（２７５９０個の漢字と１１３６個の半角・全角キャラクタとを含んで、合計２８７２６個のコードである）の標準フォーマットフォントライブラリファイルは１．１Ｍバイト（ＴＴＦタイプフォントライブラリは２０Ｍバイト程度である）である。コンパクトフォーマットは８００Ｋバイトを占める。四種類のフォントはコンパクトフォーマットフォントライブラリを共通し、宋体が８００Ｋで、倣宋体、ゴシック体、楷書体がそれぞれ６００Ｋで、四種類のフォントは合計２６００Ｋバイト（２．６Ｍ）である。７種類のフォントは４．５Ｍバイトである。
【００４８】
ＺＧＸフォントライブラリの復元アルゴリズムは、ＴＴＦフォントライブラリより優良で、これは詰めがストロークについて行われ、漢字整体ではなく、詰め速度が整体的に速くて、その上に、ＺＧＸフォントライブラリのインデックスは簡単で直接で、数学演算は共に整数演算を採用して、全面好適化が行われるためである。
【００４９】
二、フォントライブラリのデータフォーマット
１．ストロークデータファイル
図１５を参照する。
【００５０】
ストロークデータフォーマットは図１６を参照する。
【００５１】
ストローク中心線の各段の制御字データフォーマットは、１バイトで示し、このバイトのビットの規定は図１７を参照する。
【００５２】
ストローク中心線の各段のデータは、先頭段座標（２バイト）、段制御字（１バイト）、正常段データ（２×ｚ００バイト）・・・末段の制御字である。
【００５３】
ストローク輪郭線の各段の制御字データフォーマットは１バイトで表示され、このバイトのビットは、図１８に示したように指定される。
【００５４】
ストローク輪郭線の各段のデータは、段制御字（１バイト）、第１辺輪郭線座標インクリメント（２バイト）、第２辺の輪郭線座標インクリメント（２バイト）、先頭段の他点の座標（２×ｔｑｙバイト）、正常段データ（第１、二辺の輪郭線を含み、各点の座標４×ｚ００バイト）、折段制御字（１バイト）、第１輪郭線の座標インクリメント（２バイト）、第２輪郭線の座標インクリメント（２バイト）、折段の他点の座標（２×ｔｑｙバイト）、正常段データ（第１、二辺の輪郭線を含み、各点の座標４×ｚ００バイト）・・・末段制御字、末段の他点の座標（２×ｔｑｙバイト）である。
【００５５】
２．パーツデータファイル
図１９を参照する。
【００５６】
３．ストロークで漢字を生成するデータファイル
先頭の４バイトはストロークデータの始め位置（ファイルの先頭に対して）で、次の４バイトは漢字（キャラクタ）の総数で、次に、各漢字のパラメーターデータインデックスは４バイトを占め、所定のコードに従って配列し、前の１バイトはこの漢字（キャラクタ）が含むストローク数であり、後の３バイトはストロークデータのストロークパラメーターファイルの位置であり、図２０を参照する。
【００５７】
このデータブロックの長さは４＊漢字（キャラクタ）の総数で、次はストローク構造パラメーターデータブロックであり、各ストロークは８バイトを占め、第１、第２バイトはこのストロークのストローク番号で、第３バイトはこのストロークの厚さで、その後の５バイトはそれぞれこのストロークのＸ、Ｙ、ＳＸ、ＳＹ、ＱＸ、ＱＹであり、図２１に示すようになる。
【００５８】
このデータブロックのメモリ容量は、全ての漢字（キャラクタ）が用いるストローク総数＊８バイトで、次はストローク生成データブロックであり、その構成は、総ストローク数：２バイト、ストロークデータインデックス：４＊総ストローク数、ストロークデータである。（図１５に示したストロークデータファイルのコンパクトフォーマット）
【００５９】
４．パーツで漢字を生成するデータフォーマット
基本なフォントファイルは主に次の部分からなり、インデックステーブル、漢字パラメーター、パーツパラメーター、ストロークデータである。
【００６０】
各部分の詳細データフォーマットの記述は、インデックステーブル：図２２、漢字パラメーター：図２３、パーツパラメーター：図２４、ストロークデータ：図２５に示すようになる。
【００６１】
５．多フォント部分共通パーツ構字フォーマット
他のフォントファイルは主にインデックステーブル、漢字パラメーター、パーツパラメーター、ストロークデータからなる。
【００６２】
各部分の詳細データフォーマットの記述は、インデックステーブル：図２２、漢字パラメーター：図２６、パーツパラメーター：図２７、ストロークデータ：図２８に示すようになる。
【００６３】
三、数学モデル及び解釈プログラム
１．座標系
ＺＧＸフォントライブラリは次のデバイス座標系（表示プリント又は他のデバイスに対する）、漢字座標系、パーツ座標系、ストローク座標系の種種座標系を使用する。
【００６４】
（１）デバイス座標系
コンピュータディスプレイを例として、スクリーン座標系の定義は図２９に示すように、スクリーンの左上角座標原点は（０，０）で、下向きはｙ軸で、右向きはｘ軸である。ＶＧＡ表示方式の析像度は６４０×４８０であるから、クリーンの右上角座標は（６３９，４７９）である。
【００６５】
（２）漢字座標系
図３０に示すように、ｘ1ｏ1ｙ1は漢字座標系であり、図中のｘｏｙ座標系はデバイス座標系である。デバイス座標系には漢字の中心座標である。
【００６６】
一つの漢字を表示する場合には、漢字のサイズ、ｘ方向とｙ方向の拡縮係数（基準字の２５６×２５６は析像度）及び漢字の中心座標ｏ1（ｘ0，ｙ0）（この点は漢字座標の原点ｏ1）を指定されば、スクリーンの指定された位置にこの漢字を表示できる。
【００６７】
（３）パーツ座標系
図３１に示したように、ｘ2ｏ2ｙ2はパーツ座標系であり、これは漢字座標系に対する相対座標系である。ｏ2は１パーツの座標中心である。各パーツはそれぞれ一つの漢字座標系に対するパーツ座標系がある。漢字を表示するのは、幾らかのパーツを表示することで実現され、漢字構造ファイルから各パーツ番号、各パーツのｘ、ｙ方向の拡縮倍数及びｏ2点の座標系の相対座標（ｘ10，ｙ10）をとられば、この漢字を表示できる。
【００６８】
（４）ストローク座標系
図３２に示したように、ｘ3ｏ3ｙ3はストローク座標系であり、ストローク座標系はパーツ座標系ｘ2ｏ2ｙ2に対する相対座標系である。パーツを生成するのはストロークを表示することで実現され、パーツ構造ファイルから、各ストローク番号、各ストロークのｘ、ｙ方向の拡縮倍数及びｏ3のｘ2ｏ2ｙ2座標系の相対座標（ｘ20，ｙ20）をとられば、パーツ生成することが実現される。同様に、各ストロークの表示は一つのストローク座標系がある。
【００６９】
どのようにストロークを引きればよいか、すなわち、ストローク座標系では、充填アルゴリズムを採用され、このストロークの座標点数及び曲線近似パラメーター（対応ストローク番号によってストロークファイルから取る）を得られる。
【００７０】
（５）ベッセル二次曲線の近似
図３２に示したように、短いはねは１、２、３段に分けて、各段はベッセル二次曲線で近似される。
【００７１】
第１段は<1>、<2>、<3>点の座標を使用して、そのうちの第<2>段は第<1>、<3>段の接線の交点である。
【００７２】
第２段は<3>、<4>、<5>点の座標を使用して、そのうちの第<4>は第<3>、<5>の接線の交点である。
【００７３】
第３段は<5>、<6>、<1>点の座標を使用して、そのうちの第<6>は第<5>、<1>の接線の交点である。
【００７４】
第<1>、<3>点の連結線は直線であり、第<2>点は直線の何れかの点である。
【００７５】
公式は次のように、
【００７６】
【数１】
2005521903.tif 000002
【００７７】
そして、
【００７８】
【数２】
2005521903.tif 000003
【００７９】
式の（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）はそれぞれ始端点、中間点及び末段点の座標である。
【００８０】
このようにして、ベッセル曲線の近似は<1>〜<6>点の相対座標しかを格納されない。折線に近似するデータフォーマットは一致され、異なる点は常に偶数個の点の座標値を記録すること。かつ、第偶数個の点の値は前後の２端点の接線交点である。充填計算する場合には、異なる方法を用いられる。
【００８１】
（６）デバイスに１個漢字を生成する座標変換
各パーツの各ストロークの各座標点は、各座標系によりデバイス座標系に変換する座標変換公式は、
【００８２】
Ｘkij＝（（Ｘ2i＋ＳxBi×Ｘ3i÷１２８）×Ｂxk÷１２８＋Ｘk1）×Ｚxs÷１２８＋Ｘ0
Ｙkij＝（（Ｙ2i＋ＳxBi×Ｙ3i÷１２８）×Ｂyk÷１２８＋Ｙk1）×Ｚys÷１２８＋Ｙ0
ただし、（Ｘkij，Ｙkij）はｉストロークの各座標点の漢字座標系の座標であり、
（Ｚxs，Ｚys）は全字の拡縮係数であり、
（Ｘ0，Ｙ0）は漢字中心のスクリーン座標系の座標であり、
（Ｘ3j，Ｙ3j）はｉストロークの各座標点のパーツ座標系の座標であり、
（Ｘk1，Ｙk1）は第ｋパーツ中心の漢字座標系の座標であり、
（Ｂxk，Ｂyk）は第ｋパーツのＸとＹ方向の拡縮係数であり、
（Ｘ2i，Ｙ2i）は第ｋパーツの第Ｉストローク中心のこの文字座標系の座標であり、
（ＳxBi，ＳyBi）は第ｋパーツの第ＩストロークのＸとＹ方向の拡縮係数であり、
ｋ＝１からこの文字が含むパーツ数まで、ｉ＝１から第ｋパーツが含むストローク数までになる。
【００８３】
ｊ＝１から第ｋパーツの第ｉストロークが含む点数までになる。
【００８４】
２．ＺＧＸフォントライブラリの解釈プログラム
そのモージュルのフローチャートは、
（１）メインプログラムのフローチャートは図１に示す。
（２）フォントライブラリデータファイルを内部メモリ配列に読み込まれ、図２に示す。
（３）漢字（キャラクタ）の国家標準コード（またはＵｎｉｃｏｄｅコード）からＺＧＸフォントライブラリの漢字番号（下述のブロック図は国家標準コードを例として）に変換し、図３に示す。
（４）ＺＧＸフォントライブラリの漢字番号によって、ストロークを引き、図４に示す。
（５）ＺＧＸフォントライブラリの漢字番号によって、パーツを引き、メインモージュルのフローチャート、すなわち図１に示す。
（６）ストローク引きのフローチャートは図５に示す。
（７）ベッセル曲線の再帰的呼出モージュルは図６に示す。
（８）１本または複数本のベッセル曲線で１ストローク段を引くサブモージュルは、図７に示す。
（９）１本または複数本の直線で１ストローク段を引くサブモージュルは、図８に示す。
（１０）直線変換サブモージュルは図９に示す。
（１１）直線引きサブモージュルは図１０に示す。
（１２）内部メモリバッファエリアにビットマップの点を描くサブモージュルは図１１に示す。
（１３）充填アルゴリズムサブモージュルは図１２に示す。
（１４）辺の類別テーブル（ＥＴテーブル）を組み立てるサブモージュルは図１３に示す。
（１５）この辺の類別テーブル（ＥＴテーブル）のある項目の全ての辺を、ＡＥＬ活化辺テーブルに差し込み、ｃｘＢｏｔｔｏｍに従い増序配列し、図１４に示す。
【００８５】
四、ＺＧＸフォント呼出インタフェース関数
１．データ構造の定義
（１）フォント初期化帰還ポインタ配列
typedef struct fhzz
{
long * zys;
long * zics;
long * zrcs;
long * bhcs;
}fhzz,far * lpfhzz;
zys：  漢字インデックスパラメーターデータポインタ；
zics：  フォントの漢字パラメーターデータポインタ；
zrcs：  フォントのパーツパラメーターデータポインタ；
zhcs：  フォントのストロークパラメーターデータポインタ。
【００８６】
（２）漢字（キャラクタ）復元配列
typedef struct hzfycs
{
unsigned char zhd;
unsigned char zkd;
unsigned char zcd;
unsigned char zys;
unsigned char zfs;
}hzfycs,far * lphzfycs;
zhdは漢字の厚さパラメーターで、１バイトで、標準が３２で、
zkdは漢字の幅パラメーターで、１バイトで、画素点単位とし、
zcdは漢字の長さパラメーターで、１バイトで、画素点単位とし、
zysは漢字の色や階調で、１バイトで、
zfsは漢字の表示方式パラメーターで、１バイトである。
【００８７】
パラメーター値は次のように指定され、
０ビットと１ビットは回転方式で、００は正常（回転しない）で、０１は９０°を回転したの、１０は１８０°を回転したの、１１は２７０°を回転したのである。
【００８８】
２ビットは太るかどうか判断し、０は正常で、１は太りである。
【００８９】
３ビットは傾斜かどうか判断し、０は正常で、１は傾斜である。
【００９０】
４ビットは下線を掛けるかどうか判断し、０は正常で、１は下線をかける。
【００９１】
５と６ビットは漢字充填方式で、００は中心線のみをして、即ち線体字を実現され、０１は論理和方式でフィルする漢字を実現され、１０は論理乗方式でフィルする漢字を実現され、１１は排他的論理和方式でフィルする漢字を実現される。
【００９２】
７ビットは文字表示方式で、０は半角で、１は全角で、漢字は１である。
【００９３】
２．フォント初期化
（１）インタフェース関数
HZ_S(zth, lpfhzz);
zthはフォント番号、文字変数であり、これは入口パラメーターである。
【００９４】
パラメーター値は：
０がＧＢ−２３１２の１６＊１６ドットフォントライブラリであり、
１がＧＢ１８０３０−２０００の宋体（漢字）の曲線フォントライブラリであり、
２がＧＢ１８０３０のゴシック体（漢字）曲線フォントライブラリであり、
３がＧＢ１８０３０の倣宋体（漢字）の曲線フォントライブラリであり、
４がＧＢ１８０３０の楷書体（漢字）の曲線フォントライブラリであり、
５がＧＢ１８０３０の文字曲線フォントライブラリであり、
６が・・・で、Lpfhzzは帰還パラメーターで、ポインタ配列のポインタであることを指定する。
【００９５】
（２）実現方法
フォント番号により該当フォントファイル名を開けて、例えば、ＧＢ−２３１２の１６＊１６ドットフォントライブラリファイル名はＤＷ１６Ｄで、ＧＢ１８０３０−２０００の宋体曲線フォントライブラリのファイル名はＤＷＳＴＱで、ＧＢ−２３１２のゴシック体曲線フォントライブラリのファイル名はＤＷＨＴＱで、文字ライブラリのファイル名はＤＷＱＺＦＫである。
【００９６】
１２個の内部メモリ配列はそれぞれＧＢ−２３１２の１６＊１６ドットフォントライブラリ配列と、ＧＢ１８０３０−２０００の宋体曲線フォントライブラリの漢字インデックスパラメーター配列、フォントの漢字パラメーター配列、パーツパラメーター配列及びストロークパラメーター配列と、ゴシック体曲線フォントライブラリの漢字インデックスパラメーター配列、フォントの漢字パラメーター配列、パーツパラメーター配列及びストロークパラメーター配列と、倣宋体、楷書体、文字ライブラリなどの各パラメーター配列に定義される。
【００９７】
各フォントのファイルデータを該当配列に読み込まれてから、各配列のポインタに帰還される。
【００９８】
３．漢字（キャラクタ）復元表示
（１）インタフェース関数
HZ_X(hz$,zth,hzfycs,fclx,zbuf);
Hzhはフォント番号である。
hz$は１漢字（キャラクタ）の国家標準コードの内コードで、一般は２バイトである。
hzfycsは漢字の復元パラメーター配列で、５バイトである。
Fclxは帰還パラメータータイプ（文字変数）で、０がビットマップで、１が輪郭線のベクトル配列で、２がＴＴＦデータフォーマットで、３がＰＳデータフォーマットである。
Zbufは帰還漢字（キャラクタ）ビットマップ及び他のデータバッファエリアポインタで、これは帰還パラメーターである。漢字（キャラクタ）ビットマップのデータ格納方式は各画素点を１ビットとし、各漢字の占めるバイト数＝＝［（（zkd＊zcd）＋７）／８］。
【００９９】
（２）実現方法
フォント番号によって該当配列ポインタを見つけ、漢字（キャラクタ）内コードによって漢字の字号を計算し、計算公式は下記のように、即ち、内コードの上位バイトをＣ１とし、下位バイトをＣ２（Ｃ１、Ｃ２は符号なし整数）として、Ｃ１＝０すれば、半角キャラクタ処理に変換する。
【０１００】
hz$がキャラクタコードの範囲にある場合には、即ち漢字の国家標準コード（０Ｘ１Ｆ−０Ｘ８０、Ａ１Ａ１−Ａ１ＦＥ〜Ａ９Ａ１−Ａ９ＦＥ、Ａ８４０−Ａ８７Ｅ〜Ａ８８０−Ａ８ＦＥ、Ａ９４０−Ａ９７Ｅ〜Ａ９８０−Ａ９ＦＥの合計１１３６個のコード）が範囲内にある時、キャラクタフォントライブラリのファイルＤＷＱＺＦＫを呼出し、曲線フォントライブラリは２階段構造のストローク構字であり、ストローク復元サブモージュルは補正が必要しなくて、曲線文字ライブラリファイルに呼出直ればよいし、文字構造ファイルを処理して、キャラクタコードによってキャラクタライブラリの順番号ＺＨを換算した。
if(hz$>=0x1f && hz$<=0x80) ZH=hz$-0x1f;
else if(c0>=0xa1 && c0<=0xa9 && c1>=0xa1 && c1<=0xfe)
ZH=99+(c0-0xa1)*94+c1-0xa1;
else if(c0>=0xa8 && c0<=0xa9 && c1>=0x40 && c1<=0xa0)
{
ZH=945+(c0-0xa8)*96+c1-0x40;
if(c1>0x7f) ZH--;
}
【０１０１】
逆に、漢字フォントライブラリから該当フォントファイルに変換したら、次の処理をして、Ｃ１が０ＸＢ０以上０ＸＦ７以下で且つＣ２が０ＸＡ１以上である場合（即ちＧＢ２３１２漢字または複バイト２区）には、フォント番号＝（Ｃ１−１７６）＊９４＋Ｃ２−１６１である。Ｃ１が０Ｘ８１以上且つＣ２が０ＸＡ１に未満であれば（すなわち複バイト３区）、Ｃ２が０Ｘ７Ｆを超える場合には、フォント番号＝（Ｃ１−１２９）＊１９０＋Ｃ２−６４＋６７６８になる。Ｃ１が０ＸＡＡ以上且つＣ２が０ＸＡ１に未満であれば（複バイト４区）、Ｃ２が０Ｘ７Ｆを超える場合には、フォント番号＝（Ｃ１−１７０）＊９６＋Ｃ２−６４＋１２８４８になる。
【０１０２】
４バイトの漢字フォント番号は２１００８−２７５８９である。
【０１０３】
フォント番号によってこの漢字を描くデータを見つけ、１６＊１６ドット字であれば、この漢字のデータポインタはドット字データポインタ＋（フォント番号―１）＊３２になり、
曲線字であれば、漢字インデックスファイルとフォント番号に基づいてこの漢字の漢字パラメーターデータを見つけ、そして漢字パラメーターデータによりこの漢字を描く各字元パラメーターデータを見つけ、さらに字元パラメーターデータにしたがって各字元を描く各ストロークデータを見つける。
【０１０４】
各ストロークデータの座標を計算する。ストローク引きサブプログラムを呼出す。ストローク引きサブプログラムは直線引きサブプログラムとベッセル曲線引きサブプログラムを呼出し、そして充填プログラムを呼び出す。
【０１０５】
また、漢字（キャラクタ）の回転、太り、下線掛け、傾斜サブプログラムがさらにある。
【０１０６】
（３）設計
一つのインタフェースプログラム及びストローク引きサブプログラム、直線引きサブプログラム、ベッセル曲線引きサブプログラム、充填サブプログラムを設計する必要がある。
【０１０７】
ストローク引きと充填サブプログラムは内部メモリバッファエリアに実現されるのを要求する。
【０１０８】
漢字マーキング制御の計算は２５６＊２５６の長方形にして、中心線と輪郭線の引き時に再拡縮した（先ず字長さと字幅を２５６にして、中心線と輪郭線の引き時には点の相対字中心座標のＸ座標＊字幅／２５６して、相対字中心座標のＹ座標＊字長さ／２５６する）。２０＊２０以下の漢字は線体字（均一に未満し、即ち中心線だけを引き）を使用し、１６＊１６と等しくＧＢ２３１２の国家標準漢字用ドット字（他の字はまた線体字）を使用する。
【０１０９】
帰還データは漢字のビットマップ、ベクトル輪郭線、ＴＴＦフォーマットまたはＰＳフォーマットである。
【０１１０】
エラー許容は何れかの漢字が何れかの析像度で表示する時にエラーなし、ひずみなし、オーバーなしの意味である。
【０１１１】
４．文字列表示
（１）インタフェース関数
HZ_C(hzc$,zth,zxx,zyy,hzfycs)
その中、Hzhはフォント番号であり、
hzc$は一つ（または１セット）の漢字（キャラクタ）の内コード文字列であり、
zxxは漢字（キャラクタ）列表示の左上角のスクリーンＸ座標であり、
zyyは漢字（キャラクタ）列表示の左上角のスクリーンＹ座標であり、
hzfycsは漢字の復元パラメーター配列で、５バイトがある。
【図面の簡単な説明】
【０１１２】
【図１】図１はメインフローチャートであり、すなわちＺＧＸフォントライブラリ文字番号に基づき、ストロークを復元表示しパーツを構築してから、パーツで文字を構築するフローチャートである。
【図２】図２はフォントライブラリデータファイルを内部メモリの各データ配列に読み込むフローチャートである。
【図３】図３は漢字キャラクタの国際コード或いはＵｎｉｃｏｄｅコードからＺＧＸフォントライブラリの文字番号（以下のブロックは国際コードを例とする）に変換するフローチャートである。
【図４】図４はＺＧＸフォントライブラリの文字番号に基づきストロークを復元表示して、文字を構築するフローチャートである。
【図５】図５はコンピュータ表示画面にストロークを描く復元表示のフローチャートである。
【図６】図６は再帰呼出でベッセル曲線を生成するフローチャートである。
【図７】図７は一つ或いは複数のベッセル曲線で一つのストローク中心線又は輪郭線の一ストローク段を描くフローチャートである。
【図８】図８は一つあるいは複数の直線で一つのストローク中心線又は輪郭線の一ストローク段を描くフローチャートである。
【図９】図９は基準文字から実際字幅、字長に変換して直線を描くフローチャートである。
【図１０】図１０は直線を描くフローチャートである。
【図１１】図１１は内部メモリのバッファエリアにビットマップ中のドットを描くことを実現するフローチャートである。
【図１２】図１２はクローズ曲線領域に充填するフローチャートである。
【図１３】図１３はクローズ曲線領域の辺の類別テーブル（Ｅテーブル）を立てるフローチャートである。
【図１４】図１４はある辺の類別テーブル（Ｅテーブル）内のある項目の全ての辺をＡＥ活性化辺テーブルに差込、ｃｘＢｏｔｏｏｍ上がり順に従って配列するフローチャートである。
【図１５】図１５はストロークデータをパラメーター化したファイルのデータフォーマットを示す図である。
【図１６】図１６はストロークをパラメーター化したデータフォーマットを示す図である。
【図１７】図１７はストローク中心線の各段の制御字のデータフォーマット示す図である。
【図１８】図１８はストローク輪郭線の各段の制御字のデータフォーマットを示す図である。
【図１９】図１９はパーツデータファイルのデータフォーマットを示す図である。
【図２０】図２０はストローク構字のデータファイルのデータフォーマットを示す図である。
【図２１】図２１はストローク構字のパラメーターデータブロックのデータフォーマットを示す図である。
【図２２】図２２はパーツ構字のインデックステーブルを示す図である。
【図２３】図２３はパーツ構字の文字パラメーターライブラリのデータフォーマットを示す図である。
【図２４】図２４はパーツ構字のパーツパラメーターライブラリのデータフォーマットを示す図である。
【図２５】図２５はパーツ構字のストロークライブラリのデータフォーマットを示す図である。
【図２６】図２６は複数のフォントを部分的に共通してパーツ構字の文字パラメーターライブラリのデータフォーマットを示す図である。
【図２７】図２７は複数のフォントを部分的に共通してパーツ構字のパーツパラメーターライブラリのデータフォーマットを示す図である。
【図２８】図２８は複数のフォントを部分的に共通してパーツ構字のストロークライブラリのデータフォーマットを示す図である。
【図２９】図２９はコンピュータ表示画面の座標系を示す図である。
【図３０】図３０は文字座標系を示す図である。
【図３１】図３１は漢字パーツ座標系を示す図である。
【図３２】図３２はストローク座標系を示す図である。
【図１】
2005521903.tif 000004
【図２】
2005521903.tif 000005
【図３】
2005521903.tif 000006
【図４】
2005521903.tif 000007
【図５−１】
2005521903.tif 000008
【図５−２】
2005521903.tif 000009
【図６】
2005521903.tif 000010
【図７】
2005521903.tif 000011
【図８】
2005521903.tif 000012
【図９】
2005521903.tif 000013
【図１０】
2005521903.tif 000014
【図１１】
2005521903.tif 000015
【図１２】
2005521903.tif 000016
【図１３】
2005521903.tif 000017
【図１４】
2005521903.tif 000018
【図１５】
2005521903.tif 000019
【図１６】
2005521903.tif 000020
【図１７】
2005521903.tif 000021
【図１８】
2005521903.tif 000022
【図１９】
2005521903.tif 000023
【図２０】
2005521903.tif 000024
【図２１】
2005521903.tif 000025
【図２２】
2005521903.tif 000026
【図２３】
2005521903.tif 000027
【図２４】
2005521903.tif 000028
【図２５】
2005521903.tif 000029
【図２６】
2005521903.tif 000030
【図２７】
2005521903.tif 000031
【図２８】
2005521903.tif 000032
【図２９】
2005521903.tif 000033
【図３０】
2005521903.tif 000034
【図３１】
2005521903.tif 000035
【図３２】
2005521903.tif 000036
【手続補正書】
【提出日】平成16年9月28日(2004.9.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストローク中心線技術で描くパーツ構字の曲線字形で字形復元表示を実現する方法であって、
（Ａ）ストローク中心線に基づくストロークライブラリであって、各ストロークは、その形状によって異なる属性の幾らかのストローク段、即ちストローク先頭段、正常段、折段及び末段等に分けられ、その中は正常段または折段を更に幾らかの段に分けることができ、ストローク座標系において直線あるいはベッセル曲線の各特徴点座標で当該ストロークの中心線の各ストローク段を描き、さらにこのストローク中心線の各段のキーポイントを各ストローク段の制御点とし、各ストローク段は各段の制御点を基準とする相対座標位置で各ストローク段の輪郭曲線を描き、特徴点は直線に対して起点と終点であり、二次ベッセル曲線に対して起点、中間線外点、終点であり、ストロークデータの長さは等しくなく、末段データビットでこのストロークが完了することを表し、
ストロークライブラリは、２バイトを占めるフォントの含まれる総ストローク数と、総ストローク数＊４バイトで、各ストロークが４バイトを用い、前の３バイトは各ストロークデータの位置ポインタで、末の１バイトは曲率変化が４ビットを占める方式と４ビットを占める段号を描くストローク先頭データと、ストロークの各段中心線データ、ストロークの各段輪郭線データを含み、データが直線やベッセル曲線の特徴点のストローク座標系の座標だけを含むストロークデータとを備えて構成され、
同じでないフォントごとに、それぞれのストロークライブラリを有するストロークライブラリと、
（Ｂ）ストロークにより構築する漢字パーツライブラリであって、漢字パーツライブラリのデータフォーマットが
ｎに設定され、一般２０〜２９となり、つまり、１個のパーツが最も多いｎ個のストロークで構成され、パーツの配列が２ストロークパーツ、３ストロークパーツ・・・ｎストロークパーツまでのように順に並べられるパーツライブラリに含まれた最も多いストローク数で構築されるパーツのストローク数と、
最も多いストローク数がｎであり、各ストローク数で構築されたパーツデータの位置ポインタが、それぞれ２ストロークパーツ位置、３ストロークパーツ位置、そしてｎストロークパーツ位置までであり、各ストローク数パーツが幾らかあり、１番目からこのストローク数パーツの総数までに配列され、各２ストロークパーツのパラメーターデータが２＊８バイトを占め、各３ストロークパーツのパラメーターデータが３＊８バイトを占め、このように類推するｎストロークパーツのインデックステーブルと、
パーツを構成するストローク数と、それぞれストローク番号、厚さ係数、ストローク位置、ストローク拡縮係数、ストローク曲率変化インクリメントである各ストロークパラメーターデータと、それぞれのパーツパラメーターライブラリを有するフォントとを備えるパーツパラメーターデータと、
を備える漢字パーツライブラリと、
（Ｃ）漢字パーツライブラリで文字を構築する漢字フォントライブラリであって、ストローク構造を漢字パーツライブラリを含み、漢字フォントライブラリのデータフォーマットが
文字パラメーター領域の始め位置と、パーツパラメーター領域の始め位置と、ストロークデータ領域の始め位置とを含むバージョン情報と、
総字数を含み、以降の４バイト毎が各文字のインデックスを表し、その中の前の３バイトは文字パラメーターデータの位置を示し、末の１バイトは当該文字を構成するパーツ数を示す文字インデックステーブル、
文字構成する各パーツを記述されるパラメーターであり、それぞれパーツ番号と、このパーツが含まれるストローク数、パーツ位置、パーツ拡縮係数、パーツ厚さ係数である各漢字パラメーターデータと、
を備え、
パーツライブラリで構字する時、そのパーツが複数字によって使用でき、ストロークでパーツを構築する時、そのストロークは複数パーツによって使用でき、違うところがパラメーターデータであり、
異なるフォントがそれぞれの文字パラメーターライブラリを有する漢字フォントライブラリと、
（Ｄ）多フォントコンパクト共通フォーマットフォントライブラリであって、各フォントが各文字を構成するパーツ元数とパーツ番号は同じにし、各フォントがパーツを構成するストローク番号は同じにし、この部分のデータは一種類の基本フォントに記述されれば、他のフォントがこの部分のデータを共用でき、そのデータフォーマットは
Ｃ項に記述された基本フォントのフォーマットと、
文字パラメーターデータからパーツ元数とパーツ番号を取去り、パーツパラメーターデータからストローク番号を取り去る他のフォントのデータフォーマットと、
を備える共通フォーマットフォントライブラリと、
を備え、
（Ｅ）ストローク中心線技術で描く、コンピュータ表示画面座標系下では高精度でストロークを復元表示するステップであって、即ち、１個のパーツ構字のパーツ中の１個のストロークデータが漢字字形の実ストローク図形に復元して、コンピュータ表示画面に表示するデータ処理プロセスのステップであって、
パラメーター化ストロークライブラリからこのパラメーター化基準ストロークデータをを取り出し、即ちストローク中心線の各段のデータ及び輪郭線の各段のデータを取り出し、これらのデータはストローク座標系に対する座標データである第１ステップと、
ストロークで構成された漢字パーツを使用し、当該ストロークを構成する各座標をストローク座標系からパーツ座標系に変換させ、パーツがこのストロークを呼出す外部呼出パラメーターと合わせてデータ処理し、これらの外部呼出パラメーターがストローク厚さパラメータ、拡大倍数、ストローク中心座標のパーツ座標系における座標と曲率変化パラメータである第２ステップと、
漢字が複数のパーツからなり、各パーツのサイズ、位置が異なり、当該ストロークを構成する各座標をパーツ座標系から文字座標系に再変換させ、漢字のこのストロークが属するパーツを呼出す外部呼出パラメーターと合わせてデータ処理し、これらの外部呼出パラメーターはパーツ厚さパラメーター、拡大倍数、パーツ中心座標の文字座標系における座標である第３ステップと、
漢字の各ストロークは最終的にコンピュータ表示画面に表示しなければならないので、当該ストロークを構成する、文字座標系における各点座標がコンピュータ表示画面座標系に変換され、この文字を外部呼出すパラメーターと合わせてデータ処理し、これらの外部呼出パラメーターは文字の長さ、幅、文字の拡大倍数、文字中心座標の表示画面座標系における座標、文字表示のフロント色と背景色、字形ビットマップ内メモリマップ配列ポインタであり、各パーツの各ストロークの各座標点が、各座標系によりデバイス座標系に変換する座標変換公式が、
Ｘkij＝（（Ｘ2i＋ＳxBi×Ｘ3i÷１２８）×Ｂxk÷１２８＋Ｘk1）×Ｚxs÷１２８＋Ｘ0
Ｙkij＝（（Ｙ2i＋ＳxBi×Ｙ3i÷１２８）×Ｂyk÷１２８＋Ｙk1）×Ｚys÷１２８＋Ｙ0
になり、ただし、（Ｘkij，Ｙkij）がｉストロークの各座標点の文字座標系におけるの座標で、
（Ｚxs，Ｚys）が全字の拡縮係数であり、
（Ｘ0，Ｙ0）が文字中心の表示画面座標系におけるの座標であり、
（Ｘ3j，Ｙ3j）がｉストロークの各座標点のパーツ座標系におけるの座標であり、
（Ｘk1，Ｙk1）が第ｋパーツ中心の文字座標系におけるの座標であり、
（Ｂxk，Ｂyk）が第ｋパーツのＸとＹ方向の拡縮係数であり、
（Ｘ2i，Ｙ2i）が第ｋパーツの第Ｉストローク中心のこの文字座標系におけるの座標であり、
（ＳxBi，ＳyBi）か第ｋパーツの第ＩストロークのＸとＹ方向の拡縮係数であり、
ｋ＝１からこの文字が含むパーツ数まであり、
ｉ＝１から第ｋパーツが含むストローク数までになり、
ｊ＝１から第ｋパーツの第ｉストロークが含む点数までになる第４ステップと、
最終的にストロークのコンピュータ表示画面の復元表示を実現することであって、前記のデータ処理と座標変換を介して、ストローク中心線の各段の点の表示画面座標系での座標を形成し、先ずコンピュータにストローク中心線の各段を引き、曲率変化のある段であれば、この段の対応点に座標の外部呼出パラメーター曲率変化インクリメントを加算し、そして各段の段標識と線引き方式に基づいて直線や、ベッセル曲線で中心線の各段を引き、直線またはベッセル曲線を引く時に公知されていたアルゴリズムを使用して、全ての各段を完成したらストロークセンタスケルトンラインを生成し、ストローク中心線の各段を完成してから、中心線各段の段制御点を基準として、ストローク厚さパラメーターと各段の曲率変化パラメーターと結合して、右回り方向に先頭段から末段まで第１輪郭線で各段を生成する点の表示画面座標系における座標データを算出し、コンピュータにストロークの第１輪郭線の各段を引いて、末段から先頭段まで第２輪郭線を引き、また、輪郭線の各段の座標が中心線の各対応制御点に対し、これらの相対座標にストロークの外部呼出パラメーター厚さ係数を乗算してから、中心線の各対応制御点の座標を加算し、輪郭線の各段を引くための表示画面座標系における座標を形成し、さらに各段の段標識と線引き方式に基づいて直線や、ベッセル曲線で輪郭線の各段を引き、２本の輪郭線で一つのストロークのクローズエリアを構成し、このクローズエリアに公知された充填アルゴリズムで充填し、このようにして、一つの文字ストローク図形の表示が完成される第５ステップと、を備え、
（Ｆ）ストロークで漢字のパーツを構成して漢字パーツを復元表示するステップにおいて、外部呼出パラメーターに基づき、これらのパラメーターがパーツ元数、パーツ番号、パーツ位置、パーツ拡縮係数、パーツ厚さ係数であり、漢字パーツの元数と当該元が属するパーツ番号のインデックスによってストローク構築パーツのフォントライブラリファイルからこのパーツを構成するストローク数および各ストロークのパラメーターデータを取り出し、これらのパラメーターがストローク番号、厚さ係数、ストローク位置、ストローク拡縮係数及びストロークの曲率変化インクリメントであり、パーツの外部呼出パラメーターとこのパーツを構成する各ストロークのパラメーターから、座標変換などのデータ処理を介して、表示画面座標系でのストロークの各点座標を計算し、各ストローク図形を復元表示し、このパーツを構成するストローク数で繰り返し、各ストロークに対して、Ｅのステップに従ってそれぞれ異なるコンピュータ表示画面での表示ストロークが生成され、すべてのストロークの表示が完成すれば、一つの漢字パーツの復元表示が完成し、
（Ｇ）漢字パーツライブラリで文字を構成して図形漢字字形を復元表示するステップであって、まず外部から漢字コードと漢字復元配列の漢字の厚さ、漢字の幅、漢字の長さ、漢字表示の色や階調、漢字の表示方式などの外部呼出パラメーターを呼出し、文字コードのインデックスにより、字形の文字番号に対応して、また字形の文字番号に基づいてパーツ構字のフォントライブラリファイルからこの文字を構成するパーツ数および各パーツのパラメーターデータを取り出し、各パーツのパラメーターはパーツ元数、パーツ番号、パーツ位置、パーツ拡縮係数、パーツ厚さ係数であり、パーツ数まで繰り返し、漢字の外部呼出パラメーターと漢字の各パーツのパラメーターから、座標変換などのデータ処理を介して、表示画面座標系での各パーツが復元表示される図形を計算し、各パーツに対して、Ｆのステップに従ってそれぞれ異なるコンピュータ表示画面での表示するパーツが生成され、すべてのパーツの表示が完成すれば、一つの漢字の表示が完成することを特徴とする字形復元表示方法。
【請求項２】
ストローク中心線技術で描くパーツ構字の曲線字形で字形復元表示方法であって、
（Ａ）ストローク中心線に基づくストロークライブラリであって、各ストロークは、その形状によって異なる属性の幾らかのストローク段、即ちストローク先頭段、正常段、折段及び末段等に分けられ、その中は正常段または折段を更に幾らかの段に分けることができ、ストローク座標系において直線あるいはベッセル曲線の各特徴点座標で当該ストロークの中心線の各ストローク段を描き、さらにこのストローク中心線の各段のキーポイントを各ストローク段の制御点とし、各ストローク段は各段の制御点を基準とする相対座標位置で各ストローク段の輪郭曲線を描き、特徴点は直線に対して起点と終点であり、二次ベッセル曲線に対して起点、中間線外点、終点であり、ストロークデータの長さは等しいでなく、末段データビットでこのストロークが完了することを表し、
ストロークライブラリは、２バイトを占めるフォントの含まれる総ストローク数と、総ストローク数＊４バイトで、各ストロークが４バイトを用い、前の３バイトは各ストロークデータの位置ポインタで、末の１バイトは曲率変化が４ビットを占める方式と４ビットを占める段号を描くストローク先頭データと、ストロークの各段中心線データ、ストロークの各段輪郭線データを含み、データが直線やベッセル曲線の特徴点のストローク座標系の座標だけを含むストロークデータとを備えて構成され、
同じでないフォントごとに、それぞれのストロークライブラリを有するストロークライブラリと、
（Ｂ）ストロークにより直接に構築するフォントライブラリであって、そのデータフォーマットは、
ファイル先頭に対するストロークライブラリデータの始め位置と、このフォントライブラリが含んでいる漢字総計数と、漢字インデックステーブルが、各文字パラメーターが含まれたポインタとこの文字が使用したストローク数と、各漢字パラメーターデータ及びＡに記述されたストロークライブラリと、
漢字を構成するストローク数と、それぞれストローク番号、厚さ係数、ストローク位置、ストローク拡縮係数、ストローク曲率変化インクリメントからなる各ストロークパラメーターデータと、これらはフォントを生成するパラメーターで、直接に実際なフォントを代表できず、これらの外部パラメーターにより、数学変換を介して、ストローク構築漢字ステップに基づき図形漢字字形復元表示を実現され、異なるフォントがそれぞれの文字パラメーターライブラリを有する漢字パラメーターデータと、
を備え、
（Ｃ）ストローク中心線技術で描くストロークによりコンピュータ表示画面座標系における高精度なストローク図形の復元表示出力ステップであって、即ち、１個のパーツ構字に、１個のパラメーター化ストロークデータが漢字字形の実ストローク図形に復元して、コンピュータ表示画面座標系に表示するデータ処理プロセスのステップであって、
ストローク番号に基づき、パラメーター化ストロークライブラリからこのパラメーターストロークデータをを取り出し、即ちストローク中心線の各段のデータ及び輪郭線の各段のデータを取り出し、これらのデータはストローク座標系に対する座標データである第１ステップと、
漢字が複数のストロークからなり、且各パーツのサイズ、位置が異なり、当該ストロークのパーツ座標系の各座標を文字座標系に再変換されて、文字のこのストロークを呼出す外部呼出パラメーターと合わせてデータ処理し、これらの外部呼出パラメーターはストローク厚さパラメーター、拡大倍数、ストローク中心座標と曲率変化インクリメントである第２ステップと、
漢字の各ストロークは最終的にコンピュータ表示画面に表示しなければならないので、当該ストロークを構成する文字座標系での各点座標をコンピュータ表示画面座標系に変換されて、この文字を外部呼出すパラメーターと合わせてデータ処理し、これらの外部呼出パラメーターは文字の長さ、幅、文字の拡大倍数、文字中心座標の表示画面座標系の座標、文字表示のフロント色とバック色、字形ビットマップメモリマップ配列ポインタであり、各パーツの各ストロークの各座標点は、各座標系によりデバイス座標系に変換する座標変換公式が以下になり、
Ｘkij＝（（Ｘ2i＋ＳxBi×Ｘ3i÷１２８）×Ｂxk÷１２８＋Ｘk1）×Ｚxs÷１２８＋Ｘ0
Ｙkij＝（（Ｙ2i＋ＳxBi×Ｙ3i÷１２８）×Ｂyk÷１２８＋Ｙk1）×Ｚys÷１２８＋Ｙ0
ただし、（Ｘkij，Ｙkij）はｉストロークの各座標点の文字座標系の座標であり、
（Ｚxs，Ｚys）は全字の拡縮係数であり、
（Ｘ0，Ｙ0）は文字中心の表示画面座標系の座標であり、
（Ｘ3j，Ｙ3j）はｉストロークの各座標点のパーツ座標系の座標であり、
（Ｘk1，Ｙk1）は第ｋパーツ中心の文字座標系の座標であり、
（Ｂxk，Ｂyk）は第ｋパーツのＸとＹ方向の拡縮係数であり、
（Ｘ2i，Ｙ2i）は第ｋパーツの第Ｉストローク中心のこの文字座標系の座標であり、
（ＳxBi，ＳyBi）は第ｋパーツの第ＩストロークのＸとＹ方向の拡縮係数であり、
ｋは１に恒等し、即ち、この漢字は１パーツで構成し、ｉ＝１から第ｋパーツが含むストローク数までになり、ｊ＝１から第ｋパーツの第ｉストロークが含む点数までになる第３ステップと、
最終的にストロークのコンピュータ表示画面の復元表示を実現することであって、前記のデータ処理と座標変換を介して、ストローク中心線の各段の点の表示画面座標系での座標を形成し、先ずコンピュータにストローク中心線の各段を引き、曲率変化のある段であれば、この段の対応点に座標の外部呼出パラメーター曲率変化インクリメントを加算し、そして各段の段標識と線引き方式に基づいて直線や、ベッセル曲線で中心線の各段を引き、直線またはベッセル曲線を描く時に公知されていたアルゴリズムを使用して、全ての各段を完成したらストロークセンタスケルトン線を生成し、ストローク中心線の各段を完成してから、中心線各段の段制御点を基準として、ストローク厚さパラメーターと各段の曲率変化パラメーターと結合して、右回り方向に先頭段から末段まで第１輪郭線で各段を生成する点の表示画面座標系における座標データを算出し、コンピュータにストロークの第１輪郭線の各段を引いて、末段から先頭段まで第２輪郭線を引き、また、輪郭線の各段の座標が中心線の各対応制御点に対し、これらの相対座標にストロークの外部呼出パラメーター厚さ係数を乗算してから、中心線の各対応制御点の座標を加算し、輪郭線の各段を引くための表示画面座標系における座標を形成し、さらに各段の段標識と線引き方式に基づいて直線や、ベッセル曲線で輪郭線の各段を引き、２本の輪郭線で一つのストロークのクローズエリアを構成し、このクローズエリアに公知された充填アルゴリズムで充填し、このようにして、一つの文字ストローク図形の表示が完成される第４ステップと、を備え、
（Ｄ）ストロークで直接に文字を構築して、まず外部から漢字コードと漢字復元配列の漢字の厚さ、漢字の幅、漢字の長さ、漢字表示の色や階調、漢字の表示方式などの外部呼出パラメーターを呼出し、漢字コードのインデックスにより、字形の文字番号に対応して、また字形の文字番号に基づいてストローク直接構字のフォントライブラリファイルからこの文字を構成するストローク数および各ストロークのパラメーターデータを取り出し、これらのパラメーターがストローク番号、厚さ係数、ストローク位置、ストローク拡縮係数及びストロークの曲率変化インクリメントであり、文字の外部呼出パラメーターとこの文字を構成する各ストロークのパラメーターから、座標変換などのデータ処理を介して、表示画面座標系での各ストローク復元表示の図形を計算し、この漢字字形を生成するストローク数で繰り返して、各ストロークに対して、Ｃのステップに従ってそれぞれ異なるコンピュータ表示画面での表示するストロークが生成され、すべてのストロークの表示が完成すれば、一つの文字の表示が完成することを特徴とする字形復元表示方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数字データ処理に関し、特にコンピュータ漢字情報出力処理に用いられるように、処理したいデータをコンピュータ処理可能なデータ形式に変換するためのフォントライブラリの字形復元表示方法に関する。
【背景技術】
【０００２】
フォントライブラリと字形の復元表示とは、コンピュータオペレーティングシステムの重要な構成部分の一つで、漢字の数は多く、中国語キャラクタ集は大きいので、フォントライブラリは中国語の情報処理の基礎となり、コンピュータに漢字、キャラクタを入出力することはフォントライブラリに依存する。
【０００３】
従来のフォントライブラリ技術は、ビットマップフォントライブラリ、ベクトルフォントライブラリ、アウトラインフォントライブラリがある。
【０００４】
ビットマップフォントライブラリは、製作が簡単で、復元解釈モジュールが簡単であるという長所があるが、拡大や縮小不可能（拡大や縮小効果が極めて悪い）であるという短所もあり、且大ビットマップフォントライブラリの容量は幾何倍数のように増加し、一つのアプリケーションは複数種類の異なる寸法規格のフォントライブラリが必要となり、占めるメモリの容量は非常に大きいので、ビットマップフォントライブラリは、初期のコンピュータシステムや使用漢字の数が少なく、フォント出力品質にあまり高く要求されない簡単な組込み型専用デバイスにしか用いられない。
【０００５】
ベクトルフォントライブラリとアウトラインフォントライブラリとは、現在のコンピュータに使用されているフォントライブラリの主流であり、主にＴＴＦタイプフォントライブラリとＰＯＳＴＳＣＲＩＰＴタイプフォントライブラリがあり、現在、マイコンにはこれら両種類のフォントライブラリを使用することが多く、その長所は技術が成熟し、フォントが美しく、拡大縮小可能で、マイコン以上のコンピュータに使用することに満足できる。その短所は、データフォーマットが複雑で、フォント復元発生装置も複雑で、小寸法フォントの効果が悪く、復元速度が比較的に遅く、フォントの記憶容量が大きくて、組込み型システムに対して実用的ではない。
【０００６】
現在、市場において組込み型システムが使用できるアウトラインフォントライブラリが未だない。これは、組込み型システムが一般的に記憶容量が少なく、メモリを増加すると、コストも高くなるためである。ＧＢ１８０３０フォントのＴＴＦタイプフォントライブラリは２０Ｍ程度の記憶容量を必要とし、４種類を記憶すると、８０Ｍを必要とし、現在のハイクラス組込み型システムは通常１６Ｍの記憶容量しかないので、オペレーティングシステムが一部を占め、アプリケーションも一部を予め保有し、漢字フォントライブラリを置くところはほとんどない。今、多くのハイクラスな英文ＰＤＡあるいは携帯電話はまだ漢文化されていないため、中国に投入しても使用できず、従って、現在のハイクラスな漢文組込み型システムは適切な技術解決方式が見つけられない。
【０００７】
発明の開示
本発明は、上記従来技術の問題に鑑み、何れかの寸法に関わらず、漢字のフォントが美しく、無制限に拡大・縮小でき、無制限に漢字の厚さを変えられ、データフォーマットが簡単で、復元発生装置がはっきりと適用され、グラフ字形復元表示出力速度が速く、上述の前提において記憶容量が小さく、特に漢文組込み型システムに適用される性能コスト比の高い新型フォントライブラリ及びその表示発生装置を提供することを目的とする。
【０００８】
本発明は、まず漢字字形学に基づいて、ストローク中心線に基づくストロークライブラリと、ストロークでパーツを構築するパーツパラメーターライブラリと、パーツで漢字を構築する文字パラメーターライブラリとを含む漢字の曲線字形データフォーマットを自己定義生成してから、漢字復元表示仕方及び数学モデルを設けられ、ストローク中心線によりストロークの第１輪郭線と第２輪郭線を生成し、二つ輪郭線で一つストロークのクローズ曲線領域に構成され、その領域がスタフィングされることで、ストロークの復元表示が実現される。
【０００９】
本発明は、両種類の漢字構築方案を提供する。
【００１０】
第１種類はパーツ構字である。下述のように、先ず、ストロークライブラリと、ストロークでパーツを構築するパラメーターライブラリと、パーツで漢字を構築するパラメーターライブラリとを、フォントごとに定義製作し、この動作は弊社自身の知的財産権（フォントライブラリ製作ツール、ソフトウェア登録証明書を取得した）の他のツールで実現され、そして、ストロークでパーツを構築するパーツパラメーターデータを使用し、パーツを構成する各ストロークに対して、ストロークグラフがコンピュータ表示画面に復元表示するのを実現し、パーツを構成するストローク数に対してこれを繰り返すことにより、パーツの復元表示が実現される。さらに、パーツで漢字を構築する漢字パラメーターデータを使用し、漢字を構成する各パーツに対して、パーツ復元表示が実現され、漢字を構成するパーツ数に対してこれを繰り返すことにより、漢字フォントの復元表示が実現される。
【００１１】
第２種類は直接にストロークで漢字を構築することである。即ち、ストロークにより直接、漢字を構築する文字パラメーターライブラリを定義し、ストロークで直接、漢字を構築する漢字パラメーターデータを使用して、漢字を構成する各ストロークに対して、ストロークグラフがコンピュータ表示画面に復元表示するのを実現し、漢字を構成するストローク数に対してこれを繰り返すことにより、漢字フォントの復元表示が実現される。
【００１２】
本発明の新しいものは、即ち難点は次のように、新しい中国自己定義タイプのパラメーター化・構造化フォントライブラリを立てることである。このような記述は漢字字形生成の特徴及び規則に合わせ、特に記憶容量を省く。また、本発明は、図形漢字表示・出力の精度と品質を改善・向上し、図形漢字がコンピュータ運用システムに出力するシステムレベルの支持を実現するために、どのようにコンピュータ図形学の原理及び方法で図形漢字の復元表示・出力が必要される数学モデルを立て、コンピュータモジュールと中国語運用システムを転用するためのインタフェースを制定し、コンピュータ運用システムによって漢字フォントの外部転用データを転用してから、パラメーター化・構造化フォントライブラリデータと結合してデータ処理を行い、ひいては全ての中国語情報処理応用に満たすように、運用システム上のコンピュータＣＰＵでは直接に支持され、特に現在の組込み型デバイスには少量のコンピュータ資源で高品質・高精度の中国語情報処理出力を解決する課題を解決する。
【００１３】
本発明のフォントライブラリ及びその漢字字形発生装置の創新点その一はストローク中心線技術であり、従来のアウトラインフォントライブラリは中心線を描かなく、漢字を構成する輪郭線を整体のみで描き、中心線技術はまずストロークセンタスケルトン線を生成し、そして、中心線に対して輪郭線を再生成し、フォントの拡大縮小が中心線にのみ作用し、漢字の各フォントの修飾に関する記述を保証するために、ストローク厚さ係数の概念を独立に導入し、同一種類の異なる寸法・異なる曲率変化のストロークの完全近似、特に複合ストロークの完全近似を保証し、パラメーター化基準ストローク数を削減するために、ストロークの曲率変化パラメーターを導入する、これらは漢字特徴に合わせるパラメーター化・構造化漢字フォントライブラリ及びその高精度の復元表示発生装置を構築するために条件を用意し、従来のアウトラインフォントライブラリ生成技術はフォントの品質を向上すると、フォントライブラリの記憶容量を増えなければならなく、この新しい技術はフォント品質を保証する前提の下で記憶容量を極めて大きく省いて、且９０％以上を省くことが必要となる。これは不思議なものと見なすが、本発明者らの新しい技術方案を通じて実現された。これは本発明者らは従来のアウトラインフォントライブラリと異なるストローク中心線技術を採用し、この技術に基づいて漢字の構字特徴に合わせるパラメーター化・構造化フォントライブラリデータフォーマットを定義してから、発明された計算方法によりこれらの構造データをデータ処理し、データ処理方法に基づきコンピュータオペレーティングシステムカーネルインタフェース（karnel interface）装置が立てられることで、コンピュータ表示画面には高品質・高精度の図形漢字を出力するのが実現され、復元表示のフォントの高精度を保証するためである。
【００１４】
創新点その二は次のように、従来のアウトラインフォントライブラリ（ＴＴＦフォントライブラリ等）技術は小寸法漢字のフォント品質を解決できなく、小寸法の輪郭線漢字は非常に醜いので、アウトラインフォントライブラリに複数種類のビットマップフォントライブラリを差込（例えば、１２×１２乃至１８×１８などの７種類以上のビットマップフォントライブラリを差込）、もともと大きい記憶容量を占めたフォントライブラリに更に記憶容量を増えられた。本発明者は従来のアウトラインフォントライブラリと異なるストローク中心線技術を採用し、同一のパラメーター化・構造化アウトラインフォントライブラリによったので、大寸法の漢字フォントを美しくなられ、ＴＴＦフォントライブラリを代えながら、小寸法のビットマップフォントライブラリに近似してその表示効果を達成し、ひいては取って代わる。
【００１５】
創新点その三は次のように、従来のアウトラインフォントライブラリは、異なるストローク厚さの漢字に対して複数のフォントライブラリをするが、本発明のフォントライブラリは無制限に漢字の厚さを変えられることで、一種類のフォントライブラリが複数種類の同じではない厚さがあるフォントライブラリを代わる。
【００１６】
創新点その四は次のように、従来、多くの人もパーツ構造フォントライブラリをすることを検討したが、一つのパーツは同じではない漢字に用いられる時には、パーツの寸法は相異がある。パーツを構成する輪郭線は絶対座標であり、パーツを拡大縮小したので、各パーツの厚さは一致できないことで、フォントが非常に醜い。無制限にパーツを増加すれば、その技術優位を確保できないため、あきらめたり中途半端にしたりする。本発明者はストローク中心線技術を採用し、ストロークの厚さパラメーターを独立にし、ストロークとパーツの拡大縮小の場合には、ストローク厚さの一致性及び厚さの調整可能性を保持できることで、フォントの何れかの精度を保証する可能性になる。従って、当該技術で良品を生産可能である。
【００１７】
本発明の実現プロセスは、このパラメーター化・構造化フォントライブラリデータファイルを作る上に、コンピュータ図形学原理に従い、高精度の字形復元表示の数学モデルを立て、その後、まず標準Ｃ言語プログラムでＰＣ機器のＷＩＮＤＯＷＳ運用システムには実現され、そして組込み型運用システムＮＵＣＬＥＵＳ上に実現されてメモリには搭載し（試験製品）、また近い将来には、それをフォントライブラリチップ及びフォントライブラリ発生器チップとして組込み型ＣＰＵに搭載する予定である。
【００１８】
本発明は従来技術に比較すると、フォントの美しさを保証する前提の下では、最も省記憶容量となることを長所とする。一種類のＧＢ１８０３０フォントライブラリ（２７５９０個の漢字と１１３６個の半角・全角キャラクタとを含んで、合計２８７２６個のコードである）の標準フォーマットフォントライブラリファイルは１．１Ｍバイト（現在の市場に使用されているＴＴＦタイプフォントライブラリは２０Ｍバイト程度である）である。標準フォーマットとは一種類のフォントが各自のデータファイルがあり、すなわちそれぞれの異なる文字パラメーターライブラリと、パーツパラメーターライブラリと、ストロークライブラリとからなることであり、このフォントライブラリの一種類のフォントのコンパクトフォーマットは８００Ｋバイトを占める。いわゆるコンパクトフォーマットフォントライブラリを共通するのは、すなわち複数種類のフォントは一部のデータのフォントライブラリを共通できることであり、四種類のフォントはコンパクトフォーマットフォントライブラリを共通し、宋体が８００Ｋで、倣宋体、ゴシック体、楷書体がそれぞれ６００Ｋで、四種類のフォントは合計２６００Ｋバイト（２．６Ｍ）である。７種類のフォントは４．５Ｍバイトである（ＴＴＦタイプを使用すれば、１００Ｍ上回りを必要とする）。
【００１９】
本発明のフォント発生器ははっきりし、好適し、記憶容量が少なく、実行コードが４０Ｋバイト程度しかあり、復元速度が速いである。本発明は標準Ｃ言語でプログラムし、カーネルモージュルが全て整数で演算し、何れかのコンピュータオペレーティングシステムとのインタフェースを制作しやすい。本発明のフォントライブラリは無制限に拡大縮小できること以外には、無制限にフォントストロークの粗さを変えられる機能を増加し、これは従来のフォントライブラリができなくないものである。特に、メモリ資源有限の組込み型機器の応用では、本発明の技術は比べようのない優位性が表され、比較ハイクラスの中国語組込み型システムのために、適切な替わられない技術解決方案を見つけ、従って、本発明の応用見込みは非常に広いである。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の一実施形態について、図１〜図３２に参照して説明する。図１〜図１４は、コンピュータ表示画面には漢字字形の復元表示を実現するフローチャートである。各フローチャートは、コンピュータ図形学原理に基づいて発明したアルゴリズムで、フォントが生成されてコンピュータ表示画面に復元表示されたのを実現する全プロセスである。図１５〜図２８は、本実施形態が必要なパラメーター化・構造化の字形構造を実現する各データフォーマットのデータベースファイルである。図２９〜図３２は入出力デバイス及びデータ変換の空間、即ち各種座標系である。
【００２１】
１  概略記述
本技術はコンピュータ漢字情報出力処理に関する。本技術は、まず、一種類の独特な曲線輪郭フォントライブラリのデータフォーマットを自己定義し、このデータフォーマットは本発明に基づいて定義されたストロークとパーツである。そして、このデータフォーマットに従って、発生装置によって必要的なきれいな漢字キャラクタ字形を復元する。本発明は、字形の美しさを保証する上で、最も省記憶容量となる可能であり、一種類のＧＢ１８０３０フォントライブラリ（２７５９０個の漢字と１１３６個の半角・全角キャラクタとを含んで、合計２８７２６個のコード）の標準フォーマットフォントライブラリファイルは１．１Ｍバイト（現在の市場に使用されているＴＴＦタイプフォントライブラリは２０Ｍバイト程度）で、コンパクトフォーマットは８００Ｋバイトを占める。四種類のフォントの共通コンパクトフォーマットフォントライブラリに対して、宋体が８００Ｋで、倣宋体、ゴシック体、楷書体がそれぞれ６００Ｋで、四種類のフォントは合計２６００Ｋバイト（２．６Ｍ）になる。７種類のフォントは４．５Ｍバイトである（ＴＴＦタイプの場合、１００Ｍ以上を必要とする）。
【００２２】
１．１  ＺＧＸフォントライブラリのストローク
ＺＧＸフォントライブラリのストロークは、文字を構成する最も基本的なエレメントである。異なるストロークをストローク番号で標記し、漢字のストロークは横棒、縦棒、はね（左払い）、右払い、点などの五つ大類別があり、約３０種類であるが、ＺＧＸフォントライブラリには、異なる要求によって、１０００個を超えた異なるストロークを作らなければならない。ストロークはストローク中心線と、ストローク段とからなり、各ストローク段が輪郭線で描かれ、外輪郭のクローズ曲線がストロークを構成する。
【００２３】
ストローク中心線はストロークのスケルトン線で、ストロークの各段の制御点を含み、尚、自身は直線とベッセル曲線とからなる。ストローク段は先頭段、正常段（主力段）、曲がり段、末段に分けられ、各段はストローク中心線が定義された制御点を基準として、制御点に対する座標で各段の輪郭線を描き、輪郭線は直線とベッセル曲線とからなる。ストローク段の段番号は、ストローク正常段が属する段番号が意味し、０から最大の段番号までを有する。ストローク段の曲率変化方式は、先頭段、末段、ある正常段が方式の違いに従い、その制御点の座標位置が変化を発生されることが意味する。曲率変化方式は１５種類があり、１から１５までを有する。曲率変化の段番号及び曲率変化方式は、ストロークライブラリのインデックスファイルに指定される。
【００２４】
ストローク中心線技術及びそのコンピュータ表示画面の座標系下のストロークの復元表示ステップは、図５〜図１４に参照する。
【００２５】
異なるフォントはそれぞれ異なるストロークライブラリを有する。
【００２６】
１．２  ＺＧＸフォントライブラリのパーツ
ＺＧＸフォントライブラリのパーツは、幾らかのストロークで構成し、構成されたストローク数で、１ストロークのパーツ、２ストロークのパーツ、３ストロークのパーツ・・・に分類され、一番多いのは３１ストロークのパーツである。パーツは、エレメント（幾らかのストロークのパーツである）と当該エレメント中のパーツ番号にて標記する。多フォントライブラリ製品には、これらのデータは共用できる。
【００２７】
パーツを構成する各ストロークのパラメーターデータは、ストローク番号と、ストローク厚さ係数と、ストローク中心のパーツ座標系での座標と、ストロークのｘ方向及びＹ方向の拡縮係数と、ストロークのＸ方向及びＹ方向の曲率変化インクリメントとからなる。
【００２８】
パーツを構成されたストローク番号は、多フォントライブラリ製品には、これらのデータは共用できる。
【００２９】
ストローク中心のパーツ座標系での座標は、−１２８から＋１２７までに制限され、一つのバイトで表わされ、これらのデータはフォントライブラリ製品を注文する時に決める。
【００３０】
ストローク厚さ係数は、ストロークの輪郭曲線に作用され、厚さ係数の違いが異なる粗さのストロークを生成し、特別な段も変化させ、フォントの修飾を変化させる。
【００３１】
ストロークのＸ方向及びＹ方向の拡縮係数は、ストローク中心線の各制御点だけに作用し、ストロークの粗さに影響を与えないことにより、フォントストロークの粗さの一致性を保障する。ストロークのＸ方向及びＹ方向の拡縮係数もフォントライブラリ製品を注文する時に決定し、０から２５５までに制限され、それぞれは一つのバイトで示し、「１２８」は１倍の拡縮係数を示す。コンパクトフォーマットでは、６ビットで表してもよい、３２から９５までの間に制限され、記憶フォーマットは前記数字から３２を減らしたため、０〜６３の間にあり、「６４」は１倍の拡縮係数を示す。
【００３２】
ストロークのＸ方向及びＹ方向の曲率変化インクリメントとは、ストロークの先頭段、末段及びある正常段の曲率変化を意味して、曲率変化の方式は１５種類があって、それぞれ同時に正常段中の一段あるいは両段（最も多いのは両段である）に作用され、例えば、先頭段のＸ座標インクリメント或いは末段のＹ座標インクリメントはその中の一種類曲率変化方式で、ある正常段曲率Ｘ座標インクリメント及び曲率Ｙ座標インクリメントもその中の一種類曲率変化方式である。前者は複合ストローク（例えば、横折）の横段と折段の違い比例の問題を解決し、後者はストロークが異なるパーツには曲率が異なる問題を解決する。曲率インクリメントを導入したのは、ＺＧＸフォントライブラリの字形を完全精確的に任意のフォントテンプレートに近似させることで、フォントライブラリの字形の精確さと美しさを保証する。曲率変化インクリメントは−１２８から１２７までの間にあり、それぞれは一つのバイトで表わされ、コンパクトフォーマットでは、６ビットで表わされてもよく、一般的に、曲率変化インクリメントは比較的小さい。
【００３３】
フォント毎には、それぞれ異なるパーツライブラリがある。
【００３４】
パーツの復元表示は、図１及び図４を参照する。
【００３５】
１．３  ＺＧＸフォントライブラリの文字
ＺＧＸフォントライブラリの文字は、文字番号で標記され、文字番号は１からＮ（Ｎは長整数であってもよい）であるから、本フォントライブラリは文字の数量に対して制限がなく、超大規模なフォントライブラリが作成できる。ＺＧＸフォントライブラリは、Ｕｎｉｃｏｄｅコードで並べてもよいし、国家規格（ＧＢ２３１２、ＧＢＫ、ＧＢ１８０３０）コードで並べてもよい。
【００３６】
ＺＧＸフォントライブラリの文字は、幾らかのパーツで構成してもよいし、直接に幾らかのストロークで構成してもよい。前者はパーツ構字と言い、後者はストローク構字と言う。
【００３７】
ストローク構字とは、幾らかのストロークで文字を構成することで、そのパラメーターデータは当該文字を構成する各ストロークのストローク番号と、ストローク厚さ係数と、ストローク中心の文字座標系での座標と、ストロークのＸ方向及びＹ方向の拡縮係数と、ストロークのＸ方向及びＹ方向の曲率変化インクリメントとからなる。ストローク構字の各パラメーターの説明は、第１．２節の中のＺＧＸフォントライブラリのパーツの記載と同じである。
【００３８】
各種類のフォントは、互いに異なるストローク構字の文字パラメーターライブラリがある。
【００３９】
ストローク構字の復元表示は、第４節及び図４を参照する。
【００４０】
パーツ構字とは、幾らかのパーツで文字を構成することで、そのパラメーターデータは当該文字を構成する各パーツの元数（幾ストロークのパーツ）と、パーツ番号と、当該パーツ中心座標の文字座標系での座標と、当該パーツのＸ方向及びＹ方向の拡縮係数と、当該パーツの厚さ係数とからなる。また、パーツはストロークで構成され、第１．２節に記載されている。
【００４１】
この文字を構成される各パーツの元数（幾ストロークのパーツ）と、パーツ番号とは、多フォントライブラリ製品には、共用できるデータであり、一種類のフォントライブラリファイルに存在すれば十分である。
【００４２】
パーツ中心座標の文字座標系での座標は、当該パーツの構造位置番号に決められ、構造位置番号は３１種類があり、例えば、左右構造、上下構造、囲み構造などで、これらのデータはフォントライブラリ製品を注文する時に決められる。
【００４３】
当該パーツのＸ方向及びＹ方向の拡縮係数は、０から２５５の間に制限され、それぞれは一つのバイトで表され、コンパクトフォーマットでは、０〜６３で３２から９５を表し、６ビットで表され、「６４」は１倍の拡縮係数を表す。
【００４４】
各種類のフォントは、互いに異なるパーツ構字の文字パラメーターライブラリがある。
【００４５】
パーツ構字の復元表示は、第４節及び図１を参照する。
【００４６】
１．４  文字生成の外部呼出パラメーター
第４．１節のデータ構造定義を参照しながら、文字生成の外部呼出パラメーターを定義してから、デバイス座標系では文字を生成し、使用されているパラメーターは、文字のフォント番号、文字の国家規格コード（或いはＵｎｉｃｏｄｅコード）、文字の長さ（ドッドを単位とする）、文字の幅（ドッドを単位とする）、文字の厚さ係数、文字のフロント色、文字の表示方式（文字の回転、太り、傾き、充填方式など）のようなものである。バッファエリアには、文字のビットマップ図データを返還される。
【００４７】
文字生成の外部呼出パラメーター中に、文字の長さ、幅、厚さデータは、原則的に制限がなく、これは一種類のフォントが任意の長さ、幅、厚さでゲラ字、扁平字及び任意太さの文字を生成でき、一種類のフォントは複数のフォントとして使用できる。
【００４８】
１．５  ＺＧＸフォントライブラリ製品の技術指標
【００４９】
ＺＧＸフォントライブラリ製品は、フォントの精確さと美しさを保証する上には、最大限に記憶容量を省いて、復元速度を向上できる。
【００５０】
標準フォーマットは各種類のフォントが各自のデータファイルがあり、すなわちそれぞれの異なる文字パラメーターライブラリと、パーツパラメーターライブラリと、ストロークライブラリとからなる。コンパクトフォーマットはデータに対して所定の圧縮表示を行われ、例えば、元の８ビットで表すパラメーターが６ビットを使用できる。複数種類のフォント共通とは一部のデータが同じで、共通に使用できる。
【００５１】
一種類のフォントのＧＢ１８０３０フォントライブラリ（２７５９０個の文字と１１３６個の半角・全角キャラクタとを含み、合計２８７２６個のコードがある）の標準フォーマットフォントライブラリファイルは１．１Ｍバイト（ＴＴＦフォーマットフォントライブラリは２０Ｍバイト程度である）である。コンパクトフォーマットは８００Ｋバイトを占める。四種類のフォント共通コンパクトフォーマットフォントライブラリについて、宋体が８００Ｋであり、倣宋体、ゴシック体、楷書体がそれぞれ６００Ｋであり、四種類のフォントは合計２６００Ｋバイト（２．６Ｍ）であり、７種類のフォントは４．５Ｍバイトである。
【００５２】
ＺＧＸフォントライブラリの復元アルゴリズムは、ＴＴＦフォントライブラリより優良で、これは充填が文字整体ではなく、ストロークについて行われ、充填速度が整体的に速くなり、その上に、ＺＧＸフォントライブラリのインデックスは簡単且つ直接で、数学演算は共に整数演算を採用して、全面的に最適化が行われる。
【００５３】
１．６  フォントライブラリパラメーターデータからコンピュータにフォントの復元表示に関する詳細説明
（１）〜（５）は、字形データベースを記述し、それぞれストロークライブラリ、直接ストローク構字の文字パラメーターライブラリ、パーツライブラリ、パーツ構字の文字パラメーターライブラリ及び多フォント共通フォーマットパーツ構字パラメーターライブラリの記述とデータフォーマットである。（６）〜（９）は、それぞれストローク、ストローク構字、ストローク構パーツ、パーツ構字のコンピュータでの復元表示実現ステップで、（１０）〜（１２）は、字形表示がコンピュータに応用されたインタフェースの実現の具体なステップである。
【００５４】
（１）ストローク中心線に基づく基準ストロークライブラリにおいて、異なるフォントごとに、それぞれストロークライブラリを有し、そのデータフォーマットの詳細は図１５〜図１８を参照する。ストロークごとに、その形状によって幾らかのストローク段に分けられ、それぞれはストローク先頭段、正常段、折段及び末段で、正常段と折段は幾らかの段であってもよいし、まず直線あるいはベッセル曲線の各特徴点座標で当該ストロークに中心線の各ストローク段を描き、さらにこのストローク中心線の各段のキーポイントを各ストローク段の制御点とし、各ストローク段は各段の制御点を基準とする相対位置で各ストローク段の輪郭線の各特徴点座標を描いた。特徴点は直線に対して起点と終点であり、二次ベッセル曲線に対して起点、中間線外点、終点であり、ストロークデータの長さは等しくなく、末段データビットでこのストロークが完了することを表す。
【００５５】
ストロークライブラリのデータフォーマットは、総ストローク数が２バイトを占めることである。
【００５６】
ストローク先頭データは総ストローク数＊４バイトで、各ストロークは４バイトを用い、前の３バイトは各ストロークデータの位置ポインタで、末のバイトは曲率変化が４ビットを占める方式と４ビットを占める段号を描く。
【００５７】
ストロークデータは、ストロークの各段中心線データ、ストロークの各段輪郭線データを含んでいる。
【００５８】
異なるフォントのストローク数は互いに異ない、字形の美しさを保証するために、一般１０００個程度があり、各ストロークデータの長さは一般的に２０〜１００バイトである。
【００５９】
（２）ストロークにより直接構築するフォントライブラリであって、異なるフォントはそれぞれの文字パラメーターライブラリを有し、詳細は図２０〜図２１を参照し、そのデータフォーマットは次のようであり、即ち、
ファイル先頭に対するストロークライブラリデータの始め位置が４バイトであり、
フォントライブラリに含まれでいる漢字やキャラクタの総計数が４バイトであり、
漢字やキャラクタのインデックステーブルが、含まれた漢字やキャラクタの総計数バイトの４割を占め、文字ごとが４バイトを占め、前の一バイトはこの文字が使用したストローク数で、後の三つのバイトはこの漢字を構成する各ストロークの記述パラメーターデータの位置ポインタであり、
文字パラメーターデータが８＊当該漢字やキャラクタのストローク数で得られたバイトであり、各ストロークパラメーターデータが８バイトで、それぞれ２バイトのストローク番号、１バイトの厚さ係数、２バイトのストローク位置、１２ビットのストローク拡縮係数、１２ビットのストローク曲率変化インクリメントであり、
ストロークライブラリが前記の（１）に示すようなストロークライブラリのデータフォーマットを有する。
【００６０】
（３）ストロークにより構築する漢字パーツライブラリであって、異なるフォントはそれぞれのパーツパラメーターライブラリを有し、詳細は図１９を参照し、そのデータフォーマットは次のようであり、即ち、
パーツライブラリに含まれた最大なストローク数が構築されるパーツのストローク数は、図１９に示すように、総元数はｎであり、４バイトを占め、一般は２０〜２９となり、つまり、１個のパーツは最も２０〜２９個のストロークで構成し、パーツの配列は２ストロークパーツ、３ストロークパーツ、・・・、ｎストロークパーツまでの順に並べられ、
ｎストロークパーツのインデックステーブルは、最多のストローク数がｎである各ストローク数で構築されたパーツデータの位置ポインタが４＊ｎバイトを占め、各ストローク数パーツの位置が４バイトを占め、それぞれ２ストロークパーツ位置、３ストロークパーツ位置、ｎストロークパーツ位置までであり、各ストローク数パーツが幾らかあり、１番目からこのストローク数パーツの総数までに配列され、各２ストロークパーツのパラメーターデータが２＊８バイトを占め、各３ストロークパーツのパラメーターデータが３＊８バイトを占め、これから類推し、
パーツパラメーターデータは８＊当該パーツのストローク数で得られたバイトであり、各ストロークパラメーターデータが８バイトで、それぞれ２バイトのストローク番号、１バイトの厚さ係数、２バイトのストローク位置、１２ビットのストローク拡縮係数、１２ビットのストローク曲率変化インクリメントである。
【００６１】
（４）パーツで構築される漢字字形パラメーターライブラリであって、異なるフォントはそれぞれの文字パラメーターライブラリを有し、詳細は図２２〜図２５を参照し、そのデータフォーマットは次のようであり、即ち、
バージョン情報は４バイトであり、前の２バイトは会社標識の略称で、３番目のバイトはフォント標識で、４番目のバイトはキャラクタ集標識であり、
文字パラメーター領域の始め位置は４バイトであり、
パーツパラメーター領域の始め位置は４バイトであり、
ストロークデータ領域の始め位置は４バイトであり、
文字インデックステーブルは４＊総字数に１を掛けた和により得られるバイトであり、１番目の４バイトは総字数で、以降の各４バイトは各文字のインデックスを示し、そのうち、前の３バイトは文字パラメーターデータ位置を示し、末の１バイトは当該文字を構成するパーツ数であり、
文字パラメーターデータは、文字を構成する各パーツを記述されるパラメーターが６バイトを占め、それぞれ１１ビットのパーツ番号、このパーツが含まれる５ビットのストローク数、２バイトのパーツ位置、１２ビットのパーツ拡縮係数、６ビットのパーツ厚さ係数であり、
パーツパラメーターデータは（３）を参照し、
ストロークライブラリは（１）を参照する。
【００６２】
（５）多フォントコンパクト共通フォーマットのフォントライブラリにおいて、各フォントが各文字を構成するパーツ元数とパーツ番号は同じで、各フォントがパーツを構成するストローク番号は同じで、この部分のデータは一種類の基本フォントに記述されれば、他のフォントはこの部分のデータを共通でき、そのデータフォーマットは次のようであり、即ち、
基本フォントのフォーマットは（４）に記述されたものになり、
他のフォントのデータフォーマットは図２６〜図２８を参照し、
文字パラメーター領域の始め位置は４バイトであり、
パーツパラメーター領域の始め位置は４バイトであり、
ストロークデータ領域の始め位置は４バイトであり、
文字インデックステーブルは４＊（総字数に１を掛けた）和により得られるバイトであり、１番目の４バイトは総字数で、以降の各４バイトは各文字のインデックスを示し、そのうち、前の３バイトは文字パラメーターデータ位置を示し、末の１バイトは当該文字を構成するパーツ数であり、
文字パラメーターデータは、文字を構成する各パーツを記述されるパラメーターが４バイトを占め、それぞれ２バイトのパーツ位置、１２ビットのパーツ拡縮係数、４ビットのパーツ厚さ係数で、
パーツパラメーターデータは（３）を参照するが、ストローク番号を取り去り、
ストロークライブラリは（１）を参照する。
【００６３】
（６）ストローク中心線技術と、コンピュータ表示画面座標系下では高精度でストロークを復元表示出力する方法であって、図５〜図１４、図１５〜図１８及び図２９〜３２を参照しながら、これはストロークにより漢字字形を生成する基礎及びカーネルであり、ストロークにより直接に文字を構築すること、ストロークでパーツを構築してパーツで文字を構築することであっても、最終的にはコンピュータ表示画面にはストロークを描くのに帰結しなくてはならない。コンピュータ表示画面座標系で漢字を復元表示する各ストロークの図形フォントは、パーツ構字を例として、その計算式は第３．１．（６）節に記載するようになる。
【００６４】
１個のパーツ構字には、１個のパラメーター化ストロークデータが漢字の実ストローク図形に復元して、コンピュータ表示画面座標系に表示するデータ処理プロセスの詳細は、
ストローク番号に基づき、パラメーター化ストロークライブラリからこのパラメーター化ストロークデータを取り出し、即ちストローク中心線の各段のデータ及び輪郭線の各段のデータを取り出し、これらのデータはストローク座標系に対する座標データである第１ステップと、
前記ストロークで文漢字のパーツを構成するが、これはパーツの一つのストロークであるため、当該ストロークを構成する各座標をストローク座標系からパーツ座標系に変換されて、パーツがこのストロークを呼出す外部呼出パラメーターと合わせてデータ処理する第２ステップと、
漢字は複数のパーツからなり、且各パーツのサイズ、位置が異なるので、当該ストロークを構成する各座標をパーツ座標系から文字座標系に再変換されて、文字のこのストロークが属するパーツを呼出す外部呼出パラメーターと合わせてデータ処理する第３ステップと、
漢字の各ストロークの図形は最終的にコンピュータ表示画面に表示しなければならないので、当該ストロークを構成する各座標を文字座標系からコンピュータ表示画面座標系に変換されて、この文字を外部呼出すパラメーターと合わせてデータ処理する第４ステップと、を備える。
【００６５】
以上の四つステップは計算式、例えば、式３．１．（６）により完成される。
【００６６】
また、ストロークのコンピュータ表示画面の復元表示を実現する第５ステップを備え、図５に示すように、また、図６〜図１４は共に図５のための図面であり、詳細は次のようであり、即ち、
外部呼出ストローク番号によって、このストローク中心線の各特徴点を記述するデータを読み出し、以上の四つのステップと式３．１．（６）を介して、表示画面座標系に変換されて、曲率変化がある段であれば、この段の対応点に座標の外部呼出パラメーター曲率変化インクリメントを加算し、そして各段の段標識と線引き方式に基づいて直線や、ベッセル曲線で中心線の各段を引き、直線を引く時に図８、図９及び図１０を参照し、ベッセル曲線を描く時に図７及び図６を参照し、中心線は表示画面に表示される必要がないこともあるが、小サイズの時には中心線だけを表示し、中心線の各段を完成してから、該当アルゴリズムにより中心線に対してストロークの各輪郭線の中心線に対応する各段を引く。また、輪郭線の各段の座標は中心線の各対応制御点に対し、これらの相対座標にストロークの外部呼出パラメーター厚さ係数を乗算してから、中心線の各対応制御点の座標を加算し、輪郭線の各段を引く表示画面座標系の座標に形成され、さらに各段の段標識と線引き方式に基づいて直線や、ベッセル曲線で輪郭線の各段を引き、右回り方向に先頭段から末段まで第１輪郭線を引いてから、末段から先頭段まで第２輪郭線を引き、２本の輪郭線で一つのストロークのクローズエリアを構成し、輪郭線引きも直線引き及びベッセル曲線引きのサブモージュルを使用し、直接にコンピュータ表示画面に表示してもよいし、図１１を参照しながら、内部メモリに輪郭線を引いて、メモリにビットマップ図のドットを生成してもよい。ストロークのクローズエリアを構成した後、充填サブモージュルを呼出し、ストロークの充填（図１２及び図１１を参照）を実現でき、充填サブモージュルは類別テーブル（ＥＴ  テーブル）サブモージュル（図１３を参照）とこの辺の類別テーブル（ＥＴ  テーブル）のある項目の、全ての辺を活性化辺に挿してＣＸＢＯＴＴＯＭ昇序配列サブモージュル（図１４を参照）に従い、一ブロックの内部メモリバッファエリアに実現すれば、コンピュータのブロックコピーを用い、ディスプレイでの表示を早く実現できる。ベッセル曲線再帰的呼出モージュルは図７及び図６を参照し、直線引きは図８、図９、図１０及び図１１を参照し、充填サブモージュルは図１２、図１１、図１３及び図１４を参照する。
【００６７】
中心線技術は、何れかの場合に字形の何れかのストロークに対して、綺麗と精度を保証可能であり、これは、復元表示方法のストロークに対する拡大縮小は中心線の各制御点しか機能しなく、輪郭線及び特殊段に直接に機能しないから、輪郭線は中心線の制御点に対して相対的に変化し、厚さパラメーターを独立に導入して、厚さパラメーターが不変である場合には、文字を拡大縮小することは文字の各ストロークの厚さに影響を与えないことで、字形の各ストローク厚さの一致性を保証し、厚さパラメーターは相対的に変化している輪郭線に作用し、ストロークは厚さパラメーターによって無制限に変化できることで、一種類のフォントで太い、真中な、細い複数種類のフォントを代えるのを保証し、特に厚さが０である時には、中心線しか引き、高精度の計算などの処理を介して小サイズ文字の綺麗を保証し、厚さパラメーターは特殊段にも作用することにより、文字の修飾特徴の綺麗と精度を保証する。曲率変化パラメーターを導入するので、字形復元後完全に高精度の綺麗な文字パターン、例えば新華印刷工場の字形専門家が書く文字ぺターンに近似でき、字形品質が国家規格に合わせるのを保証し、国家ＧＢ１８０３０標準は２７５００程度の漢字を含まれ、３２万個のストロークで構成され、基準ストロークライブラリの１０００個程度のパラメーター化ストロークで、前記データ処理を経由して、パラメーター付き外部呼出ストロークにより、基準ストロークライブラリによりコンピュータ図形学で描く数学変換を介して、コンピュータの漢字字形中の、無制限変化の各サイズの３２万個乃至より多い漢字ストロークの各種類異なるサイズ、異なる厚さ、異なる特徴がある実形状のストローク図形に近似することで、復元表示した図形漢字字形の精美を保証する。
【００６８】
（７）ストロークで直接に文字を構築して、漢字字形を復元表示する方法において、第４節、図４及び図２０、図２１を参照して、まず外部から漢字コードと漢字復元配列の漢字の厚さ、漢字の幅、漢字の長さ、漢字表示の色や階調、漢字の表示方式などの外部呼出パラメーターを呼出し、漢字コードのインデックスにより、ストローク直接構字のフォントライブラリファイルからこの文字を構成するストローク数および各ストロークのパラメーターデータを取り出し、これらのパラメーターはストローク番号、厚さ係数、ストローク位置、ストローク拡縮係数及びストロークの曲率変化インクリメントであり、漢字の外部呼出パラメーターとこの漢字を構成する各ストロークのパラメーターとは、座標変換などのデータ処理を介して、表示画面座標系での各ストロークを復元表示される外部呼出パラメーターを計算し、各ストロークに対して、（６）のステップに従ってそれぞれ異なるコンピュータ表示画面での表示するストロークが生成され、すべてのストロークの表示が完成すれば、一つの漢字の表示が完成する。
【００６９】
（８）ストロークで漢字のパーツを構成して漢字のパーツを復元表示する方法において、図１９、図４及び第４．３節を参照して、外部呼出パラメーターに基づき、これらのパラメーターはパーツ元数、パーツ番号、パーツ位置、パーツ拡縮係数、パーツ厚さ係数であり、漢字パーツの元数と当該元が属するパーツ番号のインデックスによってストローク構築パーツライブラリファイルからこのパーツを構成するストローク数および各ストロークのパラメーターデータを取り出し、これらのパラメーターはストローク番号、厚さ係数、ストローク位置、ストローク拡縮係数及びストロークの曲率変化インクリメントであり、パーツの外部呼出パラメーターとこのパーツを構成する各ストロークのパラメーターとは、座標変換などのデータ処理を介して、表示画面座標系での各ストロークを復元表示される外部呼出パラメーターを計算し、各ストロークに対して、（６）のステップに従ってそれぞれ異なるコンピュータ表示画面での表示するストロークが生成され、すべてのストロークの表示が完成すれば、一つの文字の表示が完成する。国家ＧＢ１８０３０キャラクタ集標準は２７５００個程度の漢字を含み、各種類のフォントは５０００個程度のパラメーター化漢字パーツでからなる。
【００７０】
（９）漢字パーツライブラリで文字を構成して漢字字形を復元表示するステップは、第４．３節、図１及び図２２〜図２５を参照して、まず外部から漢字コードと漢字復元配列の漢字の厚さ、漢字の幅、漢字の長さ、漢字表示の色や階調、漢字の表示方式などの外部呼出パラメーターを呼出し、漢字コードのインデックスにより、パーツ構字のフォントライブラリファイルからこの文字を構成するパーツ数および各パーツのパラメーターデータを取り出し、各パーツのパラメーターはパーツ元数、パーツ番号、パーツ座標、パーツ拡縮係数、パーツ厚さ係数であり、漢字の外部呼出パラメーターと漢字を構成する各パーツのパラメーターは、座標変換などのデータ処理を介して、表示画面座標系での各パーツを復元表示される外部呼出パラメーターを計算し、各パーツに対して、（８）のステップに従ってそれぞれ表示画面での表示する各パーツを生成し、すべてのパーツを復元表示が完成すれば、一つの漢字の復元表示が完成する。本発明の一実例はストロークライブラリの約１０００個のパラメーター化の基準ストロークで５０００個程度の漢字パーツを構成し、さらにパラメーター化の５０００程度のパーツでＧＢ１８０３０標準キャラクタ集の２７５００個またはより多い各種類の異なるサイズの、異なるストローク厚さの高精度漢字字形が生成される。
【００７１】
（１０）ストローク中心線技術で記述する高精度の漢字キャラクタ復元表示方法であって、コンピュータオペレーティングシステムに用いられ、または直接にコンピュータのＣＰＵに用いられ、先ず標準Ｃ言語プログラムでＰＣのＷＩＮＤＯＷＳのオペレーティングシステムで実現され、そして組込み型運用システムＮＵＣＬＥＵＳに実現されてメモリに固着され、それをフォントライブラリチップと字形復元表示発生器チップに形成されて組込み型ＣＰＵ中のオペレーティングシステムに搭載したり、直接にＣＰＵに差込まれ、それはパラメーター化のフォントライブラリのデータを含んで、各種類の字形復元表示の方法で高解像度曲線の曲線字形を生成するステップは（６）〜（９）に記述された。
【００７２】
（１１）コンピュータが漢字キャラクタを呼出して復元表示するインタフェースであって、第４節のＺＧＸ字形呼出インタフェースモージュルを参照して、このモージュルは３個のインタフェース呼出モージュルでからなり、一つはフォント初期化モージュルで、詳細は第４．２節及び図２を参照し、もう一つは漢字キャラクタ復元表示インタフェースで、詳細は第４．３節を参照し、他は漢字の文字列を表示するインタフェースで、詳細は第４．４節を参照する。
【００７３】
フォント初期化モージュルの入力データはフォント号であり、それぞれＧＢ１８０３０の宋体、倣宋体、楷書体、ゴシック体のパーツ構字またはストローク構字や、韓国語文字、日本語漢字の各フォントや、英文キャラクタや、全角キャラクタや、ＵＮＩＣＯＤＥキャラクタ全集や、ＧＢ２３１２の各種類のフォントのライブラリファイルを代表する。
【００７４】
出力は返還の一つのポインタ配列ポインタ、すなわち、各フォントの文字パラメーターデータ、パーツパラメーター配列、ストロークデータ配列のポインタであり、これらのポインタは漢字キャラクタ復元表示モージュルに用いられ、当該モージュルの呼出機能は外部のパラメーター化フォントファイルを内部メモリ配列に読み込む。これらのフォントライブラリデータファイルが内部メモリに搭載されれば、これらのポインタは予め設計された定数であり、直接に漢字キャラクタ復元表示モージュルに書き込んて用いられ、フォント初期化モージュルは省略されてもよい。
【００７５】
漢字キャラクタ復元表示時のコンピュータ外から呼出入力するデータは、漢字のコード即ち国家規格内部コードやＵＮＩＣＯＤＥコード、フォント号、漢字キャラクタ復元表示の外部呼出パラメーター配列、返還パラメータータイプ、出力漢字字形のビットマップ図の内部メモリバッファエリアポインタである。
【００７６】
コンピュータに返還された出力データは、返還パラメータータイプによって指定される漢字字形復元表示データであり、一般出力する漢字字形のビットマップ図のデータであって、高速ブロックコピーに用いられ、漢字字形をコピーしたり、表示したりする。
【００７７】
このインタフェースは、パーツ構字方法（図１と前記の（９）を参照する）、ストローク直接構字方法（図４と前記の（７）を参照する）を使用して、ストロークでパーツを構築（図４と前記の（８）を参照する）してから、ストロークをマーキングし（図５と前記の（６）を参照する）、フォント初期化モージュルにより呼出得るポインタ配列ポインタの全局変数を使用する。
【００７８】
（１２）漢字文字列の表示は、第４．４節を参照して、入力テータは一つの漢字文字列、漢字文字列のコンピュータ表示画面に表示する左上角座標、漢字復元パラメーター配列（第４．１節に定義される漢字復元配列、漢字の外部呼出パラメーターを給定する：字幅、字長など）であり、出力はコンピュータ表示画面に外部呼出パラメーターにより１個の漢字文字列の字形を表示することである。
【００７９】
第４．３節に記載されるインタフェース実現を参照する。
【００８０】
２  フォントライブラリのデータフォーマット
２．１  ストロークデータファイルは、図１５を参照し、ストロークデータフォーマットは図１６を参照する。
【００８１】
ストローク中心線の各段の制御字データフォーマットは、１バイトで表され、このバイトの各ビットは図１７のように定義される。
【００８２】
ストローク中心線の各段のデータは、先頭段座標（２バイト）、段制御字（１バイト）、正常段データ（２×ｚ００バイト）・・・、末段の制御字である。
【００８３】
ストローク輪郭線の各段のデータは、ストローク輪郭線の各段の制御字データフォーマットは、１バイトで表され、このバイトの各ビットは図１８のように定義される。
【００８４】
ストローク輪郭線の各段のデータは、段制御字（１バイト）、第１辺輪郭線座標インクリメント（２バイト）、第２辺輪郭線座標インクリメント（２バイト）、先頭段の他点の座標（２×ｔｇｙバイト）、正常段データ（第１、二辺の輪郭線を含み、各点の座標４×ｚ００バイト）、折段制御字（１バイト）、第１輪郭線の座標インクリメント（２バイト）、第２輪郭線の座標インクリメント（２バイト）、折段の他点の座標（２×ｔｇｙバイト）、正常段データ（第１、二辺の輪郭線を含み、各点の座標４×ｚ００バイト）・・・末段制御字、末段の他点の座標（２×ｔｇｙバイト）である。
【００８５】
２．２  パーツデータファイル
図１９を参照する。
【００８６】
２．３  ストロークで文字を生成するデータファイル
先頭の４バイトはストロークデータの始め位置（ファイルの先頭に対して）であり、
次の４バイトは漢字（キャラクタ）の総数であり、
次に、各漢字のパラメーターデータインデックスは４バイトを占め、所定のコード順次に従って配列し、前の１バイトはこの漢字（キャラクタ）が含むストローク数であり、後の３バイトはストロークデータのストロークパラメーターファイルの位置であり、図２０を参照する。
【００８７】
このデータブロックの長さは４＊漢字（キャラクタ）の総数であり、
次はストローク構造パラメーターデータブロックであり、各ストロークは８バイトを占め、第１、２バイトはこのストロークのストローク番号で、第３バイトはこのストロークの厚さで、その後の５バイトはそれぞれこのストロークのＸ、Ｙ、ＳＸ、ＳＹ、ＱＸ、ＱＹであり、図２１に示すようになる。
【００８８】
このデータブロックのメモリ容量は、全ての漢字（キャラクタ）が用いられるストローク総数＊８バイトであり、
次はストローク生成データブロックであり、その構成は、
総ストローク数：２バイト、
ストロークデータインデックス：４＊総ストローク数、ストロークデータである。（図１５に示したストロークデータファイルのコンパクトフォーマット）
【００８９】
２．４  パーツで文字を生成するデータフォーマット
基本なフォントファイルは主に次の部分からなり、インデックステーブル、文字パラメーター、パーツパラメーター、ストロークデータである。各部分の詳細データフォーマットの記述は、
インデックステーブル：図２２、
文字パラメーター：図２３、
パーツパラメーター：図２４、
ストロークデータ：図２５に示すようになる。
【００９０】
２．５  多フォント部分共通パーツ構字フォーマット
他のフォントファイルは主にインデックステーブル、文字パラメーター、パーツパラメーター、ストロークデータからなる。各部分の詳細データフォーマットの記述は、
インデックステーブル：図２２、
文字パラメーター：図２６、
パーツパラメーター：図２７、
ストロークデータ：図２８に示すようになる。
【００９１】
３  数学モデル及びその字形のコンピュータ表示画面に復元表示する方法の実現ステップのフローチャート
３．１  座標系、各座標系からデバイス座標系に変換する変換式
ＺＧＸ字形復元表示はデバイス座標系（表示プリント又は他のデバイスに対する）、文字座標系、パーツ座標系、ストローク座標系の種種座標系を使用する。
【００９２】
（１）デバイス座標系
コンピュータディスプレイを例として、表示画面座標系の定義は図２９に示すように、スクリーンの左上角座標原点は（０，０）で、下向きはＹ軸で、右向きはＸ軸である。ＶＧＡ表示方式の解像度は６４０×４８０であるから、表示画面の右上角座標は（６３９，４７９）である。
【００９３】
（２）文字座標系
図３０に示すように、ｘ1ｏ1ｙ1は座標系であり、図中のｘｏｙ座標系はデバイス座標系である。デバイス座標系には文字の中心座標である。一つの文字を表示する場合には、文字番号、ｘ方向及びｙ方向の拡縮係数（基準字は２５６×２５６の解像度）及び文字の中心座標ｏ1（ｘ0，ｘ0）（この点は文字座標の原点ｏ1）を指定されれば、表示画面の指定された位置にこの文字を表示することができる。
【００９４】
（３）パーツ座標系
図３１に示したように、ｘ2ｏ2ｙ2はパーツ座標系であり、これは文字座標系に対する相対座標系である。ｏ2は１パーツの座標中心である。各パーツはそれぞれ一つの文字座標系に対するパーツ座標系がある。文字を表示するには、幾らかのパーツを表示することで実現され、文字構造ファイルから各パーツ番号、各パーツのｘ、ｙ方向の拡縮倍数及びｏ2点の座標系の相対座標（ｘ10，ｙ10）をとれば、この文字を表示することができる。
【００９５】
（４）ストローク座標系
図３２に示したように、ｘ3ｏ3ｙ3はストローク座標系であり、ストローク座標系はパーツ座標系ｘ2ｏ2ｙ2に対する相対座標系である。パーツを生成するのはストロークを表示することで実現され、パーツ構造ファイルから、各ストローク番号、各ストロークのｘ、ｙ方向の拡縮倍数及びｏ3のｘ2ｏ2ｙ2座標系の相対座標（ｘ20，ｙ20）をとれば、パーツ生成することが実現される。同様に、各ストロークの表示は一つのストローク座標系がある。
【００９６】
ストロークを引くには、ストローク座標系で、充填アルゴリズムを採用され、このストロークの座標点数及び曲線近似パラメーター（対応ストローク番号によってストロークファイルから取る）を得られる。
【００９７】
（５）ベッセル二次曲線の近似
図３２に示したように、短いはねは１、２、３段に分けて、各段はベッセル二次曲線で近似される。
第１段は<1>、<2>、<3>点の座標を使用して、そのうちの第<2>は第<1>、<3>段の接線の交点である。
第２段は<3>、<4>、<5>点の座標を使用して、そのうちの第<4>は第<3>、<5>の接線の交点である。
第３段は<5>、<6>、<1>点の座標を使用して、そのうちの第<6>は第<5>、<1>の接線の交点である。
第<1>、<3>点の連結線は直線であり、第<2>点は直線の何れかの点である。
公式は次のようになる、
【００９８】
【数１】
2005521903.tif 000037
【００９９】
ただし、
【０１００】
【数２】
2005521903.tif 000038
【０１０１】
式の（ｘ1，ｙ1）、（ｘ2，ｙ2）、（ｘ3，ｙ3）はそれぞれ始端点、中間点及び末端点の座標である。
【０１０２】
このようにして、ベッセル曲線の近似は<1>〜<6>点の相対座標しか格納されない。折線に近似するデータフォーマットは一致され、違う所は常に偶数個の点の座標値を記録することである。そして、第偶数個の点の値は前後の２端点の接線交点である。充填計算する場合には、異なる方法を用いられる。
【０１０３】
（６）デバイスに１文字を生成する座標変換
各パーツの各ストロークの各座標点は、各座標系によりデバイス座標系に変換する座標変換公式は、
Ｘkij＝（（Ｘ2i＋ＳxBi×Ｘ3i÷１２８）×Ｂxk÷１２８＋Ｘk1）×Ｚxs÷１２８＋Ｘ0
Ｙkij＝（（Ｙ2i＋ＳxBi×Ｙ3i÷１２８）×Ｂyk÷１２８＋Ｙk1）×Ｚys÷１２８＋Ｙ0
ただし、（Ｘkij，Ｙkij）はｉストロークの各座標点の文字座標系の座標であり、
（Ｚxs，Ｚys）は全字の拡縮係数であり、
（Ｘ0，Ｙ0）は文字中心の表示画面座標系の座標であり、
（Ｘ3j，Ｙ3j）はｉストロークの各座標点のパーツ座標系の座標であり、
（Ｘk1，Ｙk1）は第ｋパーツ中心の文字座標系の座標であり、
（Ｂxk，Ｂyk）は第ｋパーツのＸとＹ方向の拡縮係数であり、
（Ｘ2i，Ｙ2i）は第ｋパーツの第Ｉストローク中心のこの文字座標系の座標であり、
（ＳxBi，ＳyBi）は第ｋパーツの第ＩストロークのＸとＹ方向の拡縮係数であり、
ｋ＝１からこの文字が含むパーツ数まで、ｉ＝１から第ｋパーツが含むストローク数までになる。
【０１０４】
ｊ＝１から第ｋパーツの第ｉストロークが含む点数までになる。
【０１０５】
Ｋは常に１と等しいである時には、１パーツ文字であり、すなわち、直接にストロークで文字を構築して、ストローク構字の座標変換はこの公式を使用する。
【０１０６】
３．２  ＺＧＸ字形復元表示方法のフローチャート
そのモージュルのフローチャートは、
（１）メインモージュルのフローチャートは図１に示したようになり、
（２）フォントライブラリデータファイルを内部メモリ配列に読み込み、図２に示したようになり、
（３）漢字（キャラクタ）の国家規格コード（またはＵｎｉｃｏｄｅコード）からＺＧＸフォントライブラリの文字番号（下述のブロック図は国家規格コードを例として）に変換し、図３に示したようになり、
（４）ＺＧＸフォントライブラリの文字番号によって、ストロークを引き、図４に示したようになり、
（５）ＺＧＸフォントライブラリの文字番号によって、パーツをマーキングし、メインモージュルのフローチャート、すなわち図１に示したようになり、
（６）ストロークマーキングのフローチャートは図５に示したようになり、
（７）ベッセル曲線の再帰的呼出モージュルは図６に示したようになり、
（８）１本または複数本のベッセル曲線で１ストローク段を引くサブモージュルは、図７に示したようになり、
（９）１本または複数本の直線で１ストローク段を引くサブモージュルは、図８に示したようになり、
（１０）直線変換サブモージュルは図９に示したようになり、
（１１）直線引きサブモージュルは図１０に示したようになり、
（１２）内部メモリバッファエリアにビットマップ図のドットを描くサブモージュルは図１１に示したようになり、
（１３）充填アルゴリズムサブモージュルは図１２に示したようになり、
（１４）辺の類別テーブル（ＥＴ  テーブル）を組み立てるサブモージュルは図１３に示したようになり、
（１５）この辺の類別テーブル（ＥＴ  テーブル）のある項目の全ての辺を、ＡＥＬ活性化辺テーブルに差し込み、ＣＸＢＯＴＴＯＭ増序に従い配列し、図１４に示したようになる。
【０１０７】
４  ＺＧＸフォント呼出インタフェース
４．１  データ構造の定義
（１）フォント初期化返還ポインタ配列
typedef struct fhzz
{
long * zys;
long * zics;
long * zrcs;
long * bhcs;
}fhzz,far * lpfhzz;
zys：  文字インデックスパラメーターデータポインタ；
zics：フォントの文字パラメーターデータポインタ；
zrcs：フォントのパーツパラメーターデータポインタ；
zhcs：フォントのストロークパラメーターデータポインタ。
【０１０８】
（２）漢字（キャラクタ）復元配列
typedef struct hzfycs
{
unsigned char zhd;
unsigned char zkd;
unsigned char zcd;
unsigned char zys;
unsigned char zfs;
}hzfycs,far * lphzfycs;
zhdは漢字の厚さパラメーターで、１バイトで、標準が３２であり、
zkdは漢字の幅パラメーターで、１バイトで、ドッド単位であり、
zcdは漢字の長さパラメーターで、１バイトで、ドッド単位であり、
zysは漢字の色や階調で、１バイトであり、
zfsは漢字の表示方式パラメーターで、１バイトである。
パラメーター値は次のように指定され、
第０ビットと第１ビットは回転方式を表し、００は正常（回転しない）であり、０１は９０°を回転し、１０は１８０°を回転し、１１は２７０°を回転することを表し；
第２ビットは太るかどうか判断し、０は正常であり、１は太り；
第３ビットは傾斜かどうか判断し、０は正常で、１は傾斜であり；
第４ビットは下線を掛けるかどうか判断し、０は正常で、１は下線をかけ；
第５と６ビットは漢字充填方式で、００は中心線のみを引き、即ち線体字を実現され、０１はＯＲ方式で充填する漢字を実現され、１０はＡＮＤ方式で充填する漢字を実現され、１１はＥＸＯＲ方式で充填する文字を実現され；
第７ビットはキャラクタ表示方式で、０は半角で、１は全角で、漢字は１である。
【０１０９】
４．２  フォント初期化
（１）インタフェースモージュル
HZ_S(zth, lpfhzz);
zthはフォント号、キャラクタ変数であり、これはエントリパラメーターである。
【０１１０】
パラメーター値は次のようである。
０がＧＢ−２３１２の１６＊１６ドットフォントライブラリであり、
１がＧＢ１８０３０−２０００の宋体（漢字）の曲線フォントライブラリであり、
２がＧＢ１８０３０のゴシック体（漢字）曲線フォントライブラリであり、
３がＧＢ１８０３０の倣宋体（漢字）の曲線フォントライブラリであり、
４がＧＢ１８０３０の楷書体（漢字）の曲線フォントライブラリであり、
５がＧＢ１８０３０のキャラクタ曲線フォントライブラリであり、
６が・・・で、
Lpfhzzは返還パラメーターで、ポインタ配列のポインタである。
【０１１１】
（２）実現方法
フォント号により該当フォントファイル名を開けて、例えば、ＧＢ−２３１２の１６＊１６ドットフォントライブラリファイル名はＤＷ１６Ｄで、ＧＢ１８０３０−２０００の宋体曲線フォントライブラリのファイル名はＤＷＳＴＱで、ＧＢ−２３１２のゴシック体曲線フォントライブラリのファイル名はＤＷＨＴＱで、キャラクタライブラリのファイル名はＤＷＱＺＦＫである。
【０１１２】
１２個の内部メモリ配列はそれぞれＧＢ−２３１２の１６＊１６ドットフォントライブラリ配列と、ＧＢ１８０３０−２０００の宋体曲線フォンライブラリの文字インデックスパラメーター配列、フォントの文字パラメーター配列、パーツパラメーター配列及びストロークパラメーター配列と、ゴシック体曲線フォントライブラリの文字インデックスパラメーター配列、フォントの文字パラメーター配列、パーツパラメーター配列及びストロークパラメーター配列と、倣宋体、楷書体、キャラクタライブラリなどの各パラメーター配列に定義される。
【０１１３】
各フォントのファイルデータを該当配列に読み込んでから、各配列のポインタに返還される。
【０１１４】
４．３  漢字（キャラクタ）復元表示の実現
（１）インタフェースモージュル
HZ_X(hz$,zth,hzfycs,fclx,zbuf);
Hzhはフォント号であり；
hz$は１漢字（キャラクタ）の国家規格コードの内コードで、一般は２バイトであり；
hzfycsは漢字の復元パラメーター配列で、５バイトであり；
Fclxは返還パラメータータイプ（キャラクタ型変数）で、０がビットマップ図で、１が輪郭線のベクトル配列で、２がＴＴＦデータフォーマットで、３がＰＳデータフォーマットであり；
Zbufは返還漢字（キャラクタ）ビットマップ図及び他のデータバッファエリアポインタで、これは返還パラメーターであり、漢字（キャラクタ）ビットマップのデータ格納方式は各ドッドを１ビットとし、各文字の占めるバイト数＝＝［（（zkd＊zcd）＋７）／８］である。
【０１１５】
（２）実現方法
フォント号によって該当配列ポインタを見つけ；
漢字（キャラクタ）内コードによって漢字番号を計算し、計算公式は
内コードの上位バイトをＣ１とし、下位バイトをＣ２（Ｃ１、Ｃ２は符号なし整数）として、Ｃ１＝０すれば、半角キャラクタ処理に変換する。hz$がキャラクタコードの範囲にある場合には、即ち文字の国家規格コード（０Ｘ１Ｆ−０Ｘ８０、Ａ１Ａ１−Ａ１ＦＥ〜Ａ９Ａ１−Ａ９ＦＥ、Ａ８４０−Ａ８７Ｅ〜Ａ８８０−Ａ８ＦＥ、Ａ９４０−Ａ９７Ｅ〜Ａ９８０−Ａ９ＦＥの合計１１３６個のコード）が範囲内にある時、キャラクタフォントライブラリのファイルＤＷＱＺＦＫを呼出し、曲線フォントライブラリは２階段構造のストローク構字であり、ストローク復元サブモージュルは補正が必要しなくて、曲線キャラクタライブラリファイルに呼出すればよいし、キャラクタ構造ファイルを処理して、キャラクタコードによって文字ライブラリの順番号ＺＨを換算した。
if(hz$>=0x1f && hz$<=0x80) ZH=hz$-0x1f;
else if(c0>=0xa1 && c0<=0xa9 && c1>=0xa1 && c1<=0xfe)
ZH=99+(c0-0xa1)*94+c1-0xa1;
else if(c0>=0xa8 && c0<=0xa9 && c1>=0x40 && c1<=0xa0)
{
ZH=945+(c0-0xa8)*96+c1-0x40;
if(c1>0x7f) ZH--;
}
【０１１６】
漢字フォントライブラリから該当フォントファイルに変換したら、次の処理をして、
Ｃ１が０ＸＢ０以上０ＸＦ７以下で且つＣ２が０ＸＡ１以上である場合（即ちＧＢ２３１２漢字または２バイト２区）には、フォント号＝（Ｃ１−１７６）＊９４＋Ｃ２−１６１であり、
Ｃ１が０Ｘ８１以上且つＣ２が０ＸＡ１に未満であれば（すなわち２バイト３区）、Ｃ２が０Ｘ７Ｆを超える場合には、フォント号＝（Ｃ１−１２９）＊１９０＋Ｃ２−６４＋６７６８になり、
Ｃ１が０ＸＡＡ以上且つＣ２が０ＸＡ１に未満であれば（２バイト４区）、Ｃ２が０Ｘ７Ｆを超える場合には、フォント号＝（Ｃ１−１７０）＊９６＋Ｃ２−６４＋１２８４８になり、
４バイトの文字フォント号は２１００８−２７５８９である。
【０１１７】
フォント号によってこの文字を描くデータを見つけ、１６＊１６ドット字であれば、この文字のデータポインタはドット字データポインタ＋（フォント号―１）＊３２になり、
曲線字であれば、文字インデックスファイルとフォント号に基づいてこの文字の文字パラメーターデータを見つけ、そして文字パラメーターデータによりこの文字を描く各文字パラメーターデータを見つけ、さらに文字パラメーターデータにしたがって各文字を描く各ストロークデータを見つける。
【０１１８】
各ストロークデータの座標を計算する。
【０１１９】
ストローク引きサブモージュルを呼出す。
【０１２０】
ストローク引きサブモージュルは直線引きサブモージュルとベッセル引きサブモージュルを呼出し、そして充填モージュルを呼び出す。
【０１２１】
また、漢字（キャラクタ）の回転、太り、下線掛け、傾斜サブモージュルがさらにある。
【０１２２】
（３）設計
一つのインタフェースモージュル及びストローク引きサブモージュル、直線引きサブモージュル、ベッセル引きサブモージュル、充填サブモージュルを設計する必要がある。
【０１２３】
ストローク引きと充填サブモージュルは内部メモリバッファエリアに実現されるのを要求する。
【０１２４】
文字マーキング制御の計算は２５６＊２５６の長方形にして、中心線と輪郭線を引く時に再拡縮した（先ず字長と字幅を２５６にして、中心線と輪郭線を引く時には点の相対字中心座標のＸ座標＊字幅／２５６して、相対字中心座標のＹ座標＊字長／２５６する）。２０＊２０以下の文字は線体字（共に未満し、即ち中心線だけを引く）を使用し、１６＊１６と等しくＧＢ２３１２の国家規格漢字用ドット字（他の字はまた線体字）を使用する。
【０１２５】
返還データは文字のビットマップ図、ベクトル輪郭線、ＴＴＦフォーマットまたはＰＳフォーマットである。
【０１２６】
エラー許容は何れかの文字が何れかの解像度で表示する時にエラーなし、ひずみなし、オーバーなしの意味である。
【０１２７】
４．４  文字列表示
（１）インタフェースモージュル
HZ_C(hzc$,zth,zxx,zyy,hzfycs)
その中、Hzhはフォント号で、hzc$は一つ（または１組）の漢字（キャラクタ）の内コード文字列で、zxxは漢字（キャラクタ）列表示の左上角のスクリーンＸ座標で、zyyは漢字（キャラクタ）列表示の左上角のスクリーンＹ座標で、hzfycsは文字の復元パラメーター配列で、５バイトがある。
【図面の簡単な説明】
【０１２８】
【図１】図１はメインフローチャートであり、すなわちＺＧＸフォントライブラリ文字番号に基づき、ストロークを復元表示しパーツを構築してから、パーツで文字を構築するフローチャートである。
【図２】図２はフォントライブラリデータファイルを内部メモリの各データ配列に読み込むフローチャートである。
【図３】図３は漢字キャラクタの国際コード或いはＵｎｉｃｏｄｅコードからＺＧＸフォントライブラリの文字番号（以下のブロックは国際コードを例とする）に変換するフローチャートである。
【図４】図４はＺＧＸフォントライブラリの文字番号に基づきストロークを復元表示して、文字を構築するフローチャートである。
【図５】図５はコンピュータ表示画面にストロークを描く復元表示のフローチャートである。
【図６】図６は再帰呼出でベッセル曲線を生成するフローチャートである。
【図７】図７は一つ或いは複数のベッセル曲線で一つのストローク中心線又は輪郭線の一ストローク段を描くフローチャートである。
【図８】図８は一つあるいは複数の直線で一つのストローク中心線又は輪郭線の一ストローク段を描くフローチャートである。
【図９】図９は基準文字から実際字幅、字長に変換して直線を描くフローチャートである。
【図１０】図１０は直線を描くフローチャートである。
【図１１】図１１は内部メモリのバッファエリアにビットマップ中のドットを描くことを実現するフローチャートである。
【図１２】図１２はクローズ曲線領域に充填するフローチャートである。
【図１３】図１３はクローズ曲線領域の辺の類別テーブル（Ｅテーブル）を立てるフローチャートである。
【図１４】図１４はある辺の類別テーブル（Ｅテーブル）内のある項目の全ての辺をＡＥ活性化辺テーブルに差込、ｃｘＢｏｔｏｏｍ上がり順に従って配列するフローチャートである。
【図１５】図１５はストロークデータをパラメーター化したファイルのデータフォーマットを示す図である。
【図１６】図１６はストロークをパラメーター化したデータフォーマットを示す図である。
【図１７】図１７はストローク中心線の各段の制御字のデータフォーマット示す図である。
【図１８】図１８はストローク輪郭線の各段の制御字のデータフォーマットを示す図である。
【図１９】図１９はパーツデータファイルのデータフォーマットを示す図である。
【図２０】図２０はストローク構字のデータファイルのデータフォーマットを示す図である。
【図２１】図２１はストローク構字のパラメーターデータブロックのデータフォーマットを示す図である。
【図２２】図２２はパーツ構字のインデックステーブルを示す図である。
【図２３】図２３はパーツ構字の文字パラメーターライブラリのデータフォーマットを示す図である。
【図２４】図２４はパーツ構字のパーツパラメーターライブラリのデータフォーマットを示す図である。
【図２５】図２５はパーツ構字のストロークライブラリのデータフォーマットを示す図である。
【図２６】図２６は複数のフォントを部分的に共通してパーツ構字の文字パラメーターライブラリのデータフォーマットを示す図である。
【図２７】図２７は複数のフォントを部分的に共通してパーツ構字のパーツパラメーターライブラリのデータフォーマットを示す図である。
【図２８】図２８は複数のフォントを部分的に共通してパーツ構字のストロークライブラリのデータフォーマットを示す図である。
【図２９】図２９はコンピュータ表示画面の座標系を示す図である。
【図３０】図３０は文字座標系を示す図である。
【図３１】図３１は漢字パーツ座標系を示す図である。
【図３２】図３２はストローク座標系を示す図である。