JPH04340591A - Vector font output device - Google Patents

Vector font output device

Info

Publication number
JPH04340591A
JPH04340591A JP3139487A JP13948791A JPH04340591A JP H04340591 A JPH04340591 A JP H04340591A JP 3139487 A JP3139487 A JP 3139487A JP 13948791 A JP13948791 A JP 13948791A JP H04340591 A JPH04340591 A JP H04340591A
Authority
JP
Japan
Prior art keywords
data
parts
skeleton
line end
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.)
Pending
Application number
JP3139487A
Other languages
Japanese (ja)
Inventor
Shin Mikuni
伸 三国
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 JP3139487A priority Critical patent/JPH04340591A/en
Publication of JPH04340591A publication Critical patent/JPH04340591A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To automatically generate a specified kind of line end parts only by specifying a line end shape and to control the size of line end parts corre sponding to the thickness of a line where the line end parts are connected. CONSTITUTION:A base part library stored in a dot data conversion device 12 is stored with skeleton data and thickness data by character constituent parts and also stored with the kinds of line end shapes. The dot data conversion device 12 generates contour data on the constituent parts with the skeleton data and thickness data and also generates contour data corresponding to the kinds of the line end shapes. In this case the dot data conversion device 12 generates contour data having thickness corresponding to the thickness of the line end parts of the constituent parts. A printer 14 adds the contour data on the line end parts to the contour data on the constituent parts and outputs them.

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 that creates and outputs a vector font from skeleton data of lines constituting a character and thickness data added to the skeleton.

【0002】0002

【従来の技術】従来、文書処理(日本語処理)を行うデ
ータ処理装置には、文書データを高品質に表示・印字出
力するベクトルフォント出力装置が備えられている。こ
のベクトルフォント出力装置には例えば文字を構成する
輪郭部分を座標列や関数列で表現したフォントデータが
個々の文字に対応させてフォントメモリに記憶されてい
る。このようにフォントデータは座標列や関数列であり
、その形状は固定され、図22に示す如く、線端形状で
ある横線の止め(ウロコ)の部分のデータまでも持たな
ければならない。
2. Description of the Related Art Conventionally, data processing devices that perform document processing (Japanese language processing) are equipped with vector font output devices that display and print out document data in high quality. In this vector font output device, for example, font data representing the outline of a character using a coordinate string or a function string is stored in a font memory in correspondence with each character. In this way, the font data is a coordinate string or a function string, and its shape is fixed, and as shown in FIG. 22, it must also have data for the scales of the horizontal lines, which are the line end shapes.

【0003】0003

【発明が解決しようとする課題】このように、線端形状
のデータまでも持つ必要がある為、データ量が多くなり
、字体を変えることも困難であった。そこで、図23に
示す様に文字の構成要素をパーツ化し、横線の止めなど
の線端部を共用することによりデータ量を少なくする方
法が考えられる。この方式の場合、図23に示す様に線
端の部品を交換することにより字形を変えることもでき
る。しかし、線端の部品はやはり用意しなければならず
、それに接続される線の太さが少しでも変ると、別の部
品を用意しなければならず、その結果、データ量が増え
るなどの不都合もあった。この発明の課題は、線端形状
を指定するだけで指定された種類の線端部品が自動的に
生成されると共にこの線端部品が接続される線の太さに
応じて線端部品の大きさを制御できるようにすることで
ある。
[Problems to be Solved by the Invention] As described above, since it is necessary to have data on the shape of the line ends, the amount of data becomes large and it is difficult to change the font. Therefore, as shown in FIG. 23, a method can be considered to reduce the amount of data by dividing the constituent elements of a character into parts and sharing line ends such as horizontal line stops. In the case of this method, the shape of the characters can be changed by replacing the parts at the end of the line, as shown in FIG. However, the parts at the end of the line must still be prepared, and if the thickness of the line connected to it changes even slightly, another part must be prepared, resulting in inconveniences such as an increase in the amount of data. There was also. The problem of this invention is to automatically generate a line end component of the specified type by simply specifying a line end shape, and to adjust the size of the line end component according to the thickness of the line to which this line end component is connected. The aim is to be able to control the

【0004】0004

【課題を解決するための手段】この発明の手段は次の通
りである。第1の記憶手段1(図1の機能ブロック図を
参照、以下同じ)は、文字構成部品毎に骨格データと太
さデータを記憶する。ここで、骨格データは例えば文字
構成部品の中心を通る直線、ベジェール曲線等であり、
太さデータは骨格からの距離をn次多項式で表わしたも
のである。第2の記憶手段2は文字構成部品毎にその線
端形状の種類を記憶する。ここで、線端形状の種類とし
ては筆おき、筆止め等がある。第1の輪郭データ作成手
段3は第1の記憶手段1に記憶されている骨格データと
太さデータとから構成部品の輪郭データを作成する。第
2の輪郭データ作成手段4は第2の記憶手段2に記憶さ
れている線端形状の種類に対応してその輪郭データを作
成する際に、構成部品の線端部の太さに応じた大きさを
持った輪郭データを作成する。出力手段5は第1の輪郭
データ作成手段3によって作成された構成部品の輪郭デ
ータに第2の輪郭データ作成手段4によって作成された
線端部の輪郭データを付加して出力する印字装置や表示
装置等である。
[Means for Solving the Problems] The means of the present invention are as follows. A first storage means 1 (see the functional block diagram in FIG. 1; the same applies hereinafter) stores skeleton data and thickness data for each character component. Here, the skeleton data is, for example, a straight line passing through the center of the character component, a Bezire curve, etc.
The thickness data represents the distance from the skeleton using an n-dimensional polynomial. The second storage means 2 stores the type of line end shape for each character component. Here, the types of line end shapes include brush marks, brush stops, and the like. The first contour data creation means 3 creates contour data of a component from the skeleton data and thickness data stored in the first storage means 1. When creating contour data corresponding to the type of line end shape stored in the second storage means 2, the second contour data creation means 4 generates data according to the thickness of the line end of the component. Create contour data with size. The output means 5 is a printing device or a display that adds contour data of the line end portion created by the second contour data creation means 4 to the contour data of the component created by the first contour data creation means 3 and outputs the result. equipment, etc.

【0005】[0005]

【作用】この発明の手段の作用は次の通りである。第1
の輪郭データ作成手段3は第1の記憶手段1に記憶され
ている骨格データと太さデータとから構成部品の輪郭デ
ータを作成する。すると、第2の輪郭データ作成手段4
は第2の記憶手段2に記憶されている線端形状の種類に
対応してその輪郭データを作成する際、構成部品の線端
部の太さに応じた大きさを持った輪郭データを作成する
。このように構成部品の輪郭データと線端部の輪郭デー
タとは夫々別個に作成されると、出力手段5は構成部品
の輪郭データに線端部の輪郭データを付加して出力する
。したがって、線端形状を指定するだけで指定された種
類の線端部品が自動的に生成されると共にこの線端部品
が接続される線の太さに応じて線端部品の大きさを制御
することができる。
[Operation] The operation of the means of the present invention is as follows. 1st
The contour data creation means 3 creates contour data of the component from the skeleton data and thickness data stored in the first storage means 1. Then, the second contour data creation means 4
When creating outline data corresponding to the type of line end shape stored in the second storage means 2, create outline data having a size corresponding to the thickness of the line end of the component. do. When the contour data of the component and the contour data of the line end are created separately in this way, the output means 5 adds the contour data of the line end to the contour data of the component and outputs the result. Therefore, simply by specifying the line end shape, the specified type of line end part is automatically generated, and the size of the line end part is controlled according to the thickness of the line to which this line end part is connected. be able to.

【0006】[0006]

【実施例】以下、図2〜図21を参照して一実施例を説
明する。先ず、文字フォント等のデータ構造について説
明しておく。図2は文字構成要素を部品化した各種のパ
ーツを組み立てることにより文字フォント「完」が構築
される様子を示したもので、この文字フォントは大別す
ると、“へん”、“つくり”、“かんむり”等の部首を
構成する上位パーツである“う冠”と他の文字フォント
である「元」の文字をパーツとして組み合せたものとす
ることができる。上位パーツおよび文字フォントは複数
のベースパーツ等を字形に応じて組み合せて成るもので
あり、ベースパーツは一画の線、または点などの文字構
成要素を表わし、それ以上分解できない基本的なパーツ
で、それ自体で1つのアウトラインフォントを構成する
が、“う冠”(上位パーツ)は4つのベースパーツから
構成され、文字フォント「元」も複数のベースパーツ(
図示せず)から構成されている。
[Embodiment] An embodiment will be described below with reference to FIGS. 2 to 21. First, the data structure of character fonts etc. will be explained. Figure 2 shows how the character font "Kan" is constructed by assembling various parts made up of character components.This character font can be roughly divided into "hen", "tsukuri", " It can be a combination of the upper part ``Ukan'', which is the upper part of a radical such as ``Kanmuri'', and the character ``Gen'', which is another character font, as parts. Upper parts and character fonts are made up of multiple base parts, etc., combined according to the shape of the character.Base parts represent character constituent elements such as a single stroke of a line or a dot, and are basic parts that cannot be further decomposed. , itself constitutes one outline font, but "Ukan" (upper part) is composed of four base parts, and the character font "Gen" also has multiple 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. A base part consists of skeleton data, fleshing data, both end shape data, etc. Skeleton data represents a line segment passing through the center of a character component, and in this embodiment, the type (1) is one in which the skeleton is represented by a straight line. (2) The skeleton is represented by a Bézire curve. (3) There is a skeleton whose skeleton is represented by a part of an ellipse. Note that there are small circles such as symbols that do not have a skeleton, and these are also treated as part of the skeleton data. The fleshing data is the distance from the skeleton using a quadratic polynomial (Ax2+Bx+c)
The contour data is created by sequentially calculating the thickness from the skeleton based on the skeleton data and thickness data based on a quadratic polynomial. The shape data for both ends defines the shape of the line end, such as brush scales, circular ends, etc. Just by specifying the line end shape, the specified type of line end part is automatically generated, and this 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 a character font consists of the part number (or other character recognition number) of the upper part or base part, placement position, enlargement ratio, etc. For example, as shown in FIG. 1" can be constructed by reading out three times by changing the length and arrangement position of the skeleton. Note that the data structure of the higher-level parts also includes part numbers, placement positions, magnification ratios, etc., similar to the data structure of character fonts.

【0009】図4はベースパーツの骨格を横1/2倍、
縦1.4倍に変形させたもので、文字フォントや上位パ
ーツ内にはこのような倍率が定義されているが、この場
合、ベースパーツの太さや両端形状は変らず、ベースパ
ーツの縦横の形だけが変化するようになる。なお、図5
は上述した図4と同様の倍率を“斜めの払い”に対して
かけたものである。この様な斜め線の場合にも骨格の縦
横に倍率をかけてやるだけでよい。なお、この場合、太
さは常に骨格に対して直角方向の距離として定義されて
いる為、疑似的に回転させた様な斜め線が得られること
になる。
[0009] Figure 4 shows the skeleton of the base part, horizontally 1/2 times larger.
It is transformed to 1.4 times the height, and such magnification is defined in the character font and upper parts, but in this case, the thickness and shape of both ends of the base part do not change, and the height and width of the base part do not change. Only the shape will change. Furthermore, Figure 5
is a result in which the same magnification as in FIG. 4 described above is applied to the "diagonal sweep". Even in the case of diagonal lines like this, all you have to do is apply the magnification to the length and breadth of the skeleton. In this case, since the thickness is always defined as the distance in the direction perpendicular to the skeleton, a diagonal line that looks like it has been 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 a character font output device. The character font output device includes a parts placement device 11, a dot data conversion device 12, a bitmap print buffer 13, and a printer 14.
When the parts placement device 11 receives a character code to be printed along with a print command, it starts operating, sequentially extracts the base parts that make up the character, and sends the part number, placement position, and magnification data to the dot data conversion device 12. give. The dot data conversion device 12 calls the base part corresponding to this part number, changes the skeleton data by applying a magnification to the skeleton, generates contour data by referring to the fleshing data, etc., and stores it in the bitmap print buffer. 13 is performed for each base part at a designated placement position. Note that the contour data filling process is performed by the dot data converter 12 after the contour data is generated.
executed by The printer 14 is a thermal printer that prints out the 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の
値を必要に応じて退避するメモリである。主制御部11
−3はフォントデータライブラリ11−5から読み出さ
れたデータが文字あるいは上位パーツであればその文字
コードあるいはパーツコードを検索コードレジスタ11
−2にセットするが、ベースパーツであれば、このベー
スパーツに関するデータ(パーツ番号、配置位置、倍率
)をドットデータ変換装置12に与える。
FIG. 7 is a block diagram showing the configuration of the parts placement device 11. The print code register 11-1 is used to set the 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 the character code from the print code register 11-1 or the parts code (or character code) from the main control unit 11-3, and searches the library based on this character code or parts code. Address index 11-4 is font data library 11
The first address corresponding to the character or part in -5 is indexed. The font data library 11-5 stores data structure tables corresponding to various characters and upper-level parts. ” has a corresponding data structure table. Library address pointer 11
-6 is a pointer to which the start address obtained by referring to the library address index 11-4 is set, and the corresponding data structure table of the font data library 11-5 is specified according to this value. The parts pointer 11-7 is a pointer that sequentially specifies the definition contents of the data structure table specified by the value of the library address pointer 11-6 in units of parts from the beginning.
The data read from the controller 5 is taken into the main controller 11-3. The pointer stack memory 11-8 is a memory for saving the values of the library address pointer 11-6 and the parts pointer 11-7 as necessary. Main control unit 11
-3 is a code register 11 that searches for the character code or part code if the data read from the font data library 11-5 is a character or upper part.
-2, but if it is a base part, data regarding this base part (part number, placement position, magnification) 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にはパーツ配置装置11
からパーツ番号が検索コードとして入力され、主制御部
12−6にはパーツ配置装置11から配置位置、倍率が
入力されている。ライブラリアドレスインデックス12
−2は検索コードレジスタ12−1にセットされたパー
ツコードに基づいてベースパーツデータライブラリ12
−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 conversion device 1
2 are search code register 12-1, library address index 12-2, library address pointer 1
2-3, a parts pointer 12-4, a base parts data library 12-5, and a main control unit 12-6.
The part number is input as a search code from , and the placement position and magnification are input from the parts placement device 11 to the main control section 12-6. library address index 12
-2 is the base parts data library 12 based on the parts code set in the search code register 12-1.
The first address corresponding to the corresponding part in -5 is indexed. The base parts data library 12-5 stores data structure tables corresponding to various base parts, and the corresponding data structure table is specified according to the value of the library address pointer 12-3. In accordance with the value -4, the definition contents of this designated data structure table are sequentially designated and read out in skeletal units from the beginning. The data read from the base parts data library 12-5 by this is transferred to the main control unit 12-6.
sent to. The main control unit 12-6 generates contour data based on the base parts data and the magnification data from the parts placement device 11, expands it to the bitmap print buffer 13, and increments the value of the parts 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 the font data library 11-5.
This shows the data structure table stored in . This data structure table is provided for each character and upper part, and the data structure table corresponding to one character or upper part consists of N blocks (N=1, 2...), and one block is 6 bytes, so N The data amount is obtained by adding the header (2 bytes) to the block x 6 bytes. The header variable (16 bits) defines the character, the number of blocks that make up the upper part (7 bits), etc. For example, the character ``Jin'' consists of ``Ninben'' (upper part) and two horizontal lines (
"Ninben" is a 2-block composition consisting of two types of base parts, namely a diagonal sweep 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軸方向を示す。
[0014] Each block data has a first variable, a second variable...
...consists of a fifth variable. As shown outside the table in Figure 9, the details of the first variable define that when the most significant bit of the first variable (16 bits) is "0", another character font should be called, and the remaining 15 bits are This becomes a character identification code, and the remaining 15 bits can represent all Japanese character codes. Defines that a part should be called when the most significant bit of the first variable is “1”, and when the second most significant bit is “0”, high-order parts such as “hen” or “tsukuri” are called, and when it is “1”, a part is called. Defines what normal one-stroke parts (base parts) should be called. Note that since there are at most 200 types of base parts, the number of bits is sufficient. The second and third variables define the placement position of the parts,
The second variable indicates the X coordinate value, and the third variable indicates the Y coordinate value. The fourth variable and the fifth variable 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 the base parts data library 1.
2-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 in addition to one skeleton, there are also base parts that consist of two or more skeletons. For this reason, the data structure table consists of N blocks (N=1, 2...) corresponding to the number of skeletons.
One block is 4 to 14 bytes, so N blocks x
The data amount is 4 to 14 bytes plus the header (2 bytes). The number of blocks (number of skeletons) is defined in 7 bits of the header variable (16 bits).

【0016】各ブロックデータは骨格の形状によってそ
のデータ量が異なる。即ち骨格が直線の場合には第1変
数から第10変数までのデータ量となり、ベジェール曲
線の場合には第1変数から第14変数までのデータ量、
楕円の一部の場合には第1変数から第12変数までのデ
ータ量、更に小円の場合には第1変数から第4変数まで
のデータ量となる。第1変数(8ビット)はその下位2
ビットで骨格の形状(種類)を定義し、その値が“00
”のときには直線、“01”のときにはベジェール曲線
、“10”のときには楕円の一部、“11”のときには
小円を示す。第1変数において他のビット、つまり上位
6ビットは線端の形状を定義し、この6ビットのうち上
位3ビットは開始端の形状、他の3ビットは終了端の形
状を示す。なお、第1変数の線端形状は図10の表外に
示す如く、“000”が直線カット、“001”が半円
カット、……“111”が縦線終了の筆おきを示す。 このように線端形状は予め8種類用意されており、その
具体的形状は図11に示す。
The amount of data for each block data differs depending on the shape of the skeleton. In other words, if the skeleton is a straight line, the amount of data will be from the 1st variable to the 10th variable, and if the skeleton is a Bézire curve, the amount of data will be from the 1st variable to the 14th variable.
In the case of a part of an ellipse, the amount of data is from the first variable to the 12th variable, and in the case of a small circle, it is the amount of data from the first variable to the fourth variable. The first variable (8 bits) is its lower 2
The shape (type) of the skeleton is defined by the bit, and its value is “00”.
” indicates a straight line, “01” indicates a Bézire curve, “10” indicates a part of an ellipse, and “11” indicates a small circle.The other bits in the first variable, that is, the upper 6 bits, indicate the shape of the line end. The upper 3 bits of these 6 bits indicate the shape of the start end, and the other 3 bits indicate the shape of the end end.The line end shape of the first variable is as shown outside the table in FIG. 000" indicates a straight line cut, "001" indicates a semicircular cut, and..."111" indicates a brush stroke at the end of a vertical line. In this way, eight types of line end shapes are prepared in advance, and the specific shapes are shown in the figure. 11.

【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 representing the thickness when the skeleton shape is a straight line, Bezire curve, or part of 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 are skeleton data indicating the position coordinates of the starting point and ending point of the line segment. When the skeleton is a Bézire curve, the fifth to twelfth variables are skeleton data and indicate the position coordinates of the starting point, first control point, second control point, and end point of the line segment. If the skeleton is part of an ellipse, the fifth to tenth variables
The variables indicate the center coordinates, radius, starting angle, and ending angle of the ellipse. The 9th and 10th variables when the skeleton is a straight line, the 13th and 14th variables when it is a Bézire curve, and the 11th and 12th variables when it is part of an ellipse are the straight line cuts at the starting point, respectively. The correction value indicates the straight line cut correction value at the end point, and the remaining 6 bits excluding the upper 2 bits indicate 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 in a straight line, and the line end component is added along this cut surface. On the other hand, the upper two bits are control data for changing the font.
This control data is used when changing Mincho font to Gothic font.

【0018】次に、本実施例の動作を図12〜図21を
参照して説明する。いま、「仁」という文字が印刷対象
としてパーツ配置装置11の印刷コードレジスタ11−
1に入力されたものとする。ここで、図12は「仁」と
いう文字を本実施例のパーツの持ち方にしたがって組み
立てたもので、「仁」は1つの上位パーツと2つのベー
スパーツに対応してそのパーツ識別コード、配置位置、
倍率を定義するデータによって成り立っている。
Next, the operation of this embodiment will be explained with reference to FIGS. 12 to 21. Now, the character "Jin" is selected as a printing target in the print code register 11- of the parts placement device 11.
1 is input. Here, FIG. 12 shows the character "Jin" assembled according to the way the parts are held in this example. position,
It is made up of data that defines the magnification.

【0019】先ず、「仁」の文字コードが検索コードと
して検索コードレジスタ11−2にセットされると、図
13のフローチャートにしたがった動作が実行開始され
る。即ち、検索コードレジスタ11−2に「仁」の文字
コードがセットされると、フォントデータライブラリ1
1−5に格納されている「仁」という文字フォントのデ
ータ構造表を指定する先頭アドレスがライブラリアドレ
スインデックス11−4から索引されてライブラリアド
レスポインタ11−6にセットされる(ステップA1)
。次いでパーツポインタ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 "Jin" is set in the search code register 11-2, the font data library 1
The first address specifying 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 A1).
. Next, the initial value "1" is set to the parts pointer 11-7, and the first part data is specified (step A2
). As a result, "ninben", which is the first part of "jin", is read out 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 advances to step A5, and the library address pointer 11-6 and parts pointer 11-7 are
The value of 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 leading part that specifies the data structure table stored in the font data library 11-5 corresponds to this code. The address is indexed from the library address index 11-4 and set in the library address pointer 11-6 (step A1). Next, in order to specify the first part of this data structure table, the initial value "
1" (step A2). Here, since "Ninben" is composed of two lines, a diagonal line and a vertical line, the first part, the diagonal line, is first read out from the font data library 11-5 (step A3).
). Since this diagonal line is a base part that cannot be further disassembled, this is detected in step A4 and the process proceeds to step A6, where the data regarding this base part (part identification code, placement position, magnification) is sent to the dot data converter. Send on 12th.

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

【0021】図15はこのショートベクトルへの変換・
バッファ書込処理を示したフローチャートである。なお
、ベースパーツは骨格データ、肉付けデータ、両端形状
データとから成る為、それに応じて3つのアウトライン
データに変換される。即ち、第1は骨格のまわりに肉付
けされた形の輪郭(本体)であり、第2はこの本体の開
始点の線端形状を示す部分、第3は本体の終了点の線端
形状を示す部分である。このようにベースパーツは3つ
のアウトラインデータをそれぞれ個別に自動作成してそ
れを重ね合せることによりビットマップ印刷バッファ1
3上に展開させるが、その際、アウトラインデータの発
生は先ず本体のデータを発生させた後、線端部分のアウ
トラインを発生させる。いま、“にんべん”は図11に
示す如く、本体(斜め線)、線端部分(斜め線開始の筆
おき)とから成る為、先ず骨格形状およびその変数を参
照し(ステップC1)、それを用いて輪郭ベクトルデー
タを発生し(ステップC2)、ビットマップ印刷バッフ
ァ13に書き込む(ステップC3)。次いで、線端形状
および変数を参照し(ステップC4)、それを用いて輪
郭ベクトルデータを発生し(ステップC5)、ビットマ
ップ印刷バッファ13に書き込む(ステップC6)。
FIG. 15 shows the conversion to this short vector.
7 is a flowchart showing buffer write processing. Note that since the base part consists of skeleton data, fleshing data, and both end shape data, it is converted into three types of outline data accordingly. That is, the first is the contour (main body) of the fleshed-out shape around the skeleton, the second is the part that shows the shape of the line end at the starting point of this main body, and the third is the shape of the line end at the end point of the main body. It is a part. In this way, the base part automatically creates three pieces of outline data individually and overlays them to create the bitmap print buffer 1.
3. At this time, outline data is first generated for the main body, and then outlines for the line end portions are generated. Now, as shown in Figure 11, "Ninben" consists of a main body (diagonal line) and a line end part (brush mark at the beginning of the diagonal line), so first, refer to the skeletal shape and its variables (step C1), and then The contour vector data is generated using the image data (step C2), and written into the bitmap print buffer 13 (step C3). Next, the line end shape and variables are referred to (step C4), contour vector data is generated using it (step C5), and written to 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
i3+qi2+ri+s、VY=ti3+ui2+wi
+zである。そして、iについて骨格と直角方向にAi
2+Bi+Cだけ移動させた点が輪郭となる。なお、A
、B、Cは図10に示す如く、変数2=A、変数3=B
、変数4=Cの値である。ここで、各iについて骨格の
両側の点をX、Yをすると、
[0022] Figure 16 shows diagonal lines constituting “Ninben”;
FIG. 17 shows how the starting brushstroke component is developed on the bitmap print buffer 13. First, as shown in FIG. 16, a Bezire curve is used from S0 to S1 as a skeleton, and a quadratic equation is used as an equation representing the thickness. That is, S0 is the fulcrum (parameter variable i=0), S1 is the end point (parameter variable i=1), and the interval therebetween is expressed as V=(VX, VY). Note that VX and VY are functions of i, and VX=P
i3+qi2+ri+s, VY=ti3+ui2+wi
+z. Then, Ai in the direction perpendicular to the skeleton with respect to i
The point moved by 2+Bi+C becomes the contour. In addition, A
, B, and C are as shown in Figure 10, variable 2=A, variable 3=B
, variable 4=value of C. Here, for each i, if the points on both sides of the skeleton are X and Y, then

【数式】[Formula]

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

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

【0024】これによってビットマップ印刷バッファ1
3には“にんべん”を構成する筆おき付きの斜め線が展
開される。これによってショートベクトルの発生・バッ
ファ書込処理(図14のステップB5)が終えると、ス
テップB6に進み、パーツポインタ12−4に「1」を
加算してその値を更新するが、“にんべん”の斜め線は
1つの骨格から成る為、ステップB7で骨格終了が検出
されてドットデータ変換装置12はその斜め線に対する
展開動作を終了する。
As a result, bitmap print buffer 1
In 3, diagonal lines with brush marks forming the “Ninben” are developed. 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, but "Ninben" Since the diagonal line consists of one skeleton, the end of the skeleton is detected in step B7, and the dot data conversion device 12 ends the expansion operation for the diagonal line.

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

【0026】このようにして“にんべん”をビットマッ
プ印刷バッファ13上に展開し終ったら、ポインタスタ
ックメモリ11−8にデータが退避されているか否かを
調べるが(ステップA9)、いま「仁」の文字に関して
その第1パーツを指定するポインタ値がポインタスタッ
クメモリ11−8に退避されているので、それをポイン
タスタックメモリ11−8から戻し(ステップA10)
、その値を更新する(ステップA7)。これによって、
「仁」の第2パーツが指定される。この場合、第2パー
ツは上下2本の横線のうち上の横線で、この横線もベー
スパーツである為、その輪郭データがビットマップ印刷
バッファ13上に展開される。続いて、第3パーツが指
定され、下の横線がビットマップ印刷バッファ13上に
展開されるが、この場合、同じベースパーツが骨格の長
さおよび配置位置を変えてビットマップ印刷バッファ1
3上に展開される。
After "Ninben" has been expanded onto the bitmap print buffer 13 in this way, it is checked whether the data has been saved in the pointer stack memory 11-8 (step A9). Since the pointer value specifying the first part of the character has been saved in the pointer stack memory 11-8, it is returned from the pointer stack memory 11-8 (step A10).
, updates its value (step A7). by this,
The second part of “Jin” is specified. In this case, the second 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 contour data is developed on the bitmap print buffer 13. Next, the third part is specified and the lower horizontal line is developed on the bitmap print buffer 13, but in this case, the same base part is printed on the bitmap print buffer 1 with the skeleton length and placement position changed.
It is expanded on 3.

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

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

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

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

【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 a Mincho font. By using this Mincho font as a basic font, and keeping the thickness constant and making both ends of the lines circles, a Gothic font as shown in FIG. 20 can be obtained. Can be done. In this case, in the base parts data library 12-5 mentioned above, the lower two bits of the first variable are "1".
1", that is, when the shape of the skeleton is a straight line, Bézire curve, or 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 set to "0". A Gothic font can be obtained by replacing the line end shapes "010", "110", etc. with "001", but as shown in Figure 20
In the Gothic typeface shown in , unnatural lines (indicated by hatching in the figure) occur where the vertical line of the letter "a" is placed and where the horizontal line jumps.

【0032】このような線を削除するには上述した書体
変更用の制御データにその旨を設定しておく。即ち、図
10において、TS(開始点の直線カット補正値)、T
E(終了点の直線カット補正値)を定義する変数の上位
2ビットは書体変更用の制御データであり、このデータ
を用いてショートベクトルの発生不要を宣言しておけば
、図14のステップB4でそのことが検出されてステッ
プB5のショートベクトル発生処理はスキップされる。 したがって、「あ」の横線が3つの骨格、つまり第1骨
格……筆おきの部分、第2骨格……横線の部分、第3骨
格……跳ねの部分から成れば、その第3骨格についてシ
ョートベクトルの発生不要を設定しておく。同様に「あ
」の縦線が2つの骨格、つまり第1骨格……筆おきの部
分、第2骨格……縦線の部分から成れば、その第1骨格
についてショートベクトルの発生不要を設定しておく。 これによって図21に示す様に不自然な線が無いバラン
スの取れたゴシック体文字を得ることができる。即ち、
ある1つの書体を基本とし、その輪郭データを加工する
ことにより他の書体文字を得る場合、元の書体が持つ不
自然な線を消すことができるので、バランスのとれた文
字を印刷することができる。
In order to delete such a line, that effect is set in the font change control data 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 that defines E (straight line cut correction value at the end point) are control data for changing the font, and if this data is used to declare that short vectors do not need to be generated, step B4 in FIG. This is detected in step B5, and the short vector generation process in step B5 is skipped. Therefore, if the horizontal line of "A" consists of three skeletons, that is, the first skeleton...the part where the brush is placed, the second skeleton...the part of the horizontal line, and the third skeleton...the bouncing part, then about the third skeleton. It is set that short vectors do not need to be generated. Similarly, if the vertical line of "a" consists of two skeletons, that is, the first skeleton...the part of the brush stroke, and the second skeleton...the vertical line part, then the generation of short vectors is set to be unnecessary for the first skeleton. I'll keep it. As a result, well-balanced Gothic characters without unnatural lines can be obtained as shown in FIG. 21. That is,
When using one typeface as a base and processing its contour data to obtain characters from another typeface, it is possible to erase the unnatural lines of the original typeface, making it possible to print well-balanced characters. can.

【0033】なお、上記実施例では太さを表わすのに2
次式を用いたがこれは3次以上の多項式でも良く、その
場合、より多彩な太さの変化が可能となる。
Note that in the above embodiment, 2 is used to represent the thickness.
Although the following equation is used, it may also be a polynomial of degree 3 or higher, in which case it is possible to change the thickness more widely.

【0034】[0034]

【発明の効果】この発明によれば、線端形状を指定する
だけで指定された種類の線端部品が自動的に生成される
と共にこの線端部品が接続される線の太さに応じて線端
部品の大きさを制御することができるので、データ量の
大幅な削減が可能となる。
[Effects of the Invention] According to the present invention, simply by specifying the line end shape, the specified type of line end part is automatically generated, and the line end part is automatically generated according to the thickness of the line to which this line end part is connected. Since the size of the line end parts can be controlled, the amount of data can be significantly reduced.

【図面の簡単な説明】[Brief explanation of the drawing]

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

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

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

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

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

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

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

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

【図9】図7で示したフォントデータライブラリ11−
5に格納されているデータ構造表を示した図。
[Figure 9] Font data library 11- shown in Figure 7
5 is a diagram showing a data structure table stored in 5.

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

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

【図12】「仁」という文字がパーツの組み立てによっ
て構築される様子を示した図。
FIG. 12 is a diagram showing how the 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 the short vector generation/buffer write process shown in FIG. 14;

【図16】斜め線を展開する場合を例に挙げて図15の
処理内容を説明する為の図。
FIG. 16 is a diagram for explaining the processing content of FIG. 15, taking as an example the case of developing diagonal lines.

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

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

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

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

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

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

【図23】発明が解決しようとする課題を説明する為の
図。
FIG. 23 is a diagram for explaining the problem to be solved by the invention.

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

11  パーツ配置装置 12  ドットデータ変換装置 12−2  ライブラリアドレスインデックス12−5
  ベースパーツデータライブラリ12−6  主制御
部 13  ビットマップ印刷バッファ 14  プリンタ
11 Part 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

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】文字構成部品毎に骨格データと太さデータ
を記憶する第1の記憶手段と、文字構成部品毎にその線
端形状の種類を記憶する第2の記憶手段と、前記第1の
記憶手段に記憶されている骨格データと太さデータとか
ら構成部品の輪郭データを作成する第1の輪郭データ作
成手段と、前記第2の記憶手段に記憶されている線端形
状の種類に対応してその輪郭データを作成する際に、構
成部品の線端部の太さに応じた大きさを持った輪郭デー
タを作成する第2の輪郭データ作成手段と、前記第1の
輪郭データ作成手段によって作成された構成部品の輪郭
データに前記第2の輪郭データ作成手段によって作成さ
れた線端部の輪郭データを付加して出力する出力手段と
、を具備したことを特徴とするベクトルフォント出力装
置。
1. A first storage means for storing skeleton data and thickness data for each character component; a second storage means for storing a type of line end shape for each character component; a first contour data creation means for creating outline data of a component from the skeleton data and thickness data stored in the storage means; and a type of line end shape stored in the second storage means. a second contour data creation means for creating contour data having a size corresponding to the thickness of the line end of the component when creating the contour data correspondingly; and the first contour data creation means. A vector font output comprising: output means for adding and outputting line end contour data created by the second contour data creation means to the contour data of the component created by the means. Device.
JP3139487A 1991-05-16 1991-05-16 Vector font output device Pending JPH04340591A (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
JPH04340591A true JPH04340591A (en) 1992-11-26

Family

ID=15246402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3139487A Pending JPH04340591A (en) 1991-05-16 1991-05-16 Vector font output device

Country Status (1)

Country Link
JP (1) JPH04340591A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225692A (en) * 2007-03-09 2008-09-25 Fujitsu Ltd Image retrieval method, device and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225692A (en) * 2007-03-09 2008-09-25 Fujitsu Ltd Image retrieval method, device and program

Similar Documents

Publication Publication Date Title
JP3145509B2 (en) Character generation method and device
JPH0481892A (en) Outline data processor
JPH0812544B2 (en) Character font generator
JPH04340590A (en) Character font output device
US5867174A (en) Character/symbol generating device for generating character/symbol with a desired line thickness
JPH04340591A (en) Vector font output device
JPH04340592A (en) Vector font output device
JPH04340159A (en) Multi-calligaphic style output device
KR100227178B1 (en) Character generation device
JPS62211692A (en) Preparation system for character of varied size
JP3146771B2 (en) Font rasterizing apparatus and method
JP3066060B2 (en) Polygonal approximation method for Besee curve section
JPH04280296A (en) Contour data processing device
KR940001106B1 (en) Image processing method and apparatus therefor
JP2785929B2 (en) Character processor
JPH01272460A (en) Method and apparatus for generating character
JPH05273958A (en) Outline data processor
JP3055306B2 (en) Data output device
JP3084817B2 (en) Character output device
JP2856604B2 (en) Character processor
JP2861201B2 (en) Data converter
JP3087511B2 (en) Data converter
JPS60163170A (en) Character processing system
JP2803746B2 (en) Character processing method and apparatus
JP3082173B2 (en) Contour data processing device