JPH02266480A - 高品質文字パターン発生方式 - Google Patents

高品質文字パターン発生方式

Info

Publication number
JPH02266480A
JPH02266480A JP1087333A JP8733389A JPH02266480A JP H02266480 A JPH02266480 A JP H02266480A JP 1087333 A JP1087333 A JP 1087333A JP 8733389 A JP8733389 A JP 8733389A JP H02266480 A JPH02266480 A JP H02266480A
Authority
JP
Japan
Prior art keywords
code
point
winding number
character pattern
points
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
JP1087333A
Other languages
English (en)
Inventor
Fumitaka Sato
文孝 佐藤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP1087333A priority Critical patent/JPH02266480A/ja
Priority to EP19900106497 priority patent/EP0391401A3/en
Priority to KR1019900004859A priority patent/KR920008273B1/ko
Publication of JPH02266480A publication Critical patent/JPH02266480A/ja
Priority to US08/337,512 priority patent/US5428719A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、文字パターンを1つ以上の線図形の集りで
定義する線図形情報をもとに高品質文字パターンを発生
する高品質文字パターン発生方式に関する。
(従来の技術) 一般に、線図形で定義された領域を塗りつぶす方式とし
て以下に述べる第1乃至第3の方式が知られている。ま
ず第1の方式は、図形内の指定された点から順に点移動
を行ないながら各点毎に線図形の「内」か「外」かを判
断して塗りつぶしを進めるものである。この方式は、パ
ーソナルコンピュータなどにおける図形処理で用いられ
るもので、各点毎の判断処理が逐次的に行なわれるため
、処理速度が遅いという問題がある。また、「領域の連
続性」を基準としているので、一般には塗りつぶしの分
岐点で「後戻り処理Jを必要とする。
次に第2の方式は、線図形が描かれたビットマツプメモ
リを所定方向(塗りつぶし方向)に走査して、例えば1
′の点から“1“の点までの間を“1゛で塗りつぶす方
式( even−odd方式の塗りつぶし)であり、上
記の「後戻り処理」を必要としない。しかし第2の方式
では、文字(文字パターン)の尖鋭端の塗りつぶし方向
のドツト数が1ドツトの場合(この尖鋭端を1ドツト尖
鋭端と定義する)には、その尖鋭端のドツトだけでなく
、そのドツト位置以降のドツト列も塗りつぶされてしま
うという不都合があった。この不都合を解消するために
は、文字パターンのデザインに際し1ドツト尖鋭端(塗
りつぶし方向と直交する方向のドツト数が1ドツトの文
字尖鋭端は、1ドツト尖鋭端と呼ばない)が発生しない
ように工夫しなければならず、煩雑であった。また、1
ドツト尖鋭端を必要とする場合には、1ドツト尖鋭端を
持たない文字パターンを塗りつぶし処理で発生した後、
1ドツト尖鋭端を持つ文字パターンの輪郭線を重ねて描
画する必要があった。更に第2の方式では、第23図(
a)に示すように文字パターンの輪郭線が重ならないよ
うな場合であれば、第23図(b)に示すように正しい
文字パターンが得られるものの、パターン縮小などのた
めに文字バターンの輪郭線が(同一格子ライン上で)重
なって第24図(a)に示すように1ドツト幅線となる
ような場合には、第24図(b)に示すような誤った文
字パターンが発生される問題もあった。なお、第24図
における塗りつぶし方向はy方向(上から下方向)であ
る。
第3の方式は、A dobe  S ysteIIls
社によって開発されたページ記述言語であるP ost
 S ertpt(ポストスクリプト)に用いられてい
るnon−zer。
winding nu+gber (ノンゼロ瞭ワイン
ディング争ナンバ)方式による塗りつぶしである。この
第3の方式では、まず線図形(文字の輪郭)を、セグメ
ント毎に例えば始点のX座標といったような何等かの基
準でソートしてリストにしておく処理が行なわれる。そ
して、’FILL”コマンド(塗りつぶしコマンド)を
実行するときに、例えばX軸に平行な直線で上から下へ
走査するプログラムループを作り、そのループ1回毎に
X軸に平行な直線(走査ライン)と上記リスト中のセグ
メントとの交点を全て求める処理が行なわれる。次に、
交点のX座標の順にそのセグメントの記述を調べ締がど
ちら向き(上/下)に引かれているかを判断して、wi
nding number (以下、Wナンバと呼ぶ)
を求め、それが零でない(non−zero)区間をビ
ットマツプメモリ上で線を引く処理が行なわれる。
第3の方式では、以上の処理が上記プログラムループで
繰返される。
上記したように、第3の方式ではライン毎にセグメント
リストを調べる必要がある。このため、セグメントリス
トが長くなる複雑な図形(漢字パターンなど)の場合に
は、処理時間が極めて長くなるという問題があった。ま
た、上記の交点計算を、「輪郭線の総ドツト数」程度繰
返す必要もあった。
(発明が解決しようとする課題) 上記したように従来は、even−odd方式の塗りつ
ぶしでは、1ドツト幅の腺や1ドツト尖鋭端を持つ文字
パターンを正しく発生できず、またnon−zero 
 vfndfng nua+ber方式による塗りつぶ
しでは高速処理ができないという問題があった。
したがってこの発明は、1ドツト幅の線や1ドツト尖鋭
端を持つ文字パターンを正しく発生することができ、且
つ複雑な文字パターンも高速に発生できるようにするこ
とを解決すべき課題とする。
[発明の構成] (課題を解決するための手段) この発明は、1つ以上の線図形によって文字パターンを
定義するための線図形情報をもとに、線図形を構成する
セグメント毎に対応するセグメントを近似する各格子点
を8連結の関係を保って1格子点ずつ順次決定し、現プ
ロット対象格子点とその前後の上記セグメントを近似す
る格子点の相互位置関係で決定される格子点の移動方向
から、上記現プロット対象格子点におけるワインディン
グ・ナンバ(Wナンバ)の変化状態を判別し、変化無し
を示す第1の値、1増加を示す第2の値、〕減少を示す
第3の値、1増加と1減少とが重なって発生することを
示す第4の値のいずれか1つを、Wナンバ変化数または
状態を示す第1ワインディング・ナンバ・コード(WN
コード)として生成する操作を線図形情報で示された線
図形の順序で且つその線図形をたどる方向に行なうコー
ド生成手段と、塗りつぶし対象文字パターンの各点のW
ナンバ変化数または状態を示すm2WNコードを記憶す
るためのWNコード記憶手段と、コード生成手段によっ
て生成される第1WNコードをもとに、同コードに対応
する格子点のWNコード記憶手段内第2WNコードを更
新する更新手段と、WNコード記憶手段内の各格子点毎
の第2WNコードを塗りつぶし方向に順次取出し、同コ
ードをもとにWナンバを生成して塗りつぶしを行なう塗
りつぶし手段とを設けたことを特徴とする。
(作用) 上記の構成によれば、1つの文字パターンを定義する幾
つかの線図形について、それぞれ1度たどるだけで、最
終的には全ての線図形を配置した状態における各点のW
ナンバの変化数または変化状態がWNコード(第2WN
コード)としてWNコード記憶手段内に求まり、このW
Nコード記憶手段の記憶内容をもとに各点のWナンバが
簡単に求められるので、塗りつぶしによる文字パターン
発生が高速で行なえる。また、現プロット対象格子点の
直前、直後のセグメント部分の方向を示す正規化された
方向コードが、8連結の関係を保つ現プロット対象格子
点とその前後のブロック対象格子点との相互位置関係か
ら、そのまま求められるので、処理速度が一層高速とな
る。
更に、文字パターンを定義する線図形の輪郭線を近似す
るプロット点(格子点)が必ず8連結の関係を保って順
に発生され、しかも各プロット対象格子点のWNコード
ードは、1つの点の前後で(パターン縮小などのために
)1増加と1減少とが重なって発生することも示される
ので、この状態を加味して塗りつぶしデータを生成する
ことにより、誤った塗りつぶしや細い線の消失を防止で
き、特に粗い分解能で小さい文字等を印字するときに細
い線がとぎれる虞がない。
以上は、対象セグメントが媒介変数表現の場合であって
同様である。
(実施例) 第1図はこの発明を適用する高品質文字パターン発生装
置の一実施例を示すブロック構成図である。同図におい
て、11は標準サイズの文字パターンを1つ以上の線図
形(閉曲線を示す線図形)の集りで定義する線図形情報
を記憶する文字パターンデータメモリ、12は所望の文
字パターンの情報(線図形情報)を所望サイズの文字と
なるように変更する修飾処理回路、13は修飾処理回路
12から出力される線図形情報を一時格納する先入れ先
出し方式のバッファ(以下、FIFOと称する)である
。線図形情報は上述したように1つ以上の閉じた線図形
(閉曲線)を定義していることから、この線図形情報で
示される文字パターンの輪郭線は、1つ以上の閉曲線で
構成される。例えば片仮名のイ、口、ハの典型的文字パ
ターンの輪郭線は、イが1つ、口およびハが2つの閉曲
線で構成される。各閉曲線は幾つかの直線部分(直線セ
グメントと呼ぶ)および(または)曲線部分(曲線セグ
メントと呼ぶ)の系列で表わされ、したがって上記線図
形情報は、各線図形(閉曲線)毎に対応する線図形を構
成する直線セグメントおよび曲線セグメントの系列の情
報を有している。この系列は、先行するセグメントの終
了点が次のセグメントの開始点に一致する並びとなって
いる。
14はFIFOバッファ13に格納されている線図形情
報に基づき、現在処理中の線図形の現セグメント(直線
セグメントまたは曲線セグメント)と格子ラインとの交
点を近似する格子点の塗りつぶし方向における前後の点
でのWナンバ(winding number)の差分
を示すコードデータ(WNコード)を生成し、処理済み
の線図形を考慮した該当点におけるWNコードを決定す
るWNコード生成回路(以下、WNGと称する)である
WNG14は上記のWNコード生成に供されるWNコー
ド生成テーブル15と、上記のWNコード決定(実際に
はWNコード更新)に供されるWNコード更新テーブル
16とを有している。
前記交点を近似する格子点は、生成する文字パターンを
構成するドツトに対応するものである。
さて、細い線を含む文字パターンを非常に強く縮小する
と、通常の数学的処理では、その線を表わす部分文字パ
ターンが相隣る格子点の間を通過してしまって、格子点
に写像されたWナンバだけを用いたのでは部分文字パタ
ーンがとぎれたり、(格子ラインに平行な場合には)完
全に消えてしまったりすることがある。ここで、上記し
た部分文字パターンがとぎれる問題を第2図を参照して
説明する。まず、第2図(a)は縮小された(格子点間
隔に等しい線幅の)文字パターンの一部である黒斜線3
1.31’ と生成するドツトに対応する格子とを示す
。第2図(a)において、記号・は線31.31’間の
領域(黒領域)の中にあってWナンバが1である格子点
(即ち線:N、 31’間に含まれる格子点)を示し、
ここでは4点ある。第2図(b)は出力する文字パター
ンのドツト構成を示すもので、ドツトの中心と第2図(
a)の格子点とが対応する。例えば第2図(a)の格子
点AB、Cと第2図(b)に示すドツト中心A′B’ 
、C’がそれぞれ対応する。明らかなように、第2図(
a)においてWナンバが1である(記号・で示される)
格子点に対応するドツトを黒色にして出力すると、第2
図(b)のように線がとぎれてしまう。上記の例は、文
字パターン線幅が格子点間隔に等しい場合であるが、強
く縮小されて格子点間隔より狭くなる場合には上記の問
題は一層顕著となる。
上記の問題とその解決方法は従来から知られている。例
えば縦横それぞれ1/2に縮小する場合、縮小後の1点
に対応する縮小前の4点のうちどの1点が黒であっても
、出力ドツトは黒とする方式がその一例である。即ち、
縮小に当たっては黒領域を脹らませて黒領域の連続性を
確保する方策が知られており、これは、白地に細い黒線
で文字パターンが描かれている場合の縮小に好適な方式
である。
ここで、第1図のWNG14に適用される黒領域の連続
性を維持するための方式について第3図および第4図を
参照して説明する。
まず、第3図(a)には第2図(a)と同一の線図形(
セグメントと称される黒斜線31.31’を含む)が示
されており、この線図形(内の線81)を符号りで示さ
れる位置から左下方向へたどっているものとする。第3
図(a)の例では、線31がD位置の近傍でy軸に平行
な線に対して成す角度(ここでは線の方向は考えず、従
ってO″〜90″の範囲で考える)よりも、X軸に平行
な線に対して成す角度の方が大きい。この場合にはX軸
に平行で次の格子点を通る線(格子ライン)Eと線図形
(内の線31)との交点Fを求め、点Fに最も近い格子
点Gを求め、6点も黒領域(Wナンバが1である領域)
に含むように領域拡張を行なう。
上記のように拡張される領域に含まれる点を求める操作
には、D D A (D IgitalD 1fTer
entlal A nalyzer )と呼ばれる周知
の直線描画アルゴリズムにより直線または曲線を8連結
の関係を保って格子点上にプロットする手法が用いられ
る。このDDAプロット手法によれば、第3EgJ (
a)の例では、線3工とX軸に平行な格子ラインとの交
点に代えて、矢印→と記号・で示すように線31を近似
する(プロット対象)格子点が8連結の関係を保って順
次求められ、その点が元々黒領域に含まれていればその
ままとされ、黒領域外にあればその点も黒領域に含まれ
るように黒領域が破線で示す如く拡張される。以上の処
理は、線31′ についても同様に(但しここでは、た
どる方向は右上方向)行なわれ、線31′を近似する(
プロット対象)格子点が8連結の関係を保って順次求め
られる。第3図(a)には、このようにして求められた
格子点のうち、拡張された領域に含まれる格子点が記号
ムで示されている。以上の記号・およびムで示される各
点に対応するドツトを黒として出力すると、第3図(b
)に示す結果となり、黒領域が連続する。なお、第3図
(b)の結果は互いに隣接する黒ドツトが4連結の関係
となっているが、常に4連結の関係となる訳ではない。
しかし、いかに線幅が細くなっても互いに隣接する黒ド
ツトが8連結関係を保つことは、前記した周知のDDA
プロット手法から保証される。
ところで、漢字パターン、特に横線の幅が細い明朝体文
字パターンを強く縮小すると、第4図に示すように横線
を表わす黒領域Hが互いに隣接する格子ライン間に入っ
てしまうことがある。この場合には、数学的に各格子点
のWナンバを求めてそれに対応するドツト出力を行なう
と、上記の横線が完全に消失してしまう。しかし、前記
したDDAプロット手法を適用するならば、黒領域Hの
例えば上側境界を表現する線図形を処理するときに、黒
領域(Wナンバが1の領域)が第4図において記号拳で
示される格子点を含むよう符号Iで示す位置まで拡張さ
れるので、文字パターン中の細い黒線が消失することは
ない。但し、通学者えら−れるプロット手法では、黒と
して出力される格子点の直前、直後のセグメント(直線
セグメントまたは曲線セグメント)の方向を求めて45
’単位の方向に正規化し、対応する方向コードを生成し
なければならないため、計算量が多くなるという問題が
生じる。
次に、WNコードについて説明する。この実施例では、
第1図のW N G 14によって生成されるWNコー
ドとして次の4種が用意される。第1のWNコードは、
注目点(プロット対象格子点)のWナンバが、その直前
(塗りつぶし方向の直前であり、本実施例では注目点の
上隣)の格子点のWナンバと比べて差がないことを示す
“0”であり、第2のWNコードは、注目点のWナンバ
が、その直前の格子点のWナンバと比べて1だけ大きい
ことを示す+′である。また第3のWNコードは、注目
点のWナンバに比べて、その直後(ここでは下隣)の格
子点のWナンバが1だけ小さいことを示す′−1″であ
り、第4のWNコードは、注目点の(塗りつぶし方向に
おける)直前直後の格子点のWナンバの差分はOである
ものの、注目点でのWナンバがこの直前直後の格子点の
Wナンバとは1だけ異なることを示す“±”である。な
お、第1図の装置で扱われるWNコードが上記した4種
で済むのは、線図形が文字パターンの輪郭線であって輪
郭線同士および自身が重ならない場合(但し、標準サイ
ズの線図形上)、即ちWナンバつの線図形の重なりまで
許すこと(即ちWNの最大値が3の場合)を前提として
おり、したがってWナンバの差分は±3の範囲となり得
るので、−3〜+3および±”の8種のWNコード(−
1,+1は上記“−、“+”に対応)を用意する必要が
ある。但し、WNコード生成テーブル15では1つの線
図形だけを対象とするため、先に示した4MのWNコー
ドだけが用いられる。なお、−3〜+3および“±“の
8種のWNコードは3とットコードで表現される。
第1図において、17はW N G 14によって決定
(更新)された3ビツト構成のWNコードをプロット点
に対応して格納するための1ワードが24ビツトのWN
コードパターンメモリ (以下、WNPMと称する)、
18はWNPM17に格納されている各点のWNコード
をもとに塗りつぶし処理を行なって文字パターンを発生
する塗りつぶし処理回路である。WNPM17は、取扱
い可能な最大サイズの文字で2文字分のWNコードが格
納できるように2つのWNコード記憶領域(図示せず)
に区分され、一方の領域にWNコードを書込んでいる期
間、塗りつぶし処理回路18が他方の領域から既に書込
まれているWNコードを取出して塗りつぶし処理が行な
えるように構成されている。また塗りつぶし処理回路1
8は、WNPM17の一方のWNコード記憶領域の各格
子点毎のWNコードをライン方向の連続した8点を単位
にライン方向に順次取出し、この8点分のWNコードお
よびこの8点の参照ラインデータ(参照Wナンバ)をも
とに対応する8格子点のWナンバを生成して8点単位の
塗りつぶしを行なう操作をラインを順に切替えながら実
行する機能を有している。
19はWNコード記憶領域の1ライン分の参照ラインデ
ータ(1点分の参照ラインデータの構成ビット数は2)
を記憶するための1ワードが16ビツトのラインメモリ
(以下、LMと称する)、2Gは塗りつぶし処理回路I
8の塗りつぶし処理によって生成される文字パターンの
格納等に供されるビットマツプメモリ (ページメモリ
)、21は塗りつぶし処理回路18によって生成された
文字パターンを図示せぬ制御プロセッサからのセットア
ツプデータに従ってビットマツプメモリ20内の指定領
域へ高速転送するビットブロック転送回路(以下、b+
tb+を回路と称する)である。bltblt回路2I
は、塗りつぶし処理回路18からの1バイト転送レディ
信号RDYに応じて転送動作を行なうように構成されて
いる。
なお、この実施例では、1つの線図形は閉じており、必
ず一筆書きで描画可能なように定義されている。また、
−:J書きの方向は、ポストスクリプトで定義されてい
るように、左側に塗りつぶし領域を見る方向に進むもの
とし、塗りつぶしはy軸方向(ここでは上から下方向)
に行なわれるものとする。但し、この選択は本質的なも
のではない。例えば、右側に塗りつぶし領域を見る方向
に一筆書きをするようにWナンバを定義し、塗りつぶし
をX軸方向へ行なうように本実施例を変更することは可
能である。
第5図はWNコード生成テーブルI5の内容の−例を示
す。同図において、黒ドツト   は注目点(プロット
対象点、現プロット点)を示し、この黒ドツトに向かう
矢印“−は、注目点へどの方向からセグメントが移動し
てきたかを示し、この黒ドツトから離れる矢印“→′は
、セグメントが注目点から次にどの方向へ移動するかを
示している。矢印の方向は45°単位の8種に分類され
ている。この矢印の方向を示すコードを移動方向コード
と呼ぶ。第2図には、注目点への移動方向と注目点から
の移動方向との組合わせにより、WNコード“0“十″
 (+1)。
(−1)  “±″のうちの1つが生成されることが示
されている。
第6図はWNコード更新テーブル16の内容を示す。第
6図では、WNコード生成テーブル15に従って生成さ
れたWNコードとWNPM17から取出した同一点のW
Nコードとの組合せにより、WNPMlT内の該当点の
WNコードの更新内容が一義的に決定されることが示さ
れている。
第7図は塗りつぶし処理回路18周辺のブロック構成を
示す。同図において、41はWNPM17のアクセス対
象WNコード記憶領域の上位アドレス(ここではライン
位置を示すX方向アドレス)を指定するためのアドレス
レジスタ(AdressRegister  Uppe
r ;以下、ARUと称する)、42は上記アクセス対
象WNコード記憶領域の下位アドレス(ここではライン
方向のワード位置を示すX方向アドレス)を指定するた
めのアドレスレジスタ(Adress  Regist
er  Lover ;以下、ARLと称する)である
。A RL 42はLM19のアドレス指定にも用いら
れる。43.44はA RU 41゜ARL42の内容
を1インクリメントする+1回路、45、46は初期値
0および+1回路43.44の出力のいずれか一方を選
択するセレクタである。
47はARU41およびA RL 42のアドレス指定
に応じてWNPM17から読出されるワードデータ、即
ち8点分のWNコード(24ビツト)を保持するレジス
タ(Dlfferential  Winding−n
uIlberRegister ;以下、DWRと称す
る)、48はARI。
42のアドレス指定に応じてLM19から読出されるワ
ードデータ、即ち8点分の参照ラインデータ(Wナンバ
)を保持する16ビツトレジスタ(Previous 
 Line  Vlnding−number  Re
gister ;以下、PLWRと称する)、49は塗
りつぶし回路である。塗りつぶし回路49は、D W 
R47に保持された8点分のWNコードおよびPLWR
4Bに保持された8点分の参照ラインデータをもとに、
8点分のWナンバ(16ビツト)を生成出力すると共に
8点分の塗りつぶしパターン(部分文字パターン)を並
行して出力する機能を有している。50は塗りつぶし回
路49から出力される8点分の塗りつぶしパターンを保
持してビットマツプメモリ20へ供給するための8ビツ
トレジスタ(PatternRegister ;以下
、PRと称する)、51は塗りつぶし回路49から出力
される8点分のWナンバを新たな参照ラインデータとし
てLM19へ送出するためのバスドライバ(BD)であ
る。
次に、この発明の一実施例の動作を、まずWNG14に
よるWNコード生成並びに更新を中心に第8図乃至第1
6図を適宜参照して説明する。
第1図の修飾処理回路12は、文字パターンデータメモ
リ11から所望の文字の標準サイズの文字パターンを定
義する線図形情報を取出し、この取出した線図形情報が
所望の文字サイズの文字パターンを定義するように変更
する。そして修飾処理回路12は、変更後の線図形情報
(変更の必要がなければ取出した線図形情報)をFIF
Oバッファ13に書込む。ここまでは、従来でも一般に
行なわれている。
WNG14は、FIFOバッファ13に書込まれた線図
形情報で定義される幾つかの線図形(閉曲線)について
、各線図形毎に、対応する線図形(閉曲線)を構成する
幾つかのセグメント(直線セグメントまたは曲線セグメ
ント)を、その並び順に順次取出し、第8図のフローチ
ャートに示す処理を次に述べるように実行する。
今WNG14が、第9図に示すような曲線セグメントを
FIFOバッファ13から取出したものとする。この場
合WNG14は、まずFIFOバッファ13から取出し
たセグメントの開始点をPO1終1点をPeとし、PO
,Peに最も近い格子点をプロット(トレース)点QO
,Qeとする(ステップSl)。次にWNGl4は、i
−0に設定し、点Pi  (PO)における対象セグメ
ントに対する接線ベクトルを求めるのに必要な開始点に
特有の補正操作を行なう(ステップS2)。この補正操
作は、開始点POについては、(少なくとも)トレース
主軸(XまたはX軸のうち、プロット点を8連結の関係
を保って必ず1進める方向の軸)方向の座標値が必ずし
も整数とならず、POに最も近い格子点QOのトレース
主軸方向の座標値に対して第9図に示すようにδだけず
れる可能性があるために必要となるものである。更に詳
細に述べるならば、開始点POの、トレース主軸方向の
座標値(ここではX座標値)と、開始点POにおける接
線ベクトルが点QOに対してトレース主軸方向に1だけ
異なる座標位置でのトレース従属軸(トレース主軸と直
交する軸)に平行な格子ラインと交わる点π1 (第9
図参照)のトレース主軸方向の座標値との差が、丁度1
でなく (1−δ)であるので、後述するステップS6
でPLのトレース従属軸方向の座標値(ここではX座標
値)を求めるのに、P2以降の場合と異なって(1−δ
)を用いるためである。即ちトレース主軸がX軸、の場
合を例にとると、点PIのx+Y座標値をxl。
yi、点p+における接線ベクトルの傾きの絶対値をy
’  (xl)とすると、点P1+1のy座標値Y 1
41は i−0では yi+1 −yl  fy’  (xi  )   (
1−δ)・・・(1)となり、 i≧1では yl+l  −yl  +:y’  (xi  )  
        ・・・(2)となるためである。但し
、上記式(1)、 (2)における記号“±”は接線ベ
クトルの方向によって“+”または−となることを示し
、上記式(1)、 (2)の例では、y成分について増
加方向であれば“十″となり、減少方向であれば“−と
なる。そこでWNGl4は、上記ステップS2の補正操
作で(1−6)を求める。一方、トレース主軸がX軸の
場合には、点P1+1のX座標値x i+iは、i=0
では xi+1 −xi  +  (1/y’  (XI  ))   
 (1−6)・・・(3) となり、 i≧1では マ!+l  −xi  +1/y   (xi  ) 
      −(4)となる。なお、点Pi、+1は、
トレース主軸方向の座標値が同一の対象セグメント上の
点p i+1を近似する点である。
WNGl4はステップS2或は後述する(iを+1する
だめの)ステップS10を終了すると、現プロット点Q
iがQeに一致するか否かを調べ(ステップS3)  
一致しなければ点PIにおける接線ベクトルを求める(
ステ・ツブS4)。
WNGl、4は接線ベクトルを求めると後述するステッ
プS5を経由してステップS6に進み、X軸またはX軸
のうち点Piにおける接線ベクトルと成す角度(の絶対
値)が小さい方の軸、即ちトレース主軸方向に、Plの
X座標値X1またはy座標値yi  (i−0の場合に
はQOのX座標値xqiまたはy座標値y qi)を1
だけ増加または減少させて点P j+1のトレース主軸
方向の座標値(xffl標値X1+1またはy座標値y
l+1)を求める第1動作(歩進操作)と、前記式(1
)〜(4)のいずれかに従って、点P I+1のトレー
ス従属軸方向の座標値(y座標値y i+iまたはX座
標値xi+1)を求める第2動作とを行なう。第1動作
で求められる点p titのトレース主軸方向の座標値
は次のプロット点Q1÷1のトレース主軸方向の座標値
に一致する。
上記第1動作(歩道操作)は、接線ベクトルの方向が、
点P1を原点として、第10図に示すようにX軸、X軸
、y−xで示される直線およびy−−xで示される直線
で区分される8つの領域AO〜A7のいずれに属してい
るかに応じて行なわれる。この第1動作(歩進操作)の
内容を、各領域AO〜A7に対応させて第11図(図面
左側)に示す。この第10図の対応関係から明らかなよ
うに、接線ベクトルの方向が領域AO,A3゜A4.A
7のいずれかに属している場合にはトレース主軸はX軸
となり、領域At、A2.A5゜A6のいずれかに属し
ている場合にはトレース主軸はX軸となる。なお、i−
0の場合にはPjのXlまたはy+としてQlのxql
またはyqlが適用される。上記領域AO〜A7は、D
DAプロット手法におけるプロット点の8連結の関係を
保つための8種の移動方向(45°単位で正規化された
方向)に対応する。
WNGl、4はステップS6を終了するとステップS7
に進み、ステップS6で求めたP1+1のトレース従属
軸方向座標値(xi+1またはyl+1)と現プロット
点Q1のトレース従属軸方向座標値(xqまたはyq)
を用い、第11図(図面右側)に示す位置判定条件に従
って次のプロット点Q illのトレース従属軸方向座
標値(x q(1+1)またはy q(1+1))を求
める。上記位置判定条件は、次のプロット点Q ill
のトレース従属軸方向座標値を、現プロット点Qlのト
レース従属軸方向座標値と同一値とするか、1異なる値
(更に具体的にいえば1増加させた値または1減少させ
た値)とするかを決定するためのものである。この判定
条件は、第11図に示されているように、第、10図に
示す領域AO〜A7毎に用意され、点P illのトレ
ース従属軸方向座標値が、点Q1のトレース従属軸方向
座標値または同座標値と接線ベクトルの方向に1だけ異
なる座標値のいずれに近いかを判定するだめのものであ
り、近い方の座標値が点Q triのトレース従属軸方
向座標値として求められる。この位置判定の基準となる
位置は、第9図においてCI(i−L2・・・)で示さ
れている。
なお、Q illのトレース主軸方向座標値には、ステ
ップS6で求めた点P illのトレース主軸方向座標
値がそのまま用いられることは言うまでもない。
WNGl4はステップS7で次のプロット点Q ill
のX座標値x q(ill)およびy座標値y q(1
+1)を求めると、直前のプロット点Ql−1並びに現
プロット点Q1と、Qj並びにQ1+1の相互位置関係
から、Qlの直前、直後のセグメントの方向(45a単
位の正規化された方向)を示す方向コード(移動方向コ
ード)を求める(ステップS8)。上記相互位置関係は
、第5図に示す矢印の方向から明らかなように、X軸、
X軸それぞれについての歩進の方向と歩道の有無で決定
され、具体的にはステップS6での歩進の方向(トレー
ス主軸の正負いずれの方向か)、およびステップS7で
の歩進の有無並びに歩進有りの場合にはその方向(トレ
ース従属軸の正負いずれの方向か)によって例えばテー
ブル参照等により極めて簡単に決定される。なお、セグ
メントの開始点または終了点に対応するプロット点Qi
  (QOまたはQe)に対しては、隣接する他のセグ
メント上の点がQl−1またはQ 141となる。
WNGl4はステップS8を終了するとステップS9に
進み、まずステップS8で求めた2つの方向コード、即
ち点Qiの直前の(プロット点で近似された)セグメン
ト部分の移動方向を示すコード(先行移動方向コード)
および点Q+の直後のセグメント部分の移動方向を示す
コード(後続移動方向コード)を用いて第5図に示すW
Nコード生成テーブル15を参照し、この2つの方向コ
ード(の示す現プロット点Qlの前後のセグメント部分
の移動方向)の組合わせで決まるWNコードを生成する
。この結果、次に示すWNコード生成が行なわれる。
■先行移動方向コードが塗りつぶし方向(ここでは下向
き)を示している場合には、注目点(現プロット点Ql
)の前後のセグメント部分の成す角度(塗りつぶし領域
を含む角度)θが180゜未満であればWNNコード−
(−1)が生成され、180@以上であればWNコード
“0゛が生成される。ここでは上記の角度θは2つのベ
クトルの成す角度と考え、0″〜360”の範囲をとる
ものとしている。第12図に示すように上記角度θが0
°〈θ<180’の場合は、記号Oで示される注目点の
すぐ下の格子点は該当する線図形の示す黒領域から外れ
る。また注目点自身は、前記したように拡張された黒領
域に含まれる。
このため、注目点には前記したWNコードの定義に従っ
て − が用いられるべきであり、上記のように −が
生成される。これに対して180”≦θ<360’の場
合には、注目点のすぐ下の格子点が黒領域に入り、また
注目点のすぐ上の格子点も拡張された黒領域に入るので
、注目点の前後でWナンバの変化がなく、上記のように
Wナンバ0“が生成されることになる。以下の説明では
、WNコードの生成のルールだけを示し、その詳細な理
由は煩雑を避けるため省略するが、上記の例のようにW
ナンバの変化を注目点とその直前直後の格子点について
考えれば容易に理解できる。
■先行移動方向コードが塗りつぶし方向と逆の方向(こ
こでは上向き)を示している場合には、注目点の前後の
セグメント部分の成す角度(塗りつぶし領域を含む角度
)θが180’未満であればWNコード″+’  (+
1)が生成され、180’以上であればWNコード“0
″が生成される。
■後続移動方向コードが塗りつぶし方向を示している場
合には、注目点の前後のセグメント部分の成す角度(塗
りつぶし領域を含む角度)θが180’未満であればW
Nコード“十″が生成され、180”以上であればWN
コード″0“が生成される。
■後続移動方向コードが塗りつぶし方向と逆の方向を示
している場合には、注目点の前後のセグメント部分の成
す角度θが180°未満であればWNコード“−″が生
成され、180”以上であればWNコード゛0”が生成
される。
■先行および後続移動方向コードの示す方向の塗りつぶ
し方向とは直交する方向(ここでは水平方向)の成分(
水平方向成分)が右方向を示している場合、即ちセグメ
ントが注目点を通る塗りつぶしラインを右方向に横切る
場合には、WNコード“−″が生成される。
■先行および後続移動方向コードの示す方向の水平方向
成分が左方向を示している場合、即ちセグメントが注目
点を通る塗りつぶしラインを左方向に横切る場合には、
WNコード“+“が生成される。
■先行および後続移動方向コードの示す方向の水平方向
成分が互いに逆方向を示している場合、即ちセグメント
が注目点を通る塗りつぶしラインを横切らないで戻る場
合には、注目点の前後のセグメント部分の成す角度が1
80°未満であればWNコード“±゛が生成され、18
0°以上であればWNコード“0“が生成される。
WNG14は、WNコード生成テーブル15を用いて上
記したWNコードを生成すると、上記注目点である現プ
ロット点Qiに対応するWNPM17のWNコード記憶
領域上の点のWNコードを取出し、これら両WNコード
を用いて第6図に示すWNコード更新テーブル16を参
照する。なお、WNPM17の全ての点におけるWNコ
ードの初期値は0#である。次にWNG14は、点Ql
に対応するWNPMl?上の点のWNコードを、WNコ
ード更新テーブル16を参照して得られるWNコードに
更新する。この更新テーブル16の論理は、WNPM1
7の内容 −WNPML7の内容+生成WNコードで表わされる。
上記式における十の演算ルールは、生成WNコードが“
十″、  −”である場合には、それぞれWNPM17
の内容(更新前WNコード)に対する+1.−1操作を
行ない、その結果が0となったときは“+1とするもの
である。また、生成WNコード“±″はWNPM17の
内容(更新前WNコード)が“0″でない限りは“0′
として扱われ、WNPM17の内容は更新されない。こ
れに対してWNPM17の内容(更新前WNコード)が
′Osの場合には、 ”Q’ + ’±2−1−“±” として処理される。また、生成WNコード″0″の場合
にはWNPM17の更新は不要となる。そこで本実施例
では、生成WNコードが“0゛の場合には、処理の高速
化のためにWNコード更新テーブル16を参照せず且つ
WNPM17をアクセスしないようにしている。したが
って、第6図には説明の便宜上、生成WNコードが“0
”の場合のWNコード更新内容についても示されている
が、実際には不要である。なお、第6図の更新テーブル
1Gにおいて、(括弧)で示されているエントリに対応
する組合わせは3つの線図形(標準サイズの線図形)の
重なりまでしか許さない本実施例では存在しない。
上記したステップS9の処理が行なわれることにより、
WNPM17のWNコード記憶領域の内容は、現在処理
中のセグメント上の点P1に対応するプロット点Q1ま
での各プロット点におけるWNコードを示すようになる
。次にWNG14はiを+1しだ後(ステップ5IO)
、前記ステップS3に戻り、新たに現プロット点QIと
なる点即ち先のステップS7でQ triとして求めら
れた点がQeであるか否かを判別し、Qeでなければ再
びステップS4以降の処理に進む。
やがて、第9図に示すセグメント上の点P1に対応する
プロット点Q1に続き、次の点P2に対応するプロット
点Q2も求まり、更に次の点P3に対応するプロット点
Q3を求めるために、まずステップS4で点P2  (
i−2)における接線ベクトルが求められたものとする
。この接線ベクトルの方向は第10図に示す領域A5に
属し、したがってトレース主軸はy軸となる。一方、点
P2に先行するPlの接線ベクトルの方向は第10図に
示す領域A4に属しておりトレース主軸はX軸であ7た
。即ち、点P2においてはトレース主軸の切替え(変更
)が発生する。この場合、P2から次のP3までのトレ
ース主軸方向(ここではy軸方向)の距離が1ではなく
なり、第9図の例ではその距離が1を越える。このよう
なトレース主軸の切替が発生するのは、点P1における
接線ベクトルの方向が先行点Pj−1における接線ベク
トルの方向に対し、第10図に示すy−xまたはy−−
xの直線を越えるように変化した場合である。
そこで本実施例では、トレース主軸が切替わった場合に
特有の補正操作を、ステップS5において行なうように
している。即ち、第10図の例であれば、−旦P2′ 
(現プロット点Q2と切替え後のトレース従属軸方向座
標値が同一の対象セグメント上の点)まで進めてP2’
における接線ベクトルを求め、これを先のステップS4
で求めた接線ベクトルに代えて採用する。そして、P2
’(Pl ’ )における接線ベクトルをもとに、次の
ステップS6においてP3(Pill)の座標値を求め
る。以降の動作は前記した場合と同様である。
なお、P2’で接線ベクトルを求め直すようにした上記
ステップS5は、文字パターン生成においては曲率半径
に対して分解能がかなり粗くなる場合が比較的多く発生
することを考慮し、このような場合の誤差を減らすため
に適用したものである。
以上のようにして、対象セグメント上の開始点POから
終了点Peまでの各点に対応するプロット点QO〜Qe
が求められ、QO〜Qeに対応するWNPM17上の各
点のWNコードが更新されると、ステップS3でQi−
Qeか判定され、第8図のフローチャートで示される1
セグメントに対する処理が終了する。この第8図のフロ
ーチャートで示される処理は、1つの文字パターンを示
す全ての線図形(閉曲線)を対象に、各線図形を構成す
る全セグメントについて、セグメント単位で繰返し実行
される。そして、1つの文字パターンに関する全てのセ
グメントについての処理が終了したならば、次の文字パ
ターンに関する上記の処理を行なう。
なお、以上の説明では、各セグメントがyとXの2つの
変数の関数で表現される線分或は曲線を対象とする場合
について説明したが、Bezler(ベジェ)3次曲線
のように、曲線の表現が媒介変数表示、即ち重を媒介変
数とすると、一般にx−f(t) −axt3+bx t2+cx を十dxy−g(t) −ay t3+by t2+cy t+dyで表現され
るセグメント(曲線セグメント)を適用する場合には、
第8図のフローチャートに代えて第13図のフローチャ
ートを用いることで、対象セグメント上の開始点POか
ら終了点Peまでの各点に対応するプロット点QQ−Q
eを求め、QO−Qeに対応するWNPM17上の各点
のWNコードを更新することができる。この動作につい
て、上記第13図、更には第14図乃至第16図を参照
して説明する。
まず、WNG14は対象となる例えば第14図に示す曲
線セグメントの開始点をPO1終了点をPeとし、PO
,Peに最も近い格子点をプロット点QO,Qeとする
、第8図のフローチャートのステップS1と同様の処理
を行なう(ステップS 11)。第14図の曲線セグメ
ントを示すf (t) 、  g (t)を第15図に
示す。
WNG14はステップSllを終了すると、i−0,t
=(〒i−〒0−)0に設定し、第8図のステップS2
の場合と同様の理由により、点PI  (PO)におけ
る接線ベクトルを求めるのに必要な開始点に特存の補正
操作を行なう(ステップ512)、そしてWNG14は
、Qi −Qeでなければ(ステップ513)、点Pi
における媒介変数のなガill!f’  (tl)、g
’  (tl)を求め、この値f’  (tl)、g’
  (ti)と第16図に示す接線方向判定条件とによ
り、接線ベクトルの方向が第10図の領域AO〜A7の
いずれに属しているかを判定する(ステップS 14)
。もし、ステップS14で判定されたPIにおける接線
ベクトルの方向が、第10図においてy−xまたはy−
−xで示される直線を越えて変化した場合には、WNG
14は第8図のステップS5と同様の補正操作を行なう
(ステップ515)。なお上記P1は、iが0以外の場
合でも、同ptを決定するにの必要なt(の増分Δt)
を次に述べるように近似的に求めているため、第14図
に示すように(第9図の場合と異なって)必ずしもトレ
ース従属軸上の点とならない。一方、第14図において
PIで示される点は、第9図の場合と同様に点P1を近
似するトレース従属軸上の点である。
さてWNG14は、ステップS14.S15からステッ
プ816に進む。このステップS16では、tの増分Δ
tとして、ステップS14で求めた微分値f’  (t
f)、g  (tl)の絶対値If’  (ti)1.
Ig’  (tl)lが大きい方(第15図の例ではt
nにおいてはf’  (tn)lが大きく、t n+2
においてはg’  (tn)Iが大きい)に対応するy
軸またはy軸をトレース主軸としてそのトレース主軸方
向の座標値を百1から百1+1へと1だけ歩道(増加ま
たは減少)させるのに必要な値(P 1+1のトレース
主軸方向の座標値が現プロット点(Hの次の゛整数値に
近い値)を、接線ベクトルの方向に対応する第16図に
示す歩道操作内容に従って求める。この際、第16図か
ら明らかなように、点PI  (t−tj)における接
線ベクトルの方向がトレース主軸をy軸とする方向であ
れば、Δを算出には、f (ti、f’  (tl)お
よび現プロット点Q1のX座標値xq1が用いられ、ト
レース主軸をy軸とする方向であれば、Δを算出には、
g(〒I)、g’  (tl、)および現プロット点Q
1のy座標値xqiが用いられる。またWNG14は、
点Piに対応するtlを上記の如く求めたΔtだけ移動
させて次の点P ti+に対応するtの値t l+1を
求める。
W N G 14はステップS1Bを終了するとステッ
プ517に進み、まずステップS16で求めたt −t
 l+1に対応する対象セグメント上の点P1+1の近
似点P 141のトレース従属軸方向の座標を、Plの
トレース従属方向座標値、Plにおけるf′ (tl)
またはg’(ti)の値およびΔtをもとに求める。即
ちWNG14は、トレース従属軸がy軸であれば、Pl
のy座標値y1に対してg’  (tl) ・Δtを加
算または減算してP Illのy座標値yl+1を求め
、トレース従属軸がy軸であれば、PiのX座標値xi
に対してf’  (ti) ・Δtを加算または減算し
てPILlのX座標値x1+1を求める。なお、PIL
lのトレース主軸方向の座標値は、Pi(Ql)のトレ
ース主軸方向座標値を接線ベクトルのトレース主軸方向
成分の向きに1歩進させた値であることは明らかである
。WNG14はP 1+lのx、y座標値x Ill 
、  y 1+1を求めると、そのPILlに最も近い
格子点を次のプロット点QI+1とする。このQ1+1
のトレース主軸方向の座標値(x q(1+1)または
y q(1+1>)はPj+1のトレース主軸方向の座
標値(x Diまたはyl+1)に一致する。上記Q1
+1のトレース従属方向座標値の具体的な求め方は次の
通りである。即ちここでは、第11図と同様に、第16
図に示すように第10図に示す各領域AO−A7に対応
した位置判定条件が用意されており、ステップSL4で
求められた接線ベクトル方向が属する領域に対応した位
置判定条件を用い、そのYES、Noの判定に応じ、第
11図の対応する項のように、y q(f+1)または
X q(DI)が求められる。
WNG14は、ステップS17を終了すると、第8図の
ステップS8.S9と同一のステップ818゜S19を
実行して現プロット点Qiに対応するWNPM1?上の
点のWNコードを更新し、iを+1しだ後(ステップ5
20)、ステップS13の判定に戻る。
以上の媒介変数表示の曲線セグメントに対する処理によ
れば、Δtの値を固定とせず、M  (〒1)1.Ig
’  (〒1)1のうち値が大きい方に対応するX軸ま
たはy軸をトレース主軸としてそのトレース主軸方向の
座標値をPlからP i+1へと1だけ歩進(増加また
は減少)させるのに必要な値を用いるようにしているの
で、プロットのために直線補間を行なったり、分解能の
粗い例えばレーザビームプリンタで細かい文字を印字す
るときにΔtが小さくなり過ぎて同一プロット点を何度
も計算してしまうといった虞はない。
次に塗りつぶし処理回路18の動作を第17図のフロー
チャートを参照して説明する。塗りつぶし処理回路18
は、WNPM17の2つのWNコード記憶領域のうち、
一連のWNコード更新処理が終了している文字パターン
に関するWNコードが格納されている領域を対象に、以
下に述べるようにライン方向の連続した8点を単位に順
にWNコードを取出して8点単位で塗りつぶしを行なう
。この8は、ワードアドレスがライン方向に連続して割
付けられるビットマツプメモリ20の1ワードの構成ビ
ット(ドツト)長に合せたものである。なお、上記した
対象領域(アクセス対象WNコード記憶領域)は領域指
定ビット(ここでは1ビツト)によって指定される。し
たがって、WNPM17のワード位置は領域指定ビット
とA RU 41゜A RL 42の各内容との連結情
報によって指定されるが、ここではWNPMlV内の1
つのWNコード記憶領域をアクセス対象とすることから
、同領域は便宜上、AR′U41.ARL42の各内容
の連結情報によってアクセスされるものとして説明する
さて塗りつぶし処理回路18は、まずLML9の内容を
″0′クリヤする(ステップS 31)。次に塗りつぶ
し処理回路18は、セレクタ45.4GからOを選択出
力させてARU41.ARL42にロードする(ステッ
プ532)。ARU41の内容(上位アドレス)および
ARL42の内容(下位アドレス)は連結され、WNP
M17のアクセス対象WNコード記憶領域のワード位置
を指定する。これにより、指定されたWNPM17内ワ
ード位置からライン方向(水平方向)の連続した8点分
のWNコード(24ビツト)が読出され、DWR47に
ラッチされる(ステップ533)。A RL 42の内
容はLMf9のワード位置の指定にも用いられる。これ
により上記ステップS33では指定されたLM19ワー
ド位置からライン方向の連続した8点分の参照ラインデ
ータ(16ビツト)が読出され、PLWR4gにラッチ
される。なお、第17図におけるステップS33の’A
RUφARL”の記号φは、ARU41ARL42の各
内容(2進数ビツトパターン)を連結(concate
nation )することを意味する。
DWR47,PLWR4gの各ラッチ内容(8点分のW
Nコード、参照ラインデータ)は塗りつぶし回路49に
供給される。塗りつぶし回路49は、第17図のステッ
プS34において”DWR+PLWR’ と示されるよ
うに、DWR47,PLWR41の各ラッチ内容につい
て、対応点毎の加3@演算(2進数演算)を8点分並列
に行なう。さて、DWR47の各点毎のラッチ内容とし
ては−3〜+3の他に“±″が有り得る。しかし、この
“±′は、上記の加算演算においては零(0)として扱
われる。上記DWR+PLWR”で示される8点分の各
加算演算結果はその点のWナンバを示している。塗りつ
ぶし回路49で生成された8点分のWナンバ(16ビツ
ト)は、次のライン(ARU41の内容+1で示される
ライン)の各対応点(同−X座標の点)の塗りつぶし時
に参照するための新たな参照ラインデータとして、バス
ドライバ51を介してLM19に送出され、A RL 
42によって指定されるLM19の元のワード位置に書
込まれる。このLM19は、文字パターン1ライン分の
ドツト数以上の容量を持つ高速RAMで構成される。最
大2インチ角程度の文字までを最大800DPI(ドツ
ト/インチ)の分解能で印刷できるシステムに適用する
場合には、文字パターンの横方向ドツト数は1200以
上あればよく、この程度の容量のLML9は、市販の高
速SRAM(スタティックRAM)1チツプで実現可能
である。また、LM19を塗りつぶし処理回路18と一
緒にLSI化することも可能である。
塗りつぶし回路49は、上記 ’DWR+PLWR’で示される各点毎の加算演算結果
またはD W R47の各点毎のう・ノチ内容を調べ、
少なくとも一方がOでない点については黒表示用の論理
“1′の塗りつぶしビットデータ、を出力し、いずれも
0となる点については白表示用の論理“0″の塗りつぶ
しビットデータを出力する。
即ち、この実施例では、D W R17にラッチされた
(同一ライン上の)8点分のWNコードのうち、0を示
していないWNコードに対応する点については、そのコ
ードが“±“であっても黒表示用の論理“1′の塗りつ
ぶしビットデータを出力するようにしている。したがっ
て、輪郭線に対応する位置のドツト出力は必ず“1″と
なり、細い黒線も掠れることなく表現できる。また、塗
りつぶし対象点に先行するライン上の同−X座標位置の
点のWナンバ(参照ラインデータ)が0で、塗りつぶし
対象点のWNコードが“±°の場合、この塗りつぶし対
象点のWナンバは0であっても、塗りつぶしビットデー
タを“1”にするようにしているので、1ビツト幅以下
に縮小された細い黒線も消えることなく表現できる。
さて、ステップ334では、A RL 42の内容を1
インクリメントする動作が+1回路44によって行なわ
れる。そして塗りつぶし処理回路18では、ARL42
の示す値(下位アドレス)と前記WNコード領域(に対
応する文字パターン領域)のX方向(ライン方向)の構
成バイト数ELとの大小が比較され(ステップ535)
 、ARL42の示す値がELより小さい場合にはステ
ップ833の処理が再び実行される。これに対して、A
RL42の示す値がEL以上の場合には、ARU41の
内容を1インクリメントする動作が+1回路43によっ
て行なわれ、且つARL42に0がセットされる(ステ
・ノブ836)。次にA RU 41の示す値(上位ア
ドレス)と前記WNコード領域(に対応する文字、?タ
ーン領域)のy方向(塗りつぶし方向)のド・ソト数、
即ちライン数EUとの大小が比較され(ステ・ノブ53
7) 、ARU41の示す値がEUより小さい場合には
ステップ333の処理が再び実行される。これに対して
、A RU 41の示す値がEU以上の場合には、1つ
の文字パターンに関する塗りつぶし処理は終了となる。
塗りつぶし回路49から出力された8点分の塗りつぶし
データ(8ビツト)はPH10を介してビットマツプメ
モリ20に転送される。このとき塗りつぶし処理回路1
8からbitb+を回路21に、データ転送中(ビット
マツプメモリ20へのデータ書込み可)を示すレディ信
号RDYが出力される。bitbit回路21には、第
18図に示すように、(塗りつぶし処理回路18の塗り
つぶし処理のためにWNコード取出しの対象となってい
たWNPM17内のWNコード記憶領域に対応する塗り
つぶしパターンの)ビットマツプメモリ20上の書込み
開始位置Pの座標、X方向ピッチ(ELバイト)、y方
向ピッチ(EUドツト)等、塗りつぶし処理回路18に
おいて8点単位で生成される塗りつぶしパターンをビッ
トマツプメモリ20に連続的に書込むのに必要なパラメ
ータ(セットアツプデータ)が、塗りつぶし処理開始時
にセットされる。bltblt回路21は、塗りつぶし
処理回路18から8点単位で出力される塗りつぶしパタ
ーンを、前記した塗りつぶし処理回路18におけるWN
PM17内WNコード記憶領域からのWNコード取出し
と同一の手順で、レディ信号RDYに応じて第18図に
示すように■、■。
■とy方向(ライン方向)にXアドレスを1つずつ増加
しながら順に書込み、ELバイトの書込みを終了すると
Xアドレスを1つ増加し、且つXアドレスを■の場合と
同一値に戻して、再びy方向に塗りつぶしパターンを8
点単位で書込む動作を繰返す。
以上の塗りつぶし処理方式では、1つのWNコード記憶
領域に対応する塗りつぶしパターンの書込みに必要なり
1tblt回路21へのセットアツプデータの設定が1
回で済むため、bltblt回路21を利用したビット
マツプメモリ20への高速転送が可能となる。これに対
し、単純に塗りつぶし方向(y方向)に塗りつぶしパタ
ーンの書込みを行なう方式では、EUライン分の1バイ
ト幅の塗りつぶしパターンの書込みが行なわれる毎に、
次の1バイト幅のEUライン分の塗りつパターンの書込
み込みに必要な新たなセットアツプデータを設定しなけ
ればならず、ELの値が大きい場合(第18図では便宜
的にEL−3(バイト)となっているが、最大2インチ
角程度の文字までを最大600 DP+の分解能で印刷
できるシステムに適用する場合には、150以上必要と
なる)、高速転送が極めて困難となる。
ここで、塗りつぶし処理回路18の塗りつぶしにより、
例えば第19図に示すような文字パターン(一部)を1
/3に縮小した文字パターンを発生する場合について説
明する。この場合、最初に上側輪郭線についてWNコー
ドが発生されるものとすると、そのときの各点のWNP
M17内WNコードの状態は第20図(a)に示す通り
となる。
次に下側の輪郭線についてWNコードを発生してWNP
M17内のWNコードの更新を行なう場合には、縮小の
結果上側輪郭線と下側輪郭線とが同じドツト上で重なる
ことになるため、第19図に示す文字パターンの1/3
縮小パターンに関する各点のWNコードの状態は最終的
には第20図(b)に示すようになる。そして、第20
図(b)の状態をもとに、上記の塗りつぶしが行なわれ
ることにより、結果的に1ドツト幅となる線(第20図
(b)において“±”が描かれたライン)が正しく発生
される。
さて本実施例では、第21図においてWNコード記号が
書込まれていない口中の点のように、同点に隣接する上
側および下側のいずれの点も黒となるような点は、前記
したWNG14の動作から明らかなようにWNコードの
更新対象とならないため、WNPM17に対する不要の
アクセスが発生しない。また、1ドツト尖鋭端を持つ文
字パターンでは、その点が第22図に示すようにWNコ
ード“±°で明示されるため、正しい塗りつぶしが可能
となる。
[発明の効果] 以上詳述したようにこの発明によれば、次に列挙する作
用効果を奏することができる。
■ 1つの文字パターンを定義する幾つかの線図形につ
いて、それぞれ1度たどるだけで、最終的には全ての線
図形を配置した状態における各点のWナンバの変化数ま
たは変化状態がWNコードとして記憶手段内に求まり、
この記憶手段の記憶内容から各点のWナンバが簡単に求
められるので、従来のノンゼロ−ワインディング・ナン
バ方式による塗りつぶしに比べて高速化が可能となる。
■ 現プロット点のWNコードを求めるのに用いられる
現プロット点の直前、直後のセグメント部分の方向を示
す方向コードであって、45°単位の方向に正規化され
た方向コードが、先行プロット点と同プロット点に対し
て8連結の関係を保つ現プロット点、およびこの現プロ
ット点と同プロット点に対して8連結の関係を保つ次プ
ロット点の相互位置関係から、そのまま求められるので
、処理速度が一層高速となる。特に媒介変数表現の曲線
セグメント群を用いて線図形を定義する場合に、媒介変
数のプロット間隔をセグメントの形状に応じて可変する
ことにより、結果的に同一プロット点を何度も求めたり
する無駄がなく、プロットのための直線補間も必要とし
ないので、この場合にも高速化が可能となる。
■ 文字パターンを定義する線図形の輪郭線を近似する
プロット点(格子点)が必ず8連結の関係を保って順に
発生され、しかも各プロット点のWNコードは、1つの
点の前後で(パターン縮小などのために)1増加と1減
少とが重なって発生する特異状態も示すので、この状態
を加味して塗りつぶしデータを生成することによりWナ
ンバを正しく求めることが可能であり、1ドツト尖鋭端
を持つ文字パターンや細い線を正しく発生することがで
きる。また上記の理由により、粗い分解能で小さい文字
等を印字するとき、細い線がとぎれることがなく、高品
質な文字パターン印字が可能となる。
【図面の簡単な説明】
第1図はこの発明を適用する高品質文字パターン発生装
置の一実施例を示すブロック構成図、第2図は細い線を
含む文字パターンを縮小した場合の問題を説明するため
の図、第3図は上記の問題を解決するためのDDAプロ
ット方式を第2図に対応させて説明するための図、第4
図は細い横線の縮小パターンに上記DDAプロット方式
を適用した場合を説明するための図、第5図は第1図に
示すWNコード生成テーブル15の内容を示す図、第6
図は第1図に示すWNコード更新テーブル16の内容を
示す図、第7図は第1図に示す塗りつぶし処理回路18
周辺のブロック構成図、第8図は媒介変数表現を適用し
ないセグメントを対象とする場合のM1図に示すWNG
I4の動作を説明するためのフローチャート、第9図は
媒介変数表現を適用しないセグメントとプロット点の関
係の具体例を示す図、第10図は接線ベクトルの方向の
分類を説明するための図、第11図は媒介変数表現を適
用しないセグメントを対象とする場合のプロット点決定
条件を接線ベクトルの方向に対応させて示す図、第12
図はWNコードの生成ルールの適用例を説明するための
図、第13図は媒・介変数表現のセグメントを対象とす
る場合の上記WNG14の動作を説明するためのフロー
チャート、第14図は媒介変数表現のセグメントとプロ
ット点の関係の具体例を示す図、第15図は同セグメン
トに対する媒介変数の増分を決定するための動作を説明
するための図、第16図は媒介変数表現のセグメントを
対象とする場合のプロット点決定条件を接線ベクトルの
方向に対応させて示す図、第17図は上記塗りつぶし処
理回路18の動作を説明するためのフローチャート、第
18図は上記塗りつぶし処理回路18の処理順序を第1
図に示すビットマツプメモリ20のメモリ空間と対応付
けて説明するための図、第19図は文字パターンとWN
コードとの関係の一例を示す図、第20図は第19図に
示す文字パターンを1/3縮小する場合のWNコードの
変化状態を示す図、第21図はWNコード更新を省略す
る場合のパターン例を示す図、第22図は1ドツト尖鋭
端を持つパターンとWNコードとの関係を示す図、第2
3図は従来方式でも正常なパターン発生が可能な線図形
と発生文字パターンの一例を示す図、第24図は従来方
式では正常なパターン発生が不可能な線図形(縮小図形
)と発生文字パターンの一例を示す図である。 14・・・WNコード(ワインディング・ナンバ・コー
ド)生成回路(WNG) 、15・・・WNコード生成
テーブル、16・・・WNコード更新テーブル、17・
・・WNコードパターンメモリ (WNPM) 、tg
・・・塗りつぶし処理回路、19・・・ラインメモリ(
LM)、20・・・ビットマツプメモリ、21・・・ビ
ットブロック転送回路(bHblt回路)。 出願人代理人 弁理士 鈴江武彦 第4 図 第 図 (a) (b) 第2図 (a) (b) 第6図 第8図 第9図 第10 図 第12図 第14図 第13図 (a) 第15図 (b) 第17図 第18図 第19図 第20図 第21図 第n図 1ドツト巾あ 第23図 1F、ト幅 第24図

Claims (11)

    【特許請求の範囲】
  1. (1)少なくとも1つの線図形によって文字パターンを
    定義するための線図形情報を受け、上記線図形を構成す
    るセグメント毎に対応するセグメントを近似する各格子
    点を8連結の関係を保って1格子点ずつ順次決定し、現
    プロット対象格子点とその前後の上記セグメントを近似
    する格子点の相互位置関係で決定される格子点の移動方
    向から、上記現プロット対象格子点におけるワインディ
    ング・ナンバの変化状態を判別し、変化無しを示す第1
    の値、1増加を示す第2の値、1減少を示す第3の値、
    1増加と1減少とが重なって発生することを示す第4の
    値のいずれか1つを、ワインディング・ナンバ変化数ま
    たは変化状態を示す第1ワインディング・ナンバ・コー
    ドとして生成する操作を上記線図形情報で示された線図
    形の順序で且つその線図形をたどる方向に行なうコード
    生成手段と、上記文字パターンを定義する全線図形に関
    する各点の上記ワインディング・ナンバ変化数または変
    化状態を示す第2ワインディング・ナンバ・コードを記
    憶するためのワインディング・ナンバ・コード記憶手段
    と、上記コード生成手段によって生成される上記第1ワ
    インディング・ナンバ・コードをもとに、同コードに対
    応する格子点の上記ワインディング・ナンバ・コード記
    憶手段内上記第2ワインディング・ナンバ・コードを更
    新する更新手段と、上記ワインディング・ナンバ・コー
    ド記憶手段に記憶されている各格子点毎の上記第2ワイ
    ンディング・ナンバ・コードを塗りつぶし方向に順次取
    出し、同コードをもとにワインディング・ナンバを生成
    して塗りつぶしを行なう塗りつぶし手段とを具備するこ
    とを特徴とする高品質文字パターン発生方式。
  2. (2)上記コード生成手段は、上記現プロット対象格子
    点またはその近傍における上記セグメントの接線ベクト
    ルまたはその成分を求め、この求めた結果である接線ベ
    クトル情報をもとに次のプロット対象格子点を決定する
    ことを特徴とする第1請求項記載の高品質文字パターン
    発生方式。
  3. (3)上記コード生成手段は、上記現プロット対象格子
    点のxまたはy座標値と1だけ異なる上記セグメント上
    の点を近似し、このセグメント上の点とxまたはy座標
    値が同一の近似点を、上記接線ベクトル情報をもとに求
    め、この近似点と上記接線ベクトルの方向をもとに次の
    プロット対象となる次プロット対象格子点を求めること
    を特徴とする第2請求項記載の高品質文字パターン発生
    方式。
  4. (4)上記コード生成手段は、x軸およびy軸のうち上
    記接線ベクトルと成す角度の絶対値が小さい方の軸であ
    るトレース主軸側の上記現プロット対象格子点の座標値
    と同一の座標値を、上記接線ベクトルの方向に応じて+
    1または−1して上記近似点のトレース主軸側座標値を
    求めると共に、上記近似点のトレース主軸とは異なる軸
    であるトレース従属軸側の座標値を上記接線ベクトルを
    もとに求めることを特徴とする第3請求項記載の高品質
    文字パターン発生方式。
  5. (5)上記コード生成手段は、上記近似点のトレース従
    属軸側座標値と上記接線ベクトルの方向とにより、上記
    現プロット対象格子点のトレース従属軸側座標値と同一
    の座標値を+1または−1するか或はそのまま用いるか
    を判別し、この判別結果に応じて上記現プロット対象格
    子点のトレース従属軸側座標値と1だけ異なるか或は同
    一の上記次プロット対象格子点のトレース従属軸側座標
    値を求めると共に、上記近似点のトレース主軸側座標値
    を上記次プロット対象格子点のトレース主軸側座標値と
    することを特徴とする第4請求項記載の高品質文字パタ
    ーン発生方式。
  6. (6)上記セグメントが媒介変数表現の関数x=f(t
    )およびy=g(t)で定義される曲線セグメントの場
    合、上記コード生成手段は、現プロット対象格子点に対
    応する上記セグメント上の点における媒介変数に関する
    微分値f′(t)、g′(t)を上記接線ベクトルの成
    分として求め、その絶対値の大きい方の軸であるトレー
    ス主軸側座標値を現プロット対象格子点のトレース主軸
    側座標値に対して1だけ歩進させるのに必要なをの増分
    Δtを求め、このΔtとトレース従属軸側の上記微分値
    との積で示されるトレース従属軸側座標値の変化量をも
    とに、次プロット対象格子点のトレース従属側座標値を
    現プロット対象格子点に対して1だけ歩進させた値とす
    るか否かを判別し、この判別結果をもとに次プロット対
    象格子点を求めることを特徴とする第2請求項記載の高
    品質文字パターン発生方式。
  7. (7)上記塗りつぶし手段は、上記ワインディング・ナ
    ンバ・コード記憶手段に記憶されている各格子点毎の上
    記第2ワインディング・ナンバ・コードをライン方向の
    連続したN点(Nは2以上の整数)を単位にライン方向
    に順次取出し、このN点分の第2ワインディング・ナン
    バ・コードをもとに対応するN格子点のワインディング
    ・ナンバを生成してN点単位の塗りつぶしを行なう操作
    をラインを順に切替えながら実行することを特徴とする
    第1請求項乃至第6請求項のいずれかに記載の高品質文
    字パターン発生方式。
  8. (8)上記塗りつぶし手段によって生成されたN格子点
    のワインディング・ナンバを、上記塗りつぶし手段によ
    る次のラインの塗りつぶしに際して参照される参照ライ
    ンデータとして記憶するための参照ラインデータ記憶手
    段を備え、上記塗りつぶし手段は、上記ワインディング
    ・ナンバ・コード記憶手段から取出した上記N点分の第
    2ワインディング・ナンバ・コードおよびこのN点に対
    応する上記参照ラインデータ記憶手段内のN点分の上記
    参照ラインデータをもとに、N点分のワインディング・
    ナンバおよび塗りつぶしデータを並列に生成し、生成し
    たN点分のワインディング・ナンバを上記参照ラインデ
    ータ記憶手段の元の位置に書き戻すことを特徴とする第
    7請求項記載の高品質文字パターン発生方式。
  9. (9)上記更新手段は、上記第1ワインディング・ナン
    バ・コードが上記第2の値の場合には上記第2ワインデ
    ィング・ナンバ・コードに1を加算し、上記第1ワイン
    ディング・ナンバ・コードが上記第3の値の場合には上
    記第2ワインディング・ナンバ・コードから1を減算し
    、結果が0にならなければその結果を採用し、0になれ
    ば上記第4の値を採用し、上記第1ワインディング・ナ
    ンバ・コードが上記第4の値の場合には、上記第2ワイ
    ンディング・ナンバ・コードが0であれば上記第4の値
    を採用し、0でなければ上記第2ワインディング・ナン
    バ・コードの更新を控えることを特徴とする第1請求項
    乃至第8請求項のいずれかに記載の高品質文字パターン
    発生方式。
  10. (10)上記塗りつぶし手段は、上記ワインディング・
    ナンバ・コード記憶手段から取出した上記N点分の第2
    ワインディング・ナンバ・コードおよびこのN点に対応
    する上記参照ラインデータ記憶手段内のN点分の上記参
    照ラインデータの間の各点毎の加算を、上記第2ワイン
    ディング・ナンバ・コードが上記第4の値の場合には0
    として扱って実行することにより、上記N点分のワイン
    ディング・ナンバを生成すると共に、この生成したワイ
    ンディング・ナンバまたは上記第2ワインディング・ナ
    ンバ・コードが上記第1の値であるか否かに応じて対応
    点の塗りつぶしデータを生成することを特徴とする第9
    請求項記載の高品質文字パターン発生方式。
  11. (11)上記ワインディング・ナンバ・コード記憶手段
    は、1つの文字パターンに関する全ての上記第2ワイン
    ディング・ナンバ・コードを格納するための記憶領域を
    少なくとも2つ有しており、この記憶領域は上記線図形
    が切替わる毎に上記第2ワインディング・ナンバ・コー
    ドの格納のためにサイクリックに切替えられ、1つの文
    字パターンに関する上記第2ワインディング・ナンバ・
    コードが全て格納された後に上記塗りつぶし手段の塗り
    つぶし処理に利用されることを特徴とする第1請求項乃
    至第10請求項記載の高品質文字パターン発生方式。
JP1087333A 1989-04-06 1989-04-06 高品質文字パターン発生方式 Pending JPH02266480A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP1087333A JPH02266480A (ja) 1989-04-06 1989-04-06 高品質文字パターン発生方式
EP19900106497 EP0391401A3 (en) 1989-04-06 1990-04-05 Method and apparatus for generating high-quality pattern
KR1019900004859A KR920008273B1 (ko) 1989-04-06 1990-04-06 고품질 패턴 발생 방법 및 장치
US08/337,512 US5428719A (en) 1989-04-06 1994-11-08 Method and apparatus for generating high-quality pattern in accordance with an edge defining a character pattern

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1087333A JPH02266480A (ja) 1989-04-06 1989-04-06 高品質文字パターン発生方式

Publications (1)

Publication Number Publication Date
JPH02266480A true JPH02266480A (ja) 1990-10-31

Family

ID=13911948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1087333A Pending JPH02266480A (ja) 1989-04-06 1989-04-06 高品質文字パターン発生方式

Country Status (3)

Country Link
EP (1) EP0391401A3 (ja)
JP (1) JPH02266480A (ja)
KR (1) KR920008273B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04262473A (ja) * 1990-09-28 1992-09-17 Xerox Corp 多重ステッパーを用いた高速図形画像生成法
US5438656A (en) * 1993-06-01 1995-08-01 Ductus, Inc. Raster shape synthesis by direct multi-level filling
US5428744A (en) * 1993-08-30 1995-06-27 Taligent, Inc. Object-oriented system for building a graphic image on a display
WO2005064530A1 (ja) * 2003-12-25 2005-07-14 Kenji Yoshida ドットパターンを用いた情報入出力方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4815009A (en) * 1987-04-21 1989-03-21 Xerox Corporation Algorithm for filling an image outline

Also Published As

Publication number Publication date
KR900016896A (ko) 1990-11-14
EP0391401A3 (en) 1992-07-15
EP0391401A2 (en) 1990-10-10
KR920008273B1 (ko) 1992-09-26

Similar Documents

Publication Publication Date Title
US5241653A (en) Apparatus and method for adjusting and displaying scaled, rasterized characters
JP3019202B2 (ja) 中心軸変換を利用したフォント書体変換方法
KR0167618B1 (ko) 문자 발생 장치 및 방법
KR100216614B1 (ko) 문자 패턴 발생 장치
JP3576611B2 (ja) 文字発生装置ならびに方法
JP3238580B2 (ja) 太め細め文字生成装置
US4972330A (en) Clipping process and processor
JP3037854B2 (ja) 文字生成方法及びその装置
JPH02266480A (ja) 高品質文字パターン発生方式
JPH02270019A (ja) 高品質文字パターン発生方式
JP2634851B2 (ja) 画像処理装置
JPH10143134A (ja) 文字の生成と記憶のための方法と装置
JP3146771B2 (ja) フォントラスタライズ装置およびその方法
KR20000057716A (ko) 다각형 묘화 방법, 및 다각형 묘화 장치
JP2888270B2 (ja) 図形処理装置及びその方法
JP2782904B2 (ja) 多角形塗りつぶし方式
JP2835056B2 (ja) 高品質文字パターン発生方式
JP2771981B2 (ja) 高品質文字パターン発生方式
JP3082467B2 (ja) アウトラインデータ処理装置
JPH07160242A (ja) 文字発生装置
JP3025739B2 (ja) 文字パターン発生装置および文字パターン発生方法
JPH04218094A (ja) アウトラインフォント処理装置
JPS62212167A (ja) 流用文字作成方式
JPS62175794A (ja) 文字発生装置
JPS62157089A (ja) ベクトル文字の作成方法