JPH1145343A - 多角形図形描画装置 - Google Patents
多角形図形描画装置Info
- Publication number
- JPH1145343A JPH1145343A JP30193996A JP30193996A JPH1145343A JP H1145343 A JPH1145343 A JP H1145343A JP 30193996 A JP30193996 A JP 30193996A JP 30193996 A JP30193996 A JP 30193996A JP H1145343 A JPH1145343 A JP H1145343A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate
- line segment
- polygon
- line
- data
- 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
Links
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】 (修正有)
【課題】多角形図形を塗りつぶし描画する際に、多角形
を分割することなく直接ハードウェアにより描画するこ
とで、高速な任意多角形図形描画をする。 【解決手段】1走査線(y=i)上にある2つの分断さ
れた線分1および線分2を時刻T1で、座標計算部Aが
線分1の左端点の座標(xs1,i)を計算し、同時
に、座標計算部Bが右端点の座標(xe1, i)を計
算する。次の時刻T2では、制御部からの指示により座
標計算部A/Bの内部のパラメータレジスタが切り替え
られ、座標計算部A,Bはy=iにおける線分2につい
て同様に計算し、時刻T3で、制御部2はこれ以上座標
計算する線分は無いと判断して、線分描画部4へ線分1
(xs1,xe1,i)と線分2(xs2,xe2,
i)の描画を指示する。線分描画部4はこれらの線分を
描画用メモリへ連続的に書き込む。以降、この操作を繰
り返す。
を分割することなく直接ハードウェアにより描画するこ
とで、高速な任意多角形図形描画をする。 【解決手段】1走査線(y=i)上にある2つの分断さ
れた線分1および線分2を時刻T1で、座標計算部Aが
線分1の左端点の座標(xs1,i)を計算し、同時
に、座標計算部Bが右端点の座標(xe1, i)を計
算する。次の時刻T2では、制御部からの指示により座
標計算部A/Bの内部のパラメータレジスタが切り替え
られ、座標計算部A,Bはy=iにおける線分2につい
て同様に計算し、時刻T3で、制御部2はこれ以上座標
計算する線分は無いと判断して、線分描画部4へ線分1
(xs1,xe1,i)と線分2(xs2,xe2,
i)の描画を指示する。線分描画部4はこれらの線分を
描画用メモリへ連続的に書き込む。以降、この操作を繰
り返す。
Description
【0001】
【発明の属する技術分野】本発明は、ディスプレイ装置
やプリンタ装置等に利用される図形描画装置、特に多角
形図形の塗りつぶしを実行する描画装置に関するもので
ある。
やプリンタ装置等に利用される図形描画装置、特に多角
形図形の塗りつぶしを実行する描画装置に関するもので
ある。
【0002】
【従来の技術】従来、ディスプレイ装置やプリンタ装置
等において、副走査方向に凹部を含む任意の多角形図形
を塗りつぶし描画する場合には、凹多角形を複数の凸部
のみから構成される多角形に分割し、逐一凸多角形の描
画を行うことにより元の凹多角形の描画を完了する方式
が知られている。
等において、副走査方向に凹部を含む任意の多角形図形
を塗りつぶし描画する場合には、凹多角形を複数の凸部
のみから構成される多角形に分割し、逐一凸多角形の描
画を行うことにより元の凹多角形の描画を完了する方式
が知られている。
【0003】特開昭63−231584は、凹部を含む
任意の多角形図形を図16のように多角形の各頂点を通
りx軸(主走査方向)に平行な直線で台形または三角形
に分割し、分割した台形F1〜F8を順次描画すること
により多角形全体の描画を行う方式を示している。台形
を描画する場合、左辺と右辺との間において複数のx軸
に平行な線分を発生させることで台形内部の塗りつぶし
を行う。左右の辺を構成する画素の座標計算にはDDA
(ディジタル微分解析器)を用いる。
任意の多角形図形を図16のように多角形の各頂点を通
りx軸(主走査方向)に平行な直線で台形または三角形
に分割し、分割した台形F1〜F8を順次描画すること
により多角形全体の描画を行う方式を示している。台形
を描画する場合、左辺と右辺との間において複数のx軸
に平行な線分を発生させることで台形内部の塗りつぶし
を行う。左右の辺を構成する画素の座標計算にはDDA
(ディジタル微分解析器)を用いる。
【0004】例として、図17の台形abcdの描画処
理の流れを説明する。多角形から分割された台形abc
dの頂点の座標値は、左辺の座標計算を行うDDA1お
よび右辺の座標計算を行うDDA2へ入力される。DD
A1は頂点aからbへ向かって、DDA2は頂点cから
dへ向かって1点ずつ両辺を構成する画素の座標を計算
する。両辺のy座標が1更新されるとそのy座標におけ
る2つの端点の座標(xs,yi)および(xe,y
i)が塗りつぶし処理部へ送られる。塗りつぶし処理部
では、図18のように塗りつぶす線分Lの両端点のx座
標xsおよびxeを用いてクリッピングマスクデータM
1とM2を作成し、描画データの始点(xs,yi)を
含むワードをM1でマスクし、かつ終点(xe,yi)
を含むワードをM2でマスクして描画用メモリへ線分L
を書き込むことで1走査線分の塗りつぶし処理を終え
る。以下、台形abcdの塗りつぶしが終了するまで次
々と同様の処理を行う。このようにして1つの台形の塗
りつぶし描画が終了すると、元の多角形図形の描画が完
了するまで繰り返し次の台形の頂点座標データを読み込
んで、同様に塗りつぶし描画を行う。
理の流れを説明する。多角形から分割された台形abc
dの頂点の座標値は、左辺の座標計算を行うDDA1お
よび右辺の座標計算を行うDDA2へ入力される。DD
A1は頂点aからbへ向かって、DDA2は頂点cから
dへ向かって1点ずつ両辺を構成する画素の座標を計算
する。両辺のy座標が1更新されるとそのy座標におけ
る2つの端点の座標(xs,yi)および(xe,y
i)が塗りつぶし処理部へ送られる。塗りつぶし処理部
では、図18のように塗りつぶす線分Lの両端点のx座
標xsおよびxeを用いてクリッピングマスクデータM
1とM2を作成し、描画データの始点(xs,yi)を
含むワードをM1でマスクし、かつ終点(xe,yi)
を含むワードをM2でマスクして描画用メモリへ線分L
を書き込むことで1走査線分の塗りつぶし処理を終え
る。以下、台形abcdの塗りつぶしが終了するまで次
々と同様の処理を行う。このようにして1つの台形の塗
りつぶし描画が終了すると、元の多角形図形の描画が完
了するまで繰り返し次の台形の頂点座標データを読み込
んで、同様に塗りつぶし描画を行う。
【0005】
【発明が解決しようとする課題】従来の多角形図形描画
方式では、あらかじめ多角形を、各頂点を通りx軸(主
走査方向)に平行な直線で複数の台形(または三角形)
に分割することが必要となるため、分割処理を行うホス
トコンピュータあるいはCPUの負荷が大きく、任意多
角形図形の描画に時間がかかるという問題があった。ま
た、台形の左右の辺の座標値を計算するDDAの処理時
間に比べて、メモリアクセスの頻発する塗りつぶし処理
部の処理に長時間がかかるため、DDA回路はほとんど
常に休止状態であり、有効に利用されていないという問
題があった。
方式では、あらかじめ多角形を、各頂点を通りx軸(主
走査方向)に平行な直線で複数の台形(または三角形)
に分割することが必要となるため、分割処理を行うホス
トコンピュータあるいはCPUの負荷が大きく、任意多
角形図形の描画に時間がかかるという問題があった。ま
た、台形の左右の辺の座標値を計算するDDAの処理時
間に比べて、メモリアクセスの頻発する塗りつぶし処理
部の処理に長時間がかかるため、DDA回路はほとんど
常に休止状態であり、有効に利用されていないという問
題があった。
【0006】本発明は、このような点に鑑みてなされた
ものであり、任意の多角形図形を塗りつぶし描画する際
に、多角形を分割することなく直接ハードウェアにより
描画することで、DDA回路を有効に利用し、かつ高速
な任意多角形図形描画装置を提供することを目的として
いる。
ものであり、任意の多角形図形を塗りつぶし描画する際
に、多角形を分割することなく直接ハードウェアにより
描画することで、DDA回路を有効に利用し、かつ高速
な任意多角形図形描画装置を提供することを目的として
いる。
【0007】
【課題を解決するための手段】本発明は、上記の目的を
達成するために成された多角形図形描画装置に関するも
のである。即ち、本発明は、多角形図形の頂点数、頂点
の座標値、色等を含む描画に必要なデータを一時的に格
納するための記憶手段と、多角形を構成する主走査方向
に平行な線分の端点位置となる多角形の辺上の座標値を
該辺の始点及び終点の座標を入力として計算する座標計
算手段であって、前記多角形を構成する主走査方向に平
行な線分の1走査線上に存在する端点の座標値をすべて
抽出し計算する座標計算手段と、座標計算手段で計算さ
れた線分の両端点の座標を入力として、該線分に対応す
るデータを描画用メモリの該線分の座標に対応するアド
レスに書き込む線分描画手段と、多角形の描画に必要な
データを前記記憶手段から順次読み込んで、座標計算手
段及び線分描画手段へそれぞれ出力し、かつこれらの処
理の開始または停止の指示をする制御手段とを備え、1
走査線上にある前記線分の複数の端点の座標値に対応し
た1以上の線分を連続的に描画する多角形図形描画装置
である。
達成するために成された多角形図形描画装置に関するも
のである。即ち、本発明は、多角形図形の頂点数、頂点
の座標値、色等を含む描画に必要なデータを一時的に格
納するための記憶手段と、多角形を構成する主走査方向
に平行な線分の端点位置となる多角形の辺上の座標値を
該辺の始点及び終点の座標を入力として計算する座標計
算手段であって、前記多角形を構成する主走査方向に平
行な線分の1走査線上に存在する端点の座標値をすべて
抽出し計算する座標計算手段と、座標計算手段で計算さ
れた線分の両端点の座標を入力として、該線分に対応す
るデータを描画用メモリの該線分の座標に対応するアド
レスに書き込む線分描画手段と、多角形の描画に必要な
データを前記記憶手段から順次読み込んで、座標計算手
段及び線分描画手段へそれぞれ出力し、かつこれらの処
理の開始または停止の指示をする制御手段とを備え、1
走査線上にある前記線分の複数の端点の座標値に対応し
た1以上の線分を連続的に描画する多角形図形描画装置
である。
【0008】また、前記座標計算手段は、パラメータレ
ジスタをそれぞれN個(N≧2)持つDDA処理装置と
して構成され、前記制御手段からの指示により時分割並
行DDA処理によって前記線分の両端点の座標値を計算
する。
ジスタをそれぞれN個(N≧2)持つDDA処理装置と
して構成され、前記制御手段からの指示により時分割並
行DDA処理によって前記線分の両端点の座標値を計算
する。
【0009】また、前記線分描画手段は、前記線分の両
端点の座標値を入力として、該線分の書き込まれるべき
描画用メモリのアドレスを計算するアドレス計算部と、
前記座標値から線分の両端点が書き込まれるワード中の
有効なビットを表すマスクを生成するマスク生成部と、
前記座標値と多角形の色情報からスクリーン処理を行っ
て1ワード分の描画データを生成するデータ生成部と、
前記アドレス計算部、マスク生成部、データ生成部で生
成されたアドレスADR、マスクMASK、描画データ
DATA、及び描画用メモリのアドレスADRから読み
込んだ下地データSRCを用いて(MASK and
DATA) or (not MASKand SR
C)の値を計算し、結果を同一のアドレスADRに書き
戻す処理を行うRmodW部とから構成されている。
端点の座標値を入力として、該線分の書き込まれるべき
描画用メモリのアドレスを計算するアドレス計算部と、
前記座標値から線分の両端点が書き込まれるワード中の
有効なビットを表すマスクを生成するマスク生成部と、
前記座標値と多角形の色情報からスクリーン処理を行っ
て1ワード分の描画データを生成するデータ生成部と、
前記アドレス計算部、マスク生成部、データ生成部で生
成されたアドレスADR、マスクMASK、描画データ
DATA、及び描画用メモリのアドレスADRから読み
込んだ下地データSRCを用いて(MASK and
DATA) or (not MASKand SR
C)の値を計算し、結果を同一のアドレスADRに書き
戻す処理を行うRmodW部とから構成されている。
【0010】本発明では、前記線分描画手段が前記座標
計算手段と同期して前記多角形を成す主走査方向毎の複
数の線分を連続的に描画することにより凹部を含む任意
の多角形図形を描画することが可能となっている。
計算手段と同期して前記多角形を成す主走査方向毎の複
数の線分を連続的に描画することにより凹部を含む任意
の多角形図形を描画することが可能となっている。
【0011】
【発明の実施の形態】以下、図面に基づき本発明に係わ
る多角形図形描画装置の実施例について説明する。 [実施例1]図1は本発明の多角形図形描画装置の実施
の形態を示すブロック図である。図1において、多角形
図形描画装置は、データ用メモリ1と、制御部2と、座
標計算部A31と、座標計算部B32と、線分描画部4
と、描画用メモリ5とから構成される。
る多角形図形描画装置の実施例について説明する。 [実施例1]図1は本発明の多角形図形描画装置の実施
の形態を示すブロック図である。図1において、多角形
図形描画装置は、データ用メモリ1と、制御部2と、座
標計算部A31と、座標計算部B32と、線分描画部4
と、描画用メモリ5とから構成される。
【0012】データ用メモリ1は、図示しない処理装置
によって文書データ等から作成される多角形図形データ
を一時的に格納するものである。データ用メモリ1は、
1つの文書の全ページの多角形図形データを格納するも
のであってもよいし、文書の一部、例えば1ページに含
まれる多角形の図形データを格納するものであってもよ
い。多角形図形データの詳細については後述する。
によって文書データ等から作成される多角形図形データ
を一時的に格納するものである。データ用メモリ1は、
1つの文書の全ページの多角形図形データを格納するも
のであってもよいし、文書の一部、例えば1ページに含
まれる多角形の図形データを格納するものであってもよ
い。多角形図形データの詳細については後述する。
【0013】制御部2は、データ用メモリ1から多角形
図形データを読み込んで、この読み込んだデータに基づ
き、座標計算部A/Bおよび線分描画部4の処理の開始
/停止を制御するものである。また、座標計算部A/B
あるいは線分描画部4の処理に必要とされるデータを適
宜供給する機能を持つ。
図形データを読み込んで、この読み込んだデータに基づ
き、座標計算部A/Bおよび線分描画部4の処理の開始
/停止を制御するものである。また、座標計算部A/B
あるいは線分描画部4の処理に必要とされるデータを適
宜供給する機能を持つ。
【0014】座標計算部A31は、図3に示すように多
角形の輪郭を構成する辺の左側に位置する辺(P7→P
6やP1→P8等)の座標計算を担当し、制御部からの
指示により担当する辺上の点の座標値を最小のy座標値
を持つ頂点(P7)から最大のy座標値を持つ頂点(P
3)へ向かって順に出力するものである。図3のように
1走査線上に複数の描画線分が含まれる場合には、内部
のパラメータレジスタ群を時分割で切り替えることによ
り並行して座標計算を行う。
角形の輪郭を構成する辺の左側に位置する辺(P7→P
6やP1→P8等)の座標計算を担当し、制御部からの
指示により担当する辺上の点の座標値を最小のy座標値
を持つ頂点(P7)から最大のy座標値を持つ頂点(P
3)へ向かって順に出力するものである。図3のように
1走査線上に複数の描画線分が含まれる場合には、内部
のパラメータレジスタ群を時分割で切り替えることによ
り並行して座標計算を行う。
【0015】座標計算部B32は、多角形の輪郭を構成
する辺の右側に位置する辺(P7→P8やP1→P2
等)の座標計算を担当し、制御部からの指示により担当
する辺上の点の座標値を最小のy座標値を持つ頂点(P
7)から最大のy座標値を持つ頂点(P3)へ向かって
順に出力するものである。座標計算部A31と同様に、
1走査線上に複数の描画線分が含まれる場合には、内部
のパラメータレジスタ群を時分割で切り替えることによ
り並行して座標計算を行う。
する辺の右側に位置する辺(P7→P8やP1→P2
等)の座標計算を担当し、制御部からの指示により担当
する辺上の点の座標値を最小のy座標値を持つ頂点(P
7)から最大のy座標値を持つ頂点(P3)へ向かって
順に出力するものである。座標計算部A31と同様に、
1走査線上に複数の描画線分が含まれる場合には、内部
のパラメータレジスタ群を時分割で切り替えることによ
り並行して座標計算を行う。
【0016】線分描画部4は、座標計算部Aおよび座標
計算部Bから入力される座標値を用いて、x軸に平行な
線分を描画することにより多角形の内部を塗りつぶすも
のである。図3のように1走査線上に複数の描画線分が
含まれる場合には、描画用メモリに高速ページモードで
アクセスすることにより、該当部分を凸多角形に分割し
て描画する従来技術に比べて高速に描画できるという特
徴がある。
計算部Bから入力される座標値を用いて、x軸に平行な
線分を描画することにより多角形の内部を塗りつぶすも
のである。図3のように1走査線上に複数の描画線分が
含まれる場合には、描画用メモリに高速ページモードで
アクセスすることにより、該当部分を凸多角形に分割し
て描画する従来技術に比べて高速に描画できるという特
徴がある。
【0017】描画用メモリ5には、描画済のビットマッ
プデータが格納される。描画用メモリ5は、1ページ分
のビットマップデータを格納するものであってもよい
し、ページの一部、例えばバンド分割されたビットマッ
プデータを格納するものであってもよい。
プデータが格納される。描画用メモリ5は、1ページ分
のビットマップデータを格納するものであってもよい
し、ページの一部、例えばバンド分割されたビットマッ
プデータを格納するものであってもよい。
【0018】ここで、データ用メモリ1に格納される多
角形図形データの1例を示す。X軸方向を主走査方向、
Y軸方向を副走査方向とする。このとき、図2に示す多
角形図形F0について、該図形を構成する頂点P1〜P
8についてそれぞれ図4に示す頂点データを作成し、こ
れを図5に示す頂点データテーブルの形にまとめる。図
5に示した頂点データテーブルは多角形図形1つにつき
1テーブルずつ作成され、該図形のタイプ、色、頂点数
などの情報を含むヘッダ部を付加される。頂点データテ
ーブルの1行には1つの頂点データが対応し、すべての
行はy座標によって昇順にソートされる。このとき、等
しいy座標をもつ複数の頂点が存在する場合には、さら
にx座標で昇順にソートされる。頂点データテーブルの
第1列には頂点のx座標が格納され、第2列には頂点の
y座標が格納される。第3列には、本発明の多角形図形
描画装置が該頂点のy座標以降に行う処理を表すタグが
格納される。タグSは該頂点のy座標から多角形の輪郭
を構成する2つの辺が開始することを表す。タグSはパ
ラメータとして該頂点から開始する2つの辺の終点の座
標を伴う。タグEは該頂点のy座標で多角形の輪郭を構
成する2つの辺が終了することを表す。タグRは該頂点
のy座標で多角形の輪郭を構成する1つの辺が終了し、
新たに1つの辺が開始することを表す。タグRはパラメ
ータとして該頂点から開始する1つの辺の終点の座標を
伴う。以上の形式の頂点データ列は、PostScri
ptのようなページ記述言語からソフトウェア処理によ
って多角形の輪郭の各辺の接続状態を調べることで、容
易に作成することができる。次に上述したように構成さ
れた多角形図形描画装置における描画処理の概要を図3
を用いて説明する。多角形F0の頂点座標値P1〜P8
は、あらかじめ図5のような形式に変換されてデータ用
メモリ1に格納されている。制御部2はデータ用メモリ
1から順次多角形図形データを読み込んで、頂点P7か
ら図3の下方へ向かって水平線分を1本ずつ描画してい
く。このとき、水平線分の左端点の座標値(xs,y
i)は座標計算部Aで、水平線分の右端点の座標値(x
e,yi)は座標計算部Bで、並列に計算する。これら
の座標(xs,xe,yi)を用いて線分描画部4で水
平線分の描画用メモリへの書き込みを行う。このような
処理を繰り返して副走査方向に進行し頂点P1のy座標
位置まで来ると、P7を頂点とする図形の線分1と並行
してP1からも下方へ向かって1本ずつ水平線分、線分
2を描画する。このときの線分1と線分2の描画並行処
理の様子を図6に示した。
角形図形データの1例を示す。X軸方向を主走査方向、
Y軸方向を副走査方向とする。このとき、図2に示す多
角形図形F0について、該図形を構成する頂点P1〜P
8についてそれぞれ図4に示す頂点データを作成し、こ
れを図5に示す頂点データテーブルの形にまとめる。図
5に示した頂点データテーブルは多角形図形1つにつき
1テーブルずつ作成され、該図形のタイプ、色、頂点数
などの情報を含むヘッダ部を付加される。頂点データテ
ーブルの1行には1つの頂点データが対応し、すべての
行はy座標によって昇順にソートされる。このとき、等
しいy座標をもつ複数の頂点が存在する場合には、さら
にx座標で昇順にソートされる。頂点データテーブルの
第1列には頂点のx座標が格納され、第2列には頂点の
y座標が格納される。第3列には、本発明の多角形図形
描画装置が該頂点のy座標以降に行う処理を表すタグが
格納される。タグSは該頂点のy座標から多角形の輪郭
を構成する2つの辺が開始することを表す。タグSはパ
ラメータとして該頂点から開始する2つの辺の終点の座
標を伴う。タグEは該頂点のy座標で多角形の輪郭を構
成する2つの辺が終了することを表す。タグRは該頂点
のy座標で多角形の輪郭を構成する1つの辺が終了し、
新たに1つの辺が開始することを表す。タグRはパラメ
ータとして該頂点から開始する1つの辺の終点の座標を
伴う。以上の形式の頂点データ列は、PostScri
ptのようなページ記述言語からソフトウェア処理によ
って多角形の輪郭の各辺の接続状態を調べることで、容
易に作成することができる。次に上述したように構成さ
れた多角形図形描画装置における描画処理の概要を図3
を用いて説明する。多角形F0の頂点座標値P1〜P8
は、あらかじめ図5のような形式に変換されてデータ用
メモリ1に格納されている。制御部2はデータ用メモリ
1から順次多角形図形データを読み込んで、頂点P7か
ら図3の下方へ向かって水平線分を1本ずつ描画してい
く。このとき、水平線分の左端点の座標値(xs,y
i)は座標計算部Aで、水平線分の右端点の座標値(x
e,yi)は座標計算部Bで、並列に計算する。これら
の座標(xs,xe,yi)を用いて線分描画部4で水
平線分の描画用メモリへの書き込みを行う。このような
処理を繰り返して副走査方向に進行し頂点P1のy座標
位置まで来ると、P7を頂点とする図形の線分1と並行
してP1からも下方へ向かって1本ずつ水平線分、線分
2を描画する。このときの線分1と線分2の描画並行処
理の様子を図6に示した。
【0019】図6において、縦方向は時間の経過を示し
ており、1つの行はある時刻Tiでの座標計算部A/B
および線分描画部4の行う処理の内容を示している。時
刻T1では、座標計算部Aはy=iにおける線分1の左
端点の座標(xs1, i)を計算する。同時に、座標
計算部Bはy=iにおける線分1の右端点の座標(xe
1, i)を計算する。次の時刻T2では、制御部2か
らの指示により座標計算部A/Bの内部のパラメータレ
ジスタが切り替えられ、座標計算部Aはy=iにおける
線分2の左端点の座標(xs2, i)を計算し、座標
計算部Bはy=iにおける線分2の右端点の座標(xe
2, i)を計算する。時刻T3では、制御部2はこれ
以上座標計算する線分は無いと判断して、線分描画部4
へ線分1(xs1,xe1,i)と線分2(xs2,x
e2,i)の描画を指示する。線分描画部4はこれらの
線分を描画用メモリへ連続的に書き込む。次の時刻T
4,T5では、同様に座標計算部A/Bがy=i+1に
おける2つの線分1’と2’の座標を計算し、時刻T6
で線分描画部4がこれらの線分を描画する。以下、図1
6の処理を繰り返して頂点P8のy座標まで来ると、座
標計算部A/Bの時分割並行処理は終了し、再び下方に
向かって1本ずつ水平線分を描画していく。頂点P6,
P2, P5, P4では対応する座標計算部のパラ
メータの更新が行われる。頂点P3まで来ると、多角形
F0全体の描画が完了する。尚、上記例では説明の便宜
上座標計算と線分描画は逐次的に行うように述べたが、
これらの処理は並列して行うほうが望ましい。
ており、1つの行はある時刻Tiでの座標計算部A/B
および線分描画部4の行う処理の内容を示している。時
刻T1では、座標計算部Aはy=iにおける線分1の左
端点の座標(xs1, i)を計算する。同時に、座標
計算部Bはy=iにおける線分1の右端点の座標(xe
1, i)を計算する。次の時刻T2では、制御部2か
らの指示により座標計算部A/Bの内部のパラメータレ
ジスタが切り替えられ、座標計算部Aはy=iにおける
線分2の左端点の座標(xs2, i)を計算し、座標
計算部Bはy=iにおける線分2の右端点の座標(xe
2, i)を計算する。時刻T3では、制御部2はこれ
以上座標計算する線分は無いと判断して、線分描画部4
へ線分1(xs1,xe1,i)と線分2(xs2,x
e2,i)の描画を指示する。線分描画部4はこれらの
線分を描画用メモリへ連続的に書き込む。次の時刻T
4,T5では、同様に座標計算部A/Bがy=i+1に
おける2つの線分1’と2’の座標を計算し、時刻T6
で線分描画部4がこれらの線分を描画する。以下、図1
6の処理を繰り返して頂点P8のy座標まで来ると、座
標計算部A/Bの時分割並行処理は終了し、再び下方に
向かって1本ずつ水平線分を描画していく。頂点P6,
P2, P5, P4では対応する座標計算部のパラ
メータの更新が行われる。頂点P3まで来ると、多角形
F0全体の描画が完了する。尚、上記例では説明の便宜
上座標計算と線分描画は逐次的に行うように述べたが、
これらの処理は並列して行うほうが望ましい。
【0020】以上、本発明の多角形図形描画装置の概要
について記述した。次に、この多角形図形描画装置の主
要部の詳細について説明する。
について記述した。次に、この多角形図形描画装置の主
要部の詳細について説明する。
【0021】座標計算部3は、図7に示すように、DD
Aパラメータ計算部301と、DDA処理部302と、
座標更新部303とから構成される。
Aパラメータ計算部301と、DDA処理部302と、
座標更新部303とから構成される。
【0022】DDAパラメータ計算部301は、制御部
2から入力された辺の始点の座標値(x1,y1)と終
点の座標値(x2,y2)から、DDAのパラメータで
ある長軸方向の差分ΔL、短軸方向の差分ΔS、長軸の
初期値L0、短軸の初期値S0、残差の初期値E0(=
ΔL)、およびパラメータΔL−ΔSを計算して出力す
るものである。また、x軸が短軸になっていることを示
す信号x=S?も同時に生成する。具体的にはΔx=x
2−x1, Δy=y2−y1の演算の結果、絶対値の
大きいほうがΔL、小さいほうがΔSとなる。このと
き、ΔS=Δxであれば信号(x=S?)の値は’1’
となり、S0=x1,L0=y1となる。ΔS=Δyで
あれば信号(x=S?)の値は’0’となり、S0=y
1, L0=x1となる。
2から入力された辺の始点の座標値(x1,y1)と終
点の座標値(x2,y2)から、DDAのパラメータで
ある長軸方向の差分ΔL、短軸方向の差分ΔS、長軸の
初期値L0、短軸の初期値S0、残差の初期値E0(=
ΔL)、およびパラメータΔL−ΔSを計算して出力す
るものである。また、x軸が短軸になっていることを示
す信号x=S?も同時に生成する。具体的にはΔx=x
2−x1, Δy=y2−y1の演算の結果、絶対値の
大きいほうがΔL、小さいほうがΔSとなる。このと
き、ΔS=Δxであれば信号(x=S?)の値は’1’
となり、S0=x1,L0=y1となる。ΔS=Δyで
あれば信号(x=S?)の値は’0’となり、S0=y
1, L0=x1となる。
【0023】DDA処理部302ではBresenha
mのアルゴリズムに基づいて辺の座標を1点ずつ計算す
る。ここで、Bresenhamのアルゴリズムについ
て簡単に説明する。このアルゴリズムは、ベクトルの始
点と終点のx座標およびy座標の差(Δx,Δy)のう
ち長いほうを長軸、短いほうを短軸として、長軸の値を
始点座標値から終点座標値へ向けて1座標値(+1また
は−1)ずつ変えたとき、残差の初期値E0(=ΔL)
からΔSを減算していき、その残差が0以下になった時
点で短軸の座標値を1座標値(+1または−1)だけ変
えることによって、近似点を発生するものである。この
時、残差EにはΔLが加算される。
mのアルゴリズムに基づいて辺の座標を1点ずつ計算す
る。ここで、Bresenhamのアルゴリズムについ
て簡単に説明する。このアルゴリズムは、ベクトルの始
点と終点のx座標およびy座標の差(Δx,Δy)のう
ち長いほうを長軸、短いほうを短軸として、長軸の値を
始点座標値から終点座標値へ向けて1座標値(+1また
は−1)ずつ変えたとき、残差の初期値E0(=ΔL)
からΔSを減算していき、その残差が0以下になった時
点で短軸の座標値を1座標値(+1または−1)だけ変
えることによって、近似点を発生するものである。この
時、残差EにはΔLが加算される。
【0024】DDA処理部302は、図8に示すよう
に、短軸座標値S、短軸差分ΔS、残差E、ΔL−Δ
S、長軸座標値Lを格納する5種類のレジスタ群と、4
つの加減算器3021〜3024と、2つのマルチプレ
クサ3025,3026とから構成される。各レジスタ
群3027−3031はそれぞれN個のレジスタを持
ち、制御部2から入力されるレジスタアドレスポインタ
信号RAPによってアドレスを指定されて読み書きが行
われる。これにより、N個のDDA処理を時分割して並
行処理できるようになっている。レジスタ群の初期値S
0, ΔS, E0,ΔL−ΔS, L0 は、制御部
2からのイニシャライズ信号INIによりレジスタ群に
設定される。マルチプレクサ3025は、減算器302
2の出力の符号が正のときは加減算器3021の出力を
選択し、減算器3022の出力の符号が負のときはSレ
ジスタ群の出力を選択するものである。マルチプレクサ
3026は、減算器3022の出力の符号が正のときは
減算器3022の出力を選択し、減算器3022の出力
の符号が負のときは加算器3023の出力を選択するも
のである。
に、短軸座標値S、短軸差分ΔS、残差E、ΔL−Δ
S、長軸座標値Lを格納する5種類のレジスタ群と、4
つの加減算器3021〜3024と、2つのマルチプレ
クサ3025,3026とから構成される。各レジスタ
群3027−3031はそれぞれN個のレジスタを持
ち、制御部2から入力されるレジスタアドレスポインタ
信号RAPによってアドレスを指定されて読み書きが行
われる。これにより、N個のDDA処理を時分割して並
行処理できるようになっている。レジスタ群の初期値S
0, ΔS, E0,ΔL−ΔS, L0 は、制御部
2からのイニシャライズ信号INIによりレジスタ群に
設定される。マルチプレクサ3025は、減算器302
2の出力の符号が正のときは加減算器3021の出力を
選択し、減算器3022の出力の符号が負のときはSレ
ジスタ群の出力を選択するものである。マルチプレクサ
3026は、減算器3022の出力の符号が正のときは
減算器3022の出力を選択し、減算器3022の出力
の符号が負のときは加算器3023の出力を選択するも
のである。
【0025】座標更新部303は、DDAパラメータ計
算部301の出力する信号x=S?の値によって、DD
A処理部302から出力される長軸座標Liおよび短軸
座標Siをx座標およびy座標に変換して出力するもの
である。
算部301の出力する信号x=S?の値によって、DD
A処理部302から出力される長軸座標Liおよび短軸
座標Siをx座標およびy座標に変換して出力するもの
である。
【0026】ここで、DDA処理の例を示す。図9のベ
クトルabの座標計算を行う場合、始点aと終点bのx
座標およびy座標の差(Δx,Δy)は、Δx=6−1
=5, Δy=8−1=7であるから、長軸はy軸、短
軸はx軸となる。DDAパラメータの初期値は、S0=
1, L0=1, ΔS=5, ΔL−ΔS=2,E0
=7となり、 x=S?の値は’1’となる。これらの
値がDDAパラメータ計算部301で計算されて、DD
A処理部302に入力される。演算が開始されると、D
DA処理部302では図10に示すように処理が進む。
1ステップごとに長軸座標値Lがインクリメントされ、
残差EからΔSが減算される。残差Eはステップ1では
(7−5)/7の剰余2、ステップ2では2×(7−
5)/7の剰余4、以下同様に計算される。E−ΔSが
0以下になると、短軸座標値Sはインクリメントされ、
EにはΔLが加算される。ただし図8の回路では、あら
かじめE−ΔS+ΔLを計算しておき、E−ΔSの符号
に応じてマルチプレクサ3026がE−ΔSかE−ΔS
+ΔLを選択するという構成をとっている。図10に示
すように計算された短軸座標値と長軸座標値は、座標更
新部303でそれぞれx座標値とy座標値に変換されて
出力される。この出力結果をプロットしたものが図11
である。
クトルabの座標計算を行う場合、始点aと終点bのx
座標およびy座標の差(Δx,Δy)は、Δx=6−1
=5, Δy=8−1=7であるから、長軸はy軸、短
軸はx軸となる。DDAパラメータの初期値は、S0=
1, L0=1, ΔS=5, ΔL−ΔS=2,E0
=7となり、 x=S?の値は’1’となる。これらの
値がDDAパラメータ計算部301で計算されて、DD
A処理部302に入力される。演算が開始されると、D
DA処理部302では図10に示すように処理が進む。
1ステップごとに長軸座標値Lがインクリメントされ、
残差EからΔSが減算される。残差Eはステップ1では
(7−5)/7の剰余2、ステップ2では2×(7−
5)/7の剰余4、以下同様に計算される。E−ΔSが
0以下になると、短軸座標値Sはインクリメントされ、
EにはΔLが加算される。ただし図8の回路では、あら
かじめE−ΔS+ΔLを計算しておき、E−ΔSの符号
に応じてマルチプレクサ3026がE−ΔSかE−ΔS
+ΔLを選択するという構成をとっている。図10に示
すように計算された短軸座標値と長軸座標値は、座標更
新部303でそれぞれx座標値とy座標値に変換されて
出力される。この出力結果をプロットしたものが図11
である。
【0027】次に、線分描画部4について詳細に説明す
る。線分描画部4は、図12に示すように、アドレス計
算部41と、マスク生成部42と、データ生成部43
と、RmodW処理部44とから構成される。
る。線分描画部4は、図12に示すように、アドレス計
算部41と、マスク生成部42と、データ生成部43
と、RmodW処理部44とから構成される。
【0028】アドレス計算部41は、描画する水平線分
の始点および終点の座標値(xs,xe,yi)を入力
し、該水平線分の書き込まれるべき描画メモリ上のアド
レスを計算してRmodW処理部44へ出力するもので
ある。図3の例のように、1つのy座標に複数の描画線
分が含まれる場合は、それぞれの端点の含まれるワード
のアドレスをすべて計算してRmodW処理部44へ出
力する。
の始点および終点の座標値(xs,xe,yi)を入力
し、該水平線分の書き込まれるべき描画メモリ上のアド
レスを計算してRmodW処理部44へ出力するもので
ある。図3の例のように、1つのy座標に複数の描画線
分が含まれる場合は、それぞれの端点の含まれるワード
のアドレスをすべて計算してRmodW処理部44へ出
力する。
【0029】マスク生成部42は、描画する水平線分の
始点および終点の座標値(xs,xe,yi)を入力し
て、該水平線分の両端点の書き込まれるワード中の有効
なビットを表すマスクを出力するものである。図3の例
のように、1つのy座標に複数の描画線分が含まれる場
合は、それぞれの端点の含まれるワードのマスクをすべ
て生成してRmodW処理部44へ出力する。
始点および終点の座標値(xs,xe,yi)を入力し
て、該水平線分の両端点の書き込まれるワード中の有効
なビットを表すマスクを出力するものである。図3の例
のように、1つのy座標に複数の描画線分が含まれる場
合は、それぞれの端点の含まれるワードのマスクをすべ
て生成してRmodW処理部44へ出力する。
【0030】データ生成部43は、描画する水平線分の
始点および終点の座標値(xs,xe,yi)と描画す
る多角形の色情報を入力とし、これらの値を用いてスク
リーン処理を行って1ワード分の描画データを出力する
ものである。図3の例のように、1つのy座標に複数の
描画線分が含まれる場合でも、1ワード分の描画データ
のみを生成する。
始点および終点の座標値(xs,xe,yi)と描画す
る多角形の色情報を入力とし、これらの値を用いてスク
リーン処理を行って1ワード分の描画データを出力する
ものである。図3の例のように、1つのy座標に複数の
描画線分が含まれる場合でも、1ワード分の描画データ
のみを生成する。
【0031】RmodW処理部44は、前記アドレス計
算部41で計算されたアドレスADRと、前記マスク生
成部42で生成されたマスクMASKと、前記データ生
成部43で生成された描画データDATAとを入力と
し、必要があれば描画用メモリのアドレスADRから下
地データSRCを読み込んで、これらのデータを用いて
4項演算(MASK and DATA) or (n
ot MASK andSRC )の値を計算し、結果
を同一のアドレスADRに書き戻す処理を行うものであ
る。描画する線分が複数のワードにまたがる場合は、上
記RmodW処理を繰り返し行う。
算部41で計算されたアドレスADRと、前記マスク生
成部42で生成されたマスクMASKと、前記データ生
成部43で生成された描画データDATAとを入力と
し、必要があれば描画用メモリのアドレスADRから下
地データSRCを読み込んで、これらのデータを用いて
4項演算(MASK and DATA) or (n
ot MASK andSRC )の値を計算し、結果
を同一のアドレスADRに書き戻す処理を行うものであ
る。描画する線分が複数のワードにまたがる場合は、上
記RmodW処理を繰り返し行う。
【0032】ここで、図3の例のように1つのy座標に
複数の描画線分が含まれる場合のマスクデータの生成方
法について補足する。これには、図13〜図15の3通
りの場合が考えられる。まず、図13のように描画する
線分1と線分2とがワード境界で区切られている場合
は、線分1の端点の座標値から生成されるマスクM1,
M2と、線分2の端点の座標値から生成されるマスクM
3, M4がそのままRmodW処理部44で4項演算
に使われる。図14のように、1ワード内に線分1の右
端点と線分2の左端点が入っている場合には、線分1の
マスクM2と線分2のマスクM3の論理積M5が生成さ
れ、マスクM1, M4とともにRmodW処理部44
で4項演算に使われる。図15のように、1ワード内に
線分1と線分2とが完全に入っている場合には、線分1
の端点の座標値から生成されるマスクM1と線分2の端
点の座標値から生成されるマスクM2との論理積M3が
生成され、RmodW処理部44で4項演算に使われ
る。尚、線分の数が3以上の場合についても同様であ
る。 [実施例2]前記実施例1では、図1に示したように座
標計算部を2つ備え、座標計算部Aが多角形の左側の輪
郭の座標計算を担当し、座標計算部Bが多角形の右側の
輪郭の座標計算を担当する構成をとっていたが、座標計
算部は図19のように唯1つだけ備える構成にしてもよ
い。この場合、全ての辺の座標計算を1つの座標計算部
が時分割並行処理することになる。
複数の描画線分が含まれる場合のマスクデータの生成方
法について補足する。これには、図13〜図15の3通
りの場合が考えられる。まず、図13のように描画する
線分1と線分2とがワード境界で区切られている場合
は、線分1の端点の座標値から生成されるマスクM1,
M2と、線分2の端点の座標値から生成されるマスクM
3, M4がそのままRmodW処理部44で4項演算
に使われる。図14のように、1ワード内に線分1の右
端点と線分2の左端点が入っている場合には、線分1の
マスクM2と線分2のマスクM3の論理積M5が生成さ
れ、マスクM1, M4とともにRmodW処理部44
で4項演算に使われる。図15のように、1ワード内に
線分1と線分2とが完全に入っている場合には、線分1
の端点の座標値から生成されるマスクM1と線分2の端
点の座標値から生成されるマスクM2との論理積M3が
生成され、RmodW処理部44で4項演算に使われ
る。尚、線分の数が3以上の場合についても同様であ
る。 [実施例2]前記実施例1では、図1に示したように座
標計算部を2つ備え、座標計算部Aが多角形の左側の輪
郭の座標計算を担当し、座標計算部Bが多角形の右側の
輪郭の座標計算を担当する構成をとっていたが、座標計
算部は図19のように唯1つだけ備える構成にしてもよ
い。この場合、全ての辺の座標計算を1つの座標計算部
が時分割並行処理することになる。
【0033】図3の線分1と2の描画の場合では、1つ
の座標計算部が(1)辺P7→P6(線分1の左端点)
の座標計算、(2)辺P7→P8(線分1の右端点)の
座標計算、(3)辺P1→P8(線分2の左端点)の座
標計算、(4)辺P1→P2(線分2の右端点)の座標
計算、と順次線分の端点の座標計算をした後、線分描画
部4が線分1と2を描画用メモリへ書き込む。線分描画
部の処理が終了すると、先程と同様にして次のスキャン
ラインの座標計算および線分描画を繰り返す。
の座標計算部が(1)辺P7→P6(線分1の左端点)
の座標計算、(2)辺P7→P8(線分1の右端点)の
座標計算、(3)辺P1→P8(線分2の左端点)の座
標計算、(4)辺P1→P2(線分2の右端点)の座標
計算、と順次線分の端点の座標計算をした後、線分描画
部4が線分1と2を描画用メモリへ書き込む。線分描画
部の処理が終了すると、先程と同様にして次のスキャン
ラインの座標計算および線分描画を繰り返す。
【0034】尚、上記例では説明の便宜上座標計算と線
分描画は逐次的に行うように述べたが、これらの処理は
並列して行うほうが望ましい。 [実施例3]前記実施例1では、図1に示したように座
標計算部を2つ備える構成をとっていたが、座標計算部
はM個(Mは2の倍数)備える構成にしてもよい。多角
形の1走査線に含まれる辺の数がM個以下の時はM個の
座標計算部が並列して座標計算し、辺の数がM個を越え
る時はM個の座標計算部の一部あるいは全部が時分割し
て座標計算する。
分描画は逐次的に行うように述べたが、これらの処理は
並列して行うほうが望ましい。 [実施例3]前記実施例1では、図1に示したように座
標計算部を2つ備える構成をとっていたが、座標計算部
はM個(Mは2の倍数)備える構成にしてもよい。多角
形の1走査線に含まれる辺の数がM個以下の時はM個の
座標計算部が並列して座標計算し、辺の数がM個を越え
る時はM個の座標計算部の一部あるいは全部が時分割し
て座標計算する。
【0035】例として、図20のように座標計算部を4
つ備える構成の多角形図形描画処理について説明する。
この場合、座標計算部Aおよび座標計算部Cが多角形の
左側の輪郭の座標計算を担当し、座標計算部Bおよび座
標計算部Dが多角形の右側の輪郭の座標計算を担当す
る。図3の線分1と2の描画の場合では、座標計算部A
が辺P7→P6(線分1の左端点)の座標計算を、座標
計算部Bが辺P7→P8(線分1の右端点)の座標計算
を、座標計算部Cが辺P1→P8(線分2の左端点)の
座標計算を、座標計算部Dが辺P1→P2(線分2の右
端点)の座標計算をそれぞれ並列に行い、4つの端点の
座標値が出力されると、制御部からの指示により、線分
描画部4が線分1と2を描画用メモリへ書き込む。図3
の頂点P8よりも下の部分を描画する場合は、座標計算
部Aおよび座標計算部Bのみが座標計算を行い、座標計
算部Bおよび座標計算部Cは休止状態となる。もし、1
走査線に含まれる辺の数が4個を超える場合でも、先に
座標計算を終了した2つの座標計算部がパラメータを切
り替えて時分割並行処理することにより、次の辺の座標
計算を行う。 [実施例4]前記実施例1では、DDA処理部302内
のパラメータレジスタがそれぞれN個のレジスタからな
るレジスタ群として構成されており、並行処理中の複数
のDDAパラメータを全てDDA処理部302内に保持
しておくという構成であったが、これらのパラメータの
一部を外部のメモリのワーク領域に退避することが可能
な構成にしてもよい。
つ備える構成の多角形図形描画処理について説明する。
この場合、座標計算部Aおよび座標計算部Cが多角形の
左側の輪郭の座標計算を担当し、座標計算部Bおよび座
標計算部Dが多角形の右側の輪郭の座標計算を担当す
る。図3の線分1と2の描画の場合では、座標計算部A
が辺P7→P6(線分1の左端点)の座標計算を、座標
計算部Bが辺P7→P8(線分1の右端点)の座標計算
を、座標計算部Cが辺P1→P8(線分2の左端点)の
座標計算を、座標計算部Dが辺P1→P2(線分2の右
端点)の座標計算をそれぞれ並列に行い、4つの端点の
座標値が出力されると、制御部からの指示により、線分
描画部4が線分1と2を描画用メモリへ書き込む。図3
の頂点P8よりも下の部分を描画する場合は、座標計算
部Aおよび座標計算部Bのみが座標計算を行い、座標計
算部Bおよび座標計算部Cは休止状態となる。もし、1
走査線に含まれる辺の数が4個を超える場合でも、先に
座標計算を終了した2つの座標計算部がパラメータを切
り替えて時分割並行処理することにより、次の辺の座標
計算を行う。 [実施例4]前記実施例1では、DDA処理部302内
のパラメータレジスタがそれぞれN個のレジスタからな
るレジスタ群として構成されており、並行処理中の複数
のDDAパラメータを全てDDA処理部302内に保持
しておくという構成であったが、これらのパラメータの
一部を外部のメモリのワーク領域に退避することが可能
な構成にしてもよい。
【0036】この構成により、N個以上のDDAパラメ
ータを用いた並行座標計算が必要となるような非常に凹
凸の激しい多角形を描画する場合、DDA処理部302
内のレジスタ群からあふれたパラメータを一時的に外部
メモリに退避しておき、必要に応じてパラメータを適当
なレジスタ群へ読み込んで座標計算処理を続行すること
が可能になる。DDAパラメータの退避と復帰は、制御
部2によって制御される。例として、図21のように1
スキャンライン毎に6回の座標計算を行う必要のある多
角形を描画する場合を説明する。ここで例示する多角形
図形描画装置は、図19のように座標計算部を唯1つだ
け備えるものであり、そのDDA処理部はそれぞれ4つ
のレジスタから構成されるパラメータレジスタ群を備え
るとする。すなわち、1スキャンライン毎に4回までの
座標計算であれば、外部メモリにパラメータデータを退
避することなく時分割処理によって座標計算が行える座
標計算部である。今、図21の図形の座標計算を辺a→
辺b→辺c→辺d→辺e→辺fの順に行うとする。図2
1のスキャンライン1〜3の描画処理におけるパラメー
タレジスタ群の保持するデータの変化を図22に示し
た。パラメータレジスタ群3027〜3031には、す
べて同一の辺に対応するパラメータがロードされる。初
めに、辺a〜辺dに対応するパラメータがそれぞれのパ
ラメータレジスタ群にロードされているとする。その様
子を示すのが、図22(i)である。スキャンライン1
の描画が始まると、座標計算部では時分割処理によって
点a1, b1, c1, d1の座標が順次計算され
る。次に辺eの座標計算を行うために、制御部は、最も
最近使われたレジスタアドレスr3のレジスタに保持さ
れているパラメータ(辺dのパラメータ)を外部メモリ
の所定の場所にストアし、辺eのパラメータをレジスタ
アドレスr3のレジスタへロードする(図22(ii)
参照)。ただし、外部メモリのワーク領域には、パラメ
ータを退避するための領域があらかじめ確保されている
とする。座標計算部で点e1の座標が計算されると、次
に辺fの座標計算を行うために、制御部は、最も最近使
われたレジスタアドレスr3のレジスタに保持されてい
るパラメータ(辺eのパラメータ)を外部メモリの所定
の場所にストアし、辺fのパラメータをレジスタアドレ
スr3のレジスタへロードする(図22(iii)参
照)。点f1の座標計算が終わると、制御部は、線分a
1−b1,c1−d1, e1−f1の描画を線分描画
部へ指示し、線分描画部ではこれらの線分を描画用メモ
リへ書き込む(図22(iv)参照)。線分描画が終わ
ると、座標計算部では続いて点a2, b2, c2の
座標が計算される(図22(v)参照)。次に辺dの座
標計算を行うために、制御部は、最も最近使われたレジ
スタアドレスr2のレジスタに保持されているパラメー
タ(辺cのパラメータ)を外部メモリの所定の場所にス
トアし、辺dのパラメータをレジスタアドレスr2のレ
ジスタへロードする(図22(vi)参照)。以下同様
に、座標計算部では、レジスタ群にパラメータがロード
してあればそれらを用いて座標計算を行い、レジスタ群
にパラメータがロードしてなければ最も最近使われたレ
ジスタに保持されているパラメータを外部メモリの所定
の場所にストアし、必要なパラメータをそのレジスタに
ロードして座標計算を続行するという処理を繰り返す。
線分描画部では、1スキャンラインに含まれる全ての線
分の端点の座標計算が終了したら、それらの線分を描画
用メモリへ書き込む処理を繰り返す。
ータを用いた並行座標計算が必要となるような非常に凹
凸の激しい多角形を描画する場合、DDA処理部302
内のレジスタ群からあふれたパラメータを一時的に外部
メモリに退避しておき、必要に応じてパラメータを適当
なレジスタ群へ読み込んで座標計算処理を続行すること
が可能になる。DDAパラメータの退避と復帰は、制御
部2によって制御される。例として、図21のように1
スキャンライン毎に6回の座標計算を行う必要のある多
角形を描画する場合を説明する。ここで例示する多角形
図形描画装置は、図19のように座標計算部を唯1つだ
け備えるものであり、そのDDA処理部はそれぞれ4つ
のレジスタから構成されるパラメータレジスタ群を備え
るとする。すなわち、1スキャンライン毎に4回までの
座標計算であれば、外部メモリにパラメータデータを退
避することなく時分割処理によって座標計算が行える座
標計算部である。今、図21の図形の座標計算を辺a→
辺b→辺c→辺d→辺e→辺fの順に行うとする。図2
1のスキャンライン1〜3の描画処理におけるパラメー
タレジスタ群の保持するデータの変化を図22に示し
た。パラメータレジスタ群3027〜3031には、す
べて同一の辺に対応するパラメータがロードされる。初
めに、辺a〜辺dに対応するパラメータがそれぞれのパ
ラメータレジスタ群にロードされているとする。その様
子を示すのが、図22(i)である。スキャンライン1
の描画が始まると、座標計算部では時分割処理によって
点a1, b1, c1, d1の座標が順次計算され
る。次に辺eの座標計算を行うために、制御部は、最も
最近使われたレジスタアドレスr3のレジスタに保持さ
れているパラメータ(辺dのパラメータ)を外部メモリ
の所定の場所にストアし、辺eのパラメータをレジスタ
アドレスr3のレジスタへロードする(図22(ii)
参照)。ただし、外部メモリのワーク領域には、パラメ
ータを退避するための領域があらかじめ確保されている
とする。座標計算部で点e1の座標が計算されると、次
に辺fの座標計算を行うために、制御部は、最も最近使
われたレジスタアドレスr3のレジスタに保持されてい
るパラメータ(辺eのパラメータ)を外部メモリの所定
の場所にストアし、辺fのパラメータをレジスタアドレ
スr3のレジスタへロードする(図22(iii)参
照)。点f1の座標計算が終わると、制御部は、線分a
1−b1,c1−d1, e1−f1の描画を線分描画
部へ指示し、線分描画部ではこれらの線分を描画用メモ
リへ書き込む(図22(iv)参照)。線分描画が終わ
ると、座標計算部では続いて点a2, b2, c2の
座標が計算される(図22(v)参照)。次に辺dの座
標計算を行うために、制御部は、最も最近使われたレジ
スタアドレスr2のレジスタに保持されているパラメー
タ(辺cのパラメータ)を外部メモリの所定の場所にス
トアし、辺dのパラメータをレジスタアドレスr2のレ
ジスタへロードする(図22(vi)参照)。以下同様
に、座標計算部では、レジスタ群にパラメータがロード
してあればそれらを用いて座標計算を行い、レジスタ群
にパラメータがロードしてなければ最も最近使われたレ
ジスタに保持されているパラメータを外部メモリの所定
の場所にストアし、必要なパラメータをそのレジスタに
ロードして座標計算を続行するという処理を繰り返す。
線分描画部では、1スキャンラインに含まれる全ての線
分の端点の座標計算が終了したら、それらの線分を描画
用メモリへ書き込む処理を繰り返す。
【0037】
【発明の効果】以上説明したように本発明では、制御部
からの指示により、パラメータレジスタをそれぞれN個
(N≧2)持つDDA処理装置を備えた1個または2の
倍数個の線分描画部が、座標計算部と同期して多角形を
構成する主走査方向毎の複数の線分を連続的に描画する
構成とした。これにより、凹部を含む任意の多角形図形
を高速に描画することが可能となっている。さらに、線
分描画部と座標計算部が並列に動作可能な構成とした結
果、従来待ち状態でいる時間が長かった座標計算部を時
分割して複数の水平線分の処理に使用でき、座標計算部
の待ち時間を大幅に減らすことが可能となっている。ま
た、1走査線上に複数の描画線分が含まれる場合には、
描画用メモリに高速ページモードでアクセスすることに
より、該当部分を凸多角形に分割して描画する従来技術
に比べて高速に描画できる。
からの指示により、パラメータレジスタをそれぞれN個
(N≧2)持つDDA処理装置を備えた1個または2の
倍数個の線分描画部が、座標計算部と同期して多角形を
構成する主走査方向毎の複数の線分を連続的に描画する
構成とした。これにより、凹部を含む任意の多角形図形
を高速に描画することが可能となっている。さらに、線
分描画部と座標計算部が並列に動作可能な構成とした結
果、従来待ち状態でいる時間が長かった座標計算部を時
分割して複数の水平線分の処理に使用でき、座標計算部
の待ち時間を大幅に減らすことが可能となっている。ま
た、1走査線上に複数の描画線分が含まれる場合には、
描画用メモリに高速ページモードでアクセスすることに
より、該当部分を凸多角形に分割して描画する従来技術
に比べて高速に描画できる。
【図1】 本発明の第1の実施例を示すブロック図であ
る。
る。
【図2】 凹部を含む多角形図形を説明する図である。
【図3】 多角形図形の描画方法を説明する概念図であ
る。
る。
【図4】 多角形図形の頂点データ形式を説明する図で
ある。
ある。
【図5】 頂点データテーブルを説明する図である。
【図6】 座標計算部A/Bでの時分割並行処理を説明
する図である。
する図である。
【図7】 座標計算部のブロック図である。
【図8】 DDA処理部のブロック図である。
【図9】 DDA処理をするベクトルデータの1例を示
す図である。
す図である。
【図10】 DDA処理の様子を説明する図である。
【図11】 DDA処理によって計算された線分の座標
値を説明する図である。
値を説明する図である。
【図12】 線分描画部のブロック図である。
【図13】 複数の水平線分に対応するマスクデータの
生成方法を説明する図である。
生成方法を説明する図である。
【図14】 線分1の終点と線分2の始点が1ワードに
含まれる場合のマスクデータの生成方法を説明する図で
ある。
含まれる場合のマスクデータの生成方法を説明する図で
ある。
【図15】 線分1と線分2が1ワードに含まれる場合
のマスクデータの生成方法を説明する図である。
のマスクデータの生成方法を説明する図である。
【図16】 多角形の分割を説明する図である。
【図17】 台形の描画方法を説明する図である。
【図18】 水平線分の描画方法を説明する図である。
【図19】 本発明の第2の実施例を示すブロック図で
ある。
ある。
【図20】 本発明の第3の実施例を示すブロック図で
ある。
ある。
【図21】 凹凸の激しい多角形図形の描画を説明する
図である。
図である。
【図22】 DDAのレジスタ群からパラメータを外部
メモリへ退避する処理の流れを説明する図である。
メモリへ退避する処理の流れを説明する図である。
1 データ用メモリ 2 制御部 3 座標計算部 4 線分描画部 5 描画用メモリ 31 座標計算部A 32 座標計算部B 33 座標計算部C 34 座標計算部D 41 アドレス計算部 42 マスク生成部 43 データ生成部 44 RmodW処理部 301 DDAパラメータ計算部 302 DDA処理部 303 座標更新部 3021 加減算器A 3022 減算器A 3023 加算器A 3024 加減算器B 3025 マルチプレクサA 3026 マルチプレクサB 3027 Sレジスタ群 3028 △Sレジスタ群 3029 Eレジスタ群 3030 △L−△Sレジスタ群 3031 Lレジスタ群
Claims (7)
- 【請求項1】 主走査方向に平行な線分を副走査方向に
複数回描くことによって多角形図形を描画する図形描画
装置において、 多角形図形の頂点数、頂点の座標値、色等を含む描画に
必要なデータを一時的に格納するための記憶手段と、 多角形を構成する前記主走査方向に平行な線分の端点位
置となる多角形の辺上の座標値を該辺の始点及び終点の
座標を入力として計算する座標計算手段であって、前記
多角形を構成する主走査方向に平行な線分の1走査線上
に存在する端点の座標値をすべて抽出し計算する座標計
算手段と、 前記座標計算手段で計算された前記線分の複数の端点の
座標を入力として、該線分に対応するデータを描画用メ
モリの該線分の座標に対応するアドレスに書き込む線分
描画手段であって、前記座標計算手段と同期して前記多
角形を構成する主走査方向に平行な線分を連続的に描画
する線分描画手段と、 前記記憶手段に格納された多角形の描画に必要なデータ
を前記座標計算手段及び前記線分描画手段へ出力する出
力制御手段とを備え、 1走査線上にある前記線分の複数の端点の座標値に対応
した1以上の線分を連続的に描画することを特徴とする
多角形図形描画装置。 - 【請求項2】 前記座標計算手段は、パラメータレジス
タをそれぞれN個(N≧2)持つDDA(ディジタル微
分解析)処理装置として構成され、前記制御手段からの
指示により時分割並行DDA処理によって前記線分の両
端点の座標値を計算することを特徴とする請求項1記載
の多角形図形描画装置。 - 【請求項3】 前記線分描画手段は、前記線分の端点の
座標値を入力として、該線分の書き込まれるべき描画用
メモリのアドレスを計算するアドレス計算部と、 前記座標値から線分の端点が書き込まれるワード中の有
効なビットを表すマスクを生成するマスク生成部と、 前記座標値と多角形の色情報からスクリーン処理を行っ
て1ワード分の描画データを生成するデータ生成部と、 前記アドレス計算部で計算されたアドレス(ADR)
と、前記マスク生成部で生成されたマスク(MASK)
と、前記データ生成部で生成された描画データ(DAT
A)とを入力とし、必要があれば描画用メモリの前記ア
ドレス(ADR)から下地データ(SRC)を読み込ん
で、これらのデータを用いて(MASKand DAT
A) or (not MASK and SRC)の
値を計算し、結果を同一のアドレス(ADR)に書き戻
す処理を行うメモリ描画部と、 から構成されることを特徴とする請求項1記載の多角形
図形描画装置。 - 【請求項4】 前記座標計算手段を複数個有し、1走査
線上に存在する前記多角形を構成する複数の線分の複数
の端点の座標値を並列に計算することを特徴とする請求
項2記載の多角形図形描画装置。 - 【請求項5】 前記座標計算手段は、パラメータレジス
タ群に格納したパラメータの一部を外部メモリのワーク
領域に退避する機能を持つことを特徴とする請求項2記
載の多角形図形描画装置。 - 【請求項6】 前記記憶手段に入力されるデータは、1
つの多角形につき少なくともその多角形の色、頂点数、
各頂点の座標値を含み、 前記各頂点の座標値には、該頂点が多角形の輪郭の始点
であるのか終点であるのか、あるいは始点かつ終点であ
るのかを表す識別子と、該頂点が多角形の輪郭の始点で
ある場合には該輪郭の終点の座標値が有し、 前記データは前記各頂点の座標値に基づいて副走査方向
に配列されていることを特徴とする請求項1記載の多角
形図形描画装置。 - 【請求項7】 1走査線上に含まれる複数の線分の描画
を高速ページモードでアクセスすることを特徴とする請
求項3記載の多角形図形描画装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30193996A JPH1145343A (ja) | 1996-11-13 | 1996-11-13 | 多角形図形描画装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30193996A JPH1145343A (ja) | 1996-11-13 | 1996-11-13 | 多角形図形描画装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1145343A true JPH1145343A (ja) | 1999-02-16 |
Family
ID=17902937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30193996A Pending JPH1145343A (ja) | 1996-11-13 | 1996-11-13 | 多角形図形描画装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1145343A (ja) |
-
1996
- 1996-11-13 JP JP30193996A patent/JPH1145343A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5016001A (en) | Pattern data generating system | |
JP3791259B2 (ja) | アウトラインスムージング処理方法 | |
JPH01296389A (ja) | 図形処理方法及びその装置 | |
JPH02270019A (ja) | 高品質文字パターン発生方式 | |
JP2007122188A (ja) | 画像形成装置及び画像処理方法、並びにプログラム | |
JPH1145343A (ja) | 多角形図形描画装置 | |
JP3146771B2 (ja) | フォントラスタライズ装置およびその方法 | |
JP3129717B2 (ja) | 画像処理装置および画像処理方法 | |
JPH10149453A (ja) | 多角形図形描画装置 | |
JP4863306B2 (ja) | ベクターイメージ描画装置、ベクターイメージ描画方法およびプログラム | |
JP3156729B2 (ja) | 描画装置 | |
JPH04373084A (ja) | 文字図形変形処理装置 | |
JPH0627922A (ja) | 文字パターン表示制御装置 | |
JP2835056B2 (ja) | 高品質文字パターン発生方式 | |
JP2782904B2 (ja) | 多角形塗りつぶし方式 | |
JP2605609B2 (ja) | ドット表示処理装置 | |
JPH10261095A (ja) | 画像処理装置及び画像処理方法 | |
JPH05205070A (ja) | 図形描画方法 | |
JPH0896148A (ja) | 図形描画装置 | |
JP2007264866A (ja) | グラフィックシステム、破線テクスチャ画像生成装置、及び、破線テクスチャ画像生成方法 | |
JPH06168337A (ja) | 塗り潰し処理方法 | |
JP2000082150A (ja) | 画像処理装置 | |
JPH09259291A (ja) | 領域塗分装置 | |
JPH0594170A (ja) | ベクトルフオント描画装置 | |
JP2000259845A (ja) | 多角形描画方法、および多角形描画装置 |