JPH03147190A - 直線描画方法 - Google Patents

直線描画方法

Info

Publication number
JPH03147190A
JPH03147190A JP28677989A JP28677989A JPH03147190A JP H03147190 A JPH03147190 A JP H03147190A JP 28677989 A JP28677989 A JP 28677989A JP 28677989 A JP28677989 A JP 28677989A JP H03147190 A JPH03147190 A JP H03147190A
Authority
JP
Japan
Prior art keywords
straight line
value
points
point
drawn
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
JP28677989A
Other languages
English (en)
Inventor
Keizo Azuma
圭三 東
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 JP28677989A priority Critical patent/JPH03147190A/ja
Publication of JPH03147190A publication Critical patent/JPH03147190A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

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

Description

【発明の詳細な説明】 [概要コ コンピュータの表示装置として使用されるビットマツプ
メモリに直線を描画する場合における直線描画方法に関
し、 直線の描画を高速で効率よく行うことを目的とし、 ビットマツプメモリに直線を表示させる場合において、
実際の直線の傾きをaとしてその逆数1/a 1 / a =t + s  (tは整数、0≦s<1
)を演算し、 求めた傾きaより次式で示される値b b−1/2=t×a を求め、 次に、連続する点列での最初の点と実際の直線との距離
をdとしてdとaを比較しd≧dの時には連続する個数
を(+1個とし、dabの時には連続する個数をt個と
し、求まった数だけ点列を描画し、dの値を次式で示さ
れるdの値d=d+aX(描画点の個数)〜〕 に修正し、 次に全て点列の描画が終了したかとうかチェックし、終
了していない場合には前に戻って同じ描画操作を繰返す
ように(1育成する。
[産業上の利用分野〕 本発明はコンピュータの表示装置として使用されるビッ
トマツプメモリに直線を描画する場合における直線描画
方法に関する。
近年、コンピュータの表示装置として、デイスプレィ上
の画素毎に対応するメモリを割当てるビットマツプメモ
リが多用されるようになってきており、このメモリ上に
擬似的に直線を描画する方法か要求されてきている。
[従来の技術] ビットマツプメモリは、格子上に点が存在するので、直
線を描画する場合、その直線に最も近い格子点を選択し
、それらを描画することにより、擬似的に直線を表示す
るようになっている。従来の描画方式ではDDA (D
igital  Differential  Alg
orithm)が有名である。この方法は、実際の直線
とその直線に最も近い描画点との差を用いて次に描画す
べき点を決定する方法である。
第4図は従来の描画方式の説明図である。図に示す格子
点漢の距離は1に正規化されているものとする。図にお
いて、Ωが実際の直線である。
今、図のPlが描画点であるものとすると、実際の直線
gと描画点21間の附属はdである。ここで、この直線
の傾きをa(Q<a<1.)とすると、その関係は第5
図に示すようなものとなる。
Plの次の描画点は、y値を+1したP2か、y値、y
値ともに+1したP3のうちのいずれか一方となる。
この場合、d+a (dは正負の値をとるものとする)
が0.5よりも大きい場合には、直線Ωが格子と交わる
点AがP2とP3のどちらに近いかで決まる。d+aが
0.5よりも小さい時はP2が直線gに近いことになり
P2が次の描画点となる。これに対し、d+aが0.5
よりも大きい場合にはP3の方が直線gに近いことにな
り、P3が次の描画点となる。
このようにして1点ずつ描画点を算出しながら直線を描
画する方法がDDAである。
[発明が解決しようとする課題] 従来の直線描画方法は、前述したように1点ずつ描画点
を算出しながら直線を描画していく方法であるので、メ
モリへのアクセスが描画点の個数たけ必要となり、処理
に要する時間がかかっていた。
本発明はこのような課題に鑑みてなされたちのてあって
、直線の描画を高速で効率よく行うことができる直線描
画方法を提供することを目的としている。
[課題を解決するための手段] 第1図は本発明方法の原理を示すフローチャートである
。本発明は、 ビットマツプメモリに直線を表示させる場合において、 実際の直線の傾きをaとしてその逆数1/a1、 / 
a = t + s  (tは整数、0≦sく1)を演
算しくステップ1)、 求めた傾きaより次式で示される値b b = 1 / 2− t x a を求め(ステップ2)、 次に、連続する点列での最初の点と実際の直線との距離
をdとしてdとaを比較しくステップ3)d≧dの時に
は連続する個数をt+1個とし、d<bの時には連続す
る個数をt個としくステッブ4)、 求まった数だけ点列を描画しくステップ5)、dの値を
次式で示されるdの値 d=d+aX(描画点の個数)−1 に修正しくステップ6)、 次に全て点列の描画が終了したかどうかチェックしくス
テップ7)、終了していない場合にはステップ3まで戻
って同じ描画操作を繰返すようにしたことを特徴として
いる。なお、ここで、比較の対象とされるdとbの値は
その絶対値で考えるものとする。
[作用] 傾きの小さい直線は、それだけ横一列に並ぶ描画点の数
が増えることに着目して一度に複数個の描画点を描画す
るようにした。これにより直線の描画を高速で効率よく
行うことができる直線描画方法を提供することができる
[実施例] 以下、図面を参照して本発明の実施例を詳細に説明する
第2図は本発明方法を実施するシステム構成例を示す図
である。図において、1は実際の直線と描画点との差分
dを保持する第1のレジスタ、2は連続する描画点の個
数を算出するために使用される第2のレジスタであり、
描画に先立って傾き値aより算出された定数すがセット
される。
3は第1及び第2のレジスタの出力dとbとを比較して
連続する描画点の個数を決定する比較器、4は決定され
た連続する描画点の個数によりビットマツプメモリ5に
点を描画する描画部である。
ここで、連続する描画点とは、同−関数軸値をもつ点の
ことをいう。また、関数軸とは傾きが1以上の場合はy
軸、傾きか1以’FO以上の場合X軸をさす。以下の説
明では、傾きが0以上1以ドの場合について述べる。そ
の他の場合については、従来のDDAと同様に、適宜座
標変換を行うことにより同様に適用することができる。
第3図は本発明方法による描画例を示す図である。第2
図を用いて本発明方法の実施例を詳細に説明する。第3
図の例では、傾きa−215の直線を描画する場合を示
している。この場合、連続する点列の個数として、傾き
aの逆数が5/2−2.5であるので、2又は3が考え
られる。ここで、連続する描画点列の個数を決定するた
めの定数すを求める。
b−1/2−2X (215)−−3/10となる。こ
のbの値はレジスタ2に格納される。
一方、第3図より点Pでの差分値dは−115である。
この差分値dはレジスタ1に格納される。
比較器3はレジスタ1,2に格納されているbの値とd
の値の絶対値同志とを比較する。d−115、b−3/
10であるので、dabとなる。従って、比較器3はP
点を含めて点列の個数は2個と判定する。描画部3は、
比較器3の出力を受けてビットマツプメモリ5の所定位
置に2個連続して描画する。この結果、点Pを含めて2
個目−y座標値の点が連続することになる。
次に点Sでの差分値dを求めると、点Pでの差分値d−
−115より d−−1,15+(215)x2−1 −215 となる。この値はレジスタ1に格納される。そして、比
較器3はレジスタ1に格納されているdの値−215と
レジスタ2に格納されているbの値3/10の絶対値同
志を比較する。dはbよりも大きいので、比較器3は描
画点列の個数は3であると判定する。描画部3は、比較
器3の出力を受けてビットマツプメモリ5の所定位置に
3個連続して描画する。この結果、点Sを含めて3個同
−y座標値の点が連続することになる。
次に、点Tでの差分値を求めると、点Sでの差分値d−
−215より d−−215+ (215)X3−1 −115 となる。この値はレジスタ1に格納される。そして、比
較器3はレジスタ1に格納されているdの値−115と
レジスタ2に格納されているbの値3/10の絶対値同
志を比較する。dはbよりも小さいので、比較器3は描
画点列の個数は2であると判定する。描画部3は、比較
器3の出力を受けてビットマツプメモリ5の所定位置に
2個連続して描画する。この結果、点Tを含めて2個同
−y座標値の点が連続することになる。
このようなシーケンスを繰返すことにより、直線を描画
することができる。本発明によれば同時に複数個の描画
点を得ることができるので、1個ずつ求めていた従来方
式に比較して描画速度が向上する。
上述の説明ては、31算のハ礎として分数を用いたが、
一般にコンピュータでは分数や少数の引算は不得手であ
り、定数値を乗じることにより整数化し、整数値を用い
て計算及び比較を行わせた方が処理速度が速くなる。
また、比較を行なわせる場合、定数値よりも0との比較
の方が一般に速度は速くなるので、予め差分値dから定
数すの値を減しておいて、以降は0との比較により条件
を判定するようにしてもよい。
[発明の効果] 以上、詳細に説明したように、本発明によれば傾きの小
さい直線は、それだけ横一列に並ぶ描画点の数か増える
ことに着目して一度に複数個の描画点を描画するように
した。これにより直線の描画を高速で効率よく行うこと
ができる直線描画方法を提供することができる。
【図面の簡単な説明】
第1図は本発明方法の原理を示すフローチャート、 第2図は本発明方法を実施するシステム構成例を示す図
、 第3図は本発明方法による描画例を示す図、第4図は従
来の直線描画方式の説明図、第5図は直線の傾きを示す
図である。 第2図において、 1.2はレジスタ、 3は比較器、 4は描画部、 5はビットマツプメモリである。 本発明方法を実施するシステム構成例を示す同第2図 本発明方法の原理を示すフローチャート第1図 本発明方法]二よる描画例を示す同 第3図 従来の直線描画方式の説明図 第4図 直線の傾きを示す図 第5図

Claims (1)

  1. 【特許請求の範囲】 ビットマップメモリに直線を表示させる場合において、 実際の直線の傾きをaとしてその逆数1/a1/a=t
    +s(tは整数、0≦s<1) を演算し(ステップ1)、 求めた傾きaより次式で示される値b b=1/2−t×a を求め(ステップ2)、 次に、連続する点列での最初の点と実際の直線との距離
    をdとしてdとaを比較し(ステップ3)d≧dの時に
    は連続する個数をt+1個とし、d<bの時には連続す
    る個数をt個とし(ステップ4)、 求まった数だけ点列を描画し(ステップ5)、dの値を
    次式で示されるdの値 d=d+a×(描画点の個数)−1 に修正し(ステップ6)、 次に全て点列の描画が終了したかどうかチェックし(ス
    テップ7)、終了していない場合にはステップ3まで戻
    って同じ描画操作を繰返すようにしたことを特徴とする
    直線描画方法。
JP28677989A 1989-11-02 1989-11-02 直線描画方法 Pending JPH03147190A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28677989A JPH03147190A (ja) 1989-11-02 1989-11-02 直線描画方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28677989A JPH03147190A (ja) 1989-11-02 1989-11-02 直線描画方法

Publications (1)

Publication Number Publication Date
JPH03147190A true JPH03147190A (ja) 1991-06-24

Family

ID=17708943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28677989A Pending JPH03147190A (ja) 1989-11-02 1989-11-02 直線描画方法

Country Status (1)

Country Link
JP (1) JPH03147190A (ja)

Similar Documents

Publication Publication Date Title
US5363479A (en) System and method for rendering bezier splines
EP1127337B2 (en) Shading 3-dimensional computer generated images
US7173633B2 (en) Method and system for inversion of detail-in-context presentations
US20020094132A1 (en) Method, apparatus and computer program product for generating perspective corrected data from warped information
US6295072B1 (en) Method and apparatus for rendering cubic curves
JP3352181B2 (ja) 画像データ処理方法および装置
EP0388089B1 (en) Image processing apparatus
EP0349182B1 (en) Method and apparatus for approximating polygonal line to curve
US7015930B2 (en) Method and apparatus for interpolating pixel parameters based on a plurality of vertex values
GB2226481A (en) Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system
JPH03147190A (ja) 直線描画方法
US4945497A (en) Method and apparatus for translating rectilinear information into scan line information for display by a computer system
US6646648B1 (en) Method and system for evaluating derivatives in screen space using perspective corrected barycentric coordinates
JP2878614B2 (ja) 画像合成方法及び装置
EP0339758B1 (en) Image processing apparatus for performing projective transformations
JPS6232519B2 (ja)
JPH06274613A (ja) 曲線近似装置
JPH0785266A (ja) 画像回転装置
JP2806185B2 (ja) 多角形塗りつぶし装置
JPH0660195A (ja) 曲面表示装置
JP2861097B2 (ja) 濃淡画像生成方法および装置
JP2861106B2 (ja) 濃淡画像生成方法および装置
JPH1049652A (ja) 3次元cadにおけるb−スプライン曲線と直線との交点算出方法
JP2932664B2 (ja) 1パス型図形形状特徴量計算装置
JPS62205482A (ja) Crtデイスプレイ装置のセグメント発生回路