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
Application number
JP1176181A
Other languages
English (en)
Inventor
Yoshinobu Komagata
駒形 善信
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1176181A priority Critical patent/JPH0340184A/ja
Publication of JPH0340184A publication Critical patent/JPH0340184A/ja
Pending legal-status Critical Current

Links

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レジスタの設定値に基づいて作動
するように構成する。
〔産業上の利用分野〕
本発明は、図形描画装置に係り、特に直線を描画する際
の構成を簡単にし、精度向上を図った図形描画装置に関
する。
直線や曲線をグラフインクデイスプレィ上に表示するこ
とは、コンピュータグラフィソクスの最も基本的な処理
の1つである。特に、ラスクスキャン型デイスプレィや
X−Yブロツク、ドソトブリンクなどでは、線を二次面
上に並んだ微細な点の並び、または離散的な格子交点(
グリソド点)をたどるペンの軌跡として表す必要がある
〔従来の技4ネi〕 従来の図形描画装置としては、例えば日経エレク1−ロ
ニクス、1981年10月12日号、))。
202〜2059日経マグロウヒル社刊に記載されたも
のがあり、この装置による直線描画の具体例は第4図の
ように示される。同図に示すもの番↓直線を整数値座標
上の点列1で表現しており、その座標(ix、iy)は
次式■で表される。
Δx:直線のX方向の移動量 Δy:直線のX方向の移動量 ix:xの整数部(ただし、描画開始点が原点)iy:
yの整数部(ただし、描画開始点が原点)flyの小数
部 第4図に示すものはΔx−12、Δy=8の例である。
なお、yの小数部fは4捨5人で処理するとすると、1
/2を越えた時にiyへ桁上がりをすればいい。この場
合、fが1/2以上になる条件は次のようになる。
f ≧ すなわち、 ■弐を変形すると、次のようになる。
2iX・ΔY−(2iy+1)Δx≧0・・・・・・■
ここで、 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を更新する。
したがって、 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へ行く。
〔発明が解決しようとする課題〕
しかしながら、このような従来の図形描画装置にあって
は、桁上検出係数eを保持するレジスタに座標差の2倍
の値を入れる構成であるため、オーバーフローを起こさ
ないようにするためには、座標差より1bitだけ多く
のビット数を必要とし、回路が複雑になるという問題点
があった。
一方、上記の1bitを削除して座標差の値を制限して
しまうと、演算精度が低下し、描画性能も低下するとい
う問題点がある。
そこで本発明は、桁上検出係数eを1/2に保持したま
ま演算することにより、同一ビット数の処理であれば演
算精度を向上させて描画性能を高め、あるいは同一の演
算精度を得るためには必要なピント数を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レジスタの設定値に基づいて作動するように
構成している。
〔作用〕
本発明では、eの初期値が第3レジスタでΔyΔx /
 2として設定され、次の描画点の座標を求めるときは
小数部からの桁上がりがe≧0で検出され、桁上がりあ
ったときのみy座標が更新される。この場合、第3レジ
スタはe≧0であれば自己の値に第1レジスタの値を加
算し、e〈0であれば第2レジスクの値をカロ算する。
そして、少なくとも第3レジスタの値に基づいてXカウ
ンタ、Yカウンタにより次の座標が決定される。
従来の計算方法ではeのLSBは変化しないので、eの
値は従来の1/2の値を保持して描画の計算をしてもよ
く、同一ビット数であれば演算精度が向上し、また従来
と同一の演算精度を保つには1bitだけビット数を減
らせる。
〔実施例〕
以下、本発明を図面に基づいて説明する。
第1〜3図は本発明に係る図形描画装置の一実施例を示
す図である。第1図は図形描画装置のブロソク図であり
、この図において、描画処理は図中の左下部にあるRA
M (ビデオRAM)10にて行われ、このRAMl0
は1ワード−16bit、ワード−64にワードで、1
024 X 1024の画面を保持する。この場合、画
面とRAMアドレスとは第2図のように対応している。
また、アドレスで1ワービー16ドツトを選択する。■
ワード中の1ドツトに書込みを行うときは、書込みマス
クを書込みデータとマルチプレツクスして与えることで
行う。
書込みマスクが1のビット位置のみに書込みが行われる
。なお、第1図中のデータバスに添って表記されている
数字はデータのビット数を表している。
ここで、第1図中における主な信号線の意味は、次の通
りである。
CLK :基本クロソク。5MHz程度。
φl、φ2 : CLKから生成されるノンオーバラり
プ2相クロソク。
El:xカウンタ14、Yカウンタ15のカウントする
タイミングを示す。
E2:加算結果を第3レジスタ18に書込むタイミング
を示す。
MCLK:メモリアクセスのタイミングを示す。
MENX : MENX=Oで、メモリアクセスをする
ことを示す。
5IGN:第3レジスタ18のMSBの値を出力。
0 RASX :この信号のネガティブエツジで、RAMl
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を設定する。
そして、次の座標を求めるときには、桁上検出係数eの
値が0以上ならば第1レジスタ16の値を加え、0より
小さいならば、第2レジスタ17の値を加える。
ただし、A、B、  Δx、Δyは次のような値である
AnΔx1,1Δy(の内、大きい方の値B:lΔx1
,1Δy1の内、小さい方の値Δx:直線のX成分。
Δy:直線のy成分。
セレクタ19は第3レジスタ18の符号(MSB)によ
り第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の値をビット位置にデコー
ドし、例えば次のような対応関係で示される。
(本頁、以下余白) Xカウンタの 下位4bit     ビット位置 0000      100・・・000001   
   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に与える。
次に、動作手順に従って作用を説明する。
(A)パラメタ 4 描画する直線のパラメタは次の通りとする。
Δx:x方向の移動量(符号無) Δy:y方向の移動量(符号無) sx:x方向の移動方向くo:正方向;1:負方向) sy:y方向の移動方向(0:正方向;1:負方向) (B)初期化 CP Ullが次の設定を実行し、描画シーケンス制御
回路12をスタートさせる。
Δx−Δy1の値を第1レジスタ16に設定し、Δx、
Δ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に設定する。
(C)座標計算 直線を構成する点すべてを描画するまで、次のステップ
1、ステップ2を繰り返し交互に実行する。実行の制御
は描画シーケンス制御回路12からの信号El、E2で
行う。ステソブlを実行した後、ステップ2を実行する
と、次に描画すべき点の座標が計算される。
(イ)ステップ1:EL=1のときに実行する。
角度−1又は第3レジスタ≧0のときはXカウンタ←X
カウンタ±1 とし、角度−〇又は第3レジスタ≧0のとき6 はYカウンターYカウンタ±1 とする。
(ロ)ステツブ2:E2=1のときに実行する。
第3レジスタ≧0のときは 第3レジスタ←第3レジスタ+第1レジスタとし、それ
以外のときは 第3レジスター第3レジスタ+第2レジスタとする。ま
た、このとき同時に Pカウンタ←Pカウンタ+1 としてインクリメントする。
上記の動作を実行するタイミングを第3図に示す。第3
図の描画サイクル1では、現在の点の描画と並行して次
の座標計算を行っている。
描画サイクル1でXカウンタ14、Yカウンタ15のカ
ウントを実行するが、カウント後の値は描画サイクル2
で出力するアドレスになる。
(D)メモリアクセス制御 メモリアクセス制御はメモリのアドレスとデータを各レ
ジスタに設定し、出力する動作である。描画シーケンス
制御回路12からの信号MC7 LK、MENXに同期して次の動作を周期的に繰り返す
(i)メモリサイクル前半の動作(MCLK=1)若し
、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ドソトに書込みを行う
上記のようなメモリアクセスを実行するタイミングは第
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の判定に全く影響を与えない。
このことより、従来の計算方法におけるeのLSBは全
く不要の存在であることがわかる。したがって、eの値
は従来の1/2の値を保持して計算したとしても、計算
結果には全く影響しない。その場合の描画方法を従来例
と同しスタイルで比較のために示すと、次のようになる
0 (I)初期化 eの初期値を計算する。初期値は、jx=1i y=Q
のときのeである。
従来と異なり、 eトΔy−Δx/2 となる。
(n)ステップ1 :  (x、  y)に描画を行う
。これは従来と同様である。
(II+)ステップ2:次の描画点の座標を求める。
小数部からの桁上がりをe≧0で検出し、桁上がりがあ
ったときのみ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ビソトだけ少なくすることができ、ハード面での
構成を簡単にすることができる。
〔発明の効果〕
本発明によれば、同一ビ・/ト数の描画処理であれば、
オーバフローを起こすことなく演算精度を向上させるこ
とができ、また、従来と同一の演算精度を得るためには
必要なビット数を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 直線面画の処理を説明 第 図 する図

Claims (1)

  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レジス
    タの設定値に基づいて作動するようにしたことを特徴と
    する図形描画装置。
JP1176181A 1989-07-07 1989-07-07 図形描画装置 Pending JPH0340184A (ja)

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)

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) 電子機器及びプログラム