JP3089795B2 - 文字記号発生装置 - Google Patents

文字記号発生装置

Info

Publication number
JP3089795B2
JP3089795B2 JP04063633A JP6363392A JP3089795B2 JP 3089795 B2 JP3089795 B2 JP 3089795B2 JP 04063633 A JP04063633 A JP 04063633A JP 6363392 A JP6363392 A JP 6363392A JP 3089795 B2 JP3089795 B2 JP 3089795B2
Authority
JP
Japan
Prior art keywords
segment
data
curve
character
segments
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
JP04063633A
Other languages
English (en)
Other versions
JPH05265431A (ja
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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP04063633A priority Critical patent/JP3089795B2/ja
Publication of JPH05265431A publication Critical patent/JPH05265431A/ja
Application granted granted Critical
Publication of JP3089795B2 publication Critical patent/JP3089795B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、輪郭線の形状によって
定義された文字・記号の構成線の太さを変換する装置に
関するものである。
【0002】
【従来の技術】従来、任意の大きさの文字・記号を高品
位に印字でき、又、斜体・回転等の変形が容易であるた
め、直線及び曲線で構成される文字や記号等の輪郭線の
形状を、各々の直線または曲線の区別を表す情報と該直
線または曲線のデータ点の座標値とにより表現するアウ
トラインフォントを記憶し、文字・記号を出力する装置
がプリンタやディスプレイ等で実用化されている。
【0003】これらのプリンタやディスプレイで文字・
記号の線幅を変更する場合には、直線では、ベクトルデ
ータの簡単な移動処理で済むが、曲線にあっては、先ず
データをショートベクトルデータに分割し、その分割し
たショートベクトルデータに対して移動処理を行ってい
た。
【0004】又、上述した装置で用いられるアウトライ
ンフォントを作成する装置で同様に文字・記号の線幅を
変更する場合には、ショートベクトルに分割した曲線を
再び曲線式に変換して曲線のデータとしていた。
【0005】又、曲線をショートベクトルに分割せずに
線幅を変換する装置として本出願人が出願した特願平3
−131999号の出願で提案するものもある。
【0006】
【発明が解決しようとする課題】しかしながら、曲線部
分のショートベクトルへの分割や、逆にショートベクト
ルから曲線への変換には多大な演算量が必要であり、C
PUに大きな負担をかけ、演算処理するのに多大の時間
を要していた。
【0007】又、線幅を変換した結果の曲線部分を曲線
のデータで表したいとき、ショートベクトルから曲線式
へ変換する必要があるが、このときの誤差の発生は避け
られず、文字・記号の輪郭線の形状が崩れることがあっ
た。
【0008】更に特願平3−131999号の願書に添
付した明細書及び図面に記載された装置では、線幅の変
更量が大きすぎると曲線の膨らみ具合いが変わったり、
曲線の接続部の具合いが悪くなる等の問題があった。
【0009】本発明は、上述した問題点を解決するため
になされたものであり、輪郭線によって形状が確定され
た文字・記号等の構成線の線幅の変更を曲線部分のショ
ートベクトル分割及びショートベクトルから曲線式への
変換を行わずに高速に行い、曲線の膨らみ具合いが変わ
ったり曲線の接合部の具合いが悪くなったりしない美し
い出力が得られる文字記号発生装置を提供することを目
的とするものである。
【0010】
【課題を解決するための手段】この目的を達成するため
に本発明の文字記号出力装置は、文字・記号等の構成線
の太さを変更すべくセグメントの移動を行う移動手段1
1と、前記移動手段11で移動を行う前の隣接するセグ
メントの結合状態が連続か不連続かを判定する結合状態
判定手段12と、前記結合状態判定手段12で不連続と
判定された隣接するセグメントについて、前記移動手段
11で移動を行った後の隣接するセグメントを結合する
ものであって、直線セグメントと直線セグメントの結合
を行う第1結合手段131と、直線セグメントと曲線セ
グメントの結合を行う第2結合手段132と、曲線セグ
メントと曲線セグメントの結合を行う第3結合手段13
3とを有する結合手段13とを備え、当該結合手段13
は、前記移動手段11で移動を行う前の隣接するセグメ
ントの関係が、直線セグメントと直線セグメントである
のか、直線セグメントと曲線セグメントであるのか、又
は曲線セグメントと曲線セグメントであるのかを判断
し、その判断結果に基づいて、前記第1結合手段131
乃至前記第3結合手段133の何れかにより、前記移動
手段11で移動を行った後の隣接するセグメントの結合
を行うことを特徴とする。又、移動手段が文字の太さを
変更すべくセグメントの移動を各セグメントの構成する
点のデータである点データの作る多角形が相似形になる
ように行う相似移動手段21によって構成されていても
差し支えない。
【0011】
【作用】上記の構成を有する本発明の文字記号発生装置
においては、移動手段11は、文字・記号等の構成線の
太さを変更すべくセグメントの移動を行い、結合状態判
定手段12は、前記移動手段11で移動を行う前の隣接
するセグメントの結合状態が連続か不連続かを判定し、
結合手段13は、前記結合状態判定手段12で不連続と
判定された隣接するセグメントについて、前記移動手段
11で移動を行った後の隣接するセグメントを結合する
ものであって、直線セグメントと直線セグメントの結合
を行う第1結合手段131と、直線セグメントと曲線セ
グメントの結合を行う第2結合手段132と、曲線セグ
メントと曲線セグメントの結合を行う第3結合手段13
3とを有し、当該結合手段13は、前記移動手段11で
移動を行う前の隣接するセグメントの関係が、直線セグ
メントと直線セグメントであるのか、直線セグメントと
曲線セグメントであるのか、又は曲線セグメントと曲線
セグメントであるのかを判断し、その判断結果に基づい
て、前記第1結合手段131乃至前記第3結合手段13
3の何れかにより、前記移動手段11で移動を行った後
の隣接するセグメントの結合を行う。
【0012】又、相似移動手段21は、文字・記号等の
構成線の太さを変更すべくセグメントの移動を各セグメ
ントの構成する点のデータである点データの作る多角形
が相似形になるように行う。
【0013】
【実施例】以下、本発明をレーザプリンタに適用した一
実施例を図面を参照して説明する。
【0014】本実施例のレーザプリンタは、外部からの
線幅の指定に応じて、記憶しているキャラクタの形状を
変換して、所望の線幅のキャラクタを印字可能なもので
ある。
【0015】図3はレーザプリンタの制御回路のうち、
主として文字・記号出力を行う関係部分を示すブロック
図である。この制御回路の主体を成すマイクロコンピュ
ータ部30はCPU32、キャラクタROM33、プロ
グラムROM34、テキストメモリ35、ワーキングメ
モリ36、ドットデータメモリ37を備えている。これ
らCPU32等は、バス38を介して接続されている。
更にマイクロコンピュータ部30にはバス38を介して
入力装置39及び印字装置310が接続されている。
【0016】入力装置39は、外部から供給されるキャ
ラクタコード、線幅の指定、文字サイズの指定、斜体・
回転等の変形の指定等のデータを入力するものである。
尚、本実施例の線幅の指定は、記憶されているアウトラ
インフォントデータの線幅をどれだけ変更するかで行
い、太らせる場合は正の数、細らせる場合は負の数で指
定する。
【0017】印字装置310は、電子写真方式によりド
ットデータメモリ37から読み出したドットマトリクス
データを印字する装置である。
【0018】プログラムROM34には本実施例で行う
様々な制御を実施するためのプログラムを記憶してい
る。
【0019】テキストメモリ35は、入力装置39から
入力されるキャラクタコード、線幅指定、文字サイズの
指定、斜体・回転等の変形の指定等のデータを記憶する
ものである。
【0020】ワーキングメモリ36は、CPU32がプ
ログラムを実行するときに必要なデータを一時的に記憶
するものである。
【0021】ドットデータメモリ37は、アウトライン
変換部65により得られるドットデータを記憶するもの
である。
【0022】キャラクタROM33は、文字・記号等の
輪郭線の形状を、直線及び3次ベジェ曲線(以下、単に
曲線と称する)の集合で定義したアウトラインフォント
データを記憶している。
【0023】本実施例のアウトラインフォントデータ
は、輪郭線の形状を定義する点のデータである複数の点
データから構成されている。この点データは、直線及び
曲線を区別する属性フラグと、座標値のデータである座
標値データで構成される。
【0024】属性フラグには、キャラクタの輪郭線の1
つ(以下、閉ループと称する)の始点を示す「S」、直
線の終点を示す「L」、曲線の第1制御点を示す「B
1」、曲線の第2制御点を示す「B2」、曲線の終点を
示す「B」がある。属性フラグは1つの座標値データを
伴っている。尚、直線及び曲線の始点の座標は1つ前の
点データの座標値データである。
【0025】又、データの順番は閉ループの始点から決
められた回転方向で順次記憶されている。本実施例では
輪郭線の外側の線を表すループ(以後、単に外ループと
称する)は反時計方向に、輪郭線の内側の線を表すルー
プ(以後、単に内ループと称する)は時計方向にそれぞ
れ決められている。
【0026】例えば図4に示す「D」のアウトラインフ
ォントデータは図5の様に記憶されている。このよう
に、外ループ41は反時計方向に、内ループ42は時計
方向にそれぞれ点データを記憶している。
【0027】以下に、本実施例のアウトラインフォント
処理について説明する。
【0028】先ず、図6にCPU32の処理の概念図を
示す。CPU32の処理は、データ読み出し部62、線
幅変更部63、データ展開部64及びアウトライン変換
部65から構成される。
【0029】データ読み出し部62は、テキストメモリ
35からキャラクタコードを1つ読み出し、そのキャラ
クタコードに応じたキャラクタのアウトラインフォント
データをキャラクタROM33の所定の領域からバス3
8を介して読み、ワーキングメモリ36内の図示しない
アウトラインデータバッファへ格納し、又、線幅の指
定、文字サイズ、斜体・回転変換の指定が変更されたと
き、ワーキングメモリ36内の図示しないパラメータメ
モリの各パラメータを変更するものである。
【0030】線幅変更部63は、データ読み出し部62
で読み出したキャラクタの線幅をパラメータメモリの線
幅の指定に応じて変更する処理を行い、その結果のアウ
トラインフォントデータをアウトラインデータバッファ
に行うもので、本発明の適用部分である。
【0031】データ展開部64は、線幅変更部63で処
理を加えたアウトラインフォントデータをアウトライン
データバッファから読み出し、パラメータメモリの文字
サイズ、斜体・回転等の指示に応じた変形を加え、直線
と曲線のデータをショートベクトルのデータに変換する
ものである。
【0032】アウトライン変換部66は、データ展開部
64で変換したショートベクトル化されたアウトライン
フォントデータの内部にドットを置くことでドットデー
タに変換し、ドットデータメモリ37に格納するもので
ある。
【0033】尚、データ読み出し部62、データ展開部
64及びアウトライン変換部65の処理は既に様々な方
法で実用化されている公知の技術であり、又、本発明の
主たる部分ではないため詳細な説明は省略する。
【0034】以下に本発明の適用部分である線幅変更部
63について詳細に説明する。
【0035】先ず、線幅変更部63の処理全体の流れに
ついて図7のフローチャートを用いて説明する。
【0036】S71は、セグメントデータ生成処理であ
る。セグメントとは、直線又は曲線の1つ1つのことを
示す。セグメントデータはセグメント種情報、座標値デ
ータ及び結合情報から構成される。
【0037】セグメント種情報は、直線、曲線の区別を
示す情報である。
【0038】座標値データは、直線セグメントの場合、
始点及び終点の座標値で構成され、曲線セグメントの場
合、始点、第1制御点、第2制御点及び終点の座標値で
構成される。尚、このデータの始点から終点への方向
は、このセグメントの方向とする。このセグメントの方
向は、キャラクタROM33内に格納されていた状態の
ものと一致している。
【0039】セグメントの結合情報は、S72の処理前
の、そのセグメントとその次に結合するセグメントとの
結合状態を連続か不連続かで示すものである。すなわ
ち、その終点の結合状態を示す情報である。この結合状
態の判定の仕方は、そのセグメントの終点(=次のセグ
メントの始点)の前後の点データの座標値を結んだ直線
とそのセグメントの終点の距離が、あるしきい値以下の
場合は連続とし、その他の場合は不連続とする。ここで
のしきい値は0.6としてある。尚、前後の点データの
前の点データとは、そのセグメントが直線であれば、そ
の直線の始点であり、曲線であれば、その曲線の第2制
御点である。又、後の点データとは、次のセグメントが
直線であれば、その直線の終点であり、曲線であれば、
その曲線の第1制御点である。
【0040】このS71の処理は、本実施例のキャラク
タROM33に格納された状態はデータ圧縮を考慮した
形式、すなわち、各セグメントの結合部分(始点と終
点)を共有する形で格納されており、以降の処理では扱
いにくいため行う処理である。よって、ここで、各セグ
メント単位で、その始点から終点まで全ての座標値が明
確になるデータ形式に変更する。
【0041】S72は、セグメントデータ移動処理であ
る。すなわち、S71で得られた各セグメントを、パラ
メータメモリ内の線幅の指定に応じて法線方向に内側或
は外側に移動する処理である。この処理については後で
詳細に説明する。
【0042】S73は、セグメントデータ結合処理であ
る。すなわち、S72でセグメントの移動を行うと、移
動前のセグメントデータが不連続に結合していた部分
は、接合すべきセグメントの始点、終点がずれてしまう
ため、ここで結合処理を行う。この処理についても後で
詳細に説明する。
【0043】S74は、処理結果をワーキングメモリ3
6内の図示しないアウトラインデータバッファに、セグ
メントデータからキャラクタROM33内の形式に変換
して格納する。
【0044】以上の処理で、線幅変更部63の処理は実
現できる。
【0045】次にこの線幅変更部63の前述したセグメ
ントデータ移動処理S72及びセグメントデータ結合処
理S73について詳細に説明する。
【0046】先ず、セグメントデータ移動処理S72に
ついて図8のフローチャートを用いて説明する。尚、こ
こでは1セグメントの移動処理について説明するが、こ
の処理をそのキャラクタのセグメント数だけ繰り返すこ
とによって、全てのセグメントの移動処理が実現でき
る。
【0047】S81は、始点の移動を行う。始点の移動
は始点におけるそのセグメントの接線に対する法線方向
に行われる。又、セグメントの方向が、外ループは反時
計方向、内ループは時計方向に定められているので、こ
のセグメントの方向に対して右向きが正の方向、すなわ
ち、線幅が太くなる方向となり、左向きが負の方向、す
なわち、線幅が細くなる方向となる。従って、移動前の
セグメントの始点の座標値を(x0,y0)とし、セグ
メントの始点からの右方向の単位法線ベクトルの終点を
(x1,y1)とし、変更する線幅をwとすると、移動
後のセグメントの始点(x,y)は、(x,y)=(x
1−x0,y1−y0)×w+(x0,y0)、で算出
できる。
【0048】S82は、終点の移動を行う。終点の移動
は、始点と同様に、終点におけるそのセグメントの接線
に対する法線方向に行われ、セグメントの方向に対して
右側を正の方向として行われる。算出方法はS81と同
様である。
【0049】S83は、このセグメントデータが直線で
あるか否かを判定する。すなわち、セグメントデータ内
のセグメント種情報を参照して直線セグメントであれ
ば、YESとなり、S85を行わずに処理を終了する。
又、曲線セグメントであれば、NOとなり、S85を行
う。
【0050】S85は、曲線、すなわち、3次ベジェ曲
線の制御点の位置を決定している。この処理は、3次ベ
ジェ曲線の曲線の具合いをできるだけ保存したまま移動
を行うため、移動前の3次ベジェ曲線の始点、第1制御
点、第2制御点及び終点を結んでできる台形が相似形に
なるようにこの第1制御点と第2制御点の位置を決定す
る。図9に3次ベジェ曲線の移動を説明する図を示す。
セグメント90は、移動前の曲線セグメントで始点9
1、第1制御点92、第2制御点93及び終点94で定
義されている。セグメント91は、移動後の曲線セグメ
ントで始点96、第1制御点97、第2制御点98及び
終点99で定義される。又、図中のb0とb1は、移動
前と移動後の始点終点の距離であり、l0とl1は、移
動前と移動後の始点第1制御点の距離であり、m0とm
1は、移動前と移動後の終点と第2制御点の距離であ
る。α0とα1は移動前と移動後の始点、終点を結んだ
直線と始点、第1制御点を結んだ直線のなす角であり、
β0とβ1は移動前と移動後の始点、終点を結んだ直線
と終点、第2制御点を結んだ直線のなす角である。この
とき、移動後の第1制御点97の位置及び第2制御点9
8の位置は、 ・b0:b1=l0:l1=m0:m1 ・α0=α1 ・β0=β1 となるように定める。尚、図中のベクトル910及び9
11はこのセグメントの移動方向であり、wは移動量で
ある。
【0051】以上のようにセグメントデータ移動処理S
72が実現できる。
【0052】次に、セグメントデータ結合処理S73に
ついて図10のフローチャートを用いて説明する。ここ
で、S0は1つのセグメントデータを指し、S1はS0
の次のセグメントデータを示す。尚、ここには、1つの
セグメント終点側の結合についてのみ説明するが、この
処理をキャラクタを構成するセグメントの全てについて
繰り返すことで、1キャラクタ分の処理を実現できる。
【0053】S101は、S0のセグメントデータを読
み込む。
【0054】S102は、S0の結合情報が連続である
か否かについて判定する。ここで、連続であると判定さ
れた場合、処理を終了する。
【0055】S103は、S1のセグメントデータを読
み込む。
【0056】S104は、S0、S1のセグメント種情
報を参照して、S0が直線セグメントであり、かつ、S
1が直線セグメントであるか否かを判定する。ここで、
YESと判定された場合は、S105で直線直線結合処
理を行う。この詳細は後で説明する。NOと判定された
場合は、S106以降を実行する。
【0057】S106は、S0、S1のセグメント種情
報を参照して、S0が直線セグメントであり、かつ、S
1が曲線セグメントであるか否かを判定する。ここで、
YESと判定された場合は、S107で直線曲線結合処
理を行う。この詳細は後で説明する。NOと判定された
場合は、S108以降を実行する。
【0058】S107は、S0、S1のセグメント種情
報を参照して、S0が曲線セグメントであり、かつ、S
1が直線セグメントであるか否かを判定する。ここで、
YESと判定された場合は、S109で曲線直線結合処
理を行う。この詳細は後で説明する。NOと判定された
場合、すなわち、S0が曲線セグメントであり、かつ、
S1が曲線セグメントである場合は、S1010を実行
する。
【0059】S1010は、曲線曲線結合処理を行う。
この詳細は後で説明する。
【0060】以上の処理でセグメントデータ結合処理S
73は実現できる。
【0061】以下にこのセグメントデータ結合処理S7
3の直線直線結合処理S105、直線曲線結合処理S1
07、曲線直線結合処理S109及び曲線曲線結合処理
S1010について詳細に説明する。
【0062】先ず、直線直線結合処理S105について
説明する。
【0063】この処理はS0の終点及びS1の始点を、
S0の直線セグメントの延長上の直線とS1の直線セグ
メントの延長上の直線の交点に変更する処理である。こ
の交点の算出は、数学的に行うものであるので詳細は省
略する。
【0064】次に、直線曲線結合処理S107について
図11のフローチャートを用いて説明する。
【0065】S111は、S0とS1の交点を算出す
る。すなわち、S0の直線セグメントの延長上の直線と
S1の曲線との交点を算出する。この交点の算出は、数
学的に行うものであるので詳細は省略する。
【0066】S112は、S111で交点があったか否
かを判定する。交点がなければ、S116以降を実行
し、交点があれば、S113以降を実行する。
【0067】以下に、S111で交点があった場合の処
理について説明する。
【0068】S113は、求められた交点の内、S0の
終点に最も近いものを選択する。
【0069】S114は、S113で選択した交点の位
置で、S1の曲線を切断する。この曲線の切断方法は、
後で詳細に説明する。
【0070】S115は、S0、S1に更新したデータ
を代入する。すなわち、S0の終点、S1の始点の座標
値データをS113で選択した交点の座標値に、S1の
第1制御点及び第2制御点の座標値データをS114で
切断した曲線の内、S1の終点の座標値を含む方の曲線
の第1制御点及び第2制御点の座標値を代入する。
【0071】以下に、S111で交点がなかった場合の
処理について説明する。
【0072】S116は、S0の延長線上の直線とS1
の始点における接線との交点を算出する。S1の始点に
おける接線は、3次ベジェ曲線の場合、始点と第1制御
点を通る直線である。この交点の算出は、数学的に行う
ものであるので詳細は省略する。
【0073】S117は、S0、S1に更新データを代
入する。すなわち、S0の終点及びS1の始点の座標値
データにS116で算出した交点の座標値を代入する。
【0074】次に、曲線直線結合処理S109について
図12のフローチャートを用いて説明する。
【0075】S121は、S0とS1の交点を算出す
る。すなわち、S1の直線セグメントの延長上の直線と
S0の曲線との交点を算出する。この交点の算出は、数
学的に行うものであるので詳細は省略する。
【0076】S122は、S121で交点があったか否
かを判定する。交点がなければ、S126以降を実行
し、交点があれば、S123以降を実行する。
【0077】以下に、S121で交点があった場合の処
理について説明する。
【0078】S123は、求められた交点の内、S0の
終点に最も近いものを選択する。
【0079】S124は、S123で選択した交点の位
置で、S0の曲線を切断する。この曲線の切断方法は、
後で詳細に説明する。
【0080】S125は、S0、S1に更新したデータ
を代入する。すなわち、S0の終点、S1の始点の座標
値データをS123で選択した交点の座標値に、S0の
第1制御点及び第2制御点の座標値データをS124で
切断した曲線の内、S0の始点の座標値を含む方の曲線
の第1制御点及び第2制御点の座標値を代入する。
【0081】以下に、S121で交点がなかった場合の
処理について説明する。
【0082】S126は、S1の延長線上の直線とS0
の終点における接線との交点を算出する。S0の終点に
おける接線は、3次ベジェ曲線の場合、終点と第2制御
点を通る直線である。この交点の算出は、数学的に行う
ものであるので詳細は省略する。
【0083】S127は、S0、S1に更新データを代
入する。すなわち、S0の終点及びS1の始点の座標値
データにS116で算出した交点の座標値を代入する。
【0084】次に、曲線曲線結合処理S1010につい
て図13のフローチャートを用いて説明する。
【0085】S131は、S0とS1の交点を算出す
る。すなわち、S0の曲線セグメントとS1の曲線セグ
メントとの交点を算出する。この交点の算出は、数学的
に行うものであるので詳細は省略する。
【0086】S132は、S131で交点があったか否
かを判定する。交点がなければ、S137以降を実行
し、交点があれば、S133以降を実行する。
【0087】以下に、S131で交点があった場合の処
理について説明する。
【0088】S133は、求められた交点の内、S0の
終点に最も近いものを選択する。
【0089】S134は、S133で選択した交点の位
置で、S0の曲線を切断する。この曲線の切断方法は、
後で詳細に説明する。
【0090】S135は、S133で選択した交点の位
置で、S1の曲線を切断する。この曲線の切断方法は、
後で詳細に説明する。
【0091】S136は、S0、S1に更新したデータ
を代入する。すなわち、S0の終点、S1の始点の座標
値データをS133で選択した交点の座標値に、S0の
第1制御点及び第2制御点の座標値データをS134で
切断した曲線の内、S1の始点の座標値を含む方の曲線
の第1制御点及び第2制御点の座標値を代入し、S1の
第1制御点及び第2制御点の座標値データをS135で
切断した曲線の内、S1の終点の座標値を含む方の曲線
の第1制御点及び第2制御点の座標値を代入する。
【0092】以下に、S131で交点がなかった場合の
処理について説明する。
【0093】S137は、S0の終点における接線とS
1の始点における接線との交点を算出する。S0の終点
に置ける接線は、3次ベジェ曲線の場合、終点と第2制
御点を通る直線であり、S1の始点における接線は、3
次ベジェ曲線の場合、始点と第1制御点を通る直線であ
る。この交点の算出は、数学的に行うものであるので詳
細は省略する。
【0094】S138は、S0、S1に更新データを代
入する。すなわち、S0の終点及びS1の始点の座標値
データにS137で算出した交点の座標値を代入する。
【0095】以上の処理で、各種結合処理を実現でき
る。
【0096】次に、上述した各種結合処理の曲線セグメ
ントの切断処理について図14を用いて説明する。
【0097】3次ベジェ曲線P1P2P3P4をパラメ
ータtにおいてa1a2a3a4とb1b2b3b4に
切断するものとする。図の様にP1P2、P2P3、P
3P4をt:(1−t)に内分した点を各々Q1Q2Q
3とすると、 Q1=(1−t)×P1+t×P2 Q2=(1−t)×P2+t×P3 Q3=(1−t)×P3+t×P4 で表せる。Q1Q2Q3を同じくt:(1−t)に内分
した点をR1R2とすると、 R1=(1−t)×Q1+t×Q2 R2=(1−t)×Q2+t×Q3 であり、R1R2をt:(1−t)に内分した点Rは R=(1−t)×R1+t×R2 となる。これは、パラメータtにおける曲線上の点とな
る。切断した2つの曲線の始点、終点及び制御点は、 a1=P1 a2=Q1 a3=R1 a4=R b1=R b2=R2 b3=Q3 b4=P4 となる。従って、曲線の切断点の3次ベジェ曲線のパラ
メータtを求めて、上述した演算を行えば、曲線の切断
は実現できる。
【0098】本実施例では本発明をレーザプリンタに適
用した例を示したが、これに限らず他の方式のプリンタ
はもちろん、ディスプレイ等の他の出力装置にも適用可
能である。
【0099】又、本実施例では、セグメントデータの結
合情報をアウトラインフォントデータ中に持たない例で
示したが、結合情報をアウトラインフォントデータ中に
持ってもよい。
【0100】又、本実施例では曲線の表現に3次ベジェ
曲線を用いたが、2ベジェ曲線、スプライン、円弧等の
他の曲線にも適用できる。
【0101】又、本発明に外部記憶装置を付加して、新
たな文字・記号等のデータ作成装置としても利用でき
る。
【0102】その他、本発明の趣旨を逸脱しない範囲で
種々の応用が可能である。
【0103】
【発明の効果】以上説明したことから明かなように、本
発明の文字記号発生装置によれば、輪郭線によって形状
を確定された文字・記号等の構成線の線幅の変更を曲線
部分のショートベクトル分割及びショートベクトルから
曲線式への変換を行わずに高速に行い、曲線の膨らみ具
合いが変わったり曲線の接合部の具合いが悪くなったり
しない美しい出力が得られる装置を提供することができ
る。
【図面の簡単な説明】
【図1】請求項1の発明の構成を示す図である。
【図2】請求項2の発明の構成を示す図である。
【図3】本実施例のマイクロコンピュータ部のブロック
図である。
【図4】本実施例の「D」の輪郭線を示す図である。
【図5】本実施例の「D」のアウトラインフォントデー
タの概念図である。
【図6】本実施例のCPUの処理の概念図である。
【図7】本実施例の線幅変更部の処理を示すフローチャ
ートである。
【図8】本実施例のセグメントデータ移動処理のフロー
チャートである。
【図9】本実施例のセグメントデータ移動処理を説明す
る図である。
【図10】本実施例のセグメントデータ結合処理のフロ
ーチャートである。
【図11】本実施例の直線曲線結合処理のフローチャー
トである。
【図12】本実施例の曲線直線結合処理のフローチャー
トである。
【図13】本実施例の曲線曲線結合処理のフローチャー
トである。
【図14】本実施例の3次ベジェ曲線の切断処理を説明
する図である。
【符号の説明】
11 移動手段 12 結合状態判定手段 13 結合手段 131 第1結合手段 132 第2結合手段 133 第3結合手段 21 相似移動手段 22 結合状態判定手段 23 結合手段 231 第1結合手段 232 第2結合手段 233 第3結合手段
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09G 5/24 G06F 3/153 G06T 11/20 G09G 5/26

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 文字・記号等の輪郭線の形状を直線及び
    曲線を表すセグメントの集合で定義した形状データを記
    憶し、この形状データを変形して文字・記号等の形状を
    発生する装置において、 前記文字・記号の太さを変更すべくセグメントの移動を
    行う移動手段と、 前記移動手段で移動を行う前の隣接するセグメントの結
    合状態が連続か不連続かを判定する結合状態判定手段
    と、前記結合状態判定手段で不連続と判定された隣接するセ
    グメントについて、前記移動手段で移動を行った後の隣
    接するセグメントを 結合するものであって、直線セグメ
    ントと直線セグメントの結合を行う第1結合手段と、直
    線セグメントと曲線セグメントの結合を行う第2結合手
    段と、曲線セグメントと曲線セグメントの結合を行う第
    3結合手段とを有する結合手段とを備え 当該結合手段は、前記移動手段で移動を行う前の隣接す
    るセグメントの関係が、直線セグメントと直線セグメン
    トであるのか、直線セグメントと曲線セグメントである
    のか、又は曲線セグメントと曲線セグメントであるのか
    を判断し、その判断結果に基づいて、前記第1結合手段
    乃至前記第3結合手段の何れかにより、前記移動手段で
    移動を行った後の隣接するセグメントの結合を行う こと
    を特徴とする文字記号発生装置。
  2. 【請求項2】 請求項1に記載の文字記号発生装置にお
    いて、 前記移動手段が、文字の太さを変更すべくセグメントの
    移動を各セグメントの構成する点のデータである点デー
    タの作る多角形が相似形になるように行う相似移動手段
    によって構成されていることを特徴とする文字記号発生
    装置。
JP04063633A 1992-03-19 1992-03-19 文字記号発生装置 Expired - Fee Related JP3089795B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04063633A JP3089795B2 (ja) 1992-03-19 1992-03-19 文字記号発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04063633A JP3089795B2 (ja) 1992-03-19 1992-03-19 文字記号発生装置

Publications (2)

Publication Number Publication Date
JPH05265431A JPH05265431A (ja) 1993-10-15
JP3089795B2 true JP3089795B2 (ja) 2000-09-18

Family

ID=13234950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04063633A Expired - Fee Related JP3089795B2 (ja) 1992-03-19 1992-03-19 文字記号発生装置

Country Status (1)

Country Link
JP (1) JP3089795B2 (ja)

Also Published As

Publication number Publication date
JPH05265431A (ja) 1993-10-15

Similar Documents

Publication Publication Date Title
US5640589A (en) Method and device for generating graphic data using a writing motion model
US6130667A (en) Character pattern generating apparatus
JP3089795B2 (ja) 文字記号発生装置
JPH0832471B2 (ja) 出力方法
JPH05232926A (ja) 文字記号発生装置
JPH04280296A (ja) 輪郭線データ処理装置
US5257344A (en) Character outline processor using relatively small memory storing coordinate data groups for different outlines of same character, and common attribute flag data
JP3457336B2 (ja) アウトラインデータ処理装置
JP3097303B2 (ja) 文字記号発生装置
JP3087463B2 (ja) 文字記号発生装置
JP2773691B2 (ja) プリンタ装置
JP3362738B2 (ja) 輪郭線データ処理装置
JP3082467B2 (ja) アウトラインデータ処理装置
JP3057959B2 (ja) データ変換装置
JP3082236B2 (ja) キャラクタ描画装置
JP2897721B2 (ja) 多角形二重化装置
JP2697328B2 (ja) 輪郭線データ処理装置
JP2985260B2 (ja) 文字処理装置
JP3191954B2 (ja) 輪郭線データ処理装置
JP2881884B2 (ja) 文書作成装置
JP2693897B2 (ja) キャラクタ幅算出装置
JPH05228741A (ja) Cad/cam装置
JPH06332429A (ja) 高品質文字パターンの作成方法及び高品質文字の出力装置
JPH056164A (ja) 文字処理装置
JPH01229664A (ja) プリンタの文字パターンデータ転送方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000620

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080721

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090721

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100721

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110721

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees