JPH0340184A - 図形描画装置 - Google Patents
図形描画装置Info
- Publication number
- JPH0340184A JPH0340184A JP1176181A JP17618189A JPH0340184A JP H0340184 A JPH0340184 A JP H0340184A JP 1176181 A JP1176181 A JP 1176181A JP 17618189 A JP17618189 A JP 17618189A JP H0340184 A JPH0340184 A JP H0340184A
- Authority
- JP
- Japan
- Prior art keywords
- value
- register
- counter
- coordinate
- bits
- 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
- 238000001514 detection method Methods 0.000 abstract description 9
- 238000004364 calculation method Methods 0.000 description 20
- 238000000034 method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
Landscapes
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
図形描画装置に関し、
桁上検出係数eを1/2に保持したまま演算することに
より、同一ビット数の処理であれば演算精度を向上させ
て描画性能を高め、あるいは同一の演算精度を得るため
には必要なビット数を1bitだけ小さくしてハード的
構成を簡単にできる図形描画装置を提供することを目的
とし、X方向の移動量Δxとy方向の移動量Δyで表さ
れる直線を整数値座標上の点列で表現し、少なくとX座
標を保持するXカウンタ、X座標を保持するYカウンタ
を用いてビデオRAMに描画座標を書き込んで直線を描
画する図形描画装置において、X方向の移動量Δxとy
方向の移動量Δyについて−IIΔx1−1Δyllの
値を設定する第1レジスタと、jΔxI lΔy1
のうち小さい方の値を設定する第2レジスタと、初期値
としてΔy−Δx / 2を設定し、次の描画点を求め
るときに自己の値が0以上であれば第1レジスタの値を
加算し、自己の値が負であれば第2レジスタの値を加算
する第3レジスタとを設け、前記Xカウンタ、Yカウン
タは、少なくとも第3レジスタの設定値に基づいて作動
するように構成する。
より、同一ビット数の処理であれば演算精度を向上させ
て描画性能を高め、あるいは同一の演算精度を得るため
には必要なビット数を1bitだけ小さくしてハード的
構成を簡単にできる図形描画装置を提供することを目的
とし、X方向の移動量Δxとy方向の移動量Δyで表さ
れる直線を整数値座標上の点列で表現し、少なくとX座
標を保持するXカウンタ、X座標を保持するYカウンタ
を用いてビデオRAMに描画座標を書き込んで直線を描
画する図形描画装置において、X方向の移動量Δxとy
方向の移動量Δyについて−IIΔx1−1Δyllの
値を設定する第1レジスタと、jΔxI lΔy1
のうち小さい方の値を設定する第2レジスタと、初期値
としてΔy−Δx / 2を設定し、次の描画点を求め
るときに自己の値が0以上であれば第1レジスタの値を
加算し、自己の値が負であれば第2レジスタの値を加算
する第3レジスタとを設け、前記Xカウンタ、Yカウン
タは、少なくとも第3レジスタの設定値に基づいて作動
するように構成する。
本発明は、図形描画装置に係り、特に直線を描画する際
の構成を簡単にし、精度向上を図った図形描画装置に関
する。
の構成を簡単にし、精度向上を図った図形描画装置に関
する。
直線や曲線をグラフインクデイスプレィ上に表示するこ
とは、コンピュータグラフィソクスの最も基本的な処理
の1つである。特に、ラスクスキャン型デイスプレィや
X−Yブロツク、ドソトブリンクなどでは、線を二次面
上に並んだ微細な点の並び、または離散的な格子交点(
グリソド点)をたどるペンの軌跡として表す必要がある
。
とは、コンピュータグラフィソクスの最も基本的な処理
の1つである。特に、ラスクスキャン型デイスプレィや
X−Yブロツク、ドソトブリンクなどでは、線を二次面
上に並んだ微細な点の並び、または離散的な格子交点(
グリソド点)をたどるペンの軌跡として表す必要がある
。
〔従来の技4ネi〕
従来の図形描画装置としては、例えば日経エレク1−ロ
ニクス、1981年10月12日号、))。
ニクス、1981年10月12日号、))。
202〜2059日経マグロウヒル社刊に記載されたも
のがあり、この装置による直線描画の具体例は第4図の
ように示される。同図に示すもの番↓直線を整数値座標
上の点列1で表現しており、その座標(ix、iy)は
次式■で表される。
のがあり、この装置による直線描画の具体例は第4図の
ように示される。同図に示すもの番↓直線を整数値座標
上の点列1で表現しており、その座標(ix、iy)は
次式■で表される。
Δx:直線のX方向の移動量
Δy:直線のX方向の移動量
ix:xの整数部(ただし、描画開始点が原点)iy:
yの整数部(ただし、描画開始点が原点)flyの小数
部 第4図に示すものはΔx−12、Δy=8の例である。
yの整数部(ただし、描画開始点が原点)flyの小数
部 第4図に示すものはΔx−12、Δy=8の例である。
なお、yの小数部fは4捨5人で処理するとすると、1
/2を越えた時にiyへ桁上がりをすればいい。この場
合、fが1/2以上になる条件は次のようになる。
/2を越えた時にiyへ桁上がりをすればいい。この場
合、fが1/2以上になる条件は次のようになる。
f ≧
すなわち、
■弐を変形すると、次のようになる。
2iX・ΔY−(2iy+1)Δx≧0・・・・・・■
ここで、 e=2ix・Δy−(2iy+1)Δx・・・・・・■
とすると、Δx≧Δyで、x、yが増加する方向の直線
を表現する点を描画する方法は次のようになる。なお、
説明の都合上、eを桁上検出係数と称することにする。
ここで、 e=2ix・Δy−(2iy+1)Δx・・・・・・■
とすると、Δx≧Δyで、x、yが増加する方向の直線
を表現する点を描画する方法は次のようになる。なお、
説明の都合上、eを桁上検出係数と称することにする。
(I)初期化二〇の初期値を計算する。
初期値は1x=l、1y=0のときのeである。
したがって、■式より
e←2Δy−Δx
となる。
(II)ステップ1 : (x、y)に描画を行う。
(I[l)ステップ2:次の描画点の座標を求める。
小数部からの桁上がりをe≧0で検出し、桁上がりがあ
ったときのみyを更新する。
ったときのみyを更新する。
したがって、
X←X+1
if(e≧0)yl−yl1
という処理となる。
(IV)ステップ3:x、yの変化に対応し、eの値を
次のような処理で更新する。
次のような処理で更新する。
1f(e≧0)e4−e−2Δx+2ΔyelSe
e4−e+2Δy (V)ステップ4:すべての点を描画していないならば
、ステソプIへ行く。
e4−e+2Δy (V)ステップ4:すべての点を描画していないならば
、ステソプIへ行く。
しかしながら、このような従来の図形描画装置にあって
は、桁上検出係数eを保持するレジスタに座標差の2倍
の値を入れる構成であるため、オーバーフローを起こさ
ないようにするためには、座標差より1bitだけ多く
のビット数を必要とし、回路が複雑になるという問題点
があった。
は、桁上検出係数eを保持するレジスタに座標差の2倍
の値を入れる構成であるため、オーバーフローを起こさ
ないようにするためには、座標差より1bitだけ多く
のビット数を必要とし、回路が複雑になるという問題点
があった。
一方、上記の1bitを削除して座標差の値を制限して
しまうと、演算精度が低下し、描画性能も低下するとい
う問題点がある。
しまうと、演算精度が低下し、描画性能も低下するとい
う問題点がある。
そこで本発明は、桁上検出係数eを1/2に保持したま
ま演算することにより、同一ビット数の処理であれば演
算精度を向上させて描画性能を高め、あるいは同一の演
算精度を得るためには必要なピント数を1bitだけ小
さくしてハード的構成を簡単にできる図形描画装置を提
供することを目的としている。
ま演算することにより、同一ビット数の処理であれば演
算精度を向上させて描画性能を高め、あるいは同一の演
算精度を得るためには必要なピント数を1bitだけ小
さくしてハード的構成を簡単にできる図形描画装置を提
供することを目的としている。
本発明による図形描画装置は上記目的達成のため、X方
向の移動量Δxとy方向の移動量Δyで表される直線を
整数値座標上の点列で表現し、少なくとX座標を保持す
るXカウンタ、y座標を保持するYカウンタを用いてビ
デオRAMに描画座標を書き込んで直線を描画する図形
描画装置において、X方向の移動量Δxとy方向の移動
量Δyについて一11Δx1−1Δyllの値を設定す
る第1レジスタと、IΔxI lΔy1のうち小さい
方の値を設定する第2レジスタと、初期値としてΔy−
Δx / 2を設定し、次の描画点を求めるときに自己
の値が0以上であれば第・1レジスタの値を加算し、自
己の値が負であれば第2レジスタの値を加算する第3レ
ジスタとを設け、前記Xカウンタ、Yカウンタは、少な
くとも第3レジスタの設定値に基づいて作動するように
構成している。
向の移動量Δxとy方向の移動量Δyで表される直線を
整数値座標上の点列で表現し、少なくとX座標を保持す
るXカウンタ、y座標を保持するYカウンタを用いてビ
デオRAMに描画座標を書き込んで直線を描画する図形
描画装置において、X方向の移動量Δxとy方向の移動
量Δyについて一11Δx1−1Δyllの値を設定す
る第1レジスタと、IΔxI lΔy1のうち小さい
方の値を設定する第2レジスタと、初期値としてΔy−
Δx / 2を設定し、次の描画点を求めるときに自己
の値が0以上であれば第・1レジスタの値を加算し、自
己の値が負であれば第2レジスタの値を加算する第3レ
ジスタとを設け、前記Xカウンタ、Yカウンタは、少な
くとも第3レジスタの設定値に基づいて作動するように
構成している。
本発明では、eの初期値が第3レジスタでΔyΔx /
2として設定され、次の描画点の座標を求めるときは
小数部からの桁上がりがe≧0で検出され、桁上がりあ
ったときのみy座標が更新される。この場合、第3レジ
スタはe≧0であれば自己の値に第1レジスタの値を加
算し、e〈0であれば第2レジスクの値をカロ算する。
2として設定され、次の描画点の座標を求めるときは
小数部からの桁上がりがe≧0で検出され、桁上がりあ
ったときのみy座標が更新される。この場合、第3レジ
スタはe≧0であれば自己の値に第1レジスタの値を加
算し、e〈0であれば第2レジスクの値をカロ算する。
そして、少なくとも第3レジスタの値に基づいてXカウ
ンタ、Yカウンタにより次の座標が決定される。
ンタ、Yカウンタにより次の座標が決定される。
従来の計算方法ではeのLSBは変化しないので、eの
値は従来の1/2の値を保持して描画の計算をしてもよ
く、同一ビット数であれば演算精度が向上し、また従来
と同一の演算精度を保つには1bitだけビット数を減
らせる。
値は従来の1/2の値を保持して描画の計算をしてもよ
く、同一ビット数であれば演算精度が向上し、また従来
と同一の演算精度を保つには1bitだけビット数を減
らせる。
以下、本発明を図面に基づいて説明する。
第1〜3図は本発明に係る図形描画装置の一実施例を示
す図である。第1図は図形描画装置のブロソク図であり
、この図において、描画処理は図中の左下部にあるRA
M (ビデオRAM)10にて行われ、このRAMl0
は1ワード−16bit、ワード−64にワードで、1
024 X 1024の画面を保持する。この場合、画
面とRAMアドレスとは第2図のように対応している。
す図である。第1図は図形描画装置のブロソク図であり
、この図において、描画処理は図中の左下部にあるRA
M (ビデオRAM)10にて行われ、このRAMl0
は1ワード−16bit、ワード−64にワードで、1
024 X 1024の画面を保持する。この場合、画
面とRAMアドレスとは第2図のように対応している。
また、アドレスで1ワービー16ドツトを選択する。■
ワード中の1ドツトに書込みを行うときは、書込みマス
クを書込みデータとマルチプレツクスして与えることで
行う。
ワード中の1ドツトに書込みを行うときは、書込みマス
クを書込みデータとマルチプレツクスして与えることで
行う。
書込みマスクが1のビット位置のみに書込みが行われる
。なお、第1図中のデータバスに添って表記されている
数字はデータのビット数を表している。
。なお、第1図中のデータバスに添って表記されている
数字はデータのビット数を表している。
ここで、第1図中における主な信号線の意味は、次の通
りである。
りである。
CLK :基本クロソク。5MHz程度。
φl、φ2 : CLKから生成されるノンオーバラり
プ2相クロソク。
プ2相クロソク。
El:xカウンタ14、Yカウンタ15のカウントする
タイミングを示す。
タイミングを示す。
E2:加算結果を第3レジスタ18に書込むタイミング
を示す。
を示す。
MCLK:メモリアクセスのタイミングを示す。
MENX : MENX=Oで、メモリアクセスをする
ことを示す。
ことを示す。
5IGN:第3レジスタ18のMSBの値を出力。
0
RASX :この信号のネガティブエツジで、RAMl
0はアドレス人力からロウアド レスを取込み、データバスから書込 みマスクを取込む。このとき取込ん だ書込みマスクがlのビットのみデ ータの書込みが行われる。
0はアドレス人力からロウアド レスを取込み、データバスから書込 みマスクを取込む。このとき取込ん だ書込みマスクがlのビットのみデ ータの書込みが行われる。
CASX:この信号のネガティブエツジで、RAMl0
はコラムアドレスを取込む。
はコラムアドレスを取込む。
WEX : RAMl0に書込みの実行を指示する。
第1図に示す各回路の機能を説明すると、CPU1lは
描画処理に必要な各種制御を行うとともに、必要な命令
を各回路に出力し、描画シーケンス制御回路12は描画
動作に必要なタイミングを発生させる。クロックジェネ
レータ13はCLKからノンオーハラソブの2相クロソ
クφ1.φ2を生成して描画シーケンス制御回路12に
送出する。Xカウンタ■4は描画点のX座標を保持する
1Qbitのアンプダウンカウンタであり、Δx符号で
アンプカウントかダウンカウントかを決定する。Yカウ
ンタ15は描画点のy座標を保持する1Qbitのアソ
1 プダウンカウンタであり、Δy符号でアンプカウントか
ダウンカウントかを決定する。第1レジスタ16はB−
Aを設定し、第2レジスタ17はBを設定する。また、
第3レジスタI8は初期値としてBA/2を設定する。
描画処理に必要な各種制御を行うとともに、必要な命令
を各回路に出力し、描画シーケンス制御回路12は描画
動作に必要なタイミングを発生させる。クロックジェネ
レータ13はCLKからノンオーハラソブの2相クロソ
クφ1.φ2を生成して描画シーケンス制御回路12に
送出する。Xカウンタ■4は描画点のX座標を保持する
1Qbitのアンプダウンカウンタであり、Δx符号で
アンプカウントかダウンカウントかを決定する。Yカウ
ンタ15は描画点のy座標を保持する1Qbitのアソ
1 プダウンカウンタであり、Δy符号でアンプカウントか
ダウンカウントかを決定する。第1レジスタ16はB−
Aを設定し、第2レジスタ17はBを設定する。また、
第3レジスタI8は初期値としてBA/2を設定する。
そして、次の座標を求めるときには、桁上検出係数eの
値が0以上ならば第1レジスタ16の値を加え、0より
小さいならば、第2レジスタ17の値を加える。
値が0以上ならば第1レジスタ16の値を加え、0より
小さいならば、第2レジスタ17の値を加える。
ただし、A、B、 Δx、Δyは次のような値である
。
。
AnΔx1,1Δy(の内、大きい方の値B:lΔx1
,1Δy1の内、小さい方の値Δx:直線のX成分。
,1Δy1の内、小さい方の値Δx:直線のX成分。
Δy:直線のy成分。
セレクタ19は第3レジスタ18の符号(MSB)によ
り第3レジスタ18に加える値を選択し、加算器20は
セレクタ19より選択された値とそのときの第3レジス
タ1日の値とを加算して第3レジスタ18に送り、第3
レジスタ18はその加算値を保持する。
り第3レジスタ18に加える値を選択し、加算器20は
セレクタ19より選択された値とそのときの第3レジス
タ1日の値とを加算して第3レジスタ18に送り、第3
レジスタ18はその加算値を保持する。
制御レジスタ21はCPUIIからの命令に従って描2
画シーケンス制御回路12の起動を指示したり、Δx符
号、Δy符号をそれぞれXカウンタ14、Yカウンタ1
5に出力する等の処理を行う。Pカウンタ22はパター
ンレジスタ23の読出し位置を指示する4bitカウン
タであり、パターンレジスタ23は実線、点線などの描
画パターンを指定する16bitのレジスタである。1
/16セレクタ24はPカウンタ22の値に従い、パタ
ーンレジスタ23の16bitの内の1bitを選択す
る。データレジスタ25は1/16セレクタ24の出力
をデータとしてラッチする。このデータレジスタ25の
値を16bitのデータバスへ出力するときは、すべて
のビットに同じ値を出力する。マスクデコーダ26はX
カウンタ14の下位4bitの値をビット位置にデコー
ドし、例えば次のような対応関係で示される。
号、Δy符号をそれぞれXカウンタ14、Yカウンタ1
5に出力する等の処理を行う。Pカウンタ22はパター
ンレジスタ23の読出し位置を指示する4bitカウン
タであり、パターンレジスタ23は実線、点線などの描
画パターンを指定する16bitのレジスタである。1
/16セレクタ24はPカウンタ22の値に従い、パタ
ーンレジスタ23の16bitの内の1bitを選択す
る。データレジスタ25は1/16セレクタ24の出力
をデータとしてラッチする。このデータレジスタ25の
値を16bitのデータバスへ出力するときは、すべて
のビットに同じ値を出力する。マスクデコーダ26はX
カウンタ14の下位4bitの値をビット位置にデコー
ドし、例えば次のような対応関係で示される。
(本頁、以下余白)
Xカウンタの
下位4bit ビット位置
0000 100・・・000001
010・・・000010 、 00
1・・・001 1 1 1 00
0・・・01←15bit→ マスクレジスタ27はマスクデコーダ26のデコード結
果を保持し、このマスクレジスタ27の値はメモリサイ
クルの前半で書込みマスクとして出力される。
010・・・000010 、 00
1・・・001 1 1 1 00
0・・・01←15bit→ マスクレジスタ27はマスクデコーダ26のデコード結
果を保持し、このマスクレジスタ27の値はメモリサイ
クルの前半で書込みマスクとして出力される。
アドレスレジスタ28はXカウンタ14の上位6bit
と、Yカウンタ15の値をアドレスとしてラッチし、R
AM制御回路29はRAMl0のアクセスに必要なタイ
ミングを発生する。マルチブレクザ30はアドレスをマ
ルチプレツクスしてRAMl0に与える。
と、Yカウンタ15の値をアドレスとしてラッチし、R
AM制御回路29はRAMl0のアクセスに必要なタイ
ミングを発生する。マルチブレクザ30はアドレスをマ
ルチプレツクスしてRAMl0に与える。
次に、動作手順に従って作用を説明する。
(A)パラメタ
4
描画する直線のパラメタは次の通りとする。
Δx:x方向の移動量(符号無)
Δy:y方向の移動量(符号無)
sx:x方向の移動方向くo:正方向;1:負方向)
sy:y方向の移動方向(0:正方向;1:負方向)
(B)初期化
CP Ullが次の設定を実行し、描画シーケンス制御
回路12をスタートさせる。
回路12をスタートさせる。
Δx−Δy1の値を第1レジスタ16に設定し、Δx、
Δyのうち小さい方の値を第2レジスタ17に設定する
。このとき、Δx≧Δyであれば角度を1°とし、第3
レジスタ18にはを設定する。一方、Δx≧Δyでなけ
れば角度を“0″とし、第3レジスター8には を設定する。角度は描画しようとする直線とX軸との角
度が45°以下かどうかを表すもので、456以下なら
ば“1″を選択し、そうでなければ“0”を選択する。
Δyのうち小さい方の値を第2レジスタ17に設定する
。このとき、Δx≧Δyであれば角度を1°とし、第3
レジスタ18にはを設定する。一方、Δx≧Δyでなけ
れば角度を“0″とし、第3レジスター8には を設定する。角度は描画しようとする直線とX軸との角
度が45°以下かどうかを表すもので、456以下なら
ば“1″を選択し、そうでなければ“0”を選択する。
また、描画開始点のX座標をXカウンタ14に設定し、
y座標をYカウンタ15に設定する。Pカウンタ22に
はパターン読出し開始点、を設定し、sxをΔx符号と
し、SyをΔy符号とし、さらに描画パターンをパター
ンレジスタ23に設定する。
y座標をYカウンタ15に設定する。Pカウンタ22に
はパターン読出し開始点、を設定し、sxをΔx符号と
し、SyをΔy符号とし、さらに描画パターンをパター
ンレジスタ23に設定する。
(C)座標計算
直線を構成する点すべてを描画するまで、次のステップ
1、ステップ2を繰り返し交互に実行する。実行の制御
は描画シーケンス制御回路12からの信号El、E2で
行う。ステソブlを実行した後、ステップ2を実行する
と、次に描画すべき点の座標が計算される。
1、ステップ2を繰り返し交互に実行する。実行の制御
は描画シーケンス制御回路12からの信号El、E2で
行う。ステソブlを実行した後、ステップ2を実行する
と、次に描画すべき点の座標が計算される。
(イ)ステップ1:EL=1のときに実行する。
角度−1又は第3レジスタ≧0のときはXカウンタ←X
カウンタ±1 とし、角度−〇又は第3レジスタ≧0のとき6 はYカウンターYカウンタ±1 とする。
カウンタ±1 とし、角度−〇又は第3レジスタ≧0のとき6 はYカウンターYカウンタ±1 とする。
(ロ)ステツブ2:E2=1のときに実行する。
第3レジスタ≧0のときは
第3レジスタ←第3レジスタ+第1レジスタとし、それ
以外のときは 第3レジスター第3レジスタ+第2レジスタとする。ま
た、このとき同時に Pカウンタ←Pカウンタ+1 としてインクリメントする。
以外のときは 第3レジスター第3レジスタ+第2レジスタとする。ま
た、このとき同時に Pカウンタ←Pカウンタ+1 としてインクリメントする。
上記の動作を実行するタイミングを第3図に示す。第3
図の描画サイクル1では、現在の点の描画と並行して次
の座標計算を行っている。
図の描画サイクル1では、現在の点の描画と並行して次
の座標計算を行っている。
描画サイクル1でXカウンタ14、Yカウンタ15のカ
ウントを実行するが、カウント後の値は描画サイクル2
で出力するアドレスになる。
ウントを実行するが、カウント後の値は描画サイクル2
で出力するアドレスになる。
(D)メモリアクセス制御
メモリアクセス制御はメモリのアドレスとデータを各レ
ジスタに設定し、出力する動作である。描画シーケンス
制御回路12からの信号MC7 LK、MENXに同期して次の動作を周期的に繰り返す
。
ジスタに設定し、出力する動作である。描画シーケンス
制御回路12からの信号MC7 LK、MENXに同期して次の動作を周期的に繰り返す
。
(i)メモリサイクル前半の動作(MCLK=1)若し
、MENX=Oであれば、マスクレジスタ27の内容を
データバスに出力するとともに、1/16セレクタ24
の内容をデータレジスタ25にセットする。データレジ
スタ25にセットされる1/16セレクタ24の値は、
パターンレジスタ23の16bitの内の1bitを選
択した値である。選択する位置はPカウンタ22が指定
する。
、MENX=Oであれば、マスクレジスタ27の内容を
データバスに出力するとともに、1/16セレクタ24
の内容をデータレジスタ25にセットする。データレジ
スタ25にセットされる1/16セレクタ24の値は、
パターンレジスタ23の16bitの内の1bitを選
択した値である。選択する位置はPカウンタ22が指定
する。
(ii )メモリサイクル後半の動作(MCLK=O)
若し、MENX=0であれば、データレジスタ25の内
容をデータバスに出力するとともに、マスクデコーダ2
6の内容をマスクレジスタ27にセントし、Xカウンタ
14の上位6ビントおよびYカウンタ15をアドレスレ
ジスタ28にセットする。マスクレジスタ27にセソト
されるマスクデコーダ26の出力16bitは、Xカウ
ンタ14の下位4bitをデコードした結8 果である。その結果を書込みマスクとしてRAMl0に
出力することで、1ワード中の1ドソトに書込みを行う
。
若し、MENX=0であれば、データレジスタ25の内
容をデータバスに出力するとともに、マスクデコーダ2
6の内容をマスクレジスタ27にセントし、Xカウンタ
14の上位6ビントおよびYカウンタ15をアドレスレ
ジスタ28にセットする。マスクレジスタ27にセソト
されるマスクデコーダ26の出力16bitは、Xカウ
ンタ14の下位4bitをデコードした結8 果である。その結果を書込みマスクとしてRAMl0に
出力することで、1ワード中の1ドソトに書込みを行う
。
上記のようなメモリアクセスを実行するタイミングは第
3図のように示される。描画サイクル1で実行する描画
は、次座標計算前の描画点の描画である。また、描画サ
イクル2で実行する描画は描画サイクル1で次座標を計
算した後の描画点の描画である。アドレスレジスフ28
から出力されたアドレスはマルチプレクサ30によりマ
ルチプレソクスし7RAMIOに与えられる。このとき
、最初のアドレスはRASXのネガティブエツジでRA
Ml0に取込まれ、次のアドレスがCASXのネガティ
ブエツジで取込まれる。データバスには書込みマスクと
データがマルチプレソクスしてR,AMloに与えられ
る。そして、RASXのネガティブエツジで書込みマス
クがRAMl0に取込まれ、WEXのネガティブエツジ
でデータが取込まれる。
3図のように示される。描画サイクル1で実行する描画
は、次座標計算前の描画点の描画である。また、描画サ
イクル2で実行する描画は描画サイクル1で次座標を計
算した後の描画点の描画である。アドレスレジスフ28
から出力されたアドレスはマルチプレクサ30によりマ
ルチプレソクスし7RAMIOに与えられる。このとき
、最初のアドレスはRASXのネガティブエツジでRA
Ml0に取込まれ、次のアドレスがCASXのネガティ
ブエツジで取込まれる。データバスには書込みマスクと
データがマルチプレソクスしてR,AMloに与えられ
る。そして、RASXのネガティブエツジで書込みマス
クがRAMl0に取込まれ、WEXのネガティブエツジ
でデータが取込まれる。
9
ここで、従来と本実施例との作用に基づく差異を考察す
る。
る。
まず、従来は精度を保つために桁上検出係数eのビット
数を1bitだけ多くする必要があるがここで、eの値
のビット数を考える。描画処理の計算中にeに加える値
に着目すると、偶数のみでであることが判明する。偶数
の2進数表現のLSBは常にOなので、eのLSBは初
期値のときに決定されたまま、計算中に全く変化しない
。また、eのLSBがeの符号に全く影響を与えること
はない。なぜならば、加算を行ったときに加える値のL
SBが0のため、加算を行ってもT−S Bからキャリ
ーが発生しないからである。したがって、eのLSBは
e≧0の判定に全く影響を与えない。
数を1bitだけ多くする必要があるがここで、eの値
のビット数を考える。描画処理の計算中にeに加える値
に着目すると、偶数のみでであることが判明する。偶数
の2進数表現のLSBは常にOなので、eのLSBは初
期値のときに決定されたまま、計算中に全く変化しない
。また、eのLSBがeの符号に全く影響を与えること
はない。なぜならば、加算を行ったときに加える値のL
SBが0のため、加算を行ってもT−S Bからキャリ
ーが発生しないからである。したがって、eのLSBは
e≧0の判定に全く影響を与えない。
このことより、従来の計算方法におけるeのLSBは全
く不要の存在であることがわかる。したがって、eの値
は従来の1/2の値を保持して計算したとしても、計算
結果には全く影響しない。その場合の描画方法を従来例
と同しスタイルで比較のために示すと、次のようになる
。
く不要の存在であることがわかる。したがって、eの値
は従来の1/2の値を保持して計算したとしても、計算
結果には全く影響しない。その場合の描画方法を従来例
と同しスタイルで比較のために示すと、次のようになる
。
0
(I)初期化
eの初期値を計算する。初期値は、jx=1i y=Q
のときのeである。
のときのeである。
従来と異なり、
eトΔy−Δx/2
となる。
(n)ステップ1 : (x、 y)に描画を行う
。これは従来と同様である。
。これは従来と同様である。
(II+)ステップ2:次の描画点の座標を求める。
小数部からの桁上がりをe≧0で検出し、桁上がりがあ
ったときのみyを更新する。
ったときのみyを更新する。
したがって、
X←x+1
if(e≧0)y4−y+1
という処理になり、これも従来と同様である。
(■)ステン7’3:x、yの変化に対応し、eの値を
次のような処理で更新する。
次のような処理で更新する。
1f(e≧0)e=e−Δx+Δy
else、 e4−e+Δy
(V)ステノブ4:すべての点を描画していない1
ならば、ステップ1へ行く。
ステップ3の処理から明らかであるように、本実施例で
はeの値が従来の1/2の値に保持して計算されるため
、オーバフローを起こすことがなく、同一ビット数の描
画処理であれば演算精度を向上させることができる。ま
た、従来と同一の演算精度を得るためには必要なビット
数をlビソトだけ少なくすることができ、ハード面での
構成を簡単にすることができる。
はeの値が従来の1/2の値に保持して計算されるため
、オーバフローを起こすことがなく、同一ビット数の描
画処理であれば演算精度を向上させることができる。ま
た、従来と同一の演算精度を得るためには必要なビット
数をlビソトだけ少なくすることができ、ハード面での
構成を簡単にすることができる。
本発明によれば、同一ビ・/ト数の描画処理であれば、
オーバフローを起こすことなく演算精度を向上させるこ
とができ、また、従来と同一の演算精度を得るためには
必要なビット数を1bitだけ少なくすることができ、
ハード面での構成を簡単にすることができる。
オーバフローを起こすことなく演算精度を向上させるこ
とができ、また、従来と同一の演算精度を得るためには
必要なビット数を1bitだけ少なくすることができ、
ハード面での構成を簡単にすることができる。
第1〜3図は本発明に係る図形描画装置の−実2
施例を示す図であり、
第1図はそのブロノク図、
第2図はその座標平面とRAMアドレスとの対応を示す
図、 第3図はその作用を説明するタイミングチャート、 第4図は直線描画の処理を説明する図である。 1・・・・・・点列、 10・・・・・・RAM (ビデオRAM)、11・・
・・・・CPU。 12・・・・・・描画シーケンス制御回路、13・・・
・・・クロソクジェネレータ、14・・・・・・Xカウ
ンタ、 15・・・・・・Yカウンタ、 16・・・・・・第1レジスタ、 17・・・・・・第2レジスタ、 18・・・・・・第3レジスタ、 19・・・・・・セレクタ、 20・・・・・・加算器、 3 21・・・・・・制御レジスタ、 22・・・・・・Pカウンタ、 23・・・・・・パターンレジスタ、 24・・・・・・1/16セレクタ、 25・・・・・・データレジスタ、 26・・・・・・マスクデコーダ、 27・・・・・・マスクレジスタ、 28・・・・・・アドレスレジスタ、 29・・・・・・RAM制御回路、 30・・・・・・マルチプレクサ。 4 直線面画の処理を説明 第 図 する図
図、 第3図はその作用を説明するタイミングチャート、 第4図は直線描画の処理を説明する図である。 1・・・・・・点列、 10・・・・・・RAM (ビデオRAM)、11・・
・・・・CPU。 12・・・・・・描画シーケンス制御回路、13・・・
・・・クロソクジェネレータ、14・・・・・・Xカウ
ンタ、 15・・・・・・Yカウンタ、 16・・・・・・第1レジスタ、 17・・・・・・第2レジスタ、 18・・・・・・第3レジスタ、 19・・・・・・セレクタ、 20・・・・・・加算器、 3 21・・・・・・制御レジスタ、 22・・・・・・Pカウンタ、 23・・・・・・パターンレジスタ、 24・・・・・・1/16セレクタ、 25・・・・・・データレジスタ、 26・・・・・・マスクデコーダ、 27・・・・・・マスクレジスタ、 28・・・・・・アドレスレジスタ、 29・・・・・・RAM制御回路、 30・・・・・・マルチプレクサ。 4 直線面画の処理を説明 第 図 する図
Claims (1)
- 【特許請求の範囲】 x方向の移動量Δxとy方向の移動量Δyで表される直
線を整数値座標上の点列で表現し、少なくとx座標を保
持するXカウンタ、y座標を保持するYカウンタを用い
てビデオRAMに描画座標を書き込んで直線を描画する
図形描画装置において、 x方向の移動量Δxとy方向の移動量Δyについて−|
|△x|−|△y||の値を設定する第1レジスタと、 |Δx|、|Δy|のうち小さい方の値を設定する第2
レジスタと、 初期値としてΔy−Δx/2を設定し、次の描画点を求
めるときに自己の値が0以上であれば第1レジスタの値
を加算し、自己の値が負であれば第2レジスタの値を加
算する第3レジスタとを設け、 前記Xカウンタ、Yカウンタは、少なくとも第3レジス
タの設定値に基づいて作動するようにしたことを特徴と
する図形描画装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1176181A JPH0340184A (ja) | 1989-07-07 | 1989-07-07 | 図形描画装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1176181A JPH0340184A (ja) | 1989-07-07 | 1989-07-07 | 図形描画装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0340184A true JPH0340184A (ja) | 1991-02-20 |
Family
ID=16009073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1176181A Pending JPH0340184A (ja) | 1989-07-07 | 1989-07-07 | 図形描画装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0340184A (ja) |
-
1989
- 1989-07-07 JP JP1176181A patent/JPH0340184A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100278565B1 (ko) | 그래픽 데이터 계산 수행 방법 및 그에 이용되는 데이터 프로세서 | |
US7764292B2 (en) | Three dimensional graphics processing apparatus, image display apparatus, three dimensional graphics processing method, control program and computer-readable recording medium | |
JP5029721B2 (ja) | グラフ表示装置及びグラフ表示制御プログラム | |
JPH0214714B2 (ja) | ||
JPH08101922A (ja) | 画像編集作成装置および画像編集作成方法 | |
JPH0640259B2 (ja) | デ−タ処理装置 | |
JPH03119387A (ja) | デジタル活字面の輪郭を形成する方法およびその装置 | |
JPH0758510B2 (ja) | 三次元図形処理装置 | |
JPH0340184A (ja) | 図形描画装置 | |
JP2674287B2 (ja) | グラフィックマイクロコンピュータ | |
JPH0567216A (ja) | 図形塗りつぶし装置 | |
JP5459015B2 (ja) | グラフ表示装置及びプログラム | |
JP2734735B2 (ja) | 円描画方法とその装置 | |
JPS642953B2 (ja) | ||
JP3055024B2 (ja) | 画像デ―タの転送装置 | |
JP2611098B2 (ja) | ベクタ・ラスタ変換方式 | |
JP2748787B2 (ja) | 曲線発生装置 | |
JP4337659B2 (ja) | 図形描画制御装置及びプログラム | |
JPH05205070A (ja) | 図形描画方法 | |
JP2787487B2 (ja) | コンピュータシステムに表示され且つ操作される線分の位置を決定する回路 | |
JP3502901B2 (ja) | 3次元グラフィックス画像表示装置及び方法 | |
JPH0315193B2 (ja) | ||
JP2729437B2 (ja) | 楕円描画装置 | |
JPH01241681A (ja) | 画像処理装置 | |
JP5392343B2 (ja) | 電子機器及びプログラム |