JP3156729B2 - 描画装置 - Google Patents

描画装置

Info

Publication number
JP3156729B2
JP3156729B2 JP29240791A JP29240791A JP3156729B2 JP 3156729 B2 JP3156729 B2 JP 3156729B2 JP 29240791 A JP29240791 A JP 29240791A JP 29240791 A JP29240791 A JP 29240791A JP 3156729 B2 JP3156729 B2 JP 3156729B2
Authority
JP
Japan
Prior art keywords
dot
point
points
processing
character
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
JP29240791A
Other languages
English (en)
Other versions
JPH05108830A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP29240791A priority Critical patent/JP3156729B2/ja
Publication of JPH05108830A publication Critical patent/JPH05108830A/ja
Application granted granted Critical
Publication of JP3156729B2 publication Critical patent/JP3156729B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、描画装置に関し、詳し
くはアウトラインデータに基づき、線/文字/図形等の
ラスタデータ(ビットマップデータ)をビットマッププ
レーン上に生成するための描画装置に関する。
【0002】
【従来の技術】現在、デスクトップパブリッシングなど
の分野に於て、PDL(page Description Language:
ページ記述言語)を搭載したプリンタシステム等が流通
しはじめている。これらのシステムでは、印刷、画面表
示等をする為に、PDLで記述された2次元の線/文字
/図形等のデータ(アウトラインデータ)を、種々の描
画装置を用い、目的のラスタデータに展開している(例
えば「実践コンピュータグラフィックス(山口富士夫監
修 日刊工業新聞社発行)」参照)。なお、線/文字/
図形等を「文字等」という。
【0003】
【発明が解決しようとする課題】しかし従来、描画装置
は目的別に複数設けられていた。目的毎に適用し得るア
ルゴリズムが異なるからである。例えば、同じアウトラ
インデータでも、塗潰しのラスタデータに展開する場合
と、縁取り型(輪郭型、白抜き型)のラスタデータに展
開する場合では適用し得るアルゴリズムが異なる。また
例えば、小さいドット構成のラスタデータ(100×1
00ドット前後以下)は、ビットマッププレーン上でビ
ット演算した方が処理が早い(例えばエッジフラグアル
ゴリズム)。大きなドット構成のものは数学的演算の方
が早い(例えばオーダードエッジリストアルゴリズ
ム)。更に例えば、文字のラスタデータは、通常、線/
図形用の装置で生成できる。しかし文字独自の処理、例
えばハーフビット処理等が必要とされると、線/図形描
画装置の流用が出来ない。この場合は更にこの為の装置
を必要とする。この様な理由で従来はPDLの仕様を満
たすため、一つのシステム内に夫々の目的別に多くのハ
ードウェア、ソフトウェアを装備していた。本発明の目
的は、上記の問題点を解決し、多目的に使用可能な描画
装置を提供することにある。
【0004】
【課題を解決するための手段】この目的達成の為、本発
明では、アウトラインデータで示される輪郭に係るドッ
トデータをビットマッププレーン上に生成する描画装置
に於て、アウトラインデータで示される輪郭上の点を所
定間隔で抽出する構成点抽出手段と、前記抽出された夫
々の点を判断対象の点とし、その点と隣り合う点の二つ
の点について、ドットの位置に対する位置ずれの形態を
判定する位置判定手段と、これら二つの点を結ぶ線の方
向を判定する方向判定手段と、前記形態及び方向の各組
合せについて、そのとき処理対象とされているドットの
位置に関する処理の内容及び次に処理対象とすべきドッ
トの位置を定めたテーブルと、前記ドットの位置に関
し、前記テーブルで定められた内容の処理を施す演算手
段とを備える。
【0005】
【作用】ドットはビットマッププレーン上で、1ドット
間隔で引かれた目盛り線の交点上に置かれる。該交点が
請求項にいうドットの位置であり、整数値をとる。PD
Lで取扱われる文字等の輪郭は、いわば理想的な輪郭で
その座標データは小数点以下の値もその儘含む。このよ
うな場合、このデータをドットの位置の座標たる整数の
座標データに変換する必要がある。本発明はこの処理を
以下の手段で効率よく行なおうとするものである。構成
点抽出手段は、文字等の輪郭上の点を所定間隔、基本的
には1ドット間隔以下の間隔で抽出する。これにより本
来連続したものである輪郭が、点からなる輪郭に置き換
えられる。なお抽出された点を「構成点」と言う。また
「ドット間隔」とは、例えば1ミリメートルあたり10
ドットというように、ドット配置間隔をいう。ドットそ
のものとは区別されるが、冗長なので間隔のときも「1
ドット」と記述する。
【0006】位置判定手段は、前記構成点の夫々を対象
とし、その対象点を移動しながら、当該対象点とその前
又は後の隣り合う2点について、ドットの位置に対する
夫々の点の位置ずれの形態の判定を行なう。方向判定手
段は、この二つの点を結ぶ線の方向を判定する。構成点
は輪郭上に位置する。従ってこの線の方向は文字等の輪
郭の描画方向を表わす。テーブルには、これら位置ずれ
の形態及び線の方向の各組合せについて、そのとき処理
対象とされているドットの位置に関する処理の内容と、
次に対象とすべきドットの位置が定められている。処理
の内容は、ドットのセットの有り無し、セットする場
合、カレントポイントの移動前にするか、後にするか、
である。演算手段は、このカレントポジションに関し前
記テーブルで定められた内容の処理を施す。なお「その
とき対象とされているドットの位置」を「カレントポジ
ション」という。
【0007】
【実施例】以下、本発明の詳細を図示実施例に基づいて
説明する。図1に本発明の一実施例たる文字描画装置1
0の機能構成を示す。図に於て12は構成点抽出手段
で、アウトラインデータ11で示される輪郭上の点(構
成点)を1ドット以下の間隔で抽出する。13は位置判
定手段で、前記抽出した点を順に判定対象とし、隣り合
う2点について位置ずれの形態を判定する。14は方向
判定手段で、二つの点を結ぶ線の方向を判定する。15
はテーブルで、前記位置ずれの形態及び線の方向の組合
せの夫々に対応し、前述した内容の処理及び次のカレン
トポジションを定めている。17は演算手段で、このカ
レントポジションに関し前記内容の処理を施す。16は
ビットマッププレーンで、処理されるラスタデータがこ
の上に展開される。18は記憶手段で、アウトラインデ
ータ11、構成点のデータその他情報がここに記憶され
る。
【0008】文字描画装置10を組込んだプリンタシス
テム20の機能構成を図2に示す。21はデータ入力部
で、出力装置22(プリンタ、CRT等)で印字或いは
表示されるべき入力データ23を受信し、データ28と
してデータ解釈実行制御部27に供給する。26はフォ
ント処理部で、フォントデータの管理・検索をおこな
う。要求された文字についてラスタ文字データ29があ
れば、それをデータ解釈実行制御部27に供給する。デ
ータがアウトラインデータである場合、ここで変形(拡
大/縮小)、展開してから供給する。フォント処理部2
6にはフォントファイル31が接続されている。フォン
ト処理部26はここからフォントデータ32を引き出
す。25は画像処理部で、データ解釈実行制御部27で
解釈されたデータを処理し、画像メモリ33上に展開す
る。画像処理部25及び画像メモリ33に前記文字描画
装置10が含まれる。展開されたデータ34は、画像処
理部25及びデータ解釈実行制御部27を経由してデー
タ出力部24に供給される。該出力部24はこれを出力
データ36として出力装置22に供給する。
【0009】図3に、プリンタシステム20の回路構成
を示す。この装置は、CPU(中央処理装置)41を備
えており、バス42を通じて以下の各部と接続されてい
る。 (1)RAM43:ランダムアクセスメモリであり、フ
ォントデータを一時的に蓄えるメモリ領域やアウトライ
ン文字データを変形・展開するための作業領域として使
用される。その他この装置の動作を制御するためのプロ
グラムを一時的に格納したり、このプログラムの実行の
ために処理される各種データを一時的に格納するために
使用される。このRAM43は、また画像メモリ領域を
備えており、図2で説明した画像メモリ33としての役
割も果たしている。 (2)磁気ディスク装置44:フォントファイル31、
前記プログラム、その他必要な保存用データを格納して
いる。 (3)通信制御部45:ケーブル46を介して、外部の
電話回線網やローカルエリアネットワーク等と接続され
ている。ホストコンピュータ等からの印字のためのデー
タはこれらを介して供給される。 (4)キーボード47:マウス48を接続することが可
能で、このシステムの操作を行うための各種データをこ
こから入力する。印字データ等を直接入力することもで
きる。 (5)CRT制御部49:CRT51(グラフィックデ
ィスプレイ)の制御を行う。 (6)プリンタ制御部52:図2のデータ出力部24と
して機能する。レーザビームプリンタ53(図2出力装
置22)の印字制御を行う。
【0010】このプリンタシステム20の動作の概要を
図4に示す。最初に印字をおこなうための入力データの
読み込みをおこなう(ステップ1)。PDLに於て入力
データはコマンド形式になっている。CPU41はデー
タ解釈実行制御部27でこのコマンドの解釈を行う。ま
ず、そのコマンドの処理がフォント処理のコマンドであ
るかどうかを判断する(ステップ2)。そうであれば
(YES)、フォント処理部26でフォント処理を行う
(ステップ3)。フォント処理用のコマンドでない場合
は(NO)、そのコマンドが画像処理用のコマンドであ
るかどうかを判断する(ステップ4)。そうであれば
(YES)、画像処理部25で画像処理を行う(ステッ
プ5)。そうでなければ(NO)、データ解釈実行制御
部27でその他のコマンド処理を行う(ステップ6)。
以上の作業を、入力データが終了するまで繰返す(ステ
ップ7)。入力データの処理が終了すると、RAM43
内の画像メモリ領域に展開された画像内容(ラスタデー
タ)がレーザビームプリンタ53に供給され(ステップ
8)、レーザビームプリンタ53は印字を行なう。
【0011】フォント処理(図4ステップ3)について
説明する。図5にフォント処理に必要なフォントファイ
ルの例を示す。フォントファイルは、1書体1ファイル
とされており、ファイル内はラスタ文字情報部61とア
ウトライン文字情報部62に分かれている。ラスタ文字
情報部61には、ラスタ文字情報63と文字幅情報64
が含まれる。アウトライン文字情報部62には、アウト
ライン文字情報65と文字幅情報66が含まれる。一つ
の文字について、その情報はラスタ文字情報部61とア
ウトライン文字情報部62のどちらかまたは両方に定義
されている。ラスタ文字情報部61は文字サイズと文字
コードで検索し、アウトライン文字情報部62は文字コ
ードで検索する。
【0012】フォント処理の手順を図6に示す。まず必
要とされる文字サイズ・文字コードの文字の情報が存在
するか、フォントファイルのラスタ文字情報部61内を
検索する(ステップ1)。存在する場合(ステップ2:
YES)、その文字情報をRAM43に転送し作業を終
了する(ステップ3)。存在しない場合(NO)、その
文字コードの文字情報についてアウトライン文字情報部
62を検索する(ステップ4)。ここにも文字情報が存
在しない場合(ステップ5:NO)、エラーメッセージ
や外字記号を出力する等、エラー処理を行なって作業を
終了する(ステップ6)。文字情報が存在する場合(Y
ES)、アウトライン文字情報をRAM43上に転送す
る(ステップ7)。転送されたアウトライン文字情報
は、必要とされる文字サイズに拡大/縮小される(ステ
ップ8)。拡大/縮小されたアウトライン文字情報をも
とに、文字描画装置10がRAM43(ビットマッププ
レーン16)上にラスタ文字情報を生成する。(ステッ
プ9)。
【0013】図6のステップ7〜9の処理の詳細を、図
7のアウトライン文字“F”を例にして説明する。
“F”の文字要求が行われ、それがラスタ文字情報部6
1内ではなく、アウトライン文字情報部62内で見つか
ったとする。アウトライン文字情報部62の“F”のデ
ータがRAM43上に転送される(ステップ7)。図7
のアウトライン文字情報がどのようにRAM43上に転
送されているかを図8に示す。アウトライン文字情報
は、文字輪郭情報73と文字幅情報72と文字輪郭情報
73の先頭アドレスを示す先頭アドレス情報71で構成
される。
【0014】文字輪郭情報73は、輪郭線種74と制御
点75の対で表される。輪郭線種74の「0」は、閉曲
線(輪郭)の開始点を示し、「1」は直線を示す。図で
はP1が文字輪郭情報73の先頭アドレスを示し、そこ
から文字輪郭情報が格納されている。(2,2)から閉曲
線が開始され、順次(2 ,92) 、(62 ,92) 、(62 ,7
2) 、(22 ,72) 、(22 ,52) 、(42 ,52) 、(42 ,32)
、(22 ,32) 、(22 ,2)、(2,2)と直線が表現され
る。文字幅は「70」である。次にアウトライン文字情
報は拡大/縮小される(ステップ8)。例えば1/10に縮
小されたとすると、RAM43上に転送されているアウ
トライン文字情報は、図9のようになる。このアウトラ
イン文字情報に従って、ラスタ文字情報が形成される。
【0015】ラスタ文字情報の形成手順を詳細に述べ
る。図10にその為の処理フローを示す。はじめに、R
AM43上に転送されているアウトライン文字情報73
からセグメントデータを抽出する(ステップ1)。セグ
メントとは輪郭を構成する線分のことで一つの制御点7
5から次の制御点75迄のものが1つのセグメントであ
る。次にそのセグメントが開始点か直線か曲線かを判断
し(ステップ2、3、4)、それぞれに処理を行う(ス
テップ5、6、7)。これをセグメントが無くなるまで
繰り返し、最後に塗り潰し処理を行う。塗潰しは目的に
適合したアルゴリズムを使用する。この装置では、代表
的なエッジフラグアルゴリズムを使用する(例えば前掲
「実践コンピュータグラフィックス」参照)。
【0016】開始点処理・直線処理・曲線処理の詳細は
以下のようになる。 開始点処理 開始点処理では、カレントポジションの設定を行う。本
実施例では四捨五入でその位置を決める。ここで取上げ
た例(図9)では、開始点は[0.2 ,0.2 ]である。カ
レントポジションは[0,0]となる。 直線処理 セグメントが直線である場合の処理手順を図11に示
す。まず直線上の点(構成点)を抽出する。本実施例で
は構成点の間隔(ここでは2点のX座標の差またはY座
標の差)が1ドットの間隔より短くなるように構成点を
抽出する(ステップ1,2)。構成点の抽出は、先ずそ
の間隔が1ドット未満になるような分割数kを求め、こ
れで直線の始点と終点の間を分割する(ステップ1)。
次にその始点のXY各座標値に、分割で得たXY座標値
bx,by(構成点の間隔に相当)を順次加算或いは減算し
て行く(ステップ2)。これで構成点の座標が順次算出
される。本実施例では直線の始点と終点の間のXY各座
標の差、即ちその直線のXY各座標成分の大きい方の値
を繰上げて得た整数を、分割数kとする。
【0017】直線の始点をx0,y0 、終点をx1,y1 とする
と、k,bx,byは次の式で表わされる。 k=MAX(ABS(x1-x0),ABS(y1-y0)) bx=(x1-x0)/k by=(y1-y0)/k (ただしMAXは最大値、ABSは絶対値を求める関
数。kの端数は切上げ。) ここで取上げた直線の場合、(x0,y0)=(0.2,0.2)、(x1,y
1)=(0.2,9.2)である。 k=MAX(ABS(0.2-0.2),ABS(9.2-0.2))=9 bx=(0.2-0.2)/9=0 by=(9.2-0.2)/9=1.0 となる。このときの構成点は10個で、X座標が一定
(x=0.2)、Y座標が y=0.2、1.2、2.2、…、…、9.2の
ものである(図9)。
【0018】本発明ではこの抽出した構成点の夫々につ
いて、カレントポジションに対するいわば「ずれの度合
い」を、テーブルに照合しカレントポジション移動の有
無、ドットの設定、非設定を決める。輪郭を代表する構
成点を上記1ドット未満の間隔で抽出し、これに対して
処理を行なえばドット抜けは起こらない。(ドット抜
け:本来なら反映されるはずである輪郭の凹凸部分が、
生成されたラスタデータに表われていない現象。)次
に、構成点の夫々に関し、そのとき判断対象とされてい
る点及びこれと隣り合うその前の点について、ドットの
位置に対する夫々の点の位置ずれの形態を判定する(ス
テップ3)。なお「そのとき対象とされている構成点」
を「newポイント」、「前の構成点」を「oldポイント」
という。直線又は曲線の始点が最初のoldポイントで、
ここでは(0.2,0.2)である。
【0019】判定の基準となる位置ずれの形態の場合分
けについて述べる。場合分けは、求めようとする文字の
形態、用いるアルゴリズムによって異なる。ここでは、
輪郭の中を塗潰した通常文字の生成を例にする。輪郭の
ドットへの置き換えはBresenhamのアルゴリズムと同様
に行なう。塗潰しはエッジフラグアルゴリズムで行な
う。塗潰し方向はY軸に平行とする。ここでの場合分け
はこれらを前提にする。同じアウトラインから縁取り文
字のラスタデータを生成するときの場合分け、ハーフビ
ット処理をする場合の場合分けのついては後述する。
【0020】更に詳述する。先ずここでのドットへの置
き換えのアルゴリズムについて述べる。Bresennhamのア
ルゴリズムでは輪郭と目盛線とが交叉する点に着目し、
その点をそこから0.5ドット以内にあるドットに置き
換える。本実施例では、上記「輪郭と目盛線とが交叉す
る点」に代え、構成点を用いるこれをドットに置き換え
る。このとき、同じ基準を用い、構成点からの距離(X
Y各座標成分)が0.5以内にあるドットを、該構成点
を表わすドットとする。このような前提にたって位置ず
れの形態の場合分けをする。本実施例に於て構成点はそ
の距離が1ドット以下になるように抽出されている。従
って図12に示すように、あるドットの位置81を中心
にした上下左右0.5ドットの幅の領域82を想定し、
ここにnewポイントがあるとした場合、前の構成点oldは
その領域82の中、若しくはその端から上下左右1ドッ
トの範囲内の各領域83〜90の何れかにある。なお各
領域の縁は正しくは0.5ドット細線上にある。重ねる
と視認困難になる。夫々の内側に描いた破線で領域を示
す。
【0021】ドットの位置に対する構成点の位置ずれの
形態の場合分けは、この範囲について設定しておけば良
い。newポイントが領域82にあることが前提だから、o
ldポイントが存在する領域は、その領域82か他の領域
83〜90の何れかである。場合分けは9通りになる。
この場合分けは実際は4通りで足りる。蓋し、newポイ
ントに対するoldポイントの方向が方向判定手段(1
4)で判定され(図13)、方向の要素で区別できる領
域には同じ符号を付しても構わないからである。具体的
には領域82に対して左右の領域86と87がこれに該
当する。上下方向の84と89、各斜め方向の83,8
5,88及び90も夫々これに該当する。
【0022】方向は一般に簡単な演算で判定できる。ま
た1つのセグメントについて1回演算をすれば足りる。
特に直線では演算するまでもなく、直線の長さの座標成
分の極性だけで直ちに判定できる。曲線の場合でも1つ
のセグメントについて、極大点、極小点を特定するとい
う演算を一回行なっておけば足りる。方向の判定を別に
することによって、前記場合分けを単純化出来るのも本
発明の1つの特徴である。
【0023】図12に話しを戻す。上述のように結局4
通りに分ければ良いのであるから、領域82を符号
「0」、以下夫々のグループを「1」〜「3」とする。
図14のようになる。各領域を0.5ドットライン(細
線)で四分した各桝目毎にこの符号を付す。位置ずれの
形態判定の基準として実際に用意すべきデータは、更に
少なくて済む。例えば図15のように、右側の「1」の
領域87の左下の桝目のP1にoldポイント91があ
り、右上の桝目のP2にnewポイント92があったとす
る。また左側の「1」の領域86の左下の桝目のP3に
oldポイント93があり、右上の桝目のP4にnewポイン
ト94があったとする。この二つの例の構成点の関係は
符号(1,1)、方向(右上)とも同じである。
【0024】前述の通り構成点の方向は別に判断する。
そうであるならば、newポイント92をP2にプロット
せずP4の位置(newポイント94の位置)にプロット
しても場合分けの答え(1,1)は変らない。これは符
号「2」「3」の各領域内に2つの点がある場合につい
て同様である。故に最外周の0.5ドットの大きさの桝
目は省略することができる。最終的に場合分け用のパタ
ーン100は図16のようになる。なお後の説明の為、
パターン100を構成する1ドット平方の桝目4つ(太
線の区切り)に対し、A〜Dの符号を付す。なお図15
では視認性を良くするため、「1」以外の符号を省略し
た。他の図についても符号の表示を略すことがある。
【0025】このパターン100による位置ずれの形態
の判断手順を説明する。先ず概念を説明する。構成点へ
のこのパターン100の適用は、ビットマッププレーン
の原点から行なう。タイルを貼るように、重ならないよ
うに適用する。(図17 100−1〜100−3)。
図18のように最初のパターン100−1と重なる形で
100−4を適用すると、場合分けの統一性が無くなっ
てしまう。例えば構成点111に着目する。最初のパタ
ーン100−1を適用したときの位置ずれの形態は
「1」である(図17)。ところがパターン100−4
を適用するとその形態は「0」となる(図18)。これ
では都合が悪い。従って上述のように重ならないように
適用すればこのようなことは起こらない。
【0026】またパターン100はそれを構成する各パ
ターンA〜D毎に個別に適用できる。例えばパターンC
に着目する。図19に示すように、該パターンCが適用
されるドットの位置の座標はX,Y共偶数である。他の
A,B,Dのパターンについても同様で、夫々が適用さ
れるドットのX,Y各座標の偶数、奇数の組合せは一定
である。図20にその各組合せを示す。それ故判断にあ
たっては、パターン100全体での適用を考慮する必要
はない。oldポイント、或いはnewポイントの座標値a
x,ayの整数部に着目し、その組合せに対応して、パ
ターンA〜Dの何れかを適用し位置ずれの形態を判断す
れば良い。例えば図21の構成点111(9.3,11.8)、1
12(8.9,12.8)の場合、111にはパターンB、112
にはCが適用され、夫々「2」「0」と判定される。
【0027】処理手順(図11)の説明に戻る。次のス
テップ4で二つの点を結ぶ線の方向が判定される。方向
はbx, byの符号で判定される。bx, byの符号とそれに対
応する場合分けの方向は図13に示されている。ここで
取上げているのは直線である。方向は常に一定であり、
1回の判断で足りる。次に、描画タイプ(処理の内容)
が決定される(ステップ5)。位置の形態と方向をキー
として、テーブル15を検索し、対応する描画タイプを
決定する。テーブルの一部を図22に示す。実際の描画
は決定された描画タイプの内容で行われる(ステップ
6)。この処理は、newポイントを1つずつ移動しなが
ら、それとoldポイントとの隣り合う2点について、終
点まで行なわれる(ステップ7)。これで直線のドット
への置き換えが完了する。
【0028】各描画タイプ(a)〜(i)の処理内容について
説明する。処理の目的は構成点のドットへの置き換えに
あり、各描画タイプはいわば置き換えのアルゴリズムの
具現である。処理内容は前記位置ずれの形態の場合分
け、方向の場合分けと対応する形で定められる。求めよ
うとする文字の形態、用いるアルゴリズムによって異な
る。ここでは、前述のとおり、輪郭の中を塗潰した通常
の文字生成を目的とし、Bresenham同様アルゴリズムで
のドットへの置き換えをし、エッジフラグアルゴリズム
による塗潰しを行なう。塗潰し方向はY軸平行である。
【0029】これを前提にすると、ここに於ける処理は
次の4種類に大別される。 (1)old,newポイントが同じドットの勢力圏内にあると
き(oldからnewへの移動が0.5ドットラインを越えて
行なわれていないとき)(後述描画タイプ(a))ドット
のセット、カレントポジションの移動とも無し。 (2)構成点がX軸方向に並んでいるとき(輪郭をX軸方
向になぞっているとき)(後述描画タイプ(b)(c))ドッ
トをセット。但し並び方向でドットをセットする位置が
異なる。カレントポジションはX軸方向に移動。(図3
3の処理結果例参照。) (3)構成点がY軸方向に並んでいるとき(輪郭をY軸方
向になぞっているとき)(後述描画タイプ(d)(e))ドッ
トセット無し。カレントポジションをY軸方向に移動。 (4)構成点が斜め方向に並んでいるとき(輪郭を斜めに
なぞっているとき)(後述描画タイプ(f)〜(i))上記
(1)(2)の組合せ。 なお同じアウトラインから縁取り文字のラスタデータを
生成するときの処理内容の例、ハーフビット処理をする
場合の処理内容の例については後述する。
【0030】描画タイプ(a)〜(i)の詳細を述べる。な
お、この例での位置ずれの形態は「0〜3」の4通り、
従ってold、newの組合せは64通り、方向を組合せると
264通りになる。しかし描画タイプはこの(a)〜(i)の
形しかなく、これで全ての場合に対応できる。図22に
は一部を示す。また以下の(b)〜(i)のタイプの図示でも
一つの例のみを示す。 (a) old=new (0,0)の場合 方向が何れの場合でも、カレントポジションのドットセ
ット無し。カレントポジションの移動無し。(old, ne
w) =(2,2)(3,3)(4,4)も同じ。図示を略す。 (b) 方向がNE又はSEで(old, new) =(0,1)、(1,
0)、(2,3)、(3,2)の場合 カレントポジションへドットセット。その後カンレトポ
ジションを右に1つ移動(図23。)なお、小さな黒丸
はoldポイント、newポイントの位置、矢印はold ,new
を結ぶ線の方向、実線の丸はカレントポジション(但し
破線の丸と対で示されているときは破線が移動前、実線
が移動後)、網がけの丸はそこでのドットセットを表わ
す(図23その他各図)。 (c) 方向NW又はSWで(old, new) =(0,1)、(1,
0)、(2,3)、(3,2)の場合 カレントポジションを左に1つ移動。移動後のカレント
ポジションにドットをセット。(図24)。ここにいう
「移動後のカレントポジション」は請求項の「次に対象
とされるドットの位置」にあたる。
【0031】(d) 方向がNE又はNWで(old, new) =
(0,2)、(2,0)、(1,3)、(3,1)の場合 カレントポジションを上に1つ移動。ドットセット無し
(図25)。 (e) 方向がSE又はSWで(old, new) =(0,2)、(2,
0)、(1,3)、(3,1)の場合 カレントポジションを下に1つ移動。ドットセット無し
(図26)。 (f) 方向NEで(old, new) =(0,3)、(3,0)、(1,
2)、(2,1)の場合 カレントポジションのドットをセット。その後カレント
ポジションをoldからnewの方向へ移動(図27)。 (g) 方向SEで(old, new) =(0,3)、(3,0)、(1,
2)、(2,1)の場合 上記(f)と同様に処理する(図28) 。 (h) 方向SWで(old, new) =(0,3)、(3,0)、(1,
2)、(2,1)の場合 カレントポジションをoldからnewの方向へ移動。移動後
のカレントポジションのドットをセット。(図29)。 (i) 方向NWで(old, new) =(0,3)、(3,0)、(1,
2)、(2,1)の場合 上記(h)と同様に処理する(図30) 。
【0032】例えば、図7の例の[0.2 ,0.2 ]を始点
とし、[0.2 ,9.2 ]を終点とする直線について上記の
ような処理をすると、図31のようなふるまいになる。
また、[0.2 ,9.2 ]を起点とし、[6.2 ,9.2 ]を終
点とする直線について上記のような処理をすると、図3
2のようなふるまいとなる。なお図では「ドットをセッ
トする位置」を「描画ポジション」と表記する。図7の
例はすべて直線である。このように処理を続けていくと
最終的に図33のようにドットが設定される。
【0033】 曲線処理 曲線処理についても、基本的には同じである。曲線を1
ドット以下のサイズになるように分割して構成点を求
め、同様に処理する。この場合分割数は、特開平1-8228
1や特開平2-81281 に示されるように、曲線の最大変化
率、即ち曲線の微分関数の最大値によって求められる。
分割された位置(構成点)は前進差分法によって順次求
められる。処理手順は直線と同様である(図11)。
(なお前進差分(Foard difference)法は例えば "Princi
ples of interactive computer graphics",Newman spro
ll,Macgraw-hill,pp326-328 を参照)
【0034】最後に塗潰しを行なう。エッジフラグアル
ゴリズムで、ビットマッププレーンを垂直方向下から上
にスキャンする。具体的にはX軸方向に並んだ1ワード
分のビットを取りだし、一つ上の1ワード分のビットと
排他的論理和をとり、再びそこに書込む。。
【0035】上記実施例は、文字描画の例である。縁取
り文字描画の場合はテーブルを縁取り文字描画用のもの
に変更して上記処理を行う。具体的には文字描画用のテ
ーブルと同じカレントポジションの移動方法で、カレン
トポジションのドットをセットしてから次のカレントに
移動するという内容になる。塗潰しは行なわない。図7
のアウトライン文字にこの縁取り文字描画用のテーブル
で描画を行うと、図35のようになる。
【0036】また、ハーフビット文字描画の場合もこれ
と同様にテーブルをハーフビット処理用に代え、文字描
画と同じ手順で処理する。(ハーフビット処理:図44
(B)の上側の並びのようにドットを置く処理方法。例
えばXY軸に平行で、ドットの位置の中間を通っている
輪郭がある場合、その輪郭が中間を通っている雰囲気を
ラスタスキャンデータに反映させる。対応するドットを
輪郭の両側に交互に置いていく。)例えば、横ストロー
クハーフビット処理(X軸方向の輪郭についての処理)
をする場合を考えてみる。この処理は、一言で言うな
ら、何もしないなら横一列に並ぶであろうドット(エッ
ジフラグ)を、一つおきに上下に分散させようとするも
のである。これにより、塗潰したとき図44(B)の上
側のようなドットの並びになる。この処理をするには、
先ず位置ずれの形態に関し、通常描画のときの0〜3の
位置の形態に、ay値が0.5ドット付近の位置の形態4 、5
、6 、7 を加え、場合分けをすれば良い(図36)。
またテーブルは、文字描画用のものに、この位置タイプ
に対応するものを追加すれば足りる。なお本実施例で
は、ay = 0.25 〜 0.75 の領域を、形態 4 、5 、6 、7
の領域(ハーフビット処理の対象領域)とした。
【0037】この部分についての処理の基本は次の通り
である。偶数のドットから奇数のドットへ変化するとき
(6または7から4または5)はカレントポジションを
一つ上へ移動させる。奇数ドットから偶数ドットへ変化
するとき(4または5から6または7)はカレントポジ
ションを一つ下へ移動させる。方向がNEの場合を例に
して詳細に説明すると、 (a) (old, new)=(6、7)、(4、5)の場合 通常描画 (b)と同様にカレントポジションのドットをセ
ット。その後カレントポジションを右に1つ移動(図2
3参照)。 (b) (old, new)=(7、4) カレントポジションを上に一つ移動。 (c) (old, new)=(5、6) カレントポジションを下に一つ移動。 (d) (old, new)=(6、4) カレントポジションのドットをセット。その後カレント
ポジションを右に1つ、上に一つ移動(図38)。 (e) (old, new)=(7、5) カレントポジションを上に一つ移動。移動後のカレント
ポジションのドットをセット。更にカレントポジション
を右に1つ移動(図39)。 (f) (old, new)=(4、6) カレントポジションのドットをセット。その後カレント
ポジションを右に1つ、下に一つ移動(図40)。 (g) (old, new)=(5、7) カレントポジションを下に一つ移動。移動後のカレント
ポジションのドットをセット。更にカレントポジション
を右に1つ移動(図41)。となる。
【0038】図37の文字データにこの横ストロークハ
ーフビット処理を適用すると、(0.2 ,5.5)から(6.
2,5.5)の直線データについては図42のようなふるま
いになり、図43のようにドットがセットされる。塗り
潰すと図44(B)のようになる。
【0039】なお本実施例では1つ前の構成点oldと
点newを判断の対象とした。これはいわば相対的な関
係であり、「現在の点」と「次の点」との関係とみても
良い。要は判断対象の構成店を1つずつ辿って行き、そ
の時点とその時点の隣り合う2点の位置ずれを見れば良
い。また、あらかじめテーブルを目的別に複数実装して
おき、それらを目的にあわせて選択手段で選択するよう
にすると、少ないリソースで多目的に使用できる描画装
置が実現できる。また、目的別にではなく、ビットマッ
ププレーン別にテーブルを実装しておき、それらをビッ
トマッププレーンにあわせて選択手段で選択するように
すると、ビットマッププレーンを複数持つような装置、
例えばカラープリンタ等への対応も可能になる。
【0040】
【発明の効果】以上説明したように、本発明では、位置
判定手段の判定結果である位置ずれの形態と、方向判定
手段で判定される方向との組み合わせに対応して、予め
定める次に処理対象とするドット位置と、現在処理対象
とされているドットの位置および/または次に処理対象
とすべきドットの位置に対する描画処理を変更するだけ
で、種々の所望の描画処理を行うことができるようにな
る。 特に、請求項2のように、テーブルを用いる場合に
は、テーブルを変更するだけで、所望の描画処理を変更
することができるという効果がある。すなわち、適用さ
れるアルゴリズム等が違っても、テーブル等を目的に併
せて設定し或いは取替えるだけで良い。処理手順自体を
変更しなくても、同一のハードウエア、ソフトウエアで
いろいろな線/文字/図形の描画が出来る。従来のよう
に目的毎に、或いはアルゴリズム毎に装備を持つ必要が
無い。
【図面の簡単な説明】
【図1】 本発明の一実施例たる文字描画装置の機能構
成を示すブロック図。
【図2】 文字描画装置を組込んだプリンタシステムの
機能構成を示すブロック図。
【図3】 プリンタシステムの回路構成を示すブロック
図。
【図4】 プリンタシステムの動作の概要を示すフロー
チャート。
【図5】 フォントファイルの例を示す線図。
【図6】 フォント処理の手順を示すフローチャート。
【図7】 アウトライン文字の輪郭を示す線図。
【図8】 アウトライン文字情報のRAM上への転送状
態を示す線図。
【図9】 縮小されたアウトライン文字情報を示す線
図。
【図10】 ラスタ文字情報の形成手順を示すフローチ
ャート。
【図11】 文字描画の処理手順を示すフローチャー
ト。
【図12】 ドットの位置81を中心にし、隣り合う構
成点の存在範囲を示す線図。
【図13】 方向の場合分けを示す線図。
【図14】 位置ずれの形態の場合分けを示す線図。
【図15】 位置ずれの形態の基準として実際に用意す
べきデータの範囲を示す線図。
【図16】 場合分け用のパターン100を示す線図。
【図17】 パターン100−1〜100−3を重なら
ないよう配置した状態を示す線図。
【図18】 パターン100−1と100−4を重ねて
配置した例を示す線図。
【図19】 パターン100の一部たるパターンCが適
用されるドットの位置の座標を示す線図。
【図20】 パターンA〜Dが適用されるドットの位置
のX,Y各座標の偶数、奇数の組合せを示す線図。
【図21】 パターンA〜Dの具体的適用例を示す線
図。
【図22】 テーブルの内容の一部を示す線図。
【図23】 描画タイプ(b)の内容を示す線図。
【図24】 描画タイプ(c)の内容を示す線図。
【図25】 描画タイプ(d)の内容を示す線図。
【図26】 描画タイプ(e)の内容を示す線図。
【図27】 描画タイプ(f)の内容を示す線図。
【図28】 描画タイプ(g)の内容を示す線図。
【図29】 描画タイプ(h)の内容を示す線図。
【図30】 描画タイプ(i)の内容を示す線図。
【図31】 [0.2 ,0.2 ]を始点とし、[0.2 ,9.2
]を終点とする直線についての処理結果を示す線図。
【図32】 [0.2 ,9.2 ]を起点とし、[6.2 ,9.2
]を終点とする直線についての処理結果を示す線図。
【図33】 最終的なドット設定状態を示す線図。
【図34】 塗潰した結果(ラスタ文字データ)を示す
線図
【図35】 縁取り文字描画用のテーブルによる描画例
を示す線図。
【図36】 横ストロークハーフビット処理の為の位置
ずれの形態の場合分けパターンを示す線図。
【図37】 ハーフビット処理の為のアウトライン文字
の例を示す線図。
【図38】 横ハーフビット描画タイプ(d)を示す線
図。
【図39】 横ハーフビット描画タイプ(e)を示す線
図。
【図40】 横ハーフビット描画タイプ(f)を示す線
図。
【図41】 横ハーフビット描画タイプ(g)を示す線
図。
【図42】 図37の文字データの(0.2 ,5.5)から
(62,5.5)の直線に横ストロークハーフビット処理を適
用した場合の処理の内容を示す線図。
【図43】 図37の文字データの(0.2 ,5.5)から
(6.2,5.5)の直線に横ストロークハーフビット処理を
適用し設定されたドットデータを示す線図。
【図44】 図43のドットデータについて塗潰しを実
行した場合を示す線図。
【符号の説明】
11 アウトラインデータ 12 構成点抽出手段 13 位置判定手段 14 方向判定手段 15 テーブル 17 演算手段 old,new 判断対象の点

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】アウトラインデータで示される輪郭を構成
    するための構成点を、所定の基準で抽出する構成点抽出
    手段と、前記構成点抽出手段で 抽出された前記構成点を、前記輪
    郭に沿って順次に判断対象の点として、当該判断対象の
    点とその一つ前の点との二つの点について、ビットマッ
    ププレーン上のドットの位置に対する位置ずれの形態を
    判定する位置判定手段と、前記 二つの点を結ぶ方向を判定する方向判定手段と、前記位置判定手段で判定された位置ずれの形態と前記方
    向判定手段で判定された前記方向とに基づいて、前記位
    置ずれの形態と前記二つの点を結ぶ方向との複数通りの
    組み合わせに応じて予め定められている次に処理対象と
    すべき前記ドットの位置と、現在処理対象とされている
    前記ドットの位置および/または前記次に処理対象とす
    べき前記ドットの位置に対する描画処理とを特定し、前
    記特定された描画処理を行う演算手段と、 を備えることを特徴とする描画装置。
  2. 【請求項2】前記位置ずれの形態と前記二つの点を結ぶ
    方向との複数通りの組み合わせと、これら複数通りの組
    み合わせに対応して、前記次に処理対象とすべきドット
    位置と、前記現在処理対象ドット位置および/または前
    記次に処理対象とすべきドット位置に対する描画処理と
    を特定するための情報が記憶されているテーブルを備
    え、 前記演算手段は、前記位置判定手段で判定された位置ず
    れの形態と前記方向判定手段で判定された前記方向との
    組み合わせにより、前記テーブルを参照することによ
    り、次に処理対象とすべきドットの位置と、現在処理対
    象とされているドットの位置または前記次に処理対象と
    すべきドットの位置に対する描画処理とを定めることを
    特徴とする請求項1に記載の描画装置。
JP29240791A 1991-10-13 1991-10-13 描画装置 Expired - Fee Related JP3156729B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29240791A JP3156729B2 (ja) 1991-10-13 1991-10-13 描画装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29240791A JP3156729B2 (ja) 1991-10-13 1991-10-13 描画装置

Publications (2)

Publication Number Publication Date
JPH05108830A JPH05108830A (ja) 1993-04-30
JP3156729B2 true JP3156729B2 (ja) 2001-04-16

Family

ID=17781388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29240791A Expired - Fee Related JP3156729B2 (ja) 1991-10-13 1991-10-13 描画装置

Country Status (1)

Country Link
JP (1) JP3156729B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100938992B1 (ko) * 2009-06-02 2010-01-28 주식회사 릭스코 애니메이션 폰트파일 구조 및 휴대용 단말기의 텍스트 출력방법

Also Published As

Publication number Publication date
JPH05108830A (ja) 1993-04-30

Similar Documents

Publication Publication Date Title
JP3375638B2 (ja) アンチ−アライアジング装置及び目的グリッドへの水平・垂直エッジの自動高速合わせの方法
JP3481136B2 (ja) 文字フォント生成方法およびそのための装置ならびに文字フォント生成プログラムを記録したコンピュータで読取可能な記録媒体
KR970008546B1 (ko) 문자 또는 도형의 처리방법
US5537131A (en) Character generating method and apparatus
JP2681367B2 (ja) 図形処理方法及びその装置
JP3156729B2 (ja) 描画装置
JPH0816144A (ja) アウトラインフォント展開方法およびアウトラインフォント展開装置
JPH02270019A (ja) 高品質文字パターン発生方式
JP2770582B2 (ja) 図形塗潰し装置
JP3034140B2 (ja) 文字生成方法及びその装置
JP2000013601A (ja) 印刷情報処理装置、中間データ生成装置および方法
JP3209359B2 (ja) 画像出力装置
JP2856235B2 (ja) 文字処理装置および文字出力方法
JP3129717B2 (ja) 画像処理装置および画像処理方法
JP3099556B2 (ja) データ変換装置
JP2782752B2 (ja) 文字パターン出力装置
JP2835056B2 (ja) 高品質文字パターン発生方式
JPH09305160A (ja) 文字生成装置
JPH1031667A (ja) 文書処理装置
JP2861044B2 (ja) 図形処理装置
JP2637921B2 (ja) 文字記号発生装置
JP3302455B2 (ja) 情報処理装置
JPH1145343A (ja) 多角形図形描画装置
JP2710350B2 (ja) 画像処理装置および画像処理装置の画像処理方法
JP2002207476A (ja) 画像処理装置及びその方法

Legal Events

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