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
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育成する。
メモリに直線を描画する場合における直線描画方法に関
し、 直線の描画を高速で効率よく行うことを目的とし、 ビットマツプメモリに直線を表示させる場合において、
実際の直線の傾きを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)が有名である。この方法は、実際の直線
とその直線に最も近い描画点との差を用いて次に描画す
べき点を決定する方法である。
線を描画する場合、その直線に最も近い格子点を選択し
、それらを描画することにより、擬似的に直線を表示す
るようになっている。従来の描画方式ではDDA (D
igital Differential Alg
orithm)が有名である。この方法は、実際の直線
とその直線に最も近い描画点との差を用いて次に描画す
べき点を決定する方法である。
第4図は従来の描画方式の説明図である。図に示す格子
点漢の距離は1に正規化されているものとする。図にお
いて、Ωが実際の直線である。
点漢の距離は1に正規化されているものとする。図にお
いて、Ωが実際の直線である。
今、図のPlが描画点であるものとすると、実際の直線
gと描画点21間の附属はdである。ここで、この直線
の傾きをa(Q<a<1.)とすると、その関係は第5
図に示すようなものとなる。
gと描画点21間の附属はdである。ここで、この直線
の傾きをa(Q<a<1.)とすると、その関係は第5
図に示すようなものとなる。
Plの次の描画点は、y値を+1したP2か、y値、y
値ともに+1したP3のうちのいずれか一方となる。
値ともに+1したP3のうちのいずれか一方となる。
この場合、d+a (dは正負の値をとるものとする)
が0.5よりも大きい場合には、直線Ωが格子と交わる
点AがP2とP3のどちらに近いかで決まる。d+aが
0.5よりも小さい時はP2が直線gに近いことになり
P2が次の描画点となる。これに対し、d+aが0.5
よりも大きい場合にはP3の方が直線gに近いことにな
り、P3が次の描画点となる。
が0.5よりも大きい場合には、直線Ωが格子と交わる
点AがP2とP3のどちらに近いかで決まる。d+aが
0.5よりも小さい時はP2が直線gに近いことになり
P2が次の描画点となる。これに対し、d+aが0.5
よりも大きい場合にはP3の方が直線gに近いことにな
り、P3が次の描画点となる。
このようにして1点ずつ描画点を算出しながら直線を描
画する方法がDDAである。
画する方法が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の値は
その絶対値で考えるものとする。
。本発明は、 ビットマツプメモリに直線を表示させる場合において、 実際の直線の傾きを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より算出された定数すがセット
される。
である。図において、1は実際の直線と描画点との差分
dを保持する第1のレジスタ、2は連続する描画点の個
数を算出するために使用される第2のレジスタであり、
描画に先立って傾き値aより算出された定数すがセット
される。
3は第1及び第2のレジスタの出力dとbとを比較して
連続する描画点の個数を決定する比較器、4は決定され
た連続する描画点の個数によりビットマツプメモリ5に
点を描画する描画部である。
連続する描画点の個数を決定する比較器、4は決定され
た連続する描画点の個数によりビットマツプメモリ5に
点を描画する描画部である。
ここで、連続する描画点とは、同−関数軸値をもつ点の
ことをいう。また、関数軸とは傾きが1以上の場合はy
軸、傾きか1以’FO以上の場合X軸をさす。以下の説
明では、傾きが0以上1以ドの場合について述べる。そ
の他の場合については、従来のDDAと同様に、適宜座
標変換を行うことにより同様に適用することができる。
ことをいう。また、関数軸とは傾きが1以上の場合はy
軸、傾きか1以’FO以上の場合X軸をさす。以下の説
明では、傾きが0以上1以ドの場合について述べる。そ
の他の場合については、従来のDDAと同様に、適宜座
標変換を行うことにより同様に適用することができる。
第3図は本発明方法による描画例を示す図である。第2
図を用いて本発明方法の実施例を詳細に説明する。第3
図の例では、傾きa−215の直線を描画する場合を示
している。この場合、連続する点列の個数として、傾き
aの逆数が5/2−2.5であるので、2又は3が考え
られる。ここで、連続する描画点列の個数を決定するた
めの定数すを求める。
図を用いて本発明方法の実施例を詳細に説明する。第3
図の例では、傾きa−215の直線を描画する場合を示
している。この場合、連続する点列の個数として、傾き
aの逆数が5/2−2.5であるので、2又は3が考え
られる。ここで、連続する描画点列の個数を決定するた
めの定数すを求める。
b−1/2−2X (215)−−3/10となる。こ
のbの値はレジスタ2に格納される。
の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座標値の点が連続することになる。
の値の絶対値同志とを比較する。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座標値の点が連続することになる。
−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座標値の点が連続することになる。
−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個ずつ求めていた従来方
式に比較して描画速度が向上する。
することができる。本発明によれば同時に複数個の描画
点を得ることができるので、1個ずつ求めていた従来方
式に比較して描画速度が向上する。
上述の説明ては、31算のハ礎として分数を用いたが、
一般にコンピュータでは分数や少数の引算は不得手であ
り、定数値を乗じることにより整数化し、整数値を用い
て計算及び比較を行わせた方が処理速度が速くなる。
一般にコンピュータでは分数や少数の引算は不得手であ
り、定数値を乗じることにより整数化し、整数値を用い
て計算及び比較を行わせた方が処理速度が速くなる。
また、比較を行なわせる場合、定数値よりも0との比較
の方が一般に速度は速くなるので、予め差分値dから定
数すの値を減しておいて、以降は0との比較により条件
を判定するようにしてもよい。
の方が一般に速度は速くなるので、予め差分値dから定
数すの値を減しておいて、以降は0との比較により条件
を判定するようにしてもよい。
[発明の効果]
以上、詳細に説明したように、本発明によれば傾きの小
さい直線は、それだけ横一列に並ぶ描画点の数か増える
ことに着目して一度に複数個の描画点を描画するように
した。これにより直線の描画を高速で効率よく行うこと
ができる直線描画方法を提供することができる。
さい直線は、それだけ横一列に並ぶ描画点の数か増える
ことに着目して一度に複数個の描画点を描画するように
した。これにより直線の描画を高速で効率よく行うこと
ができる直線描画方法を提供することができる。
第1図は本発明方法の原理を示すフローチャート、
第2図は本発明方法を実施するシステム構成例を示す図
、 第3図は本発明方法による描画例を示す図、第4図は従
来の直線描画方式の説明図、第5図は直線の傾きを示す
図である。 第2図において、 1.2はレジスタ、 3は比較器、 4は描画部、 5はビットマツプメモリである。 本発明方法を実施するシステム構成例を示す同第2図 本発明方法の原理を示すフローチャート第1図 本発明方法]二よる描画例を示す同 第3図 従来の直線描画方式の説明図 第4図 直線の傾きを示す図 第5図
、 第3図は本発明方法による描画例を示す図、第4図は従
来の直線描画方式の説明図、第5図は直線の傾きを示す
図である。 第2図において、 1.2はレジスタ、 3は比較器、 4は描画部、 5はビットマツプメモリである。 本発明方法を実施するシステム構成例を示す同第2図 本発明方法の原理を示すフローチャート第1図 本発明方法]二よる描画例を示す同 第3図 従来の直線描画方式の説明図 第4図 直線の傾きを示す図 第5図
Claims (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まで戻
って同じ描画操作を繰返すようにしたことを特徴とする
直線描画方法。
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) |
-
1989
- 1989-11-02 JP JP28677989A patent/JPH03147190A/ja active Pending
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デイスプレイ装置のセグメント発生回路 |