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

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

Info

Publication number
JP2771981B2
JP2771981B2 JP63020315A JP2031588A JP2771981B2 JP 2771981 B2 JP2771981 B2 JP 2771981B2 JP 63020315 A JP63020315 A JP 63020315A JP 2031588 A JP2031588 A JP 2031588A JP 2771981 B2 JP2771981 B2 JP 2771981B2
Authority
JP
Japan
Prior art keywords
code
point
line
character pattern
winding number
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 - Lifetime
Application number
JP63020315A
Other languages
English (en)
Other versions
JPH01196355A (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.)
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 JP63020315A priority Critical patent/JP2771981B2/ja
Priority to US07/302,710 priority patent/US5053759A/en
Priority to EP89101585A priority patent/EP0327002B1/en
Priority to KR1019890001128A priority patent/KR920008981B1/ko
Priority to DE68919416T priority patent/DE68919416T2/de
Publication of JPH01196355A publication Critical patent/JPH01196355A/ja
Application granted granted Critical
Publication of JP2771981B2 publication Critical patent/JP2771981B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/13Digital output to plotter ; Cooperation and interconnection of the plotter with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41BMACHINES OR ACCESSORIES FOR MAKING, SETTING, OR DISTRIBUTING TYPE; TYPE; PHOTOGRAPHIC OR PHOTOELECTRIC COMPOSING DEVICES
    • B41B19/00Photoelectronic composing machines
    • B41B19/01Photoelectronic composing machines having electron-beam tubes producing an image of at least one character which is photographed
    • 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
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation
    • G06K2215/0045Converting outline to bitmap

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Dot-Matrix Printers And Others (AREA)

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、文字パターンを1つ以上の線図形の集り
で定義する線図形情報をもとに高品質文字パターンを発
生する高品質文字パターン発生方式に関する。
(従来の技術) 一般に、線図形で定義された領域を塗りつぶす方式と
して以下に述べる第1乃至第3の方式が知られている。
まず第1の方式は、図形内の指定された点から順に点移
動を行ないながら各点毎に線図形の「内」か「外」かを
判断して塗りつぶしを進めるものである。この方式は、
パーソナルコンピュータなどにおける図形処理で用いら
れるもので、各点毎の判断処理が逐次的に行なわれるた
め、処理速度が遅いという問題がある。また、「領域の
連続性」を基準としているので、一般には塗りつぶしの
分岐点で「後戻り処理」を必要とする。
次に第2の方式は、線図形が描かれたビットマップメ
モリを所定方向(塗りつぶし方向)に走査して、例えば
“1"の点から“1"の点までの間を“1"で塗りつぶす方式
(even−odd方式の塗りつぶし)であり、上記の「後戻
り処理」を必要としない。しかし第2の方式では、文字
(文字パターン)の尖鋭端の塗りつぶし方向のドット数
が1ドットの場合(この尖鋭端を1ドット尖鋭端と定義
する)には、その尖鋭端のドットだけでなく、そのドッ
ト位置以降のドット列も塗りつぶされてしまうという不
都合があった。この不都合を解消するためには、文字パ
ターンのデザインに際し1ドット尖鋭端(塗りつぶし方
向と直交する方向のドット数が1ドットの文字尖鋭端
は、1ドット尖鋭端と呼ばない)が発生しないように工
夫しなければならず、煩雑であった。また、1ドット尖
鋭端を必要とする場合には、1ドット尖鋭端を持たない
文字パターンを塗りつぶし処理で発生した後、1ドット
尖鋭端を持つ文字パターンの輪郭線を重ねて描画する必
要があった。更に第2の方式では、第10図(a)に示す
ように文字パターンの輪郭線が重ならないような場合で
あれば、第10図(b)に示すように正しい文字パターン
が得られるものの、パターン縮小などのために文字パタ
ーンの輪郭線が(同一格子ライン上で)重なって第11図
(a)に示すように1ドット幅線となるような場合に
は、第11図(b)に示すような誤った文字パターンが発
生される問題もあった。なお、第11図における塗りつぶ
し方向はY方向(上から下方向)である。
第3の方式は、Adobe Systems社によって開発された
ページ記述言語であるPost Script(ポストスクリプ
ト)に用いられているnon−zero winding number(ノン
ゼロ・ワインディング・ナンバ)方式による塗りつぶし
である。この第3の方式では、まず線図形(文字の輪
郭)を、セグメント毎に例えば始点のY座標といったよ
うな何等かの基準でソートしてリストにしておく必要が
行なわれる。そして、“FILL"コマンド(塗りつぶしコ
マンド)を実行するときに、例えばX軸に平行直線で上
から下へ走査するプログラムループを作り、そのループ
1回毎にX軸に平行な直線(走査ライン)と上記リスト
中のセグメントとの交点を全て求める処理が行なわれ
る。次に、交点のX座標の順にそのセグメントの記述を
調べ線がどちら向き(上/下)に引かれているかを判断
して、winding number(以下、Wナンバと呼ぶ)を求
め、それが零でない(non−zero)区間をビットマップ
メモリ上で線を引く処理が行なわれる。第3の方式で
は、以上の処理が上記プログラムループで繰返される。
上記したように、第3の方式ではライン毎にセグメン
トリストを調べる必要がある。このため、セグメントリ
ストが長くなる複雑な図形(漢字パターンなど)の場合
には、処理時間が極めて長くなるという問題があった。
また、上記の交点計算を、「輪郭線の総ドット数」程度
繰返す必要もあった。
(発明が解決しようとする課題) 上記したように従来は、even−odd方式の塗りつぶし
では、1ドット幅の線や1ドット尖鋭端を持つ文字パタ
ーンを正しく発生できず、またnon−zero winding numb
er方式による塗りつぶしでは高速処理ができないという
問題があった。
したがってこの発明は、1ドット幅の線や1ドット尖
鋭端を持つ文字パターンを正しく発生することができ、
且つ複雑な文字パターンも高速に発生できるようにする
ことを解決すべき課題とする。
[発明の構成] (課題を解決するための手段) この発明は、1つ以上の線図形によって文字パターン
を定義するための線図形情報をもとに、線図形を構成す
る全てのセグメント毎に格子ラインとの各交点またはセ
グメントを近似する各格子点について、その点の前後の
セグメント部分の方向の組合わせから、その点における
ワインディング・ナンバの変化状態を判別し、変化無し
を示す第1の値、1増加を示す第2の値、1減少を示す
第3の値、1増加と1減少とが重なって発生することを
示す第4の値のいずれか1つを、ワインディング・ナン
バ変化数または状態を示すワインディング・ナンバ・コ
ードとして生成する操作を線図形情報で示された線図形
の順序で且つその線図形をたどる方向に行なうコード生
成手段と、塗りつぶし対象文字パターンの各点のワイン
ディング・ナンバ・コードを記憶するための記憶手段
と、コード生成手段によって生成されるワインディング
・ナンバ・コードをもとに、同コードに対応する格子点
の記憶手段内ワインディング・ナンバ・コードを更新す
る更新手段とを設け、記憶手段に記憶されている各格子
点毎のワインディング・ナンバ・コードを塗りつぶし方
向に順次取出し、同コードをもとに対応する格子点のワ
インディング・ナンバを生成して塗りつぶしを行なうよ
うにしたことを特徴とする。
(作用) 上記の構成によれば、1つの文字パターンを定義する
幾つかの線図形について、それぞれ1度たどるだけで、
最終的には全ての線図形を配置した状態における各点の
ワインディング・ナンバの変化数または変化状態がワイ
ンディング・ナンバ・コードとして記憶手段内に求ま
り、この記憶手段の記憶内容から各点のワインディング
・ナンバが簡単に求められるので、塗りつぶしによる文
字パターン発生が高速で行なえる。しかも上記のコード
では、1つの点の前後で(パターン縮小などのために)
1増加と1減少とが重なって発生することも示されるの
で、ワインディング・ナンバを正しく求めることが可能
であり、誤った塗りつぶしや細かい線の消失を防止でき
る。
(実施例) 第1図はこの発明の適用する高品質文字パターン発生
装置の一実施例を示すブロック構成図である。同図にお
いて、11は標準サイズの文字パターンを1つ以上の線図
形の集りで定義する線図形情報を記憶する文字パターン
データメモリ、12は所望の文字パターンの情報(線図形
情報)を所望サイズの文字となるように変更する修飾処
理回路、13は修飾処理回路12から出力される線図形情報
を一時格納する先入れ先出し方式のバッファ(以下、FI
FOと称する)である。
14はFIFOバッファ13に格納されている線図形情報に基
づき、現在処理中の線図形の現セグメント(直線セグメ
ント,曲線セグメント)と格子ラインとの交点(または
この交点を近似する格子点)の塗りつぶし方向における
前後の点でのWナンバ(winding number)の差分を示す
コードデータ(以下、WNコード)を生成し、処理済みの
線図形を考慮した該当点におけるWNコードを決定するWN
コード生成回路(以下、WNGと称する)である。WNG14は
上記のWNコード生成に供されるWNコード生成テーブル15
と、上記のWNコード決定(実際にはWNコード更新)に供
されるWNコード更新テーブル16とを有している。
前記交点を近似する格子点は、生成する文字パターン
を構成するドットに対応するものである。さて、細い線
を含む文字パターンを非常に強く縮小すると、通常の数
学的処理では、その線を表わす部分文字パターンが相隣
る格子点の間を通過してしまって、格子点に写像された
Wナンバだけを用いたのでは部分文字パターンが切れ切
れになってしまったり、(格子ラインに平行な場合に
は)完全に消えてしまったりすることがある。ここで、
上記した部分文字パターンが切れ切れになる問題を第12
図を参照して説明する。まず、第12図(a)は強く縮小
された文字パターンの一部である黒斜線21,21′と生成
するドットに対応する格子とを示す。第12図(a)にお
いて、記号●は線21,21′間の領域(黒領域)の中にあ
ってWナンバが1である格子点を示し、ここでは4点あ
る。第12図(b)は出力する文字パターンのドット構成
を示すもので、ドットの中心と第12図(a)の格子点と
が対応する。例えば第12図(a)の格子点A,B,Cと第12
図(b)に示すドット中心A′,B′,C′がそれぞれ対応
する。明らかなように、第12図(a)においてWナンバ
が1である(記号●で示される)格子点に対応するドッ
トを黒色にして出力すると、第12図(b)のように線が
切れ切れになってしまう。
上記の問題とその解決方法は従来から知られている。
例えば縦横それぞれ1/2に縮小する場合、縮小後の1点
に対応する縮小前の4点のうちどの1点が黒であって
も、出力ドットは黒とする方式がその一例である。即
ち、縮小に当たっては黒領域を脹らませて黒領域の連続
性を確保する方策が知られており、これは、白地に細い
黒線で文字パターンが描かれている場合の縮小に好適な
方式である。
ここで、第1図のWNG14に適用される黒領域の連続性
を維持するための方式について第13図および第14図を参
照して説明する。
まず、第13図(a)には第12図(a)と同一の線図形
(黒斜線21,21′を含む)が示されており、この線図形
(内の線21)を符号Dで示される位置から左下方向へた
どっているものとする。第13図(a)の例では、線21が
D位置の近傍でY軸に平行な線に対して成す角度(ここ
では線の方向は考えず、従って0゜〜90゜の範囲で考え
る)よりも、X軸に平行な線に対して成す角度の方が大
きい。この場合にはX軸に平行で次の格子点を通る線
(格子ライン)Eと線図形(内の線21)との交点Fを求
め、点Fに最も近い格子点Gを求め、G点も黒領域(W
ナンバが1である領域)に含むように領域拡張を行な
う。
上記のように拡張される領域に含まれる点を求める操
作には、DDA(Digital Differential Analyzer)と呼ば
れる周知の直線描画アルゴリズムにより直線または曲線
を8連結の関係を保って格子点上にプロットする手法が
用いられる。このDDAプロット手法によれば、第13図
(a)の例では、線21とX軸に平行な格子ラインとの交
点に代えて、矢印→と記号●で示すように線21を近似す
る(プロット対象)格子点が8連結の関係を保って順次
求められ、その点が元々黒領域に含まれていればそのま
まとされ、黒領域外にあればその点も黒領域に含まれる
ように黒領域が破線で示す如く拡張される。以上の処理
は、線21′についても同様に(但しここでは、たどる方
向は右上方向)行なわれ、線21′を近似する(プロット
対象)格子点が8連結の関係を保って順次求められる。
第13図(a)には、このようにして求められた格子点の
うち、拡張された領域に含まれる格子点が記号▲で示さ
れている。以上の記号●および▲で示される各点に対応
するドットを黒として出力すると、第13図(b)に示す
結果となり、黒領域が連続する。なお、第13図(b)の
結果は互いに隣接する黒ドットが4連結の関係となって
いるが、常に4連結の関係となる訳ではない。しかし、
いかに線幅が細くなっても互いに隣接する黒ドットが8
連結関係を保つことは、前記した周知のDDAプロット手
法から保証される。
ところで、漢字パターン、特に横線の幅が細い明朝体
文字パターンを強く縮小すると、第14図に示すように横
線を表わす黒領域Hが互いに隣接する格子ライン間に入
ってしまうことがある。この場合には、数学的に各格子
点のWナンバを求めてそれに対応するドット出力を行な
うと、上記の横線が完全に消失してしまう。しかし、前
記したDDAプロット手法を用いる本実施例では、黒領域
Hの例えば上側境界を表現する線図形を処理するとき
に、黒領域(Wナンバが1の領域)が第14図において記
号●で示される格子点を含むよう符号Iで示す位置まで
拡張されるので、文字パターン中の細い黒線が消失する
ことはない。
次に、第1図のWNG14によって生成されるWNコードに
ついて説明する。この実施例では、WNコードとして次の
4種が用意される。第1のWNコードは、注目点のWナン
バが、その直前(塗りつぶし方向の直前であり、本実施
例では注目点の上隣)の格子点のWナンバと比べて差が
ないことを示す“0"であり、第2のWNコードは、注目点
のWナンバが、その直前の格子点のWナンバと比べて1
だけ大きいことを示す“+”である。また第3のWNコー
ドは、注目点のWナンバに比べて、その直後(ここでは
下隣)の格子点のWナンバが1だけ小さいことを示す
“−1"であり、第4のWNコードは、注目点の(塗りつぶ
し方向における)直前直後の格子点のWナンバの差分は
0であるものの、注目点でのWナンバがこの直前直後の
格子点のWナンバとは1だけ異なることを示す“±”で
ある。ここでは、上記したWNコード“0",“+",“−",
“±”を表現するための2ビットコードとして、それぞ
れ“00",“01",“10",“11"を用いている。なお、WNコ
ードが上記したように4種で済むのは、線付けが文字パ
ターンの輪郭線であって輪郭線同士および自身が重なら
ない場合(但し、標準サイズの線図形上)、即ちWナン
バの最大値が1の場合であり、本実施例ではこの場合を
前提としている。なお、例えば最大3つの線図形の重な
りまで許す場合、即ちWNの最大値が3つの場合には、W
ナンバの差分は±3の範囲となり得るので、−3〜+3
および“±”の8種のWNコードを用意する必要がある。
この場合においても、WNコード生成テーブル15では1つ
の線図形だけを対象とするため、上記の4種のWNコード
だけが用いられる。
17はWNG14によって決定(更新)されたWNコードが該
当点(を近似する格子点)に対応して格納されるWNコー
ドパターンメモリ(以下、WNPMと称する)、18はWNPM17
に格納されている各点のWNコードをもとに塗りつぶし処
理を行なって文字パターンを発生する塗りつぶし処理回
路である。塗りつぶし処理回路18は、WNPM17から取出し
た或る点のWNコードとこの点を通る塗りつぶしラインに
関する初期値が“0"の(この点の)参照データ(参照W
ナンバ)とをもとに、この点のWナンバ(ここでは0ま
たは1)、および上記参照データに代わる新たな(次の
点の処理のための)参照データ(ここでは0または1)
を生成する機能を有している。
なお、この実施例では、1つの線図形は閉じており、
必ず一筆書きで描画可能なように定義されている。ま
た、一筆書きの方向は、ポストスクリプトで定義されて
いるように、左側に塗りつぶし領域を見る方向に進むも
のとし、塗りつぶしはY軸方向(ここでは上から下方
向)に行なわれるものとする。但し、この選択は本質的
なものではない。例えば、右側に塗りつぶし領域を見る
方向に一筆書きをするようにWナンバを定義し、塗りつ
ぶしをX軸方向へ行なうように本実施例を変更すること
は可能である。
第2図はWNコード生成テーブル15の内容の一例を示
す。同図において、黒ドット“・”は上記交点を示し、
この黒ドットに向かう矢印“→”は、注目する交点へど
の方向からセグメントが移動してきたかを示し、この黒
ドットから離れる矢印“→”は、セグメントが注目点か
ら次にどの方向へ移動するかを示している。矢印の方向
は45゜単位の8種に分類されている。この矢印の方向を
示すコードを移動方向コードと呼ぶ。第2図には、注目
点への移動方向と注目点からの移動方向との組合わせに
より、4種のWNコードの1つが生成されることが示され
ている。
第3図はWNコード更新テーブル16の内容を示す。第3
図では、WNコード生成テーブル15に従って生成されたWN
コードとWNPM17から取出した同一点のWNコードとの組合
せにより、WNPM17内の該当点のWNコードの更新内容が一
義的に決定されることが示されている。
第4図は塗りつぶし処理回路18の処理機能を示す。同
図において、(P,Q)の形式のエントリ(P,Qはそれぞれ
0または1)は、該当する入力の組合せ(即ちWNPM17か
らのWNコードと参照データとの組合わせ)に応じて、W
ナンバとしてPが、次の点の処理のための新たな参照デ
ータとしてQが生成されることを示す。
次に、この発明の一実施例の動作を、第5図のフロー
チャートを適宜参照して説明する。まず修飾処理回路12
は、データメモリ11から所望の文字の標準サイズの文字
パターンを定義する線図形情報をデータメモリ11から取
出し、この取出した線図形情報が所望の文字サイズの文
字パターンを定義するように変更する。そして修飾処理
回路12は、変更後の線図形情報(変更の必要がなければ
取出した線図形情報)をFIFOバッファ13に書込む。ここ
までは、従来でも一般に行なわれている。
WNG14は、FIFOバッファ13に書込まれた線図形情報を
順に取出し、まず線図形の開始点を所定分解能のドット
格子点上へ写像し、その点をPとして内部記憶する(ス
テップS1)。次にWNG14は、線図形をたどる方向に格子
ラインに対するセグメント上の次の交点(またはセグメ
ントを近似する格子点列のうちの次の点)を求め、その
点を現注目点Pとする(ステップS2)。WNG14はステッ
プS2を終了すると、点Pの直前,直後のセグメントの方
向を求めて45゜単位の方向に正規化し、それぞれ対応す
る方向コード(移動方向コード)を生成する。(ステッ
プS3)。
WNG14はステップS3を終了するとステップS4に進み、
まずステップS3で生成した2つの方向コード、即ち点P
の直前のセグメント部分の移動方向を示すコード(先行
移動方向コード)及び点Pの直後のセグメント部分の移
動方向を示すコード(後続移動方向コード)を用いて第
2図に示すWNコード生成テーブル15を参照し、この2つ
の方向コード(の示す注目点の前後のセグメント部分の
移動方向)の組合わせで決まるWNコードを生成する。こ
の結果、次に示すWNコード生成が行なわれる。
先行移動方向コードが塗りつぶし方向(ここでは下向
き)を示している場合には、注目点の前後のセグメント
部分の成す角度(塗りつぶし領域を含む角度)θが180
゜未満であればWNコード“−”が生成され、180゜以上
であればWNコード“0"が生成される。ここでは上記の角
度θは2つのベクトルの成す角度と考え、0゜〜360゜
の範囲をとるものとしている。第15図に示すように上記
角度θが0゜<θ<180゜の場合は、記号○で示される
注目点のすぐ下の格子点は該当する線図形の示す黒領域
から外れる。また注目点自身は、前記したように拡張さ
れた黒領域に含まれる。このため、注目点には前記した
WNコードの定義に従って“−”が用いられるべきであ
り、上記のように“−”が生成される。これに対して18
0゜≦θ<360゜の場合には、注目点のすぐ下の格子点が
黒領域に入り、また注目点のすぐ上の格子点も拡張され
た黒領域に入るので、注目点の前後でWナンバの変化が
なく、上記のようにWナンバ“0"が生成されることにな
る。以下の説明では、WNコードの生成のルールだけを示
し、その詳細な理由は煩雑を避けるため省略するが、上
記の例のようにWナンバの変化を注目点とその直前直後
の格子点について考えれば容易に理解できる。
先行移動方向コードが塗りつぶし方向と逆の方向(こ
こでは上向き)を示している場合には、注目点の前後の
セグメント部分の成す角度(塗りつぶし領域を含む角
度)θが180゜未満であればWNコード“+”が生成さ
れ、180゜以上であればWNコード“0"が生成される。
後続移動方向コードが塗りつぶし方向を示している場
合には、注目点の前後のセグメント部分の成す角度(塗
りつぶし領域を含む角度)θが180゜未満であればWNコ
ード“+”を生成され、180゜以上であればWNコード
“0"が生成される。
後続移動方向コードが塗りつぶし方向と逆の方向を示
している場合には、注目点の前後のセグメント部分の成
す角度θが180゜未満であればWNコード“−”が生成さ
れ、180゜以上であればWNコード“0"が生成される。
先行および後続移動方向コードの示す方向の塗りつぶ
し方向とは直交する方向(ここでは水平方向)の成分
(水平方向成分)が右方向を示している場合、即ちセグ
メントが注目点を通る塗りつぶしラインを右方向に横切
る場合には、WNコード“−”が生成される。
先行および後続移動方向コードの示す方向の水平方向
成分が左方向を示している場合、即ちセグメントが注目
点を通る塗りつぶしラインを左方向に横切る場合には、
WNコード“+”が生成される。
先行および後続移動方向コードの示す方向の水平方向
成分が互いに逆方向を示している場合、即ちセグメント
が注目点を通る塗りつぶしラインを横切らないで戻る場
合には、注目点の前後のセグメント部分の成す角度180
゜未満であればWNコード“±”が生成され、180゜以上
であればWNコード“0"が生成される。
WNG14は、WNコード生成テーブル15を用いて上記したW
Nコードを生成すると、上記点P(を近似する格子点)
に対応するWNPM17上の点のWNコードを取出し、これら両
WNコードを用いて第3図に示すWNコード更新テーブル16
を参照する。なお、WNPM17の全ての点におけるWNコード
の初期値は“0"である。次にWNG14は、点Pに対応するW
NPM17上の点のWNコードを、WNコード更新テーブル16を
参照して得られるWNコードに更新する。この更新テーブ
ル16の論理は、 WNPM17の内容 =WNPM17の内容+生成WNコード で表わされる。上記式における+の演算ルールは、生成
WNコードが“+",“−”である場合には、それぞWNPM17
の内容(更新前WNコード)に対する+1,−1操作を行な
い、その結果が零となったときは“±”とするものであ
る。また、生成WNコード“±”はWNPM17の内容(更新前
WNコード)が“0"でない限りは“0"として扱われ、WNPM
17の内容は更新されない。これに対してWNPM17の内容
(更新前WNコード)が“0"の場合には、 “0"+“±”→“±” として処理される。また、生成WNコード“0"の場合には
WNPM17の更新は不要となる。そこで本実施例では、生成
WNコードが“0"の場合には、処理の高速化のためにWNコ
ード更新テーブル16を参照せず且つWNPM17をアクセスし
ないようにしている。したがって、第3図には説明の便
宜上、生成WNコードが“0"の場合のWNコード更新内容に
ついても示されているが、実際には不要である。上記の
論理は、線図形の重なりを許す場合にも適用可能であ
る。なお、第2図の更新テーブル16において、(括弧)
で示されているエントリの内容は上記の論理から外れて
いるが、このエントリに対応する組合わせは線図形(標
準サイズの線図形)の重なりを許さない本実施例では存
在しないため説明を省略する。
上記したステップS4の処理が行なわれることにより、
WNPM17の内容は、現在処理中の線図形の現セグメント上
の点Pまでの各点におけるWNコードを示すようになる。
次にWNG14は現在処理中の線図形の最終点についてWNコ
ード更新処理が終了したか否かを調べ、終了していなけ
ればステップS2に戻って次の交点を求めて新たにPと
し、この点PについてステップS3,S4を再び実行する。
そして、1つの線図形の最終点についての処理が終了す
ると、WNG14はこの線図形の開始点について、ステップS
3,S4と同様の処理を行なう。
このようにして1つの線図形についての処理が全て終
了すると、もし1つの文字パターンが複数の線図形で定
義されており且つ処理前の線図形が残されていれば、WN
G14は残された線図形について上記した処理を繰返し、
1つの文字パターンに関する全ての線図形についての処
理が終了したならば、次の文字パターンに関する上記の
処理を行なう。なお、WNPM17は2つの文字パターンに関
するWNコードが格納できるように2つのWNコード記憶領
域に区分されており、WNコードの更新処理は先行文字パ
ターンに関する更新対象領域とは別の領域を対象に行な
われる。これは、既に処理終了済みの文字パターンに関
するWNコードが格納されている領域を対象に、後述する
塗りつぶし処理を行なっている期間でも、次の文字パタ
ーンに関する上記処理がパイプライン的に並行して行な
えるようにするためである。
次に塗りつぶし処理回路18の動作を説明する。まず塗
りつぶし処理回路18は、WNPM17の2つのWNコード領域の
うち、一連のWNコード更新処理が終了している文字パタ
ーンに関するWNコードが格納されている領域を対象に、
横方向(水平方向)ラインの連続した例えば8点を単位
に塗りつぶし方向に順にWNコードを取出し、8点同時に
塗りつぶしを行なうようになっている。この塗りつぶし
は前記したように上から下に向かって行なわれ、下端に
達すると、例えば右隣の横幅が8点分の領域について、
再び8点単位の塗りつぶしが行なわれる。この塗りつぶ
しの原理は以下の通りである。
まず塗りつぶし処理回路18は、WNPM17から塗りつぶし
対象点(8点)に対応するWNコード列を取出す。塗りつ
ぶし処理回路18内部には、8点分の参照データ(参照W
ナンバ)が保持されている。各参照データの初期値は0
である。塗りつぶし処理回路18は、WNPM17からのWNコー
ドと参照データとの対応点毎の組合わせに応じ、第4図
に従って(P,Q)、即ち塗りつぶし対象点のWナンバと
してのP(線図形の重なりを許さない本実施例では0ま
たは1),次の点の塗りつぶしのための参照データとし
てのQ(0または1)を生成する。但し第4図において
記号*が付されたエントリに対応する組合わせは本実施
例では発生しない。
さて、塗りつぶし処理回路18において生成される(P,
Q)は第4図から明らかなように次の通りとなる。
現在の参照データ(参照Wナンバ)が0である場合 WNコードが“0"であれば即ち塗りつぶし対象点の前後
でWナンバの変化が無ければ、P,Qとして現参照データ
と同一値0が生成される。
WNコードが“+”であれば即ち塗りつぶし対象点の直
前の点に対してWナンバが+1変化していれば、Pとし
て現参照データを+1した値1が、またこの点のWナン
バを次の点に参照させるために、QとしてPと同一値1
が生成される。
WNコードが“±”であれば即ち塗りつぶし対称点の前
後で(パターン縮小のために線図形が同一の格子上で重
なるなどの理由で)Wナンバが+1と−1の変化を起こ
していれば、Pとして固定値1が、またこの点のWナン
バを次の点に影響させないためにQとしては現参照デー
タと同一値0が生成される。
現在の参照データ(参照Wナンバ)が1である場合 WNコードが“0"であれば、P,Qとして現参照データと
同一値1が生成される。
WNコードが“−”であれば、即ち塗りつぶし対象点の
後でWナンバが−1変化していれば、Pとして現参照デ
ータ1が、またこの点のWナンバを−1した値を次の点
に参照させるためにQとしては値0が生成される。
WNコードが“±”であれば、Pとして固定値1が、ま
たこの点のWナンバを次の点に影響させないためにQと
しては現参照データと同一値が生成される。
上記したように塗りつぶし処理回路18は、WNPM17に格
納されているWNコードから、P値であるWナンバを生成
(復元)する処理を行なう。このP値(Wナンバ)は、
線図形の重なりを許さない本実施例では、塗りつぶし対
象点(ドット)の黒/白を示す2値データに一致する。
したがって、塗りつぶし処理回路18は塗りつぶし対象点
のWナンバを求めると同時に塗りつぶしを行なうことに
なる。なお、複数の線図形の重なりを許す場合、即ちW
ナンバが2以上の値をとる可能性のある場合には、1以
上のWナンバを持つ点に対して例えば黒の塗りつぶしを
指定する2値データを出力すればよい。
以上の塗りつぶし処理回路18の塗りつぶしにより、例
えば第6図に示すような文字パターン(一部)を1/3に
縮小した文字パターンを発生する場合について説明す
る。この場合、最初に上側輪郭線についてWNコードが発
生されるものとすると、そのときの各点のWNPM17内WNコ
ードの状態は第7図(a)に示す通りとなる。次に下側
の輪郭線についてWNコードを発生してWNPM17内のWNコー
ドの更新を行なう場合には、縮小の結果上側輪郭線と下
側輪郭線とが同じドット上で重なることになるため、第
6図に示す文字パターンの1/3縮小パターンに関する各
点のWNコードの状態は最終的には第7図(b)に示すよ
うになる。そして、第7図(b)の状態をもとに、上記
の塗りつぶしが行なわれることにより、結果的に1ドッ
ト幅となる線(第7図(b)において“±”が描かれた
ライン)が正しく発生される。
さて本実施例では、第8図においてWNコード記号が書
込まれていない□印の点のように、同点に隣接する上側
および下側のいずれの点も黒となるような点は、前記し
たWNG14の動作から明らかなようにWNコードの更新対象
とならないため、WNPM17に対する不要のアクセスが発生
しない。また、1ドット尖鋭端を持つ文字パターンで
は、その点が第9図に示すようにWNコード“±”で明示
されるため、正しい塗りつぶしが可能となる。
[発明の効果] 以上詳述したようにこの発明によれば、1つの文字パ
ターンを定義する幾つかの線図形について、それぞれ1
度たどるだけで、最終的には全ての線図形を配置した状
態における各点のWナンバの変化数または変化状態がWN
コードとして記憶手段内に求まり、この記憶手段の記憶
内容から各点のWナンバが簡単に求められるので、従来
のノンゼロ・ワインディング・ナンバ方式による塗りつ
ぶしに比べて高速化が可能となる。また、上記WNコード
は、1つの点の前後で(パターン縮小などのために)1
増加と1減少とが重なって発生する特異状態も示すの
で、Wナンバを正しく求めることが可能であり、1ドッ
ト尖鋭端を持つ文字パターンや1ドット幅を持つ文字パ
ターンを正しく発生することができる。
【図面の簡単な説明】
第1図はこの発明を適用する高品質文字パターン発生装
置の一実施例を示すブロック構成図、第2図は第1図に
示すWNコード生成テーブル15の内容を示す図、第3図は
第1図に示すWNコード更新テーブル16の内容を示す図、
第4図は第1図に示す塗りつぶし処理回路18の機能を説
明するための図、第5図は第1図に示すWNG14の動作を
説明するためのフローチャート、第6図は文字パターン
とWNコードとの関係の一例を示す図、第7図は第6図に
示す文字パターンを1/3縮小する場合のWNコードの変化
状態を示す図、第8図はWNコード更新を省略する場合の
パターン例を示す図、第9図は1ドット尖鋭端を持つパ
ターンとWNコードとの関係を示す図、第10図は従来方式
でも正常なパターン発生が可能な線図形と発生文字パタ
ーンの一例を示す図、第11図は従来方式では正常なパタ
ーン発生が不可能な線図形(縮小図形)と発生文字パタ
ーンの一例を示す図、第12図は細い線を含む文字パター
ンを縮小した場合の問題を説明するための図、第13図は
上記の問題を解決するためのDDAプロット方式を第12図
に対応させて説明するための図、第14図は細い横線の縮
小パターンに上記DDAプロット方式を適用した場合を説
明するための図、第15図はWNコードの生成ルールの適用
例を説明するための図である。 14……WNコード(ワインディング・ナンバ・コード)生
成回路(WNG)、15……WNコード生成テーブル、16……W
Nコード更新テーブル、17……WNコードパターンメモリ
(WNPM)、18……塗りつぶし処理回路。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】少なくとも1つの線図形によって文字パタ
    ーンを定義するための線図形情報を受け、上記線図形を
    構成するセグメント毎に格子ラインとの各交点または上
    記セグメントを近似する各格子点について、その点の前
    後のセグメント部分の方向の組合わせから、その点にお
    けるワインディング・ナンバの変化状態を判別し、変化
    無しを示す第1の値、1増加を示す第2の値、1減少を
    示す第3の値、1増加と1減少とが重なって発生するこ
    とを示す第4の値のいずれか1つを、ワインディング・
    ナンバ変化数または状態を示すワインディング・ナンバ
    ・コードとして生成する操作を上記線図形情報で示され
    た線図形の順序で且つその線図形をたどる方向に行なう
    線コード生成手段と、上記文字パターンを定義する全線
    図形に関する各点の上記ワインディング・ナンバ・コー
    ドを記憶するための記憶手段と、上記コード生成手段に
    よって生成される上記ワインディング・ナンバ・コード
    をもとに、同コードに対応する格子点の上記記憶手段内
    上記ワインディング・ナンバ・コードを更新する更新手
    段と、上記記憶手段に記憶されている各格子点毎のワイ
    ンディング・ナンバ・コードを塗りつぶし方向に順次取
    出し、同コードをもとに対応する格子点のワインディン
    グ・ナンバを生成して塗りつぶしを行なう塗りつぶし手
    段とを具備することを特徴とする高品質文字パターン発
    生方式。
JP63020315A 1988-01-30 1988-01-30 高品質文字パターン発生方式 Expired - Lifetime JP2771981B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP63020315A JP2771981B2 (ja) 1988-01-30 1988-01-30 高品質文字パターン発生方式
US07/302,710 US5053759A (en) 1988-01-30 1989-01-27 Method of and apparatus for generating high-quality pattern
EP89101585A EP0327002B1 (en) 1988-01-30 1989-01-30 Apparatus and method for generating high-quality pattern
KR1019890001128A KR920008981B1 (ko) 1988-01-30 1989-01-30 고품질 문자 패턴 발생장치
DE68919416T DE68919416T2 (de) 1988-01-30 1989-01-30 Methode und Gerät zur Mustererzeugung hoher Qualität.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63020315A JP2771981B2 (ja) 1988-01-30 1988-01-30 高品質文字パターン発生方式

Publications (2)

Publication Number Publication Date
JPH01196355A JPH01196355A (ja) 1989-08-08
JP2771981B2 true JP2771981B2 (ja) 1998-07-02

Family

ID=12023698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63020315A Expired - Lifetime JP2771981B2 (ja) 1988-01-30 1988-01-30 高品質文字パターン発生方式

Country Status (2)

Country Link
JP (1) JP2771981B2 (ja)
KR (1) KR920008981B1 (ja)

Also Published As

Publication number Publication date
KR890012215A (ko) 1989-08-24
KR920008981B1 (ko) 1992-10-12
JPH01196355A (ja) 1989-08-08

Similar Documents

Publication Publication Date Title
US4847789A (en) Method for hidden line removal
US4972330A (en) Clipping process and processor
KR910001525B1 (ko) 곡선 근사방법
KR100212412B1 (ko) 문자패턴 생성장치
KR930011770B1 (ko) 고품질 패턴 발생장치 및 방법
JPH0816144A (ja) アウトラインフォント展開方法およびアウトラインフォント展開装置
JP2771981B2 (ja) 高品質文字パターン発生方式
JPH04362793A (ja) ラスタ装置における描画方法
KR100361387B1 (ko) 다각형 묘화 방법, 및 다각형 묘화 장치
JP2835056B2 (ja) 高品質文字パターン発生方式
JPH10143134A (ja) 文字の生成と記憶のための方法と装置
JP3146771B2 (ja) フォントラスタライズ装置およびその方法
KR920008273B1 (ko) 고품질 패턴 발생 방법 및 장치
JP2726951B2 (ja) 文字・図形描画装置
JPH05258073A (ja) 図形塗潰し装置
JP3082467B2 (ja) アウトラインデータ処理装置
JP2776887B2 (ja) フォントパターン処理方法
JP2666090B2 (ja) アウトラインパターン発生装置
JPH06175639A (ja) 文字生成方法及びその装置
JP2782904B2 (ja) 多角形塗りつぶし方式
JPH06274308A (ja) ベジェ曲線均等肉付け作成処理方法
Park et al. Structure extraction and automatic hinting of Chinese outline characters
JP2861044B2 (ja) 図形処理装置
JP2804651B2 (ja) 輪郭塗り潰し方式
JPH0315193B2 (ja)