JPH03166671A - 描画装置 - Google Patents
描画装置Info
- Publication number
- JPH03166671A JPH03166671A JP30801189A JP30801189A JPH03166671A JP H03166671 A JPH03166671 A JP H03166671A JP 30801189 A JP30801189 A JP 30801189A JP 30801189 A JP30801189 A JP 30801189A JP H03166671 A JPH03166671 A JP H03166671A
- Authority
- JP
- Japan
- Prior art keywords
- point
- picture drawing
- coordinate
- value
- points
- 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
- 230000007423 decrease Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は描画命令により画像メモリに、点及び線を描
画する画像データを格納する描画用マイクロプロセッサ
等の膚画装置に関する。
画する画像データを格納する描画用マイクロプロセッサ
等の膚画装置に関する。
第6図は例えば日経データプロマイクロプロセッサ19
89年8月版MC5−314−301〜MC5−314
−304ページに記載された従来の描画装置及びそれを
用いたパーソナルコンピュータ、ワークステーション等
のコンピュータの表示部の構或を示すブロック図である
。図において11はCPU 12からの描画命令及び座
標情報を受けて、画像メモリ13に格納する点、線等の
画像の画像データを生成する描画装置である。描画装置
11により画像メモリ13に格納された内容は図示しな
い表示装置制御器によって制御されて、表示装置14に
表示される。表示装置14の画面は後述する第7図に示
す如くx座標、y座標で表されており、画像メモリ13
は格納された画像データの内容が表示装置l4の画面に
対応しており、描画は、描画しようとする点のX座標、
y座標に相当するアドレスの内容を書き換えることによ
り行われる。
89年8月版MC5−314−301〜MC5−314
−304ページに記載された従来の描画装置及びそれを
用いたパーソナルコンピュータ、ワークステーション等
のコンピュータの表示部の構或を示すブロック図である
。図において11はCPU 12からの描画命令及び座
標情報を受けて、画像メモリ13に格納する点、線等の
画像の画像データを生成する描画装置である。描画装置
11により画像メモリ13に格納された内容は図示しな
い表示装置制御器によって制御されて、表示装置14に
表示される。表示装置14の画面は後述する第7図に示
す如くx座標、y座標で表されており、画像メモリ13
は格納された画像データの内容が表示装置l4の画面に
対応しており、描画は、描画しようとする点のX座標、
y座標に相当するアドレスの内容を書き換えることによ
り行われる。
次に従来の描画装置11の構成及び動作の概略について
説明する。
説明する。
第6図においてl6はCPUインターフェースであり、
該cpuインターフェース16はCPU 11から膚画
命令及び座標情報を受け取り、描画座標、描画図形など
溝画に必要な座標情報を描画座標発生器15及び画像メ
モリ制御器I7に与える。描画座標発生器15は受け取
った座標情報に応じて描画すべき図形上の点のX座標、
y座標を発生する。また画像メモリ制御器17は発生し
たX座標、y座標を受け取り、それらに対応する画像メ
モリ13のアドレスを計算しその内容を書き換える。こ
れを繰り返すことにより画像メモリ13には所望の図形
の画像データが格納される。
該cpuインターフェース16はCPU 11から膚画
命令及び座標情報を受け取り、描画座標、描画図形など
溝画に必要な座標情報を描画座標発生器15及び画像メ
モリ制御器I7に与える。描画座標発生器15は受け取
った座標情報に応じて描画すべき図形上の点のX座標、
y座標を発生する。また画像メモリ制御器17は発生し
たX座標、y座標を受け取り、それらに対応する画像メ
モリ13のアドレスを計算しその内容を書き換える。こ
れを繰り返すことにより画像メモリ13には所望の図形
の画像データが格納される。
ここで、従来の描画装置による直線の描画手順について
説明する。第7図は従来の溝両装置による直線の描画手
順を示す図である。コンピュータの表示装置の大部分は
点の集合で面を表示しており、それらの点は整数の座標
値をもつ。このため、コンピュータでは線は隣あった複
数の格子点(座標値が整数の点)で表現される。たとえ
ば、直線はその図形情報として始点(Xs,ys)と終
点(x*.ya)との2つの格子点、即ち整数値をあた
え描画を行うが、第7図に実線で示した直線L1は表示
装置14では同図にハッチングで示した点A〜点Fとし
て表示されることになる●したがって・コンピュータで
はこの点A〜点F(描画点)の座標を求めることが描画
を行う最初のステップとなる。そこで、ここでは直線を
例にこの座標のもとめ方について説明する。なお、説明
は直線L1のようにXs >Xs 、Va >’)’s
、(x* xs)≧(ye−ys)の場合について行
うが、他の場合は符号やX座標、y座標をいれかえれば
同じ議論が或り立つのでここでは説明を省略する。
説明する。第7図は従来の溝両装置による直線の描画手
順を示す図である。コンピュータの表示装置の大部分は
点の集合で面を表示しており、それらの点は整数の座標
値をもつ。このため、コンピュータでは線は隣あった複
数の格子点(座標値が整数の点)で表現される。たとえ
ば、直線はその図形情報として始点(Xs,ys)と終
点(x*.ya)との2つの格子点、即ち整数値をあた
え描画を行うが、第7図に実線で示した直線L1は表示
装置14では同図にハッチングで示した点A〜点Fとし
て表示されることになる●したがって・コンピュータで
はこの点A〜点F(描画点)の座標を求めることが描画
を行う最初のステップとなる。そこで、ここでは直線を
例にこの座標のもとめ方について説明する。なお、説明
は直線L1のようにXs >Xs 、Va >’)’s
、(x* xs)≧(ye−ys)の場合について行
うが、他の場合は符号やX座標、y座標をいれかえれば
同じ議論が或り立つのでここでは説明を省略する。
さて点A〜点Fであるが、始点即ち点Aは(xsy1)
として与えられているので、以降は次の描画点として現
在の描画点に隣接する点を考えていけばよい。ここでX
s 〉XI % ye >3’s % (Xa−x5
)≧(y* ys ) 、即ち直線の傾きが正であ
り、また1以下なので点Aの次の描画点としては点Bと
点Gとのいずれかを考えればよい。この2点のどちらを
選ぶかであるが、これは真の直線に近い方を選ぶのが妥
当である。つまり、両者と真の直線との距離gと同bと
を比較し、距離の小サイ方を選べばよい。そこで、点A
を任意の点に拡張して、点(xn.yn)を膚画したと
き次の点として(xn +l, yn )と(xtt
+ 1, )’+,+1)とのいずれを選択するか
ということについて考える。
として与えられているので、以降は次の描画点として現
在の描画点に隣接する点を考えていけばよい。ここでX
s 〉XI % ye >3’s % (Xa−x5
)≧(y* ys ) 、即ち直線の傾きが正であ
り、また1以下なので点Aの次の描画点としては点Bと
点Gとのいずれかを考えればよい。この2点のどちらを
選ぶかであるが、これは真の直線に近い方を選ぶのが妥
当である。つまり、両者と真の直線との距離gと同bと
を比較し、距離の小サイ方を選べばよい。そこで、点A
を任意の点に拡張して、点(xn.yn)を膚画したと
き次の点として(xn +l, yn )と(xtt
+ 1, )’+,+1)とのいずれを選択するか
ということについて考える。
まず真の直線を次のように表す
y=Mx+N
ただし
M= C1. 一’Is )/ (x.−x.)
(M≦1)N = 3’ s − M x , である。するとx=x,,+1における真の直線の座標
は (Xn + 1,MX,+M+N) となる。ここで2つの点の真の直線との距離の差(第7
図にに示すg−b)をd7+1とすると下記+11式に
示す如く d,,+1 = ( (Mxn +M+N) yn
){ (yn + t)− (MX,l +M+N)
}= 2 3’ n +2 M x n +2 M
” 2 N 1 ”・(11となる。したがって、d
n+1を計算し、d n+I ≧0ならば(x* +
l,)’a +1>を選択し、d R+1〈0なら(x
,1+1.)’* )を選択すればよい。
(M≦1)N = 3’ s − M x , である。するとx=x,,+1における真の直線の座標
は (Xn + 1,MX,+M+N) となる。ここで2つの点の真の直線との距離の差(第7
図にに示すg−b)をd7+1とすると下記+11式に
示す如く d,,+1 = ( (Mxn +M+N) yn
){ (yn + t)− (MX,l +M+N)
}= 2 3’ n +2 M x n +2 M
” 2 N 1 ”・(11となる。したがって、d
n+1を計算し、d n+I ≧0ならば(x* +
l,)’a +1>を選択し、d R+1〈0なら(x
,1+1.)’* )を選択すればよい。
d 11+1 はこのままでも計算できるが通常は、漸
化式にするため次のように変形する。まず、p=Ym−
3’l 、Q=Xa−Xiとして(1)式にpをかける
(p≧0だから判定条件は変わらない)。
化式にするため次のように変形する。まず、p=Ym−
3’l 、Q=Xa−Xiとして(1)式にpをかける
(p≧0だから判定条件は変わらない)。
1)dn*t −−2pyn+2pMx,+2pM+2
pN−p= 2pyr+ +2qx,1+2q +2
pys 2qXs p・・・(2) 次に、pd,llをpd.で表すことを考える。(2)
式より Pd*= 2Pyn−++2Qxr+−++2q+2
p)’s 2qXi p・・・(3) となる。ここでy,lを次の2つの場合にわけて(a)
)’ n = Yn−+のとき(y.が増加されな
かったとき) (3)式より (xn−1=Xfilである)pdn=
−2pyr+−++2qxn−++2q+2pys−2
qXs − p=−2pyn+2q(xn − 1)+
2q+2pys−2qXs − p= 2py+s
+2qXn +2pyi 2qXs −p?れを(2
)式に代入して pdn++ = p d, +24 ・・・
(4)(b)yn=yn一重+lのとき(y++が増加
されたとき) (a)の場合と同様にして 1)dn= 2p’jn−+ +2qXn−+
+2q+2py* 24Xs 9=−2p(y
,,−1)+2q(xn−1)+2q+2pys−2q
Xs−p= 2pyn+2qx,1+2pys 2
qXs p +2pこれを(2)弐に代入して pd■r =p d, +2q−2p ・・・(
5)となる。
pN−p= 2pyr+ +2qx,1+2q +2
pys 2qXs p・・・(2) 次に、pd,llをpd.で表すことを考える。(2)
式より Pd*= 2Pyn−++2Qxr+−++2q+2
p)’s 2qXi p・・・(3) となる。ここでy,lを次の2つの場合にわけて(a)
)’ n = Yn−+のとき(y.が増加されな
かったとき) (3)式より (xn−1=Xfilである)pdn=
−2pyr+−++2qxn−++2q+2pys−2
qXs − p=−2pyn+2q(xn − 1)+
2q+2pys−2qXs − p= 2py+s
+2qXn +2pyi 2qXs −p?れを(2
)式に代入して pdn++ = p d, +24 ・・・
(4)(b)yn=yn一重+lのとき(y++が増加
されたとき) (a)の場合と同様にして 1)dn= 2p’jn−+ +2qXn−+
+2q+2py* 24Xs 9=−2p(y
,,−1)+2q(xn−1)+2q+2pys−2q
Xs−p= 2pyn+2qx,1+2pys 2
qXs p +2pこれを(2)弐に代入して pd■r =p d, +2q−2p ・・・(
5)となる。
またpd−++の初期値pdl は(2)式に3’−=
ys、xfi==x,を代入して !)IL = 2pys+2qxs+2q+2py
s 2qXs P=2q−p ・
・・(6)となる。
ys、xfi==x,を代入して !)IL = 2pys+2qxs+2q+2py
s 2qXs P=2q−p ・
・・(6)となる。
(4)式、(5)式及び(6)式より直線の描画は次に
示す6ステップのアルゴリズムで行うことができる。
示す6ステップのアルゴリズムで行うことができる。
■ Xll+3’l1を初期値Xs+Ysとする。pd
...の初期値として2q−pを計算する。
...の初期値として2q−pを計算する。
? 点Cxn=yイ〉について描画する。
■ pd .,+1≧Oならばxn+ ynともに1
を加えpd■1に2q − 2pを加える。
を加えpd■1に2q − 2pを加える。
■ pdfi+1 <0ならばx7にのみ1を加えpd
n+1に2qを加える。
n+1に2qを加える。
■ x,1≦X.ならば■に戻る。
■ 終了
以上の手順はBresenhamのアルゴリズムとして
一般に知られているものである。第8図はBresen
hamのアルゴリズムを実現する従来の描画座標発生器
15の構或を示すブロック図である。図において4は2
q − 2pの値を保持するレジスタ、5は2qの値を
保持するレジスタであり、これらに保持された2つの値
は選択器7に与えられ、そこでd,11の正負によりd
イ+1≧0のときはレジスタ4に格納された2q −
2pの値が、またd n+I <Oのときはレジスタ5
に格納された2qの値が夫々選択される。選択された値
は加算器6の一端に与えられる。加算器6の出力はx7
における距離差dnuのp倍の値1) ’ d−+を格
納するレジスタ8に与えられ、その出力が加算器6の他
端に与えられ、2q − 2p又は2qと加算されXr
++1における距離差9dn++tが求められる。
一般に知られているものである。第8図はBresen
hamのアルゴリズムを実現する従来の描画座標発生器
15の構或を示すブロック図である。図において4は2
q − 2pの値を保持するレジスタ、5は2qの値を
保持するレジスタであり、これらに保持された2つの値
は選択器7に与えられ、そこでd,11の正負によりd
イ+1≧0のときはレジスタ4に格納された2q −
2pの値が、またd n+I <Oのときはレジスタ5
に格納された2qの値が夫々選択される。選択された値
は加算器6の一端に与えられる。加算器6の出力はx7
における距離差dnuのp倍の値1) ’ d−+を格
納するレジスタ8に与えられ、その出力が加算器6の他
端に与えられ、2q − 2p又は2qと加算されXr
++1における距離差9dn++tが求められる。
レジスタ3は値pdn。1と共に、その正負を示す符号
ビットを格納する符号ビット格納部8を有しており、そ
の出力である符号ビットは選択器7及びynをカウント
するYカウンタ2に与えられ、それらを制御している。
ビットを格納する符号ビット格納部8を有しており、そ
の出力である符号ビットは選択器7及びynをカウント
するYカウンタ2に与えられ、それらを制御している。
一方Xカウンタ1はX。をカウントし、そのカウント結
果は上記の各部を制御する制御回路9に与えられると共
に、Yカウンタ2のカウント結果と共に第6図に示す画
像メモリ制御器17に与えられる。ここで制御回路9は
座標情報として始点(xs,ys)及び終点(xe.y
a)の値が与えられ、それらを内部保持しており、それ
によりp,qの値及び2p−q, 2p−2qの値等を
算出する。
果は上記の各部を制御する制御回路9に与えられると共
に、Yカウンタ2のカウント結果と共に第6図に示す画
像メモリ制御器17に与えられる。ここで制御回路9は
座標情報として始点(xs,ys)及び終点(xe.y
a)の値が与えられ、それらを内部保持しており、それ
によりp,qの値及び2p−q, 2p−2qの値等を
算出する。
次に動作について説明する。まず、Xカウンタ1,Yカ
ウンタ2、レジスタ3、レジスタ4、レジスタ5は制御
回路9によって予め順にXs、’Ys2q−p、2q
− 2p、2qに初期化されているものとする。この状
態のとき、Xカウンタ1、Yカウンタ2はまず最初の座
標としてそれぞれXs 、ysを画像メモリ制御器17
に出力する。
ウンタ2、レジスタ3、レジスタ4、レジスタ5は制御
回路9によって予め順にXs、’Ys2q−p、2q
− 2p、2qに初期化されているものとする。この状
態のとき、Xカウンタ1、Yカウンタ2はまず最初の座
標としてそれぞれXs 、ysを画像メモリ制御器17
に出力する。
またYカウンタ2と選択器7とは符号ビットによって制
御される。つまり、Yカウンタ2は次の更新のとき、も
しI)dn+tの符号ビットが正又は0なら1増加され
る。負のときはもとの値のままである。選択器7は符号
ビットが正または0ならレジスタ4に格納された値、つ
まり2(1 − 2pを加算器6に出力する。負のとき
はレジスタ5に格納された値と、つまり2qを出力する
。
御される。つまり、Yカウンタ2は次の更新のとき、も
しI)dn+tの符号ビットが正又は0なら1増加され
る。負のときはもとの値のままである。選択器7は符号
ビットが正または0ならレジスタ4に格納された値、つ
まり2(1 − 2pを加算器6に出力する。負のとき
はレジスタ5に格納された値と、つまり2qを出力する
。
さらに、加算器6は選択器7の出力とレジスタ3に格納
された値、つまりpdn。1とを加算する。
された値、つまりpdn。1とを加算する。
この状態が上で説明したアルゴリズムの■の状態である
。ここで、制御回路9は内部に保持するx8とXカウン
タ1のカウント値Xイとを比較し、x,1≦X.ならば
Xカウンタ1、Yカウンタ2、レジスタ3の内容を更新
する。この結果Xカウンタ1は1増加し、Yカウンタ2
はpdn++ ≧0のときのみ1増加する。またレジス
タ3には加算器6の出力、つまりpdn++ ≧Oのと
きは現在の値に2Q − 2pを加えた値、pd,。+
<0ならば現在の値に29を加えた値が入力される。つ
まり上記のアルゴリズムを1回ループするわけである。
。ここで、制御回路9は内部に保持するx8とXカウン
タ1のカウント値Xイとを比較し、x,1≦X.ならば
Xカウンタ1、Yカウンタ2、レジスタ3の内容を更新
する。この結果Xカウンタ1は1増加し、Yカウンタ2
はpdn++ ≧0のときのみ1増加する。またレジス
タ3には加算器6の出力、つまりpdn++ ≧Oのと
きは現在の値に2Q − 2pを加えた値、pd,。+
<0ならば現在の値に29を加えた値が入力される。つ
まり上記のアルゴリズムを1回ループするわけである。
制御回路9はこれをX.=X.になるまで繰り返す。こ
の結果Xカウンタ1、Yカウンタ2が順次それぞれ座標
Xア、y,1を発生していくことになる。
の結果Xカウンタ1、Yカウンタ2が順次それぞれ座標
Xア、y,1を発生していくことになる。
ところで、コンピュータにおいては保持している座標情
報に基づき、それらを拡大、縮小をして表示することが
多々ある。通常これらの座標情報は整数値の座標データ
として保持されている。例えば直線ならば始点および終
点のX座標、y座標、計4個の整数値が座標情報となる
。このとき、図形を縮小して表示する場合は、CPυ1
2がこれらの座標値を縮小率で割って描画装置l1に与
えて描画を行う。例えば、始点が(4.4)、終点が(
24.20)の直線L1を縮小率4で描画する場合、C
PU 12がそれぞれの座標値を4で割り、始点(1.
1)、終点(6.5)とし、これを描画装置11に与え
て直線を描画する。第7図はこれを示したものであるが
、実線が描画しようとする縮小率4の直線Llであり、
点A〜点Fが実際に描画される点である。
報に基づき、それらを拡大、縮小をして表示することが
多々ある。通常これらの座標情報は整数値の座標データ
として保持されている。例えば直線ならば始点および終
点のX座標、y座標、計4個の整数値が座標情報となる
。このとき、図形を縮小して表示する場合は、CPυ1
2がこれらの座標値を縮小率で割って描画装置l1に与
えて描画を行う。例えば、始点が(4.4)、終点が(
24.20)の直線L1を縮小率4で描画する場合、C
PU 12がそれぞれの座標値を4で割り、始点(1.
1)、終点(6.5)とし、これを描画装置11に与え
て直線を描画する。第7図はこれを示したものであるが
、実線が描画しようとする縮小率4の直線Llであり、
点A〜点Fが実際に描画される点である。
次に始点(3.5)、終点(23. 21)の直線L2
を同じように縮小率4で描画する場合について考える。
を同じように縮小率4で描画する場合について考える。
この場合もCPU 12がこれらの座標を4で割り、そ
れぞれ(0.75, 1.25) 、(5.75. 5
.25)という値を発生する。しかし従来の措画装置1
1は座標を整数値でしか入力できないのでCPI7 1
2はこの小数点以下をまるめて(四捨五入して)それぞ
れ(1.1)、(6.5)という値を描画装置11に与
える。
れぞれ(0.75, 1.25) 、(5.75. 5
.25)という値を発生する。しかし従来の措画装置1
1は座標を整数値でしか入力できないのでCPI7 1
2はこの小数点以下をまるめて(四捨五入して)それぞ
れ(1.1)、(6.5)という値を描画装置11に与
える。
この値は上で説明した直線L1と同じなので描画装置1
1は実線の場合と同じく第7図の点A〜点Fを描画する
。一方、直線L2を第7図に破線で示すが、これは当然
ではあるが直線L1とは異なる。そして図から明らかな
ようにx=4においては点Dよりも点Hの方が直線L2
に近い。同様にx=5では点Eよりも点■の方が直線L
2に近い。これは上記のまるめのために起こったもので
あり、座標情報として整数値しか入力できない描画装置
のもつ本質的な欠点である。
1は実線の場合と同じく第7図の点A〜点Fを描画する
。一方、直線L2を第7図に破線で示すが、これは当然
ではあるが直線L1とは異なる。そして図から明らかな
ようにx=4においては点Dよりも点Hの方が直線L2
に近い。同様にx=5では点Eよりも点■の方が直線L
2に近い。これは上記のまるめのために起こったもので
あり、座標情報として整数値しか入力できない描画装置
のもつ本質的な欠点である。
このように従来の描画装置においては、描画する座標情
報の座標値は整数でしか人力できなかったので、縮小溝
画において除算にするまるめが発生すると描画しようと
する線に近い描画点が選択されないという問題点があっ
た。
報の座標値は整数でしか人力できなかったので、縮小溝
画において除算にするまるめが発生すると描画しようと
する線に近い描画点が選択されないという問題点があっ
た。
この発明は上記のような問題点を解決するためになされ
たものであり、小数を含む数で表される座標情報を処理
することにより、縮小描画においても常に描画しようと
する線に近い描画点を選択する描画装置を提供すること
を目的とする。
たものであり、小数を含む数で表される座標情報を処理
することにより、縮小描画においても常に描画しようと
する線に近い描画点を選択する描画装置を提供すること
を目的とする。
この発明に係る描画装置は、小数を含む座標情報を扱い
、始点と終点とを整数値に近似すると共に、その間の膚
画座標の算出を演算手段により小数を含む数で表された
始点と終点とに基づき行うようにしたものである。
、始点と終点とを整数値に近似すると共に、その間の膚
画座標の算出を演算手段により小数を含む数で表された
始点と終点とに基づき行うようにしたものである。
この発明においては、縮小描画の場合等の小数を含む数
で表された始点と終点とを含む座標情報が入力されると
、その始点と終点とが整数に近似されると共に、その間
の膚両座標が小数を含む数で表された始点と終点とを用
いたBresenhamのアルゴリズム等の所定のアル
ゴリズムに基づき算出される。
で表された始点と終点とを含む座標情報が入力されると
、その始点と終点とが整数に近似されると共に、その間
の膚両座標が小数を含む数で表された始点と終点とを用
いたBresenhamのアルゴリズム等の所定のアル
ゴリズムに基づき算出される。
第1図はこの発明に係る溝画装置及びそれを用いたパー
ソナルコンピュータ、ワークステーション等のコンピュ
ータの表示部の構戒を示すプロ,7ク図である。図にお
いて11はCPU 12内に設けられた除算器l8を介
してCPtl 12からの描画命令及び座標情報を受け
て、画像メモリI3に格納する点、線等の画像の画像デ
ータを生威する本発明の描画装置である。除算器18は
CPU 12にて生成された座標情報の座標を縮小時に
除算するものである。描画装置l1により画像メモリ1
3に格納された画像データ内容は図示しない表示装置制
御器によって制御されて、表示装置14に表示される。
ソナルコンピュータ、ワークステーション等のコンピュ
ータの表示部の構戒を示すプロ,7ク図である。図にお
いて11はCPU 12内に設けられた除算器l8を介
してCPtl 12からの描画命令及び座標情報を受け
て、画像メモリI3に格納する点、線等の画像の画像デ
ータを生威する本発明の描画装置である。除算器18は
CPU 12にて生成された座標情報の座標を縮小時に
除算するものである。描画装置l1により画像メモリ1
3に格納された画像データ内容は図示しない表示装置制
御器によって制御されて、表示装置14に表示される。
表示装置14の画面はX座標、y座標の格子点からなり
、画像メモリ13は格納された画像データの内容が表示
装置14の画面に対応しており、描画は、描画しようと
する点のX座標、y座標に相当するアドレスの内容を書
き換えることにより行われる。
、画像メモリ13は格納された画像データの内容が表示
装置14の画面に対応しており、描画は、描画しようと
する点のX座標、y座標に相当するアドレスの内容を書
き換えることにより行われる。
次に描画装置11の構或及び動作の概略について説明す
る。
る。
図において16はCP[Iインターフェースであり、該
cpuインターフェース16はCPU 12から除算器
18を介して描画命令及び座標情報を受け取り、描画座
標、描画図形など描画に必要な座標情報を演算手段たる
描画座標発生器15及び画像メモリ制御器17に与える
。描画座標発生器15は受け取った座標情報に応じて描
画すべき図形上の点のX座標、y座標を発生する。また
画像メモリ制御器17は発生したX座標、y座標を受け
取り、それらに対応する画像メモリl3のアドレスを計
算し、その内容を書き換える。これを繰り返すことによ
り画像メモリ13には所望の図形が描画される。
cpuインターフェース16はCPU 12から除算器
18を介して描画命令及び座標情報を受け取り、描画座
標、描画図形など描画に必要な座標情報を演算手段たる
描画座標発生器15及び画像メモリ制御器17に与える
。描画座標発生器15は受け取った座標情報に応じて描
画すべき図形上の点のX座標、y座標を発生する。また
画像メモリ制御器17は発生したX座標、y座標を受け
取り、それらに対応する画像メモリl3のアドレスを計
算し、その内容を書き換える。これを繰り返すことによ
り画像メモリ13には所望の図形が描画される。
第2図は描画座標発生器15の構或を示すブロック図で
ある。図において4は2q − 2pの値を保持するレ
ジスタ、5は2qの値を保持するレジスタであり、これ
らに保持された2つの値は選択器7に与えられ、そこで
d n.Iの正負によりd。1≧0のときはレジスタ4
に格納された2q − 2pの値が、またd,1+1く
Oのときはレジスタ5に格納された2qの値が夫々選択
される。選択された値は加算器6の一端に与えられる。
ある。図において4は2q − 2pの値を保持するレ
ジスタ、5は2qの値を保持するレジスタであり、これ
らに保持された2つの値は選択器7に与えられ、そこで
d n.Iの正負によりd。1≧0のときはレジスタ4
に格納された2q − 2pの値が、またd,1+1く
Oのときはレジスタ5に格納された2qの値が夫々選択
される。選択された値は加算器6の一端に与えられる。
加算器6の出力はx7における距離差d1.1のp倍の
値p − d,。1を格納するレジスタ8に与えられ、
その出力が加算器6の他端に与えられ、2q − 2p
又は2qと加算されXn+1における距離差pdfi。
値p − d,。1を格納するレジスタ8に与えられ、
その出力が加算器6の他端に与えられ、2q − 2p
又は2qと加算されXn+1における距離差pdfi。
2が求められる。
レジスタ3は値pdn.l と共に、その正負を示す符
号ビットを格納する符号ビット格納部8を有しており、
その出力である符号ビットは選択器7及びy7をカウン
トするYカウンタ2に与えられ、それらを制御している
。
号ビットを格納する符号ビット格納部8を有しており、
その出力である符号ビットは選択器7及びy7をカウン
トするYカウンタ2に与えられ、それらを制御している
。
一方Xカウンタlはxrlをカウントし、そのカウント
結果は上記の各部を制御する制御回路9に与えられると
共に、Yカウンタ2のカウント結果と共に第1図に示す
画像メモリ制御器17に与えられる。ここで制御回路9
は座標情報として始点(xs,ys)及び終点(x*,
y*)の値が与えられ、それらを内部保持しており、そ
れによりp,qの値及び2p− q.2p−2Qの値等
を算出する。
結果は上記の各部を制御する制御回路9に与えられると
共に、Yカウンタ2のカウント結果と共に第1図に示す
画像メモリ制御器17に与えられる。ここで制御回路9
は座標情報として始点(xs,ys)及び終点(x*,
y*)の値が与えられ、それらを内部保持しており、そ
れによりp,qの値及び2p− q.2p−2Qの値等
を算出する。
以上の構或においてレジスタ3,4及び5は小数点以下
4ビットの値まで保持できるようになっており、また加
算器6も小数点以下4ビットまで加算できるようになっ
ている。
4ビットの値まで保持できるようになっており、また加
算器6も小数点以下4ビットまで加算できるようになっ
ている。
次に描画動作について説明する。この実施例では除算器
8は縮小描画を行うときCPLI 12から与えられる
座標情報に含まれる座標値を縮小率で除算し、その小数
点5ビット以下をまるめ、小数点以下4ビットの値まで
をI苗画装置11に与える。描画装置l1はこの情報を
うけ描画座標発生器15で描画する点の座標を逐次発生
する。以下始点(xs ,y.)と終点(xa,yi+
)とがそれぞれ(0.75.1.25)、(5.75.
5.25)の直線L2を描画する場合について説明す
る。第2図において制御回路9は描画を開始する点のX
座標x0と終了する点X座標x,としてそれぞれ、始点
、終点のX座標をまるめた値1と6とを選択する。次に
制御回路9はX一1におけるL2のy座標 y1。=ys+q/p X (xo −X, )= 1
.25 + (5.25 − 1.25)/(5.75
− 0.75) X (1 − 0.75)= 1.
25 + 4/5 X O.25=1.45 を計算し、それをまるめた値1を描画開始点のy座標y
0とする。そして、制御回路9は、Xカウンタ1,Yカ
ウンタ2、レジスタ3、レジスタ4、レジスタ5を初期
化する。このときレジスタ4、レジスタ5は小数点以下
も人力される点を除けば第8図に示す従来の場合と同じ
であり、それぞれ2q−2p=2(ya − Xs )
−2(x, − X. )=2x4−2x5=−2 2q=2(ye ys ) =2X4=8 に初期化される。またXカウンタ1、Yカウンタ2は上
でもとめた描画開始点のX座標、y座標それぞれx0=
1、y0=1が入力されるが、これを結果的には従来の
場合と同じである。次にレジスタ3の初期値、即ちpd
7。1の初期値1)d+であるが、これは直線の始点と
描画開始点の座標とが異なるので従来の場合とは違った
値になる。つまり、(2)式より pdn++ =−2pyn+2qxyl +2q+2
pys 2qxs−f=2p(y s y n)
2q(x s − x。)+2q−pであり、y0=
1、x0=1、ys =1.25、x5=0.75であ
る。またp=s、q=4なので、従来は2q−p=3で
あったが、この発明ではpd, = 2 X 5 X(
1.25−1) −2 X 4 X(0.75−1)+
2X4−5 −2.5+2+8−5 =7.5 となる。この後、制御回路9は従来の場合と同じく、x
1がX,(=6)になるまでXカウンタ1、Yカウンタ
2、レジスタ3の更新を繰り返す。そして、画像メモリ
制御器17は発生した座標の描画メモリ13に点を描画
する。この発明により生成した描画座標Xn 、)’I
I 、dn。1と、第8図に示す従来の措画座標発生器
15により生成した描画座標とを第4図に示す。
8は縮小描画を行うときCPLI 12から与えられる
座標情報に含まれる座標値を縮小率で除算し、その小数
点5ビット以下をまるめ、小数点以下4ビットの値まで
をI苗画装置11に与える。描画装置l1はこの情報を
うけ描画座標発生器15で描画する点の座標を逐次発生
する。以下始点(xs ,y.)と終点(xa,yi+
)とがそれぞれ(0.75.1.25)、(5.75.
5.25)の直線L2を描画する場合について説明す
る。第2図において制御回路9は描画を開始する点のX
座標x0と終了する点X座標x,としてそれぞれ、始点
、終点のX座標をまるめた値1と6とを選択する。次に
制御回路9はX一1におけるL2のy座標 y1。=ys+q/p X (xo −X, )= 1
.25 + (5.25 − 1.25)/(5.75
− 0.75) X (1 − 0.75)= 1.
25 + 4/5 X O.25=1.45 を計算し、それをまるめた値1を描画開始点のy座標y
0とする。そして、制御回路9は、Xカウンタ1,Yカ
ウンタ2、レジスタ3、レジスタ4、レジスタ5を初期
化する。このときレジスタ4、レジスタ5は小数点以下
も人力される点を除けば第8図に示す従来の場合と同じ
であり、それぞれ2q−2p=2(ya − Xs )
−2(x, − X. )=2x4−2x5=−2 2q=2(ye ys ) =2X4=8 に初期化される。またXカウンタ1、Yカウンタ2は上
でもとめた描画開始点のX座標、y座標それぞれx0=
1、y0=1が入力されるが、これを結果的には従来の
場合と同じである。次にレジスタ3の初期値、即ちpd
7。1の初期値1)d+であるが、これは直線の始点と
描画開始点の座標とが異なるので従来の場合とは違った
値になる。つまり、(2)式より pdn++ =−2pyn+2qxyl +2q+2
pys 2qxs−f=2p(y s y n)
2q(x s − x。)+2q−pであり、y0=
1、x0=1、ys =1.25、x5=0.75であ
る。またp=s、q=4なので、従来は2q−p=3で
あったが、この発明ではpd, = 2 X 5 X(
1.25−1) −2 X 4 X(0.75−1)+
2X4−5 −2.5+2+8−5 =7.5 となる。この後、制御回路9は従来の場合と同じく、x
1がX,(=6)になるまでXカウンタ1、Yカウンタ
2、レジスタ3の更新を繰り返す。そして、画像メモリ
制御器17は発生した座標の描画メモリ13に点を描画
する。この発明により生成した描画座標Xn 、)’I
I 、dn。1と、第8図に示す従来の措画座標発生器
15により生成した描画座標とを第4図に示す。
この発明の描画装置では第4図及び第7図に示す如く、
点A,点B1点C1点H1点l,点Fと直線L2に最も
近い点が描画されているが、従来の描画装置では点A、
点B、点C、点D3点E、点Fとなり、直線L2から遠
い点D及び点Eが描画されてしまうことがわかる。
点A,点B1点C1点H1点l,点Fと直線L2に最も
近い点が描画されているが、従来の描画装置では点A、
点B、点C、点D3点E、点Fとなり、直線L2から遠
い点D及び点Eが描画されてしまうことがわかる。
なお、この実施例では小数点5ビ・ノト以下をまるめる
ことによる誤差は発生するが、小数点以下にまるめるビ
ット数は、この実施例に限定されるものではなく、これ
による誤差が問題になるときはさらにまるめるビット数
を大きくすればよい。
ことによる誤差は発生するが、小数点以下にまるめるビ
ット数は、この実施例に限定されるものではなく、これ
による誤差が問題になるときはさらにまるめるビット数
を大きくすればよい。
またこの実施例で小数点以下5ビット以下をまるめるよ
うにしたのは、以下の理由による。第5図は小数点5ビ
ット以下をまるめることによる誤差発生領域を説明する
図であり、この誤差によって影響をうけるのは第5図に
示すように格子点と格子点の中点付近とのわずかな範囲
(17/32 − 15/32= 1/16)を直線が
通るときだけである。しかし、この場合は2つの格子点
までの距離がほぼ等しいので、誤差によって間違った方
の格子点が選択されても膚画装置として問題になること
はほとんどない。
うにしたのは、以下の理由による。第5図は小数点5ビ
ット以下をまるめることによる誤差発生領域を説明する
図であり、この誤差によって影響をうけるのは第5図に
示すように格子点と格子点の中点付近とのわずかな範囲
(17/32 − 15/32= 1/16)を直線が
通るときだけである。しかし、この場合は2つの格子点
までの距離がほぼ等しいので、誤差によって間違った方
の格子点が選択されても膚画装置として問題になること
はほとんどない。
次に他の実施例の描画装置について説明する。
第3図は他の実施例の備画装置及びそれを用いたコンピ
ュータの表示部の構或を示すブロック図であり、前述の
実施例では縮小のための除算をCP[I12内に設けた
除算器18で実行する例を示したが、この実施例では描
画装置1lの内部に除算器18を設け、CPtl 12
は縮小前の画像情報を描画装置11に与え、溝画装置1
1が除算を行うようにしている。
ュータの表示部の構或を示すブロック図であり、前述の
実施例では縮小のための除算をCP[I12内に設けた
除算器18で実行する例を示したが、この実施例では描
画装置1lの内部に除算器18を設け、CPtl 12
は縮小前の画像情報を描画装置11に与え、溝画装置1
1が除算を行うようにしている。
以上説明したとおり、この発明においては縮小描画の場
合のように小数点以下の数を含む値で表された座標情報
が入力されると、それに基づき始点と終点間の描画座標
が算出されるので、従来の如く整数に近似された値を用
いて描画座標を算出する場合に比べて近似誤差が少なく
なり、縮小猫画においても常に描画しようとする線に最
も近い線を選択することができる等優れた効果を奏する
。
合のように小数点以下の数を含む値で表された座標情報
が入力されると、それに基づき始点と終点間の描画座標
が算出されるので、従来の如く整数に近似された値を用
いて描画座標を算出する場合に比べて近似誤差が少なく
なり、縮小猫画においても常に描画しようとする線に最
も近い線を選択することができる等優れた効果を奏する
。
第1図はこの発明に係る描画装置及びそれを用いたコン
ピュータの表示部の構或を示すブロック図、第2図はこ
の発明に用いられる描画座標発生器の構或を示すブロッ
ク図、第3図は他の実施例の描画装置及びそれを用いた
コンピュータの表示部の構或を示すブロフク図、第4図
はこの発明の描画装置と従来の描画装置とで算出した閘
画座標を示す図、第5図は誤差発生領域を示す図、第6
図は従来の描画装置及びそれを用いたコンピュータの表
示部の構或を示すブロック図、第7図は表示装置の表示
画面での表示状態を示す図、第8図は従来の描画装置に
用いられた描画座標発生器の構或を示すブロック図であ
る。 ■・・・Xカウンタ 2・・・Yカウンタ 3,4.5
・・・レジスタ 6・・・加算器 7・・・選択器 8
・・・符号ビット格納部 9・・・制御回路 11・・
・描画装置14・・・表示装置 15・・・描画座標発
生器なお、図中、同一符号は同一、又は相当部分を示す
。
ピュータの表示部の構或を示すブロック図、第2図はこ
の発明に用いられる描画座標発生器の構或を示すブロッ
ク図、第3図は他の実施例の描画装置及びそれを用いた
コンピュータの表示部の構或を示すブロフク図、第4図
はこの発明の描画装置と従来の描画装置とで算出した閘
画座標を示す図、第5図は誤差発生領域を示す図、第6
図は従来の描画装置及びそれを用いたコンピュータの表
示部の構或を示すブロック図、第7図は表示装置の表示
画面での表示状態を示す図、第8図は従来の描画装置に
用いられた描画座標発生器の構或を示すブロック図であ
る。 ■・・・Xカウンタ 2・・・Yカウンタ 3,4.5
・・・レジスタ 6・・・加算器 7・・・選択器 8
・・・符号ビット格納部 9・・・制御回路 11・・
・描画装置14・・・表示装置 15・・・描画座標発
生器なお、図中、同一符号は同一、又は相当部分を示す
。
Claims (1)
- (1)小数を含む数で表される少なくとも2点を含む座
標情報に基づき、整数値で表される格子点で構成される
表示面を有する表示装置に、表示すべき前記2点間の格
子点の描画座標を生成する描画装置であって、 前記2点を整数値に近似する近似手段と、 近似前の2点を用いて所定のアルゴリズム に基づき、その間の描画座標を算出する演算手段と を備えることを特徴とする描画装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30801189A JPH03166671A (ja) | 1989-11-27 | 1989-11-27 | 描画装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30801189A JPH03166671A (ja) | 1989-11-27 | 1989-11-27 | 描画装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03166671A true JPH03166671A (ja) | 1991-07-18 |
Family
ID=17975819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30801189A Pending JPH03166671A (ja) | 1989-11-27 | 1989-11-27 | 描画装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03166671A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163700A (ja) * | 2004-12-06 | 2006-06-22 | Kyocera Mita Corp | 描画処理装置及びプログラム |
JP2021056799A (ja) * | 2019-09-30 | 2021-04-08 | キヤノン株式会社 | 表示制御装置、その制御方法及びプログラム |
-
1989
- 1989-11-27 JP JP30801189A patent/JPH03166671A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163700A (ja) * | 2004-12-06 | 2006-06-22 | Kyocera Mita Corp | 描画処理装置及びプログラム |
JP4624087B2 (ja) * | 2004-12-06 | 2011-02-02 | 京セラミタ株式会社 | 描画処理装置及びプログラム |
JP2021056799A (ja) * | 2019-09-30 | 2021-04-08 | キヤノン株式会社 | 表示制御装置、その制御方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0577130B1 (en) | System and method for rendering bézier splines | |
US20060250397A1 (en) | Graphics processing unit and graphics processing system | |
CN102103825A (zh) | 通过适用于显示面板驱动器的数值运算的显示数据校正 | |
US4819185A (en) | Method and apparatus for drawing wide lines in a raster graphics display system | |
US4479192A (en) | Straight line coordinates generator | |
JPH03166671A (ja) | 描画装置 | |
US5416897A (en) | Video graphics controller with selectable pattern features for line draws | |
US6559856B1 (en) | Apparatus for fixed-point graphics and method therefor | |
JPH0335367A (ja) | チヤンキ・プレーナ式データ格納装置および方法 | |
US6525733B1 (en) | Video graphics controller with high speed line draw processor | |
EP0327001A2 (en) | Pattern data generating system | |
US5912995A (en) | Method and apparatus for rotating or transposing a binary image | |
US5613054A (en) | Video graphics controller with improved calculation capabilities | |
US6646648B1 (en) | Method and system for evaluating derivatives in screen space using perspective corrected barycentric coordinates | |
CA2126505A1 (en) | Straight line coordinate generator | |
JPH0293772A (ja) | 輪郭近似方式 | |
JP3091472B2 (ja) | 画像処理方法 | |
US20060095489A1 (en) | Representation of implicit curves for procedural surfaces | |
JP3547277B2 (ja) | グラフィックス処理装置 | |
JP2889244B2 (ja) | 画像処理装置 | |
JPS6258379A (ja) | グラフ化の逆シミユレ−シヨン装置 | |
JP2798082B2 (ja) | グラフ表示制御装置及びグラフ表示制御方法 | |
JPH0315193B2 (ja) | ||
JPH02168361A (ja) | 座標データを発生するパターンデータ発生装置及びプロセッサ | |
JPH0737151Y2 (ja) | 小型電子式計算機 |