JP3008555B2 - Vector font output device - Google Patents

Vector font output device

Info

Publication number
JP3008555B2
JP3008555B2 JP3139489A JP13948991A JP3008555B2 JP 3008555 B2 JP3008555 B2 JP 3008555B2 JP 3139489 A JP3139489 A JP 3139489A JP 13948991 A JP13948991 A JP 13948991A JP 3008555 B2 JP3008555 B2 JP 3008555B2
Authority
JP
Japan
Prior art keywords
data
skeleton
font
character
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3139489A
Other languages
Japanese (ja)
Other versions
JPH04340592A (en
Inventor
伸 三国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP3139489A priority Critical patent/JP3008555B2/en
Publication of JPH04340592A publication Critical patent/JPH04340592A/en
Application granted granted Critical
Publication of JP3008555B2 publication Critical patent/JP3008555B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】この発明は、文字の骨格と、その
骨格からの距離に基づいてベクトルフォントを作成する
ベクトルフォント出力装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a vector font output device for creating a vector font based on a character skeleton and a distance from the skeleton.

【0002】[0002]

【従来の技術】従来、文書処理(日本語処理)を行うデ
ータ処理装置には、文書データを高品質に表示・印字出
力するベクトルフォント出力装置が備えられている。こ
のベクトルフォント出力装置には例えば文字を構成する
輪郭部分を座標列や関数列で表現したフォントデータが
個々の文字に対応させてフォントメモリに記憶されてい
る。図22は左払いの一画を示した従来のベクトルフォ
ントで、P1からP2までは座標列(ショートベクトル
あるいはポリゴン方式)で表わしてあり、P1からP3
まではQ1、Q2を制御点とするベジェール曲線で表し
てある。
2. Description of the Related Art Conventionally, a data processing apparatus for performing document processing (Japanese processing) is provided with a vector font output apparatus for displaying / printing and outputting document data with high quality. In this vector font output device, for example, font data in which a contour part constituting a character is represented by a coordinate sequence or a function sequence is stored in a font memory in correspondence with each character. FIG. 22 is a conventional vector font showing one image of leftward payment, wherein P1 to P2 are represented by a coordinate sequence (short vector or polygon method), and P1 to P3.
Up to this point are represented by Bezier curves using Q1 and Q2 as control points.

【0003】[0003]

【発明が解決しようとする課題】このようにフォントデ
ータはその輪郭を座標列や関数列で表すようにしている
為、例えば文字を構成する線の太さを変らずに形を変え
たり、形を変えずに太さを変えることはできず、また線
の太さが不揃になる等の欠点があった。この発明の課題
は、文字を構成する線の太さをn次多項式で表した情報
に基づいてベクトルフォントを作成出力できるようにす
ることである。
As described above, the outline of the font data is represented by a coordinate sequence or a function sequence. Therefore, for example, the font data may be changed in shape without changing the thickness of the line constituting the character, or may be changed in shape. However, there were drawbacks such as that the thickness could not be changed without changing the thickness, and that the thicknesses of the lines were not uniform. An object of the present invention is to make it possible to create and output a vector font based on information representing the thickness of a line constituting a character by an n-th order polynomial.

【0004】[0004]

【課題を解決するための手段】この発明の手段は次の通
りである。文字を構成する線の骨格を座標を示す関数で
記憶する骨格データ記憶手段と、n次多項式で骨格から
の距離を表した距離を記憶する距離データ記憶手段と、
前記骨格データ記憶手段の関数により導かれる骨格線上
の座標、接線の傾き値及び、前記距離データ記憶手段の
n次多項式から導かれる骨格からの距離に基づいてベク
トルフォントの輪郭座標位置を順次算出してベクトルフ
ォントを作成するベクトルフォント作成手段と、このベ
クトルフォント作成手段によって作成されたベクトルフ
ォントを出力する出力手段とを備えるものである。した
がって、フォントの形や太さを容易に変えることがで
き、しかも、形や太さを変えたとしても曲線部分はなめ
らかで奇麗な高品質フォントを得ることができる。
The means of the present invention are as follows. Skeleton data storage means for storing a skeleton of a line constituting a character by a function indicating coordinates, distance data storage means for storing a distance representing a distance from the skeleton by an n-degree polynomial,
The outline coordinate position of the vector font is sequentially calculated based on the coordinates on the skeleton line derived by the function of the skeleton data storage unit, the inclination value of the tangent, and the distance from the skeleton derived from the n-th order polynomial of the distance data storage unit. Vector font creating means for creating a vector font, and an output means for outputting the vector font created by the vector font creating means. Therefore, the shape and thickness of the font can be easily changed, and even if the shape and thickness are changed, a high-quality font having a smooth curved portion and a beautiful shape can be obtained.

【0005】[0005]

【機能ブロック図の説明】図1は本発明の機能ブロック
図である。ベクトルフォント作成手段3は骨格データ記
憶手段1、太さデータ記憶手段2の内容に基づいて骨格
からの太さをn次多項式に基づいて順次算出してベクト
ルフォントを作成する。ここで、例えば骨格と直角方向
にAx+Bx+Cだけ移動させた骨格の両側の点が輪
郭となる。これによって得られたベクトルフォントは出
力手段4から出力される。
[Description of Functional Block Diagram] FIG. 1 is a functional block diagram of the present invention. The vector font creating unit 3 sequentially calculates the thickness from the skeleton based on the contents of the skeleton data storage unit 1 and the thickness data storage unit 2 based on the n-th order polynomial to create a vector font. Here, for example, points on both sides of the skeleton moved by Ax 2 + Bx + C in a direction perpendicular to the skeleton are contours. The vector font thus obtained is output from the output means 4.

【0006】[0006]

【実施例】以下、図2〜図21を参照して一実施例を説
明する。先ず、文字フォント等のデータ構造について説
明しておく。図2は文字構成要素を部品化した各種のパ
ーツを組み立てることにより文字フォント「完」が構築
される様子を示したもので、この文字フォントは大別す
ると、“へん”、“つくり”、“かんむり”等の部首を
構成する上位パーツである“う冠”と他の文字フォント
である「元」の文字をパーツとして組み合せたものとす
ることができる。上位パーツおよび文字フォントは複数
のベースパーツ等を字形に応じて組み合せて成るもので
あり、ベースパーツは一画の線、または点などの文字構
成要素を表わし、それ以上分解できない基本的なパーツ
で、それ自体で1つのアウトラインフォントを構成する
が、“う冠”(上位パーツ)は4つのベースパーツから
構成され、文字フォント「元」も複数のベースパーツ
(図示せず)から構成されている。
An embodiment will be described below with reference to FIGS. First, the data structure of a character font and the like will be described. FIG. 2 shows a state in which a character font "complete" is constructed by assembling various parts in which character components are made into parts. The character fonts are roughly classified into "Hen", "Tsuru", " It is possible to combine the upper part of the radical such as "kanmuri" or the like and the character of the other character font "original" as parts. Upper parts and character fonts consist of a combination of multiple base parts, etc., according to character shapes.Base parts represent character components such as a single line or point, and are basic parts that cannot be further disassembled. , Constitutes one outline font by itself, but the “U crown” (upper part) is composed of four base parts, and the character font “source” is also composed of a plurality of base parts (not shown). .

【0007】図3はパーツのデータ構造を説明する為の
図で、ベースパーツは骨格データ、肉付けデータ、両端
形状データ等から成る。骨格データは文字構成要素の中
心を通る線分を表わすもので、その種類として本実施例
においては(1)、骨格が直線で表わされたもの。
(2)、骨格がベジェール曲線で表わされたもの。
(3)、骨格が楕円の一部で表わされたものが存在す
る。なお、骨格がないものとして記号などの小円が存在
し、これも骨格データの一部として取り扱う。肉付けデ
ータは骨格からの距離を2次多項式(Ax2+Bx+
c)で表わしたものであり、骨格データ、太さデータに
基づいて骨格からの太さを2次多項式に基づいて順次算
出して輪郭データが作成される。両端の形状データは筆
おきウロコ、円による終端等の線端形状を定義するもの
であり、線端形状を指定するだけで指定された種類の線
端部品が自動的に生成されると共に、この線端部品が接
続される線の太さに応じて線端部品の大きさが自動的に
制御される。
FIG. 3 is a diagram for explaining the data structure of a part. The base part is composed of skeleton data, flesh data, end shape data, and the like. The skeleton data represents a line segment passing through the center of the character component. In the present embodiment, the type of the skeleton data is (1), and the skeleton is represented by a straight line.
(2) A skeleton represented by a Bezier curve.
(3) Some skeletons are represented by a part of an ellipse. Note that there is a small circle such as a symbol without a skeleton, and this is also treated as a part of the skeleton data. The flesh data indicates the distance from the skeleton as a second-order polynomial (Ax 2 + Bx +
The outline data is created by sequentially calculating the thickness from the skeleton based on the skeleton data and the thickness data based on the quadratic polynomial. The shape data at both ends defines the line end shape such as the scale of the brush, the end of the circle, etc., and simply by specifying the line end shape, the specified type of line end part is automatically generated, and The size of the line end component is automatically controlled according to the thickness of the line to which the line end component is connected.

【0008】文字フォントのデータ構造は上位パーツあ
るいはベースパーツのパーツ番号(もしくは他の文字認
識番号)、配置位置、拡大率等から成り、例えば図3に
示す如く文字フォント「三」はベースパーツ「一」を骨
格の長さおよび配置位置を変えて3回読み出すことによ
り構成することができる。なお、上位パーツのデータ構
造も文字フォントのデータ構造と同様にパーツ番号、配
置位置、拡大率等から成る。
The data structure of the character font is composed of the part number (or other character recognition number) of the upper part or the base part, the arrangement position, the enlargement ratio, etc. For example, as shown in FIG. It can be configured by reading three times with changing the length and arrangement position of the skeleton. The data structure of the upper part also includes a part number, an arrangement position, an enlargement ratio, and the like, like the data structure of the character font.

【0009】図4はベースパーツの骨格を横1/2倍、
縦1.4倍に変形させたもので、文字フォントや上位パ
ーツ内にはこのような倍率が定義されているが、この場
合、ベースパーツの太さや両端形状は変らず、ベースパ
ーツの縦横の形だけが変化するようになる。なお、図5
は上述した図4と同様の倍率を“斜めの払い”に対して
かけたものである。この様な斜め線の場合にも骨格の縦
横に倍率をかけてやるだけでよい。なお、この場合、太
さは常に骨格に対して直角方向の距離として定義されて
いる為、疑似的に回転させた様な斜め線が得られること
になる。
FIG. 4 shows the skeleton of the base part 1/2 times as wide,
It is transformed to 1.4 times in height, and such magnification is defined in the character font and upper part, but in this case, the thickness and both ends shape of the base part do not change, Only the shape changes. FIG.
Is obtained by applying the same magnification as that of FIG. 4 to “oblique payment”. In the case of such an oblique line, it is only necessary to multiply the vertical and horizontal directions of the skeleton. In this case, since the thickness is always defined as a distance in a direction perpendicular to the skeleton, an oblique line as if rotated in a pseudo manner is obtained.

【0010】図6は文字フォント出力装置の全体構成を
示したブロック図である。文字フォント出力装置はパー
ツ配置装置11、ドットデータ変換装置12、ビットマ
ップ印刷バッファ13、プリンタ14を有する構成で、
パーツ配置装置11は印字指令と共に印字対象の文字コ
ードを受け取ると、動作を開始し、その文字を構成する
ベースパーツを順次抽出してそのパーツ番号、配置位
置、倍率データをドットデータ変換装置12に与える。
ドットデータ変換装置12はこのパーツ番号に対応する
ベースパーツを呼び出し、その骨格に倍率をかけて骨格
データを変更し、これに肉付けデータ等を参照すること
によって輪郭データを生成し、ビットマップ印刷バッフ
ァ13上の指定配置位置に展開する動作を1ベースパー
ツ毎に実行する。なお、輪郭データの塗りつぶし処理は
輪郭データを生成したのちにドットデータ変換装置12
によって実行される。プリンタ14はビットマップ印刷
バッファ13内のドットデータを1ライン毎に印字出力
するサーマルプリンタである。
FIG. 6 is a block diagram showing the overall configuration of the character font output device. The character font output device has a configuration including a parts placement device 11, a dot data conversion device 12, a bitmap print buffer 13, and a printer 14.
When receiving the character code to be printed together with the print command, the parts placement device 11 starts the operation, sequentially extracts the base parts constituting the character, and sends the part number, placement position, and magnification data to the dot data conversion device 12. give.
The dot data converter 12 calls the base part corresponding to this part number, changes the skeleton data by multiplying the skeleton by magnification, generates contour data by referring to the flesh data and the like, and generates a bitmap print buffer. The operation of developing the image at the designated arrangement position on the base unit 13 is executed for each base part. Note that the contour data filling process is performed after the contour data is generated and the dot data conversion device 12 is turned on.
Performed by The printer 14 is a thermal printer that prints out dot data in the bitmap print buffer 13 line by line.

【0011】図7はパーツ配置装置11の構成を示した
ブロック図である。印刷コードレジスタ11−1は印刷
対象の文字コードがセットされるもので、この文字コー
ドは検索コードレジスタ11−2に渡される。検索コー
ドレジスタ11−2は印刷コードレジスタ11−1から
の文字コードあるいは主制御部11−3からのパーツコ
ード(または文字コード)が格納されるもので、この文
字コードやパーツコードに基づいてライブラリアドレス
インデックス11−4はフォントデータライブラリ11
−5の中の当該文字やパーツに対応する先頭アドレスを
索引する。フォントデータライブラリ11−5は各種の
文字、上位パーツに対応してそのデータ構造表を格納す
るもので、例えば文字「仁」に対応するデータ構造表の
他、この文字を構成する部首“にんべん”に対応するデ
ータ構造表を有する。ライブラリアドレスポインタ11
−6はライブラリアドレスインデックス11−4を参照
することによって求められた先頭アドレスがセットされ
るポインタで、この値にしたがってフォントデータライ
ブラリ11−5の該当するデータ構造表が指定される。
パーツポインタ11−7はライブラリアドレスポインタ
11−6の値によって指定されたデータ構造表の定義内
容をその先頭からパーツ単位で順次指定するポインタ
で、この値にしたがってフォントデータライブラリ11
−5から読み出されたデータは主制御部11−3に取り
込まれる。ポインタスタックメモリ11−8はライブラ
リアドレスポインタ11−6、パーツポインタ11−7
の値を必要に応じて退避するメモリである。主制御部1
1−3はフォントデータライブラリ11−5から読み出
されたデータが文字あるいは上位パーツであればその文
字コードあるいはパーツコードを検索コードレジスタ1
1−2にセットするが、ベースパーツであれば、このベ
ースパーツに関するデータ(パーツ番号、配置位置、倍
率)をドットデータ変換装置12に与える。
FIG. 7 is a block diagram showing the configuration of the parts placement device 11. As shown in FIG. The print code register 11-1 is for setting a character code to be printed, and this character code is passed to the search code register 11-2. The search code register 11-2 stores a character code from the print code register 11-1 or a part code (or character code) from the main control unit 11-3, and stores a library based on the character code and the part code. The address index 11-4 is the font data library 11
The head address corresponding to the character or part in -5 is indexed. The font data library 11-5 stores a data structure table corresponding to various characters and upper parts. For example, in addition to a data structure table corresponding to the character "Jin", a radical "Ninben" constituting the character is stored. Has a data structure table corresponding to ". Library address pointer 11
Reference numeral -6 denotes a pointer in which a start address obtained by referring to the library address index 11-4 is set. According to the value, a corresponding data structure table of the font data library 11-5 is designated.
The parts pointer 11-7 is a pointer for sequentially designating the definition contents of the data structure table designated by the value of the library address pointer 11-6 in units of parts from the top thereof, and the font data library 11 according to this value.
The data read from -5 is taken into the main control unit 11-3. The pointer stack memory 11-8 includes a library address pointer 11-6 and a part pointer 11-7.
Is a memory that saves the value of “1” as necessary. Main control unit 1
1-3, if the data read from the font data library 11-5 is a character or a high-order part, the character code or part code thereof is searched for in the search code register 1;
If it is a base part, the data (part number, arrangement position, magnification) relating to the base part is given to the dot data conversion device 12.

【0012】図8はドットデータ変換装置12の構成を
示したブロック図である。このドットデータ変換装置1
2は検索コードレジスタ12−1、ライブラリアドレス
インデックス12−2、ライブラリアドレスポインタ1
2−3、パーツポインタ12−4、ベースパーツデータ
ライブラリ12−5、主制御部12−6を有する構成
で、検索コードレジスタ12−1にはパーツ配置装置1
1からパーツ番号が検索コードとして入力され、主制御
部12−6にはパーツ配置装置11から配置位置、倍率
が入力されている。ライブラリアドレスインデックス1
2−2は検索コードレジスタ12−1にセットされたパ
ーツコードに基づいてベースパーツデータライブラリ1
2−5の中の該当パーツに対応する先頭アドレスを索引
する。ベースパーツデータライブラリ12−5は各種の
ベースパーツに対応してそのデータ構造表を格納するも
ので、ライブラリアドレスポインタ12−3の値にした
がって該当するデータ構造表が指定され、また、パーツ
ポインタ12−4の値にしたがってこの指定データ構造
表の定義内容がその先頭から骨格単位で順次指定されて
読み出される。これによってベースパーツデータライブ
ラリ12−5から読み出されたデータは主制御部12−
6に送られる。主制御部12−6はベースパーツデータ
とパーツ配置装置11からの倍率データに基づいて輪郭
データを発生し、ビットマップ印刷バッファ13に展開
すると共に、パーツポインタ12−4の値をインクリメ
ントする。
FIG. 8 is a block diagram showing the configuration of the dot data conversion device 12. This dot data converter 1
2 is a search code register 12-1, a library address index 12-2, and a library address pointer 1.
2-3, a part pointer 12-4, a base part data library 12-5, and a main control unit 12-6.
A part number is input as a search code from 1 and an arrangement position and a magnification are input from the parts arrangement device 11 to the main control unit 12-6. Library address index 1
2-2 is a base part data library 1 based on the part code set in the search code register 12-1.
The head address corresponding to the corresponding part in 2-5 is indexed. The base part data library 12-5 stores a data structure table corresponding to various base parts. A corresponding data structure table is designated according to the value of the library address pointer 12-3. According to the value of -4, the contents of the definition of the specified data structure table are sequentially specified and read out in skeleton units from the beginning. As a result, the data read from the base part data library 12-5 is transferred to the main control unit 12-.
Sent to 6. The main control unit 12-6 generates contour data based on the base part data and the magnification data from the part placement device 11, develops the contour data in the bitmap print buffer 13, and increments the value of the part pointer 12-4.

【0013】図9はフォントデータライブラリ11−5
に格納されているデータ構造表を示したものである。こ
のデータ構造表は各種の文字、上位パーツ毎に設けられ
1つの文字あるいは上位パーツに対応するデータ構造表
はNブロック(N=1、2……)構成で、1ブロックは
6バイト、したがってNブロック×6バイトにヘッダー
(2バイト)を加算してデータ量となっている。ヘッダ
ー変数(16ビット)は文字、上位パーツを構成するブ
ロック数(7ビット)等を定義するもので、例えば、文
字「仁」は“にんべん”(上位パーツ)と2本の横線
(ベースパーツ)とから成る3ブロック構成、“にんべ
ん”は2種類のベースパーツ、つまり斜めの払いと縦線
とから成る2ブロック構成で、そのブロック数がヘッダ
ー変数として定義されている。
FIG. 9 shows a font data library 11-5.
2 shows a data structure table stored in the data structure. This data structure table is provided for each character and upper part, and the data structure table corresponding to one character or upper part is composed of N blocks (N = 1, 2,...), And one block is 6 bytes, and therefore N The data amount is obtained by adding a header (2 bytes) to a block × 6 bytes. The header variable (16 bits) defines the character, the number of blocks (7 bits) constituting the upper part, and the like. For example, the character “jin” is “Ninben” (upper part) and two horizontal lines (base part). The “Ninben” is a two-block configuration composed of two types of base parts, that is, a slanted line and a vertical line, and the number of blocks is defined as a header variable.

【0014】各ブロックデータは第1変数、第2変数…
…第5変数とから成る。第1変数の詳細は図9の表外に
示す如く、第1変数(16ビット)のうち最上位ビット
が“0”のとき他の文字フォントを呼び出すべきことを
定義し、残りの15ビットが文字識別コードとなり、こ
の残り15ビットで日本語のすべての文字コードを表わ
すことができる。第1変数の最上位ビットが“1”のと
きパーツを呼び出すべきことを定義し、上位2ビット目
が“0”のとき“へん”や“つくり”などの上位パーツ
を、“1”のときには通常の1画パーツ(ベースパー
ツ)を呼び出すべきことを定義する。なお、ベースパー
ツはせいぜい200種類位である為、ビット数は十分で
ある。第2変数、第3変数はパーツの配置位置を定義
し、第2変数はX座標値、第3変数はY座標値を示す。
第4変数、第5変数はパーツの倍率を定義し、第4変数
はX軸方向、第5変数はY軸方向を示す。
Each block data includes a first variable, a second variable,...
... the fifth variable. Details of the first variable, as shown in the table outside of FIG. 9, define that another character font should be called when the most significant bit of the first variable (16 bits) is "0", and the remaining 15 bits are It becomes a character identification code, and the remaining 15 bits can represent all Japanese character codes. Defines that the part should be called when the most significant bit of the first variable is "1". When the second most significant bit is "0", the upper part such as "Hen" or "Creation" is defined. Defines that a normal one-image part (base part) should be called. Since the number of base parts is at most about 200, the number of bits is sufficient. The second variable and the third variable define the arrangement position of the part, the second variable indicates the X coordinate value, and the third variable indicates the Y coordinate value.
The fourth and fifth variables define the magnification of the part, the fourth variable indicates the X-axis direction, and the fifth variable indicates the Y-axis direction.

【0015】図10はベースパーツデータライブラリ1
2−5に格納されているデータ構造表を示したものであ
る。ここで、ベースパーツはそれ以上分解することがで
きない最小の文字構成要素で、1骨格の他、2以上の骨
格から成るものも存在する。この為、データ構造表は骨
格数に対応してNブロック(N=1、2……)構成で、
1ブロックは4〜14バイト、したがってNブロック×
4〜14バイトにヘッダー(2バイト)を加算したデー
タ量となっている。ヘッダー変数(16ビット)のうち
7ビットでブロック数(骨格数)が定義されている。
FIG. 10 shows a base part data library 1
5 shows a data structure table stored in 2-5. Here, the base part is the smallest character component that cannot be further decomposed, and there is a character part composed of two or more skeletons in addition to one skeleton. For this reason, the data structure table has N blocks (N = 1, 2,...) Corresponding to the number of skeletons.
One block is 4 to 14 bytes, so N blocks ×
It is a data amount obtained by adding a header (2 bytes) to 4 to 14 bytes. The number of blocks (the number of skeletons) is defined by 7 bits of the header variable (16 bits).

【0016】各ブロックデータは骨格の形状によってそ
のデータ量が異なる。即ち骨格が直線の場合には第1変
数から第10変数までのデータ量となり、ベジェール曲
線の場合には第1変数から第14変数までのデータ量、
楕円の一部の場合には第1変数から第12変数までのデ
ータ量、更に小円の場合には第1変数から第4変数まで
のデータ量となる。第1変数(8ビット)はその下位2
ビットで骨格の形状(種類)を定義し、その値が“0
0”のときには直線、“01”のときにはベジェール曲
線、“10”のときには楕円の一部、“11”のときに
は小円を示す。第1変数において他のビット、つまり上
位6ビットは線端の形状を定義し、この6ビットのうち
上位3ビットは開始端の形状、他の3ビットは終了端の
形状を示す。なお、第1変数の線端形状は図10の表外
に示す如く、“000”が直線カット、“001”が半
円カット、……“111”が縦線終了の筆おきを示す。
このように線端形状は予め8種類用意されており、その
具体的形状は図11に示す。
Each block data has a different data amount depending on the shape of the skeleton. That is, when the skeleton is a straight line, the data amount is from the first variable to the tenth variable. When the skeleton is a Bezier curve, the data amount is from the first variable to the fourteenth variable.
In the case of a part of the ellipse, the data amount is from the first variable to the twelfth variable, and in the case of a small circle, the data amount is from the first variable to the fourth variable. The first variable (8 bits) is the lower 2
The skeleton shape (type) is defined by bits, and the value is "0".
A value of 0 indicates a straight line, a value of 01 indicates a Bezier curve, a value of 10 indicates a part of an ellipse, and a value of 11 indicates a small circle. The shape is defined, the upper 3 bits of the 6 bits indicate the shape of the starting end, and the other 3 bits indicate the shape of the ending end.The line end shape of the first variable is as shown outside the table of FIG. “000” indicates a straight line cut, “001” indicates a semicircle cut,..., “111” indicates the end of the vertical line.
As described above, eight types of wire end shapes are prepared in advance, and the specific shapes are shown in FIG.

【0017】第2変数〜第4変数は骨格形状が直線、ベ
ジェール曲線、楕円の一部の場合、太さを表わす肉付け
データを示し、小円の場合にはその大きさを示す。骨格
が直線の場合、第5変数〜第8変数は骨格データで線分
の開始点、終了点の位置座標を示す。骨格がベジェール
曲線の場合、第5変数〜第12変数は骨格データで、線
分の開始点、第1制御点、第2制御点、終了点の位置座
標を示す。骨格が楕円の一部の場合、第5変数〜第10
変数は楕円の中心座標、半径、開始角度、終了角度を示
す。骨格が直線の場合の第9変数、第10変数、またベ
ジェール曲線の場合の第13変数、第14変数、更に楕
円の一部の場合の第11変数、第12変数はそれぞれ開
始点の直線カット補正値、終了点の直線カット補正値を
示し、上位2ビットを除く残りの6ビットで補正値(+
31〜−32)が定義されている。この補正値は線端を
直線でカットした場合にカット面をどれだけ傾けるかを
示すもので、このカット面に沿って線端部品が付加され
る。他方、上位2ビットは書体変更用の制御データで、
この制御データは明朝体をゴシック体に変更するときに
用いられる。
The second to fourth variables indicate fleshing data indicating the thickness when the skeleton shape is a part of a straight line, a Bezier curve, or an ellipse, and indicate the size when the skeleton shape is a small circle. When the skeleton is a straight line, the fifth to eighth variables indicate the position coordinates of the start point and end point of the line segment in the skeleton data. When the skeleton is a Bezier curve, the fifth to twelfth variables are skeleton data and indicate the position coordinates of the start point, first control point, second control point, and end point of the line segment. When the skeleton is part of an ellipse, the fifth to tenth variables
The variables indicate the center coordinates, radius, start angle, and end angle of the ellipse. The ninth and tenth variables when the skeleton is a straight line, the thirteenth and fourteenth variables when a Bezier curve is used, and the eleventh and twelfth variables when part of an ellipse is a straight line cut at the start point. The correction value indicates the straight-line cut correction value at the end point, and the correction value (+
31 to -32) are defined. This correction value indicates how much the cut surface is inclined when the line end is cut by a straight line, and a line end component is added along the cut surface. On the other hand, the upper 2 bits are control data for font change,
This control data is used when changing the Mincho style to the Gothic style.

【0018】次に、本実施例の動作を図12〜図21を
参照して説明する。いま、「仁」という文字が印刷対象
としてパーツ配置装置11の印刷コードレジスタ11−
1に入力されたものとする。ここで、図12は「仁」と
いう文字を本実施例のパーツの持ち方にしたがって組み
立てたもので、「仁」は1つの上位パーツと2つのベー
スパーツに対応してそのパーツ識別コード、配置位置、
倍率を定義するデータによって成り立っている。
Next, the operation of this embodiment will be described with reference to FIGS. Now, the character “Jin” is to be printed and the print code register 11-
It is assumed that the number has been input to 1. Here, FIG. 12 is a diagram in which the characters “Jin” are assembled according to the way of holding the parts of this embodiment, and “Jin” corresponds to one upper part and two base parts, and their part identification codes and arrangements. position,
It is based on data that defines the magnification.

【0019】先ず、「仁」の文字コードが検索コードと
して検索コードレジスタ11−2にセットされると、図
13のフローチャートにしたがった動作が実行開始され
る。即ち、検索コードレジスタ11−2に「仁」の文字
コードがセットされると、フォントデータライブラリ1
1−5に格納されている「仁」という文字フォントのデ
ータ構造表を指定する先頭アドレスがライブラリアドレ
スインデックス11−4から索引されてライブラリアド
レスポインタ11−6にセットされる(ステップA
1)。次いでパーツポインタ11−7に初期値「1」が
セットされ、最初のパーツデータを指定する(ステップ
A2)。これによって「仁」の第1パーツである“にん
べん”がフォントデータライブラリ11−5から読み出
される(ステップA3)。すると、主制御部11−3は
フォントデータライブラリ11−5から読み出されたパ
ーツデータが他の文字フォントまたは上位パーツか否か
を調べるが(ステップA4)、この場合、第1パーツは
上位パーツであるので、ステップA5に進み、ライブラ
リアドレスポインタ11−6およびパーツポインタ11
−7の値をポインタスタックメモリ11−8に退避して
おく。次いで、主制御部11−3が“にんべん”を示す
コードを検索コードレジスタ11−2にセットすると、
このコードに対応してフォントデータライブラリ11−
5に格納されているデータ構造表を指定する先頭アドレ
スがライブラリアドレスインデックス11−4から索引
されてライブラリアドレスポインタ11−6にセットさ
れる(ステップA1)。次いで、このデータ構造表の第
1パーツを指定する為にパーツポインタ11−7に初期
値「1」をセットする(ステップA2)。ここで、“に
んべん”は斜めの線と縦の線の2本の線で構成されてい
るので、フォントデータライブラリ11−5からは先ず
その第1パーツである斜め線が読み出される(ステップ
A3)。この斜め線はそれ以上分解することができない
ベースパーツであるのでそのことがステップA4で検出
されてステップA6に進み、このベースパーツに関する
データ(パーツ識別コード、配置位置、倍率)をドット
データ変換装置12に送出する。
First, when the character code of "jin" is set as a search code in the search code register 11-2, the operation according to the flowchart of FIG. 13 is started. That is, when the character code of “jin” is set in the search code register 11-2, the font data library 1
The head address designating the data structure table of the character font "Jin" stored in 1-5 is indexed from the library address index 11-4 and set in the library address pointer 11-6 (step A).
1). Next, the initial value "1" is set to the parts pointer 11-7, and the first parts data is designated (step A2). As a result, "Ninben", which is the first part of "Jin", is read from the font data library 11-5 (step A3). Then, the main control unit 11-3 checks whether the part data read from the font data library 11-5 is another character font or a higher-order part (step A4). In this case, the first part is a higher-order part. Therefore, the process proceeds to step A5, where the library address pointer 11-6 and the part pointer 11
The value of -7 is saved in the pointer stack memory 11-8. Next, when the main control unit 11-3 sets a code indicating “Ninben” in the search code register 11-2,
The font data library 11-
The head address designating the data structure table stored in No. 5 is indexed from the library address index 11-4 and set in the library address pointer 11-6 (step A1). Next, an initial value "1" is set to the parts pointer 11-7 to designate the first part of the data structure table (step A2). Here, since "Ninben" is composed of two lines, a diagonal line and a vertical line, the diagonal line as the first part is first read from the font data library 11-5 (step A3). . Since this diagonal line is a base part that cannot be further decomposed, it is detected in step A4 and the process proceeds to step A6, where data (part identification code, arrangement position, magnification) relating to this base part is converted to a dot data conversion device. 12 is sent.

【0020】ここで、ドットデータ変換装置12は図1
4のフローチャートにしたがって動作する。いま、検索
コードレジスタ12−1に“にんべん”を構成する斜め
線のパーツ識別コードがセットされると、このコードに
対応してベースパーツデータライブラリ12−5に格納
されているデータ構造表を指定する先頭アドレスがライ
ブラリアドレスインデックス12−2から索引されてラ
イブラリアドレスポインタ12−3にセットされる(ス
テップB1)。次いで、このベースパーツの第1骨格を
指定する為にパーツポインタ12−4に初期値「1」を
セットする(ステップB2)。なお、この“にんべん”
の斜め線は1つの骨格から成り立っているが、ベースパ
ーツの中には一画でも2以上の骨格から成るものも存在
する為、先ず、その第1骨格を指定する。これによって
ベースパーツデータライブラリ12−5から第1骨格に
関するベースパーツデータを受け取ると(ステップB
3)、主制御部12−6は上述した書体変更用の制御デ
ータに基づいてショートベクトルの発生有無をチェック
する(ステップB4)。なお、後述するがショートベク
トルの発生を必要としないのは書体を明朝体からゴシッ
ク体に変更するときであり、通常はショートベクトルの
発生を必要とする為、ステップB5に進み、ショートベ
クトルを発生してビットマップ印刷バッファ13に書き
込む処理を行う。
Here, the dot data conversion device 12 is shown in FIG.
It operates according to the flowchart of FIG. Now, when the oblique line part identification code constituting "Ninben" is set in the search code register 12-1, the data structure table stored in the base part data library 12-5 is specified corresponding to this code. The leading address to be read is indexed from the library address index 12-2 and set in the library address pointer 12-3 (step B1). Next, an initial value "1" is set to the part pointer 12-4 to designate the first skeleton of the base part (step B2). In addition, this "Ninben"
Is composed of one skeleton. However, since some base parts include two or more skeletons, the first skeleton is designated first. Thus, when the base part data relating to the first skeleton is received from the base part data library 12-5 (step B)
3) The main control unit 12-6 checks whether or not a short vector has occurred based on the control data for changing the typeface described above (step B4). As will be described later, the generation of the short vector is not required when the typeface is changed from the Mincho style to the Gothic style. Normally, the generation of the short vector is required. A process for writing the data to the bitmap print buffer 13 is performed.

【0021】図15はこのショートベクトルへの変換・
バッファ書込処理を示したフローチャートである。な
お、ベースパーツは骨格データ、肉付けデータ、両端形
状データとから成る為、それに応じて3つのアウトライ
ンデータに変換される。即ち、第1は骨格のまわりに肉
付けされた形の輪郭(本体)であり、第2はこの本体の
開始点の線端形状を示す部分、第3は本体の終了点の線
端形状を示す部分である。このようにベースパーツは3
つのアウトラインデータをそれぞれ個別に自動作成して
それを重ね合せることによりビットマップ印刷バッファ
13上に展開させるが、その際、アウトラインデータの
発生は先ず本体のデータを発生させた後、線端部分のア
ウトラインを発生させる。いま、“にんべん”は図11
に示す如く、本体(斜め線)、線端部分(斜め線開始の
筆おき)とから成る為、先ず骨格形状およびその変数を
参照し(ステップC1)、それを用いて輪郭ベクトルデ
ータを発生し(ステップC2)、ビットマップ印刷バッ
ファ13に書き込む(ステップC3)。次いで、線端形
状および変数を参照し(ステップC4)、それを用いて
輪郭ベクトルデータを発生し(ステップC5)、ビット
マップ印刷バッファ13に書き込む(ステップC6)。
FIG. 15 shows the conversion to this short vector.
9 is a flowchart illustrating a buffer writing process. Since the base part is composed of skeleton data, flesh data, and both end shape data, it is converted into three outline data accordingly. That is, the first is a contour (body) of a shape fleshed around the skeleton, the second is a portion indicating the line end shape at the start point of the body, and the third is a line end shape at the end point of the body. Part. The base parts are 3
The outline data is developed on the bitmap print buffer 13 by automatically creating each of the outline data individually and superimposing the outline data. At this time, the outline data is generated first by generating the data of the main body and then generating the outline data. Generate an outline. Now, “Ninben” is shown in FIG.
As shown in (1), since it is composed of a main body (diagonal line) and a line end portion (every other brush at the start of the diagonal line), first, the skeleton shape and its variables are referred to (step C1), and contour vector data is generated using the reference. (Step C2), writing to the bitmap print buffer 13 (Step C3). Next, referring to the line end shape and variables (step C4), contour vector data is generated using the line end shapes (step C5) and written into the bitmap print buffer 13 (step C6).

【0022】図16は“にんべん”を構成する斜め線、
図17はその開始筆おき部品をビットマップ印刷バッフ
ァ13上に展開する様子を示したものである。先ず、図
16に示す様に骨格としてS0からS1までをベジェー
ル曲線、太さを表わす式として2次式が用いられる。即
ち、S0を支点(媒介変数i=0)、S1を終点(媒介
変数i=1)とし、その間はV=(VX、VY)として
表わされる。なお、VX、VYはiの関数で、VX=P
3+qi2+ri+s、VY=ti 3+ui2+wi+z
である。そして、iについて骨格と直角方向にAi2
Bi+Cだけ移動させた点が輪郭となる。なお、A、
B、Cは図10に示す如く、変数2=A、変数3=B、
変数4=Cの値である。ここで、各iについて骨格の両
側の点をX、Yをすると、
FIG. 16 shows a diagonal line constituting "Ninben".
FIG. 17 shows a bitmap printing buffer of the starting brush parts.
14 shows a state in which the data is developed on the key 13. First, figure
Bezier from S0 to S1 as skeleton as shown in Fig.16
A quadratic equation is used as an equation representing the curve and thickness. Immediately
S0 is the fulcrum (parameter i = 0), and S1 is the end point (mediation
Variable i = 1), and V = (VX, VY) during that time
Is represented. VX and VY are functions of i, and VX = P
iThree+ QiTwo+ Ri + s, VY = ti Three+ UiTwo+ Wi + z
It is. Then, i is Ai in the direction perpendicular to the skeleton.Two+
The point moved by Bi + C becomes the contour. A,
B and C are variables 2 = A, variables 3 = B,
Variable 4 = value of C. Here, for each i, both skeletons
When the points on the side are X and Y,

【数式】[Formula]

で表わすことができる。そこでiを、骨格のベジェール
及びAの値に適合した間隔で変化させつつX、Yを求め
ることにより、輪郭データ(ショートベクトル形式)が
求められることになる。なお、感じには、縦の直線や横
の直線が多く含まれており、この場合、縦の直線であれ
ばp=q=r=0かつt=u=0、横の直線であればt
=u=w=0かつp=q=0であり、又はベジェール制
御点はない。更に、その場合は余程品質にこだわった物
でない限りA=B=0である。よって、線の太さが明確
にcで表された直線を引けば良いことになるので、上記
計算式を実行する必要もなくなる。さらに何本も横線が
ある時で、小さく縮小した時などに従来は座標計算の量
子化誤差で線の太さがまちまちになることがあったが今
回はどの直線も同じ様に太さが縮小される為、同じ太さ
が明示されることとなり、太さのバラつきを防ぐことが
でき、かつ直線をそのまま繰り返し書くだけであるので
従来の方式(エッジ検出→塗り潰し)よりもはるかに早
く描画することが可能となる。
Can be represented by Therefore, the contour data (short vector format) is obtained by determining X and Y while changing i at intervals suitable for the values of Bezier and A of the skeleton. The feeling includes many vertical straight lines and horizontal straight lines. In this case, p = q = r = 0 and t = u = 0 for a vertical straight line, and t = u = 0 for a horizontal straight line.
= U = w = 0 and p = q = 0 or there is no Bezier control point. Further, in that case, A = B = 0 unless the quality is not so particular. Therefore, since it is only necessary to draw a straight line whose line thickness is clearly expressed by c, it is not necessary to execute the above-mentioned formula. In addition, when there are many horizontal lines, when the line is reduced to a small size, the line thickness may have been varied due to the quantization error of the coordinate calculation in the past, but this time all lines are reduced in the same way Since the same thickness is specified, the variation in thickness can be prevented, and since the straight line is repeatedly written as it is, drawing is performed much faster than the conventional method (edge detection → fill). It becomes possible.

【0023】次に、線端部品の展開であるが、線端部品
についてはその種類が示してあるだけであるので自動的
に発生せねばならない。図17の例では、図10の表外
に示した如く「010」型の部品を付ける場合である。
なお、ベースパーツのデータ構造表において、第1変数
の上位6ビットが線端情報、その他が本体情報となる
為、図17の場合、開始端が斜め線開始の筆おき、終了
端は太さが0の為直線カット(半円カットでも良い)、
骨格がベジェールなので第1変数は「0100000
1」となる。このうち上位6ビットと、第13変数の内
容からP1’とP2’の値を算出する。なお、P1、P
2は、ベジェール開始点なので、媒介変数=0のときの
X、Yそれぞれの関数の媒介変数による微分値から中心
線の垂直方向を求め、その方向に開始端の太さ分を中心
線開始端から移動することで求められる。P1’、P
2’は媒介変数の値を第13変数の値分−(P1’)、
+(P2’)して計算すれば求めることができる。次に
P1’とP2’をそれぞれ開始点、終了点とする直線
で、太さが0から暫時太くなり、終了点において半円に
接続される輪郭ベクトルと定義することで、「010」
型の線端部品は第1変数が「00000100」となる
ベースパーツとして取り扱うことができ、ビットマップ
印刷バッファ13上にその輪郭データを展開することが
可能となる。
Next, regarding the development of the line end part, the type must be automatically generated for the line end part because only the type is indicated. In the example of FIG. 17, a “010” type component is attached as shown outside the table of FIG.
In the data structure table of the base parts, the upper 6 bits of the first variable are the line end information and the other are the main body information. In FIG. 17, the start end is the diagonal line start brush and the end end is the thickness. Is 0, so a straight line cut (may be a semicircle cut),
Since the skeleton is Bezier, the first variable is "0100000
1 ". The values of P1 'and P2' are calculated from the upper 6 bits and the contents of the thirteenth variable. Note that P1, P
Since 2 is the Bezier starting point, the vertical direction of the center line is obtained from the differential value of each function of X and Y when the parameter is 0, and the thickness of the starting end is calculated in that direction by the center line starting end. Required by moving from. P1 ', P
2 ′ represents the value of the parameter as the value of the thirteenth variable− (P1 ′),
+ (P2 ') and calculate. Next, a straight line having P1 ′ and P2 ′ as the start point and the end point, respectively, has a thickness which is temporarily increased from 0 and is connected to a semicircle at the end point, thereby defining “010”.
The line end part of the pattern can be handled as a base part whose first variable is “00000100”, and its contour data can be developed on the bitmap print buffer 13.

【0024】これによってビットマップ印刷バッファ1
3には“にんべん”を構成する筆おき付きの斜め線が展
開される。これによってショートベクトルの発生・バッ
ファ書込処理(図14のステップB5)が終えると、ス
テップB6に進み、パーツポインタ12−4に「1」を
加算してその値を更新するが、“にんべん”の斜め線は
1つの骨格から成る為、ステップB7で骨格終了が検出
されてドットデータ変換装置12はその斜め線に対する
展開動作を終了する。
Thus, the bitmap print buffer 1
In FIG. 3, a diagonal line with a brush is formed which constitutes “Ninben”. When the short vector generation / buffer writing process (step B5 in FIG. 14) is completed, the process proceeds to step B6, where "1" is added to the part pointer 12-4 to update its value. Since the oblique line is composed of one skeleton, the end of the skeleton is detected in step B7, and the dot data conversion device 12 ends the developing operation for the oblique line.

【0025】次に、パーツ配置装置11においては、図
13のステップA7に進み、パーツポインタ11−7に
「1」を加算してその値を更新する。これによってパー
ツポインタ11−7の値は「2」となるが、“にんべ
ん”は2つのパーツから成る為、ステップA8でパーツ
終了は検出されず、ステップA3に戻り、“にんべん”
の2番目のパーツである縦線を読み込む。この場合、縦
線はベースパーツである為、ステップA4からステップ
A6に進み、この縦線に関するベースパーツデータをド
ットデータ変換装置12に送る。これによって、ドット
データ変換装置12においては縦線のアウトラインフォ
ントを発生してビットマップ印刷バッファ13上に展開
する。次いで、ステップA7に進みパーツポインタ11
−7の値を更新すると、その値は“にんべん”のパーツ
数「2」を越える為、ステップA8でパーツ終了が検出
される。
Next, the part placement device 11 proceeds to step A7 in FIG. 13 and adds "1" to the part pointer 11-7 to update its value. As a result, the value of the part pointer 11-7 becomes "2". However, since "Ninben" is composed of two parts, the end of the part is not detected in step A8, and the process returns to step A3 to return to "Ninben".
Read the vertical line that is the second part of. In this case, since the vertical line is a base part, the process proceeds from step A4 to step A6, and the base part data relating to this vertical line is sent to the dot data conversion device 12. As a result, the dot data converter 12 generates a vertical outline font and develops it on the bitmap print buffer 13. Next, the process proceeds to step A7, where the parts pointer 11
When the value of -7 is updated, the value exceeds the number of parts "2" of "Ninben", so that the end of the parts is detected in step A8.

【0026】このようにして“にんべん”をビットマッ
プ印刷バッファ13上に展開し終ったら、ポインタスタ
ックメモリ11−8にデータが退避されているか否かを
調べるが(ステップA9)、いま「仁」の文字に関して
その第1パーツを指定するポインタ値がポインタスタッ
クメモリ11−8に退避されているので、それをポイン
タスタックメモリ11−8から戻し(ステップA1
0)、その値を更新する(ステップA7)。これによっ
て、「仁」の第2パーツが指定される。この場合、第2
パーツは上下2本の横線のうち上の横線で、この横線も
ベースパーツである為、その輪郭データがビットマップ
印刷バッファ13上に展開される。続いて、第3パーツ
が指定され、下の横線がビットマップ印刷バッファ13
上に展開されるが、この場合、同じベースパーツが骨格
の長さおよび配置位置を変えてビットマップ印刷バッフ
ァ13上に展開される。
After the “Ninben” has been developed in the bitmap print buffer 13 in this way, it is checked whether or not data has been saved in the pointer stack memory 11-8 (step A9). Since the pointer value designating the first part of the character is saved in the pointer stack memory 11-8, it is returned from the pointer stack memory 11-8 (step A1).
0), and the value is updated (step A7). Thereby, the second part of “jin” is designated. In this case, the second
The part is the upper horizontal line of the two upper and lower horizontal lines, and since this horizontal line is also a base part, its outline data is developed on the bitmap print buffer 13. Subsequently, the third part is designated, and the lower horizontal line is the bitmap print buffer 13.
In this case, the same base part is developed on the bitmap print buffer 13 by changing the length and the arrangement position of the skeleton.

【0027】以上の如く、「仁」という文字フォントは
1つの上位パーツと2つのベースパーツに対応してその
パーツ識別コード、配置位置、倍率を定義するデータだ
けで成り立っている為、従来の様に文字の輪郭を座標列
で持つものに比べデータ量を大幅に削減することができ
る。
As described above, the character font "Jin" consists only of data defining the part identification code, arrangement position, and magnification corresponding to one upper part and two base parts. Therefore, the data amount can be significantly reduced as compared with the case where the outline of a character is represented by a coordinate sequence.

【0028】図18は「i」という文字フォントを3つ
横に並べることにより他の文字「iii」が構成されるこ
とを示している。同様に図2で示した「完」は“う冠”
と他の文字フォント「元」を利用して構成することがで
きる。このように本実施例においては、他の文字フォン
トもパーツとして利用可能な為、全体的にデータ量の大
幅な削減が可能となる。
FIG. 18 shows that another character "iii" is formed by arranging three character fonts "i" horizontally. Similarly, "final" shown in FIG.
And other character fonts "original". As described above, in this embodiment, other character fonts can also be used as parts, so that the overall data amount can be significantly reduced.

【0029】一方、文字を構成する線の中心である骨格
と、この骨格に肉付けされる骨格からの太さを示すデー
タを別々に持ち、かつ2次式で太さを表わすようにした
為、太さは一定となり、縮少した場合の横線、縦線の太
さのバラツキはなく、従来のドットフォントに比べて高
品質フォントを高速に出力することができる。更に、骨
格、太さを独立のデータとする為に、太さを変えずに形
を変えたり、形を変えずに太さを変えることもできる。
On the other hand, since the skeleton which is the center of the line constituting the character and the data indicating the thickness from the skeleton which is fleshed out to this skeleton are separately provided, and the thickness is represented by a quadratic expression, The thickness is constant, there is no variation in the width of the horizontal and vertical lines when the width is reduced, and a high-quality font can be output faster than a conventional dot font. Furthermore, in order to make the skeleton and the thickness independent data, the shape can be changed without changing the thickness, or the thickness can be changed without changing the shape.

【0030】他方、文字構成要素であるベースパーツを
線本体と線端部品の形で記憶し、線端部品はその形状を
定義するだけで自動的に生成されると共にこの線端部品
の大きさはそれが接続される線本体の太さに応じたもの
となる為、線端部品をその種類、大きさに応じて用意し
ておかなくても良く、全体的にデータ量の削除が可能と
なる。また、すべてが輪郭ベクトルの為、パーツ化が容
易となる。次に、明朝体をゴシック体に変更する場合に
ついて説明する。
On the other hand, a base part which is a character component is stored in the form of a line body and a line end part. The line end part is automatically generated only by defining its shape, and the size of the line end part is determined. Is based on the thickness of the wire body to which it is connected, so it is not necessary to prepare wire end parts according to their type and size, and it is possible to delete the entire data amount Become. Further, since all are contour vectors, it is easy to make parts. Next, a case where the Mincho style is changed to the Gothic style will be described.

【0031】図19は明朝体の具体例を示し、この明朝
体を基本書体とし、その太さを一定に線の両端を円にす
ることで図20に示す様なゴシック体を得ることができ
る。この場合、上述したベースパーツデータライブラリ
12−5において、その第1変数の下位2ビットが「1
1」でない場合、つまり、骨格の形状が直線、ベジェー
ル曲線、楕円の一部の場合に、第2変数および第3変数
を“0”に、第4変数を一定値に、しかも第1変数の線
端形状「010」、「110」などを「001」に置き
換えることでゴシック体を得ることができるが、図20
に示すゴシック体では文字「あ」の縦線で筆をおくとこ
ろや横線で跳ねのところで不自然な線(図中ハッチング
を付して示す)が発生している。
FIG. 19 shows a specific example of the Mincho font. The Mincho font is used as a basic typeface, and the thickness of the line is made constant at both ends to obtain a Gothic font as shown in FIG. Can be. In this case, in the base part data library 12-5 described above, the lower two bits of the first variable are set to “1”.
1 ", that is, when the shape of the skeleton is a straight line, Bezier curve, or a part of an ellipse, the second and third variables are set to" 0 ", the fourth variable is set to a constant value, and the first variable is By replacing the line end shapes “010”, “110” and the like with “001”, a Gothic body can be obtained.
In the Gothic type shown in Fig. 7, an unnatural line (shown by hatching in the figure) occurs when a vertical line of the character "A" is used to place a brush or a horizontal line is used to bounce.

【0032】このような線を削除するには上述した書体
変更用の制御データにその旨を設定しておく。即ち、図
10において、TS(開始点の直線カット補正値)、T
E(終了点の直線カット補正値)を定義する変数の上位
2ビットは書体変更用の制御データであり、このデータ
を用いてショートベクトルの発生不要を宣言しておけ
ば、図14のステップB4でそのことが検出されてステ
ップB5のショートベクトル発生処理はスキップされ
る。したがって、「あ」の横線が3つの骨格、つまり第
1骨格……筆おきの部分、第2骨格……横線の部分、第
3骨格……跳ねの部分から成れば、その第3骨格につい
てショートベクトルの発生不要を設定しておく。同様に
「あ」の縦線が2つの骨格、つまり第1骨格……筆おき
の部分、第2骨格……縦線の部分から成れば、その第1
骨格についてショートベクトルの発生不要を設定してお
く。これによって図21に示す様に不自然な線が無いバ
ランスの取れたゴシック体文字を得ることができる。即
ち、ある1つの書体を基本とし、その輪郭データを加工
することにより他の書体文字を得る場合、元の書体が持
つ不自然な線を消すことができるので、バランスのとれ
た文字を印刷することができる。
To delete such a line, that effect is set in the control data for changing the typeface described above. That is, in FIG. 10, TS (straight line cut correction value at the starting point), T
The upper two bits of the variable defining E (the straight-line cut correction value at the end point) are control data for changing the typeface, and if this data is used to declare that the generation of a short vector is unnecessary, step B4 in FIG. The short vector generation processing in step B5 is skipped. Therefore, if the horizontal line of “A” is composed of three skeletons, that is, the first skeleton..., Every brush, the second skeleton... The horizontal line, and the third skeleton... Set the generation of short vector unnecessary. Similarly, if the vertical line “A” is composed of two skeletons, that is, a first skeleton..., A portion of every other brush, a second skeleton.
The generation of short vectors is unnecessary for the skeleton. As a result, as shown in FIG. 21, a balanced Gothic character without any unnatural lines can be obtained. In other words, if one typeface is used as a basis and another typeface character is obtained by processing the outline data, unnatural lines of the original typeface can be erased, so that balanced characters are printed. be able to.

【0033】なお、上記実施例では太さを表わすのに2
次式を用いたがこれは3次以上の多項式でも良く、その
場合、より多彩な太さの変化が可能となる。
In the above embodiment, the thickness is represented by 2
The following equation was used, but this may be a polynomial of degree 3 or higher, in which case a more varied thickness can be changed.

【0034】[0034]

【発明の効果】この発明によれば、文字を構成する線の
骨格の座標を示す関数により導かれる骨格線上の座標、
接線の傾き値及び、n次多項式から導かれる骨格からの
距離に基づいてベクトルフォントの輪郭座標位置を順次
算出してベクトルフォントを作成することができるの
で、文字を構成する線の太さを変えずに形を変えたり、
形を変えずに太さを変えることができると共に、形や太
さを変えたとしても曲線部分はなめらかで奇麗なものと
なり、高品質フォントを得ることが可能となる。
According to the present invention, coordinates on a skeleton line derived by a function indicating coordinates of a skeleton of a line constituting a character,
A vector font can be created by sequentially calculating the outline coordinate position of the vector font based on the inclination value of the tangent and the distance from the skeleton derived from the n-th order polynomial, so that the thickness of the line constituting the character can be changed. Change shape without
The thickness can be changed without changing the shape, and even if the shape and thickness are changed, the curved portion becomes smooth and beautiful, and a high-quality font can be obtained.

【図面の簡単な説明】[Brief description of the drawings]

【図1】この発明の機能ブロック図。FIG. 1 is a functional block diagram of the present invention.

【図2】実施例において各種パーツを組み立てることに
より文字「完」を構築する具体例を示した図。
FIG. 2 is a diagram showing a specific example of constructing a character “end” by assembling various parts in the embodiment.

【図3】ベースパーツ、上位パーツのデータ構造の概要
を示した図。
FIG. 3 is a diagram showing an outline of a data structure of a base part and an upper part.

【図4】ベースパーツの骨格を変形させた例を示した
図。
FIG. 4 is a diagram showing an example in which a skeleton of a base part is deformed.

【図5】図4と同様にベースパーツの骨格を変形させた
他の例を示した図。
FIG. 5 is a view showing another example in which the skeleton of the base part is deformed similarly to FIG. 4;

【図6】実施例における文字フォント出力装置の全体構
成を示したブロック図。
FIG. 6 is a block diagram showing the overall configuration of a character font output device according to the embodiment.

【図7】図6で示したパーツ配置装置11のブロック構
成図。
FIG. 7 is a block diagram of the parts placement device 11 shown in FIG. 6;

【図8】図6で示したドットデータ変換装置12のブロ
ック構成図。
FIG. 8 is a block diagram of the dot data conversion device 12 shown in FIG. 6;

【図9】図7で示したフォントデータライブラリ11−
5に格納されているデータ構造表を示した図。
FIG. 9 shows a font data library 11- shown in FIG.
The figure which showed the data structure table stored in No.5.

【図10】図8で示したベースパーツデータライブラリ
12−5に格納されているデータ構造表を示した図。
FIG. 10 is a view showing a data structure table stored in a base part data library 12-5 shown in FIG. 8;

【図11】図8で示した線端形状を具体的に示す図。FIG. 11 is a view specifically showing the line end shape shown in FIG. 8;

【図12】「仁」という文字がパーツの組み立てによっ
て構築される様子を示した図。
FIG. 12 is a diagram showing a state in which a character “Jin” is constructed by assembling parts.

【図13】パーツ配置装置11の動作を示したフローチ
ャート。
FIG. 13 is a flowchart showing the operation of the parts placement device 11;

【図14】ドットデータ変換装置12の動作を示したフ
ローチャート。
FIG. 14 is a flowchart showing the operation of the dot data conversion device 12.

【図15】図14で示したショートベクトル発生・バッ
ファ書込処理の詳細を示すフローチャート。
FIG. 15 is a flowchart showing details of a short vector generation / buffer writing process shown in FIG. 14;

【図16】斜め線を展開する場合を例に挙げて図15の
処理内容を説明する為の図。
FIG. 16 is a view for explaining the processing contents of FIG. 15 by taking as an example a case where a diagonal line is developed;

【図17】斜め線の開始筆おき部品を展開する場合を例
に挙げて図15の処理内容を説明する為の図。
FIG. 17 is a diagram for explaining the processing contents of FIG. 15 by taking as an example a case where a starting brush-placed component of an oblique line is developed.

【図18】文字自体をパーツとして他の文字が構築され
る場合の具体例を示した図。
FIG. 18 is a view showing a specific example in a case where another character is constructed by using the character itself as a part.

【図19】明朝体の文字形態を具体的に示した図。FIG. 19 is a view specifically showing a Mincho type character form.

【図20】図19の明朝体文字をゴシック体文字に変更
した例を示した図。
FIG. 20 is a diagram showing an example in which Mincho characters in FIG. 19 are changed to Gothic characters.

【図21】図20で示したゴシック体文字から不自然な
線を消去したゴシック体の出力例を示した図。
21 is a view showing an output example of a Gothic font in which an unnatural line is deleted from the Gothic font shown in FIG. 20;

【図22】従来例を説明する為の図。FIG. 22 is a view for explaining a conventional example.

【符号の説明】[Explanation of symbols]

11 パーツ配置装置 12 ドットデータ変換装置 12−2 ライブラリアドレスインデックス 12−5 ベースパーツデータライブラリ 12−6 主制御部 13 ビットマップ印刷バッファ 14 プリンタ Reference Signs List 11 parts placement device 12 dot data conversion device 12-2 library address index 12-5 base parts data library 12-6 main control unit 13 bitmap print buffer 14 printer

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI B41J 3/12 G (58)調査した分野(Int.Cl.7,DB名) G09G 5/24 B41J 2/485 G06F 17/21 G06T 5/00 G06T 11/20 ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 identification code FI B41J 3/12 G (58) Investigated field (Int.Cl. 7 , DB name) G09G 5/24 B41J 2/485 G06F 17 / 21 G06T 5/00 G06T 11/20

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】文字を構成する線の骨格を座標を示す関数
記憶する骨格データ記憶手段と、 n次多項式で骨格からの距離を表した距離データ記憶手
段と、 前記骨格データ記憶手段の関数により導かれる骨格線上
の座標、接線の傾き値及び、前記距離データ記憶手段の
n次多項式から導かれる骨格からの距離に基づいてベク
トルフォントの輪郭座標位置を順次算出してベクトルフ
ォントを作成するベクトルフォント作成手段と、 このベクトルフォント作成手段によって作成されたベク
トルフォントを出力する出力手段と、 を具備したことを特徴とするベクトルフォント出力装
置。
1. A function indicating coordinates of a skeleton of a line constituting a character.
Distance data storage hands in representing the skeleton data storing means for storing the distance from the skeleton polynomial of degree n
Steps and on a skeleton line derived by a function of the skeleton data storage means
Of the coordinates, the tangent inclination value, and the distance data storage means.
vector based on the distance from the skeleton derived from the nth degree polynomial
A vector font, comprising: a vector font creating means for sequentially calculating contour coordinate positions of a font font to create a vector font; and an output means for outputting a vector font created by the vector font creating means. Output device.
JP3139489A 1991-05-16 1991-05-16 Vector font output device Expired - Fee Related JP3008555B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3139489A JP3008555B2 (en) 1991-05-16 1991-05-16 Vector font output device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3139489A JP3008555B2 (en) 1991-05-16 1991-05-16 Vector font output device

Publications (2)

Publication Number Publication Date
JPH04340592A JPH04340592A (en) 1992-11-26
JP3008555B2 true JP3008555B2 (en) 2000-02-14

Family

ID=15246454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3139489A Expired - Fee Related JP3008555B2 (en) 1991-05-16 1991-05-16 Vector font output device

Country Status (1)

Country Link
JP (1) JP3008555B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306328B2 (en) * 2009-01-26 2012-11-06 Mitsubishi Electric Research Laboratories Method for converting outline characters to stylized stroke characters

Also Published As

Publication number Publication date
JPH04340592A (en) 1992-11-26

Similar Documents

Publication Publication Date Title
JP3145509B2 (en) Character generation method and device
JP3437037B2 (en) Character pattern generator
JPH0481892A (en) Outline data processor
JP3330277B2 (en) Character pattern generator
JP3008555B2 (en) Vector font output device
JPH0812544B2 (en) Character font generator
US5542050A (en) Font information transfer system
JPH05232926A (en) Character code generating device
JPH04340590A (en) Character font output device
JPH04340591A (en) Vector font output device
JP3055187B2 (en) Contour data processing device
JPH04340159A (en) Multi-calligaphic style output device
JPS62211692A (en) Preparation system for character of varied size
JP3066060B2 (en) Polygonal approximation method for Besee curve section
JP2785929B2 (en) Character processor
JP2569489B2 (en) Brush character output device
JP2995311B2 (en) Gaiji font creation device
JPH01272460A (en) Method and apparatus for generating character
JP3084817B2 (en) Character output device
JPH05273958A (en) Outline data processor
JP2856604B2 (en) Character processor
JP2861201B2 (en) Data converter
JP2000231556A (en) Information processor, information processing method and storage medium
JPH09305160A (en) Character generator
Adams A dialogue of forms: letter and digital font design

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees