JPH0322183A - 直線描画制御方法 - Google Patents

直線描画制御方法

Info

Publication number
JPH0322183A
JPH0322183A JP1157021A JP15702189A JPH0322183A JP H0322183 A JPH0322183 A JP H0322183A JP 1157021 A JP1157021 A JP 1157021A JP 15702189 A JP15702189 A JP 15702189A JP H0322183 A JPH0322183 A JP H0322183A
Authority
JP
Japan
Prior art keywords
straight line
drawing circuit
circuit
coordinate values
line drawing
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
JP1157021A
Other languages
English (en)
Inventor
Masanori Kato
正紀 加藤
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 JP1157021A priority Critical patent/JPH0322183A/ja
Publication of JPH0322183A publication Critical patent/JPH0322183A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [概要] 措画する直線の座標値が、直線膚画回路に入力可能な座
標値範囲を越えるときの直線描画制御方法に関し、 直線描画回路を有効に使用して、膚画を高速化し、図形
表示装置の性能を向上させることを目的とし、 直線の開始点と終了点の座標値が入力され、その入力さ
れた直線をドット列に展開してフレームメモリに書込み
を行なう直線描画回路を備えた、ビットマップ式図形表
示装置における直線描画制御方法であって、描画する直
線の座標値が前記直線描画回路に入力可能な座標値範囲
を越えるとき、その直線を複数の直線に分解して、その
分解した直線毎に前記直線描画回路に入力して起動する
ことにより直線を描画するように構或する.[産業上の
利用分野] 本発明は、直線描画回路を備えた図形表示装置における
直線描画制御方法に係わり、特に、描画する直線の座標
値が、直線描画回路に入力可能な座標値範囲を越えると
きの直線描画制御方法に関する。
[従来の技術] 第2図は、直線描画回路を備えたビットマップ式図形表
示装置の一例を示す構威図である。同図において、lは
装置全体を制御する主制御部であるCPU,2はCPU
Iが実行するプログラムや図形表示データ等を記憶する
メインメモリ、3は直線の描画制御を行なう直線描画回
路、4は表示データが展開されるフレームメモリ、5は
フレームメモリ4から表示データを読出し、表示部であ
るCRT6への表示制御を行なう表示制御回路である。
直線描画回路3は、開始点レジスタおよび終了点レジス
タを有し、CPUIにより描画する直線の開始点および
終了点の座標値が、それぞれのレジスタに設定され起動
されることにより、その2点間をドット列に展開してフ
レームメモリ4上に書込む制御を行なう.直線をドット
列に展開する方法はDDA (ディジタル微分解析)に
よるものが広く知られており、特にBresenham
によって導かれたアルゴリズムが一般的に用いられてい
る。
このアルゴリズムについては公知であるためここでは説
明を省略する。また、直線描画回路3は、クリップ長方
形指定レジスタ等を備え、直線を描画する際にクリップ
長方形を指定することによって、長方形内部領域のみを
描画するクリッピング機能や、破線・点線・一点鎖線な
どのパターンを使って描画する機能や、フレームメモリ
4の内容と論理演算をしながら描画する機能等をあわせ
持つことが多い。
第5図は、直線描画回路3の入力可能な座標値範囲と、
フレームメモリ4およびクリップ長方形の座標値範囲と
の関係の一例を示したものである.同図に示すように、
AからBへの直線は、直線描画回路3にその座標値を直
接入力して描画させることができ、フレームメモリ4上
にはクリップ長方形内のA゛からB゜の区間にドット展
開がなされる。ところが、CからDへの直線の一部であ
るC゜からD′への直線を描画しようとする場合には、
CとDの座標値を直接直線描画回路3に入力することは
できない。直線描画回路3の座標値範囲は、同回路が持
つ演算器のビット幅により制限され、ハードウェアコス
ト,量との関係から必ずしも十分なビット幅の演算器を
搭載できないことがしばしばある。
この直線描画回路3の入力可能な座標値範囲の制限のも
とで、CからDへの直線のようにその座標値範囲を越え
る座標値で示される直線を描く方法として、CPUIに
より予め直線とクリ.ツプ長方形との交点C”,D゛を
求めて、これを直線描画回路3に入力することが考えら
れる.しかし、この場合には、DDAアルゴリズムの一
般的な性質によって、CからDへ仮想的にドット列を展
開したときのC’ D’ 区間のドット並びとは、必ず
しも一致しない。従って、ドットの一致性を望むアプリ
ケーションにとってこの方法は適当ではない。
従来では、このドットの一致性を実現するために、CP
U1において、直線描画回路3と同等なDDAアルゴリ
ズムを使って、描画すべき点を一点一点計算し、直線描
画回路3を一点毎に起動して描画を行なっていた。
第6図は、膚画しようとする直線の座標値が、直線描画
回路3に入力可能な座標値範囲を越えるときの従来技術
の説明図、第7図は、従来におけるCPUIの処理動作
を示すフローチャートである.なお、同フローチャート
における処理動作は、説明を容易にするために、直線の
開始点座標を(xs.ys”)、終了点座標を(xe,
ye)、dx=xe−xs,dy=  ye−ysとし
たとき、dx≧dy≧0となる、第5図の直線CDのよ
うな右上がりの直線の場合を示している。また、直線描
画回路3は、終了点レジスタへの入力動作によって起動
され、開始点レジスタと終了点レジスタに入力される座
標値が一致している場合には、1ドットのみの描画が行
なわれるものである.第7図のフローチャートに示すよ
うに、従来のCPUIの処理動作は、 (61)まず、直線とクリップ長方形との最初の交点C
゜の座標値(x,y)を求める。
(62)その座標値におけるDDAパラメータ、いわゆ
る誤差項と呼ばれる決定変数dを求める。
(63)そして、最初の交点C゜から次の交点D“まで
のX軸に沿った長さ(主軸長)lを求める。
上記(61) , (62) . (63)の計算方法
は、DDAアルゴリズムにおいて公知のものであり、こ
こでは詳細な説明を省略する。
(64)次に、最初の交点C゜の座標値(x,y)を直
線描画回路3の開始点レジスタと終了点レジスタの双方
に入力して起動し、その座標(x,y)に最初の1ドッ
トの描画を行なう。
(65)  fを1減じる。
(66) ffiが0以下であるか否かをチェックし、
0以下であれば終了にする。
(67) fiが正であれば、Xに1を加える.(6B
) dが負であるか否かをチェックする。
(69)  dが負であれば、dに2.Xdyを加えて
、(612)の処理に行く。
(610)  dが負でなければ、dに2X(dydx
)を加える。
(611)  )’に1を加え、次の(612)の処理
へ行く。
(612)  開始点レジスタと終了点レジスタに、上
記において更新した座標値(x,y)を入力して起動し
、1ドットの描画を行なう。そして、(65)の処理に
戻り、lが正である間、1ドットづつの描画を繰り返す
このように、従来においては、CPUIがDDAアルゴ
リズムによって、X座標を1増加したときに、y座標を
l増加させるか否かを1ドット毎に算出し、その1ドッ
ト毎に算出した座標値を順次直線膚画回路3に入力して
起動し、第6図に示す順番のように1ドットの描画を行
なっていた。
また、上記1ドットの描画において、直線描画回路を使
用する方法とは別に、CPUが直接フレームメモリに1
ドットを書込むこともできる。ただし、この場合には、
CPUからフレームメモリをアクセスすることができる
ハードウェア構成である必要がある. [発明が解決しようとする課題] 上記直線描画回路の動作は、起動を受けて一定のセット
アップ時間の後に描画動作を開始する。
このため従来のように直線描画回路を1ドット毎に起動
すると、例えば、直線が第6図のようなドット列に展開
される場合は、計20回の起動が必要であり、セットア
ップ時間の積み重ねにより、膚画時間を多く要するもの
となり、直線描画回路の性能を十分に発揮するものとは
なっていなかった。
また、CPUが直接フレームメモリに書込む方法におい
ては、直線膚画回路の持つパターンによる描画や、論理
演算を伴った描画機能を実現するためには処理が複雑に
なり、さらにフレームメモリが複数のプレーンによる構
或となっている場合には、フレームメモリに1ドットを
書込むこと自体が複雑化し、やはり性能的に問題を有し
ていた。
本発明は、このような問題に鑑みて創案されたもので、
直線描画回路を有効に使用して、描画を高速化し、図形
表示装置の性能を向上させることのできる直線描画制御
方法を提供することを目的としている。
[課題を解決するための手段1 上記目的を達威するための本発明における手段は、直線
の開始点と終了点の座標値が入力され、その入力された
直線をドット列に展開してフレームメモリに書込みを行
なう直線描画回路を備えた、ビットマップ式図形表示装
置における直線膚画制御方法であって、描画する直線の
座標値が前記直線描画回路に入力可能な座標値範囲を越
えるとき、その直線を複数の直線に分解して、その分解
した直線毎に前記直線描画回路に入力して起動すること
により直線を描画する直線描画制御方法である。
[作用] 第1図は、本発明における直線描画の説明図である. 通常、直線の描画情報はその開始点と終了点の座標値で
保持されていて、描画する直線の描画情報である座標値
が、直線描画回路に入力可能な座標値範囲を越えるもの
であるときに、例えばDDAアルゴリズムにより、直線
のドット列を算出し、例えば第l図(a)に示すように
、座標軸に平行な複数の直線(同一番号が付されている
ドット列)、または同図(b)に示すように、座標軸と
45度をなす複数の直線(同じく同一番号が付されてい
るドット列)に分解し、それぞれのドット列の直線の始
端と終端の座標値を求めて、直線描画回路に入力可能な
座標値の範囲内で、分解したそれぞれの直線の座標値を
順次直線描画回路に入力して起動することにより、描画
を行なう。
これにより、例えば第1図(a)の直線では、従来20
回の起動を要していたのが、本発明では5回の起動とな
るように、直線描画回路の起動回数が減少して、セット
アップ時間の積み重ねによるオーバヘッドが減り、直線
の描画を高速化することができる。
さらに、座標軸に平行な直線に分解する方法においては
直線の傾きが45度に近いとき、また、座標軸と45度
の角度をなす直線に分解する方法においては直線の傾き
が0度に近いときに、直線描画回路の起動回数が従来の
方法と変わらなくなるため、直線の傾きにより上記方法
を切替えるようにすれば、直線描画回路の起動回数をさ
らに減少させることができる.例えば、直線の傾き(正
接)が1/2以下の時は、座標軸に平行な直線に分解し
、傾きが1/2を越えるときは、座標軸と45度の角度
をなす直線に分解するようにすれば、直線膚画回路の起
動回数は最悪でも従来比1/2となる。
[実施例] 以下、図面を参照して、本発明の実施例を詳細に説明す
る. ここでは、第2図に示すビットマップ式図形表示装置に
おける実施例を説明する。
本実施例における直線の描画では、CPUIが、メイン
メモリ2から描画データである直線の開始点および終了
点の座標値と、直線描画回路3の座標値範囲データを読
出し、直線の座標値が直線膚画回路3に入力可能な座標
値範囲内であるか否かを判定する。範囲内であれば直線
の座標値を直接直線描画回路3の開始点レジスタと終了
点レジスタのそれぞれに入力して起動し、直線描画回路
3の1回の起動によりフレームメモリ4への直線のビッ
ト展開を行なう。
直線の座標値が、直線描画回路3の入力可能な座標値範
囲を越えるときには、CPU1の処理で、DDAアルゴ
リズムを用いて直線のドット列の座標値を算出し、複数
のドット列の直線に分解して、分解した直線毎に直線描
画回路3を起動し、ビット展開の制御を行なう。
第3図と第4図は、直線の座標値が直線膚両回路3の入
力可能な座標値範囲を越えるときのCPU1の処理フロ
ーチャートである。第3図は、第1図(a)に示すよう
にX方向の座標軸に平行な直線に分解して行なう処理で
あり、第4図は、第1図(b)に示すように座標軸と4
5度をなす直線に分解して行なう処理である。なお、第
3図および第4図の処理フローチャートは、説明を容易
にするために、従来と同様に、直線の開始点座標を(x
s,ys)、終了点座標を(xe,ye)、dx=xe
−xs,   dy=ye−ysとしたとき、dx≧d
y≧0となる直線に対する処理を示している. まず、CPUIは描画する直線の傾きを判定する。すな
わち、dxとayを比較し、dx≧2×dyであれば第
3図に示す処理を行ない、そうでなければ第4図に示す
処理を行なう。
第3図における処理を次に示す。
(31) . (32) . (33)では、第7図に
示した従来処理と同様に、C“の始点座標(x.yL誤
差項d、主軸長lを求める。
(34)直線描画回路3の開始点レジスタに、(31)
で求めた始点座標値(x.y)を入力する.(35) 
 fをl減じる. (36) i.がO以下になったか否かをチェックする
(37) Ilが正であれば、dが負であるか否かをチ
ェックする。
(38)  dが負であれば、dに2×dyを加える。
(39)そして、Xに1を加え、(35)に戻り処理を
繰り返す。
(310)  (37)のチェックにおいて、dが負で
なければ、dに2X (dy−dx)を加える。
(311)  そして、直線描画回路3を、その終了点
レジスタに(x,y)を入力することにより起動する.
ここで直線描画回路3により1つの水平なドット列の直
線が展開される. (312)  xとyにそれぞれlを加える。
(313)  直線描画回路3の開始点レジスタに更新
された(x.y)を入力して、(35)に戻り処理を繰
り返す。
(314) (36)のチェックにおいてlが0以下に
なると、直線描画回路3を、その終了点レジスタにその
時点の(x,y)を入力することにより起動する.これ
により直線描画回路3により最後の水平なドット列の直
線が展開され、直線の描画を終了する。
次に、第4図における処理を説明する。
(41) . (42) . (43)では、第7図に
示した従来処理と同様に、C゛の始点座標(x.yL誤
差項d、主軸長lを求める。
(44)直線描画回路3の開始点レジスタに、(41)
で求めた始点座標値(x.y)を入力する。
(45)  fをIMしる。
(46) fが0以下になったか否かをチェックする。
(47)  ffiが正であれば、dが負であるか否か
をチェックする。
(4B) dが負でなければ、dに2X (dy−dx
)を加える。
(49)そして、Xとyそれぞれに1を加え、(45)
に戻り処理を繰り返す。
(410) (47)のチェックにおいてdが負であれ
ば、dに2Xdyを加える。
(411)  次に、直線描画回路3を、その終了点レ
ジスタに(x.y)を入力することにより起動する。こ
こで直線描画回路3により1つの傾き45度のドット列
の直線が展開される。
(412)  そして、Xに1を加える。
(413)  直線描画回路3の開始点レジスタに更新
された(x.y)を入力して、(45)に戻り処理を繰
り返す。
(414) (46)のチェックにおいてlがO以下に
なると、直線描画回路3を、その終了点レジスタにその
時点の(x.y)を入力することにより起動する。これ
により直線描画回路3により最後の傾き45度のドット
列の直線が展開され、直線の描画を終了する。
このように本実施例では、描画しようとする直線の傾き
により、水平な直線となるドット列と、傾き45度の直
線となるドット列に分解して、分解した直線毎に直線描
画回路3を起動している。
[発明の効果] 以上説明したように、本発明によれば、描画しようとす
る直線の座標値が、直線膚画回路に入力可能な座標値範
囲を越えるときの処理において、従来に較べ少ない直線
膚画回路の起動回数で描画することができ、セットアッ
プ時間の積み重ねによるオーバーヘッドが減るため、描
画が高速化され、図形表示装置の性能を向上させること
ができる.
【図面の簡単な説明】
第1図は本発明の説明図、 第2図はビットマップ式図形表示装置の一例の構威図、 第3図,第4図は実施例の処理フローチャート、第5図
は座標値範囲の説明図、 第6図は従来技術の説明図、 第7図は従来の処理フローチャートである。 1・・・CPU,      2・・・メインメモリ、
3・・・直線描画回路、 4・・・フレームメモリ、5
・・・表示制御回路、 6・・・CRT。 (a) 第1図 第2図 iE極値範囲の説明図 従来技術の説明図 第6図

Claims (1)

  1. 【特許請求の範囲】 直線の開始点と終了点の座標値が入力され、その入力さ
    れた直線をドット列に展開してフレームメモリに書込み
    を行なう直線描画回路を備えた、ビットマップ式図形表
    示装置における直線描画制御方法であって、 描画する直線の座標値が前記直線描画回路に入力可能な
    座標値範囲を越えるとき、その直線を複数の直線に分解
    して、その分解した直線毎に前記直線描画回路に入力し
    て起動することにより直線を描画することを特徴とする
    直線描画制御方法。
JP1157021A 1989-06-20 1989-06-20 直線描画制御方法 Pending JPH0322183A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1157021A JPH0322183A (ja) 1989-06-20 1989-06-20 直線描画制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1157021A JPH0322183A (ja) 1989-06-20 1989-06-20 直線描画制御方法

Publications (1)

Publication Number Publication Date
JPH0322183A true JPH0322183A (ja) 1991-01-30

Family

ID=15640450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1157021A Pending JPH0322183A (ja) 1989-06-20 1989-06-20 直線描画制御方法

Country Status (1)

Country Link
JP (1) JPH0322183A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342763A (ja) * 2001-05-15 2002-11-29 Matsushita Electric Ind Co Ltd 線分描画装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342763A (ja) * 2001-05-15 2002-11-29 Matsushita Electric Ind Co Ltd 線分描画装置
JP4596678B2 (ja) * 2001-05-15 2010-12-08 パナソニック株式会社 線分描画装置

Similar Documents

Publication Publication Date Title
JPH0322183A (ja) 直線描画制御方法
JPH02270019A (ja) 高品質文字パターン発生方式
CA2148177A1 (en) Method and apparatus for stretching bitmaps to non-integer multiples
KR20000057716A (ko) 다각형 묘화 방법, 및 다각형 묘화 장치
JPH0723997B2 (ja) 文字・図形描画装置
JP3039015B2 (ja) 文字処理装置
JPH04323722A (ja) マルチウィンドウシステムの描画方式
JPH0493992A (ja) 文字・図形描画装置
JP2605609B2 (ja) ドット表示処理装置
JPH08235362A (ja) 単純な凸状の多角形を決定するための方法および装置
JPH07129149A (ja) 文字描画装置
JP2904994B2 (ja) 座標間接続表示方法
JP2835056B2 (ja) 高品質文字パターン発生方式
JP2991591B2 (ja) マルチウィンドウ表示装置及び方法
JP2771981B2 (ja) 高品質文字パターン発生方式
JPH02226491A (ja) データ変換方法
JP2004030135A (ja) Cadシステムにおける円の一部の描画方法及びプログラム
JPH0752466B2 (ja) ラスターオペレーション装置およびその方法
JPS62271187A (ja) ベクトル描画方式
JP2985260B2 (ja) 文字処理装置
JPH04153786A (ja) 四辺形塗りつぶし装置
JPH0916787A (ja) 図形塗り潰し用枠線の始点終点描画方法
JPH0844881A (ja) グラフィックスアクセラレータの塗潰し方法及びグラフィックスアクセラレータ
JPH08287265A (ja) 線分表示方法
JPS63279369A (ja) 二色塗り処理方式