JPH0417081A - 線分近似座標発生方法 - Google Patents
線分近似座標発生方法Info
- Publication number
- JPH0417081A JPH0417081A JP12236590A JP12236590A JPH0417081A JP H0417081 A JPH0417081 A JP H0417081A JP 12236590 A JP12236590 A JP 12236590A JP 12236590 A JP12236590 A JP 12236590A JP H0417081 A JPH0417081 A JP H0417081A
- Authority
- JP
- Japan
- Prior art keywords
- coordinate
- approximate
- line segment
- value
- short axis
- 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
【発明の詳細な説明】
[産業上の利用分野]
本発明は、ラスクスキャン型ディスプレイ装置における
線分近似座標発生方法に関する。
線分近似座標発生方法に関する。
[従来の技術]
従来から図形を画面表示する装置が知られている。ラス
クスキャン型ディスプレイ装置はそのうち代表的なもの
である。
クスキャン型ディスプレイ装置はそのうち代表的なもの
である。
第3図には、ラスクスキャン型ディスプレイ装置の一例
の概略構成か示されている。
の概略構成か示されている。
この図においては、グラフィックプロセシングユニット
(GPU)10.ディジタル微分解析器(DDA)12
、フレームバッファ(FB)1.4及びCRT16がカ
スケード接続されている。
(GPU)10.ディジタル微分解析器(DDA)12
、フレームバッファ(FB)1.4及びCRT16がカ
スケード接続されている。
すなわち、GPUIOにホストコンピュータの指令によ
り図形データが供給されると、GPUIOはユーザの作
成したソフトウェアに従い動作する。DDA12は、G
PUIOの制御のもとに各種図形に係る座標値を発生さ
せ、図形情報を発生させる。この図形情報は、FB14
に格納され、CRT16の画面上に当該図形が表示され
ることになる。
り図形データが供給されると、GPUIOはユーザの作
成したソフトウェアに従い動作する。DDA12は、G
PUIOの制御のもとに各種図形に係る座標値を発生さ
せ、図形情報を発生させる。この図形情報は、FB14
に格納され、CRT16の画面上に当該図形が表示され
ることになる。
この図に示されるDDA12には、短軸座標カウンタS
d、長軸座標カウンタLd、長軸カウンタNL及び誤差
レジスタERがソフト的又はハト的に設けられている。
d、長軸座標カウンタLd、長軸カウンタNL及び誤差
レジスタERがソフト的又はハト的に設けられている。
これらは、線分の近似座標発生のためのものである。一
般に、図形表示において最も基本的な図形は線分である
。このため、DDA12における線分座標の発生方法が
各種開発されている。また、F B 1.4が離散的デ
ータのみを取り扱うことから、線分座標は本質的に近似
座標である。
般に、図形表示において最も基本的な図形は線分である
。このため、DDA12における線分座標の発生方法が
各種開発されている。また、F B 1.4が離散的デ
ータのみを取り扱うことから、線分座標は本質的に近似
座標である。
(1) Bresenhamアルゴリズムの原理ここで
まず、Bresenha11アルゴリズムの原理につい
て説明する。
まず、Bresenha11アルゴリズムの原理につい
て説明する。
Bresenhamアルゴリズムは、線分の近似座標を
発生する方法としてよく用いられる方法である。
発生する方法としてよく用いられる方法である。
Bresenhamアルゴリズムでは、ます線分のX座
標の変位dx及びY座標の変位dyが求められる。次に
、変位dxとdyが比較される。比較の結果、大きい方
の座標(X又はY)が長軸、小さい方(Y又はX)が短
軸とされる。これらの軸に沿った増分のうち、長軸に係
る増分は常に1とし、他方の短軸に係る増分は実際の線
分の座標に一番近い整数座標との誤差Eを調べて決定さ
れる。
標の変位dx及びY座標の変位dyが求められる。次に
、変位dxとdyが比較される。比較の結果、大きい方
の座標(X又はY)が長軸、小さい方(Y又はX)が短
軸とされる。これらの軸に沿った増分のうち、長軸に係
る増分は常に1とし、他方の短軸に係る増分は実際の線
分の座標に一番近い整数座標との誤差Eを調べて決定さ
れる。
このことを詳細に説明すると、以下のようになる。
まず、線分の始点がPs (Xs、 Ys) 、終点か
Pc(Xe、 Ye)であるとする。また、Xe>Xs
Ye>Ys。
Pc(Xe、 Ye)であるとする。また、Xe>Xs
Ye>Ys。
Xe−X5=2n、 Ye−Ys=2m+1 (ri
、 m :自然数)と仮定する。
、 m :自然数)と仮定する。
このとき、
Xes =Xe−Xs
Yes =Ye−Ys −(1)d
x= Xe5 dy= Yes l ・・・(
2)のように変位dx及びdyを求める。さらに、変位
dx及びdyの大小関係を両者の比較により求める。
x= Xe5 dy= Yes l ・・・(
2)のように変位dx及びdyを求める。さらに、変位
dx及びdyの大小関係を両者の比較により求める。
比較の結果、
dx > dy
となった場合、BresenhamアルゴリズムではX
座標か長軸、X座標が短軸に設定される。
座標か長軸、X座標が短軸に設定される。
今、近似される線分の真の座標値のうちX座標をX(i
)、本アルゴリズムにより得られる近似X座標をY(i
)、近似X座標Y(i)と真のY座標との誤差をE(i
)と表すことにする。ただし、iは自然数で長軸(この
場合X座標)に沿った位置を表している。この仮定の下
では、長軸に係る増分を常に1にとることは、 X(1) = X(+−1) +1 と表される。
)、本アルゴリズムにより得られる近似X座標をY(i
)、近似X座標Y(i)と真のY座標との誤差をE(i
)と表すことにする。ただし、iは自然数で長軸(この
場合X座標)に沿った位置を表している。この仮定の下
では、長軸に係る増分を常に1にとることは、 X(1) = X(+−1) +1 と表される。
ここで、FB14は離散的データしか取り扱えないため
、近似X座標Y(j)は整数である必要がある。すなわ
ち、真のY座標Y(i)は本来実数値であるが、これを
F B ]−4で取り扱うためには最も近い整数に近似
する必要かある。
、近似X座標Y(j)は整数である必要がある。すなわ
ち、真のY座標Y(i)は本来実数値であるが、これを
F B ]−4で取り扱うためには最も近い整数に近似
する必要かある。
この様な要請から、近似X座標Y(j)を求める際、誤
差E(j)なる指標を用いる。誤差E(i)は、E(i
)=E(i−1)+dx/dy =・(3)と
表される。すなわち、長軸に沿ってまたけ増加させてい
った場合のY座標の増過分(すなわち線分の勾配) d
x/dyを加算していくことにより求められる数値であ
る。
差E(j)なる指標を用いる。誤差E(i)は、E(i
)=E(i−1)+dx/dy =・(3)と
表される。すなわち、長軸に沿ってまたけ増加させてい
った場合のY座標の増過分(すなわち線分の勾配) d
x/dyを加算していくことにより求められる数値であ
る。
本アルゴリズムでは、誤差IE(J)の値に応じて近似
X座標Y(i)を次のように増加させる。
X座標Y(i)を次のように増加させる。
Y(1)−Y(i−1) +1 (E(i)≧1/
2)Y(i)= Y(i−1) (E(4)
< 1 / 2 )・・・(4) ここでYが増加された場合、 E(i)=E(i) −1・・・(5)を行う必要があ
る。すなわち、次回以降の近似X座標Y(t)のインク
リメント可否の判断を式(4)の分岐条件で行うため、
かかる処理を行う。
2)Y(i)= Y(i−1) (E(4)
< 1 / 2 )・・・(4) ここでYが増加された場合、 E(i)=E(i) −1・・・(5)を行う必要があ
る。すなわち、次回以降の近似X座標Y(t)のインク
リメント可否の判断を式(4)の分岐条件で行うため、
かかる処理を行う。
なお、E(j) = 1 / 2の場合、近似X座標Y
(i)は増加させずともよい。すなわち式(4)の分岐
条件の等号はいずれの条件式の不等号に付加されてもよ
い。
(i)は増加させずともよい。すなわち式(4)の分岐
条件の等号はいずれの条件式の不等号に付加されてもよ
い。
この式(4)及び(5)に従い近似X座標Y(i)を発
生させていこうとすると、増加可否の判定式か式(4)
の括弧内に示されるように1/2を境界とする式になる
。
生させていこうとすると、増加可否の判定式か式(4)
の括弧内に示されるように1/2を境界とする式になる
。
そこで、増加可否の判定を簡単にするために、誤差E(
j)に−1/2の値を有する初期値Eoを加えて判定す
る方法か採られている。
j)に−1/2の値を有する初期値Eoを加えて判定す
る方法か採られている。
この方法を採用する場合、式(4)は次のように変形さ
れる。
れる。
Y(i)−Y(j−1)+ 1 (E(i)十Eo
≧0)Y(i)=Y(i−]) (E(t)
+Eo< 0)従って、括弧内が符号判定式となり、増
加可否の判定が簡単になる。
≧0)Y(i)=Y(i−]) (E(t)
+Eo< 0)従って、括弧内が符号判定式となり、増
加可否の判定が簡単になる。
(2) 13resenhamアルゴリズムの初期動作
次に、実際にI)DA12によりBresenhamア
ルゴリズムを稼働させる場合の流れについて説明する。
次に、実際にI)DA12によりBresenhamア
ルゴリズムを稼働させる場合の流れについて説明する。
第4図には、Bresenhamアルゴリズムの初期動
作の流れが示されている。
作の流れが示されている。
動作開始]−〇〇直後には、まず始点Psと終点Pe0
間の変位dx及びdyを求める演算が行われる(102
.104)。この演算は、前述の式(1)及び(2)に
より行われる。
間の変位dx及びdyを求める演算が行われる(102
.104)。この演算は、前述の式(1)及び(2)に
より行われる。
このようにして求められた変位dx及びdyは、次にそ
の大小か比較される(106)。この結果、前者が大の
場合にはステップ108−・、小の場合にはステップ1
10へ移行する。
の大小か比較される(106)。この結果、前者が大の
場合にはステップ108−・、小の場合にはステップ1
10へ移行する。
ステップ108へ移行した場合、X座標が長軸、Y座標
が短軸に設定される。すなわち、このステップ108及
び引き続くステップ112.114により、以下の演算
か行われる。
が短軸に設定される。すなわち、このステップ108及
び引き続くステップ112.114により、以下の演算
か行われる。
5s=Ys、 5e=Ye
Ls=XsSLe=Xe −’−(7)
Ses =Yes 、、 Les、=Xes −
(8)dS=dy、 dL−dx ・・
・(9)ここで、Ss及びSeは短軸の始点及び終点座
標、Ls及びLeは長軸の始点及び終点座標、Ses及
びLeSは短軸及び長軸に沿った座標差、ds及びdL
は短軸及び長軸に沿った変位である。
Ses =Yes 、、 Les、=Xes −
(8)dS=dy、 dL−dx ・・
・(9)ここで、Ss及びSeは短軸の始点及び終点座
標、Ls及びLeは長軸の始点及び終点座標、Ses及
びLeSは短軸及び長軸に沿った座標差、ds及びdL
は短軸及び長軸に沿った変位である。
他方、ステップ110に移行した場合には、Y座標が長
袖、X座標が短軸に設定される。この場合のステップ1
10及び引き続くステップ116.118の演算は、式
(7)〜(9)のX、Yを入れ替えた演算となる。
袖、X座標が短軸に設定される。この場合のステップ1
10及び引き続くステップ116.118の演算は、式
(7)〜(9)のX、Yを入れ替えた演算となる。
ステップ114又は118の終了後、すなわち短軸・長
軸の設定後には、ステップ120〜126による初期設
定が行われる。このうち、ステップ120では座標差S
es及びl、esの符号に応じて長軸及び短軸座標カウ
ンタScl及びLdのup、 d。
軸の設定後には、ステップ120〜126による初期設
定が行われる。このうち、ステップ120では座標差S
es及びl、esの符号に応じて長軸及び短軸座標カウ
ンタScl及びLdのup、 d。
wnが設定される。ステップ122では誤差E(i)の
初期値Eoか一1/2に設定され、ステップ124では
誤差E(t)の補正値Ecが−1に設定され、ステップ
126ては誤差E(1)の増過分Edがds/dLに設
定される。
初期値Eoか一1/2に設定され、ステップ124では
誤差E(t)の補正値Ecが−1に設定され、ステップ
126ては誤差E(1)の増過分Edがds/dLに設
定される。
これにより、Bresenhamアルゴリズムの初期動
作が終了する(128)。
作が終了する(128)。
(3) Brcsenhamアルゴリズムの近似座標発
生処理 第5図には、Bresenhamアルゴリズムにおける
近似座標発生処理の流れが示されている。
生処理 第5図には、Bresenhamアルゴリズムにおける
近似座標発生処理の流れが示されている。
近似座標発生処理の開始直後(200)には、短軸及び
長軸の始点座標Ss及びLsが短軸及び長軸座標カウン
タSd及びLdにセラ)・される(202)。さらに、
長軸カウンタNLに長軸に沿った変位dL、すなわち後
述する演算ループの繰り返し回数が設定される( 20
4.)。さらに、誤差レジスタERに初期値Eoがセッ
トされる(206)。
長軸の始点座標Ss及びLsが短軸及び長軸座標カウン
タSd及びLdにセラ)・される(202)。さらに、
長軸カウンタNLに長軸に沿った変位dL、すなわち後
述する演算ループの繰り返し回数が設定される( 20
4.)。さらに、誤差レジスタERに初期値Eoがセッ
トされる(206)。
こののち、線分近似のためのループ動作に移行する。こ
のループにおいては、まずFBl−4に対する短軸及び
長軸座標カウンタSd及びLdの内容の出力が行われる
(208)。F B :1.4に係る出力が書き込まれ
ると、CRT16の画面上に線分が表示される。
のループにおいては、まずFBl−4に対する短軸及び
長軸座標カウンタSd及びLdの内容の出力が行われる
(208)。F B :1.4に係る出力が書き込まれ
ると、CRT16の画面上に線分が表示される。
次に、長軸カウンタNLかデクリメントされ(210)
、その内容が0となるか否かが判定される(212)。
、その内容が0となるか否かが判定される(212)。
この結果、Oとならない場合には線分近似座標の発生が
終了していないため判定214に移り、0となる場合は
ループを抜は出し処理を終了する(216)。
終了していないため判定214に移り、0となる場合は
ループを抜は出し処理を終了する(216)。
判定2]4においては、誤差レジスタERの内容が0以
上であるか否かか判定される。これは、式(6)の括弧
内の判定式に対応する動作である。
上であるか否かか判定される。これは、式(6)の括弧
内の判定式に対応する動作である。
0以上とされた場合には、短軸の座標値、すなわち短軸
座標カウンタSdをインクリメントするステップ218
に移る。さらに、ステップ220に移行し、誤差レジス
タERの内容に補正値Ecを加算する。すなわち、式(
5)を実行する。
座標カウンタSdをインクリメントするステップ218
に移る。さらに、ステップ220に移行し、誤差レジス
タERの内容に補正値Ecを加算する。すなわち、式(
5)を実行する。
判定214において0より小と判定された場合及びステ
ップ220の終了後には、ステップ222に移行する。
ップ220の終了後には、ステップ222に移行する。
ステップ222では、誤差レジスタERにさらに増過分
Edが加算される。すなわち、式(3)が実行される。
Edが加算される。すなわち、式(3)が実行される。
こののち、長軸の座標値、すなわち長軸座標カウンタL
dがインクリメントされる。
dがインクリメントされる。
このようにして、BresenhaT11アルゴリズム
が実行され線分の近似座標か発生する。
が実行され線分の近似座標か発生する。
[発明が解決しようとする課題]
(1)従来の問題点
前述のBresenhamアルゴリズムでは、長軸の変
位が偶数、短軸の変位が奇数の場合、始点Psと終点P
eを入れ換えて近似座標を求めると、中点の近似座標が
一致しないという問題がある。
位が偶数、短軸の変位が奇数の場合、始点Psと終点P
eを入れ換えて近似座標を求めると、中点の近似座標が
一致しないという問題がある。
以下この問題を詳細に説明する。
状況として、Ps (Xs、 Ys)及びPe(Xe、
Ye)を両端とし、Xe>Xs、 Ye>Ysの線分
を考える。また、dx=Xe−Xs= 2n 、 dy
=Ye−Ys= 2+++ + 1 (nm 、自然数
)とすれば、n >mのときX座標が長軸、n=川のと
きY座標が長軸となる。
Ye)を両端とし、Xe>Xs、 Ye>Ysの線分
を考える。また、dx=Xe−Xs= 2n 、 dy
=Ye−Ys= 2+++ + 1 (nm 、自然数
)とすれば、n >mのときX座標が長軸、n=川のと
きY座標が長軸となる。
この線分の中点近似座標Pn(Xn 、 Yn)を、始
点と終点を入れ換えた2つの場合について求めてみる。
点と終点を入れ換えた2つの場合について求めてみる。
■始点をPs、終点をPeとした場合
この場合、Y座標を長軸として中点近似X座標Xnを前
述のアルゴリズムで求めると、次の式のようになる。す
なわち Xn=X5+n となる。この値は整数なので、そのまま中点近似X座標
Xnとなる。
述のアルゴリズムで求めると、次の式のようになる。す
なわち Xn=X5+n となる。この値は整数なので、そのまま中点近似X座標
Xnとなる。
また、X座標が長軸となるときには中点近似Y座標Yn
は Yn=Ys+n(2m +1 ) / 2n=Ys+m
+1/2 =Ys+(m+1) −1/2 −(10)とな
る。ただし、このYnは実数であるため整数近似した値
が中点近似Y座標Ynかとされる。式(10)かられか
るように、整数近似するとすればYs+■又はYs+(
m+1)のいずれかである。前掲の式(6)に従うとす
ると、中点近似Y座標はYs+(m+1)とされる。
は Yn=Ys+n(2m +1 ) / 2n=Ys+m
+1/2 =Ys+(m+1) −1/2 −(10)とな
る。ただし、このYnは実数であるため整数近似した値
が中点近似Y座標Ynかとされる。式(10)かられか
るように、整数近似するとすればYs+■又はYs+(
m+1)のいずれかである。前掲の式(6)に従うとす
ると、中点近似Y座標はYs+(m+1)とされる。
まとめると、近似座標は次のようになる。
Xn=X5+n
Yn=Ys+ (m+ 1 ) −(1
] )■始点をPc、終点をPsとした場合 この場合も同様の演算を行うと、 Xn=Xe−n Yn=Ye+(2E + 1) / 2n * (−n
)=Ye −(m + 1 / 2) =Ye−■−1/2 となり、式(6)の判定式に基つきまとめるとXn=X
e−n Yn=Ye −(m +1) −(] 2)
となる。
] )■始点をPc、終点をPsとした場合 この場合も同様の演算を行うと、 Xn=Xe−n Yn=Ye+(2E + 1) / 2n * (−n
)=Ye −(m + 1 / 2) =Ye−■−1/2 となり、式(6)の判定式に基つきまとめるとXn=X
e−n Yn=Ye −(m +1) −(] 2)
となる。
■両者の比較
次に、始点をPe、終点をPsとした場合の式(12)
の変形を行い、始点をPs、終点をPeとした場合の式
(11)と比較する。
の変形を行い、始点をPs、終点をPeとした場合の式
(11)と比較する。
まず、式(12)のうち
Xn=Xe−n
に仮定Xe−X5=2nを代入してXeを消去するとX
n= (2n +Xs) −n =Xs+n となる。これは式(11)と一致するため、変位が偶数
のX座標が短軸、変位が奇数のY座標が長軸となる場合
には点Pe及びPsのうちいずれを始点にしても同じ中
点近似座標か得られることになる。
n= (2n +Xs) −n =Xs+n となる。これは式(11)と一致するため、変位が偶数
のX座標が短軸、変位が奇数のY座標が長軸となる場合
には点Pe及びPsのうちいずれを始点にしても同じ中
点近似座標か得られることになる。
一方、式(12)のうち
Yn=Ye −(m + 1)
に仮定’Ve−Ys= 2m + 1を代入してYeを
消去すると Yn= (2m +1 +Ys) −(+n +1)=
Ys+m となり、これは式(11)と一致しない。
消去すると Yn= (2m +1 +Ys) −(+n +1)=
Ys+m となり、これは式(11)と一致しない。
これは、短軸の変位か奇数で長軸の変位が偶数の場合に
いずれの点を始点とするかで中点近似座標が異なること
を示している。
いずれの点を始点とするかで中点近似座標が異なること
を示している。
(2)問題発生の具体例
以上述べた中点近似座標不一致の問題は、具体的にはこ
の近似座標発生方法による直線の表示、その組み合わせ
である図形の描画等の場合に顕在化する。
の近似座標発生方法による直線の表示、その組み合わせ
である図形の描画等の場合に顕在化する。
■第6図(a)の例
図形A、Bか1つの線分P3−P4を共用するとき、こ
の線分P3−P4は2つの図形A、Bの描画の際にそれ
ぞれ描画される。このとき、図において矢印3.00−
1及び300−2で示される方向で図形A及びBに係る
描画が行われると、それぞれの描画について異なる2個
の中点座標が生じることがある。この場合、線分P:3
−P4が部分的に2重化する。
の線分P3−P4は2つの図形A、Bの描画の際にそれ
ぞれ描画される。このとき、図において矢印3.00−
1及び300−2で示される方向で図形A及びBに係る
描画が行われると、それぞれの描画について異なる2個
の中点座標が生じることがある。この場合、線分P:3
−P4が部分的に2重化する。
■第6図(b)の例
図形(この図では“A”文字)を回転させると、同し文
字であっても描画方向が変わってしまう。
字であっても描画方向が変わってしまう。
この場合、中点座標が1−ドツトすれてしまい同し形の
図形にならない。
図形にならない。
■線分消去時の不具合
本アルゴリズムで描画された線分を消去する場合、一般
に、描画時と同じ始点、終点の線分で“0”書き込みを
行う。かかる書き込みにより、描画時に“1”となって
いたドツトが“0″゛となり、線分が消去されることに
なる。しかし、消去時に始点と終点か入れ換わってしま
った場合、“0′′書き込みによっても中点近似座標不
一致により消し残しが発生してしまう。
に、描画時と同じ始点、終点の線分で“0”書き込みを
行う。かかる書き込みにより、描画時に“1”となって
いたドツトが“0″゛となり、線分が消去されることに
なる。しかし、消去時に始点と終点か入れ換わってしま
った場合、“0′′書き込みによっても中点近似座標不
一致により消し残しが発生してしまう。
■従来においては、これらの間融を解決するために線分
の描画方向をいずれかに固定して処理していた。従って
、描画したい線分の描画方向か決められた方向と違う場
合には始点と終点を入れ換えなければならず、このため
処理速度か遅くなる、回路部品点数が増えるといった不
具合か生じていた。
の描画方向をいずれかに固定して処理していた。従って
、描画したい線分の描画方向か決められた方向と違う場
合には始点と終点を入れ換えなければならず、このため
処理速度か遅くなる、回路部品点数が増えるといった不
具合か生じていた。
(3)発明の目的
本発明は、この様な問題点を解決することを課題として
なされたものであり、描画方向により近似座標の値が変
イっることがなく、従って処理速度が速(DDAが簡易
な回路構成でよい線分近似座標発生方法を提供すること
を目的とする。
なされたものであり、描画方向により近似座標の値が変
イっることがなく、従って処理速度が速(DDAが簡易
な回路構成でよい線分近似座標発生方法を提供すること
を目的とする。
[課題を解決するための手段]
このような目的を達成するために、本発明は、誤差E(
1)の値か所定値に等しいときに、短軸の増加方向が正
の場合には短軸近似座標に前記加算を施し、負の場合に
はそのまま維持することを特徴とする。
1)の値か所定値に等しいときに、短軸の増加方向が正
の場合には短軸近似座標に前記加算を施し、負の場合に
はそのまま維持することを特徴とする。
[作用]
本発明の線分近似座標発生方法においては、解決するも
のであり、誤差IE(i)の値か所定値、例えば1/2
に等しいときに、短軸の増加方向に応じて短軸近似座標
の加算可否が決定される。すなわち、短軸の増加方向が
正の場合には加算され、負の場合には加算されない。従
って、始点と終点の入れ替えによる座標値の変化が発生
せず、同一の近似座標か簡易な手段で得られることにな
る。
のであり、誤差IE(i)の値か所定値、例えば1/2
に等しいときに、短軸の増加方向に応じて短軸近似座標
の加算可否が決定される。すなわち、短軸の増加方向が
正の場合には加算され、負の場合には加算されない。従
って、始点と終点の入れ替えによる座標値の変化が発生
せず、同一の近似座標か簡易な手段で得られることにな
る。
[実施例]
以下、本発明の好適な実施例について図面に基づき説明
する。なお、第3図乃至第6図に示される従来例と同様
の構成には同一の符号を伺し説明を省略する。
する。なお、第3図乃至第6図に示される従来例と同様
の構成には同一の符号を伺し説明を省略する。
第1図及び第2図は、本発明の一実施例に係る線分近似
座標発生方法の流れが示されている。このうち、第1図
は初期演算、第2図は近似座標発生処理を示している。
座標発生方法の流れが示されている。このうち、第1図
は初期演算、第2図は近似座標発生処理を示している。
本実施例に係る方法を実現するための装置としては、例
えば第3図に示されるような構成かあげられる。このた
め、以下の説明では本発明の動作についてのみ説明する
。
えば第3図に示されるような構成かあげられる。このた
め、以下の説明では本発明の動作についてのみ説明する
。
(1)実施例の初期演算
第1図に示される初期演算において、ステップ100〜
120は第4図の従来例と同様の処理である。
120は第4図の従来例と同様の処理である。
ステップ120の終了後、ずなわぢ長軸及び短軸座標カ
ウンタLd及びSdのup、down設定の後、本発明
の特徴に係る動作130〜138に移行する。
ウンタLd及びSdのup、down設定の後、本発明
の特徴に係る動作130〜138に移行する。
まず、判定130において短軸に沿った座標差Sesが
0より大であるか否かが判定される。これは、短軸に沿
った座標増加方向が正方向であるか否かの判定に相当す
る。
0より大であるか否かが判定される。これは、短軸に沿
った座標増加方向が正方向であるか否かの判定に相当す
る。
次に、判定130の結果に応してステップ132又は1
34に分岐する。すなわち、Ses>Oの場合にはステ
ップ]32、Ses≦Oの場合にはステップ134に移
る。
34に分岐する。すなわち、Ses>Oの場合にはステ
ップ]32、Ses≦Oの場合にはステップ134に移
る。
この実施例においては、演算の簡略化のために従来例に
おいて示されている数式のうち、Eo−−1/2 E(j) = E(t−1) 十dS/dLE(i)
= E(i)−1 E(i)+IEo≧0 を以下のように変形している。
おいて示されている数式のうち、Eo−−1/2 E(j) = E(t−1) 十dS/dLE(i)
= E(i)−1 E(i)+IEo≧0 を以下のように変形している。
Eo=−dL
E(+) = E(+)−1−2dS
E(t)=E(i) −2dL
E(i)+Eo≧0
すなわち、従来式の両辺に2dLを乗じ、2dl、E(
i)を新たにE(i)とおく。これにより、以後の演算
における除算の削除、演算数値の整数化を実現している
。
i)を新たにE(i)とおく。これにより、以後の演算
における除算の削除、演算数値の整数化を実現している
。
ステップ132又は134以降は、この様な変形式に従
い実行される。
い実行される。
まず、ステップ132では誤差E(f)の初期値E。
に−dLを、他方ステップ134では−dL−1を設定
し、終了後は共にステップ136に移行する。
し、終了後は共にステップ136に移行する。
これらのステップ132及び1−34により、異なる値
を初期値EOに設定する点が、本発明の特徴に係る動作
である。
を初期値EOに設定する点が、本発明の特徴に係る動作
である。
すなわち、Ses>0であり短軸の増加方向が正方向の
場合には従来と同様の初期値Eoの設定を行い、Ses
≦0であり短軸の増加方向か負方向の場合にはさらに1
を減算した値の設定を行う。
場合には従来と同様の初期値Eoの設定を行い、Ses
≦0であり短軸の増加方向か負方向の場合にはさらに1
を減算した値の設定を行う。
この設定は、短軸の増加方向が負方向かっE(i)−〇
の場合にE(i)+Eo≧0が成立しないようにする役
割を果たす。
の場合にE(i)+Eo≧0が成立しないようにする役
割を果たす。
ステップ]36では誤差E(i)の補正値Ecが一2d
Lに、続き実行されるステップ138では誤差E(i)
の増過分Edが2dSに、それぞれ設定され、そののち
終了する(128)。
Lに、続き実行されるステップ138では誤差E(i)
の増過分Edが2dSに、それぞれ設定され、そののち
終了する(128)。
(2)実施例の近似座標発生処理
第2図には、本実施例の近似座標発生処理の流れが示さ
れているが、この動作は第5図に示される従来動作と同
様である。
れているが、この動作は第5図に示される従来動作と同
様である。
(3)従来との比較
第2図及び第2図に示される流れに従い短軸の変位が奇
数で長袖の変位が偶数の線分をJj’7i画する場合を
考える。比較の便宜のため、線分の両端の点をPs (
Xs、 Ys)及びPc(Xc、 Yc)と設定し、X
e>Xs、 Ye>Ys、 dx=Xe−Xs=2n
、 dy=Ye−Ys=2m +1 (n、 m :
自然数)の関係が成立しているとする。
数で長袖の変位が偶数の線分をJj’7i画する場合を
考える。比較の便宜のため、線分の両端の点をPs (
Xs、 Ys)及びPc(Xc、 Yc)と設定し、X
e>Xs、 Ye>Ys、 dx=Xe−Xs=2n
、 dy=Ye−Ys=2m +1 (n、 m :
自然数)の関係が成立しているとする。
この場合、始点かPS%終点がPeならば、Y座標及び
X座標をそれぞれ長軸とした場合の中点近似X座標Xn
及び中点近似Y座標Ynを実数で求めると、前述のよう
に Xn=X5+n Yn=Ys+n(2m + ] )/ 2n=Ys十
m +1/2 =Ys+(m+1) −1/2 となる。
X座標をそれぞれ長軸とした場合の中点近似X座標Xn
及び中点近似Y座標Ynを実数で求めると、前述のよう
に Xn=X5+n Yn=Ys+n(2m + ] )/ 2n=Ys十
m +1/2 =Ys+(m+1) −1/2 となる。
このうち中点近似X座標Xnは繁数であるため、そのま
ま中点近似X座標Xnとして採用し得る。
ま中点近似X座標Xnとして採用し得る。
他方、中点近似Y座標Ynは実数であるため、整数近似
した値を中点近似X座標Ynとして採用する必要がある
。
した値を中点近似X座標Ynとして採用する必要がある
。
中点近似Y座標Ynとして採用する値としては、前にも
述べたようにYs+mとYs +(m @−1,)の2
種類がある。従来例ではステップ122で設定される初
期値Eoの値に基づき行われる判定214の結果、後者
、すなわちYs十(rn+1− )が採用される。
述べたようにYs+mとYs +(m @−1,)の2
種類がある。従来例ではステップ122で設定される初
期値Eoの値に基づき行われる判定214の結果、後者
、すなわちYs十(rn+1− )が採用される。
本実施例ではステップ132で設定される初期値Eoの
値に基づき行われる判定2]4の結果、やはりys十(
m+1 )が採用される。
値に基づき行われる判定2]4の結果、やはりys十(
m+1 )が採用される。
従って、本実施例では中点近似座標は最終的にXn=X
5+n Yn−4s+ (m+ 1. ) −(1
,3)となる。
5+n Yn−4s+ (m+ 1. ) −(1
,3)となる。
逆に、始点がPe、終点がPsの場合、中点近似X座標
Xn及び中点近似X座標Ynを実数で求めると、前述の
ように Xn−Xe−n Yn=Ye十(2m + 1)/2n * (−
n )=Ye −(m + 1 / 2) =Ye−m−1/2 となる。
Xn及び中点近似X座標Ynを実数で求めると、前述の
ように Xn−Xe−n Yn=Ye十(2m + 1)/2n * (−
n )=Ye −(m + 1 / 2) =Ye−m−1/2 となる。
この場合にも、中点近似X座標Xnは整数となりそのま
ま採用し得るが、中点近似X座標Ynは実数であるため
整数近似する必要がある。従来例では、結果としてYn
=Ye −(111+1)に近似されていたが、本実施
例ではステップ134が実行されるためYe−mに近似
される。
ま採用し得るが、中点近似X座標Ynは実数であるため
整数近似する必要がある。従来例では、結果としてYn
=Ye −(111+1)に近似されていたが、本実施
例ではステップ134が実行されるためYe−mに近似
される。
すなわち本実施例ではこの場合の中点近似座標は
Xn=Xe−n
Yn=Ye−m ・=
(1,4)となる。
(1,4)となる。
この様にして始点・終点を入れ替えた場合の中点近似座
標が求められたが、これらを比較すると次のように一致
することがわかる。
標が求められたが、これらを比較すると次のように一致
することがわかる。
すなわち、式(14)において変位dy−Ye−Ys−
2m+1を変形し代入すると、 Yn−(Ys+ 2m + 1 ) −m=Y
s+(m+1 ) となり、式(13)とまったく同じ値に近似されている
ことが明らかとなる。
2m+1を変形し代入すると、 Yn−(Ys+ 2m + 1 ) −m=Y
s+(m+1 ) となり、式(13)とまったく同じ値に近似されている
ことが明らかとなる。
従って、本実施例においては、前述の初期値設定により
従来と同様の近似座標発生処理で描画方向による近似座
標の差の発生を防止することができる。
従来と同様の近似座標発生処理で描画方向による近似座
標の差の発生を防止することができる。
[発明の効果]
以上説明したように、本発明によれば、短軸増加方向に
応じて初期値設定を変更するようにしたため、1本の線
分を異なる短軸増加方向で近似する際の近似座標の差の
発生が防止できる。この結果、例えば1個の線分を共用
する図形の描画の際、共用される線分が2重化すること
がない。また、図形に回転等の処理を施した場合にも描
画方向による図形変化が生しない。さらに、線分消去に
おける消し残しが防止される。
応じて初期値設定を変更するようにしたため、1本の線
分を異なる短軸増加方向で近似する際の近似座標の差の
発生が防止できる。この結果、例えば1個の線分を共用
する図形の描画の際、共用される線分が2重化すること
がない。また、図形に回転等の処理を施した場合にも描
画方向による図形変化が生しない。さらに、線分消去に
おける消し残しが防止される。
従って、従来において採用されていた方法、例えば描画
方向の固定を廃止することができ、始点・終点の入れ替
えが不必要となる。この結果、簡易な改良で処理速度の
高速化、回路構成の肥大防止等の効果を得ることかでき
る。
方向の固定を廃止することができ、始点・終点の入れ替
えが不必要となる。この結果、簡易な改良で処理速度の
高速化、回路構成の肥大防止等の効果を得ることかでき
る。
第1図は、本発明の一実施例に係る線分近似座標発生方
法の初期演算のフローチャート図、第2図は、この実施
例における近似座標発生処理のフローチャート図、 第3図は、ラスクスキャン型ディスプレイ装置の一般的
な構成を示すブロック図、 第4図は、Bresenhamアルゴリズムによる線分
近似座標発生方法の初期演算のフローチャート図、第5
図は、Bresenha11アルゴリズム方式による線
分近似座標発生方法の近似座標発生処理のフローチャー
ト図、 第6図(a)は、2個の図形が線分P 3−P4を共有
している場合の線分の描画方向を示す図、第6図(b)
は、3本の線分で構成されている文字“A”の回転前と
回転後の線分の描画方向を示す図である。 12 ・・ 14 ・・・ 16 ・・・ Sd ・・ Ld ・・ NL ・・・ ER・・ E(i) ・・・ Eo ・・・ Ec ・・・ Ed ・・・ x ay ・・ ds ・・・ dL ・・ ディジタル微分回折器 フレームバッファ RT 短軸座標カウンタ 長軸座標カウンタ 長軸カウンタ 誤差レジスタ 誤差 誤差の初期値 誤差の補正値 誤差の増過分 X座標の変位 X座標の変位 短軸座標の変位 長軸座標の変位
法の初期演算のフローチャート図、第2図は、この実施
例における近似座標発生処理のフローチャート図、 第3図は、ラスクスキャン型ディスプレイ装置の一般的
な構成を示すブロック図、 第4図は、Bresenhamアルゴリズムによる線分
近似座標発生方法の初期演算のフローチャート図、第5
図は、Bresenha11アルゴリズム方式による線
分近似座標発生方法の近似座標発生処理のフローチャー
ト図、 第6図(a)は、2個の図形が線分P 3−P4を共有
している場合の線分の描画方向を示す図、第6図(b)
は、3本の線分で構成されている文字“A”の回転前と
回転後の線分の描画方向を示す図である。 12 ・・ 14 ・・・ 16 ・・・ Sd ・・ Ld ・・ NL ・・・ ER・・ E(i) ・・・ Eo ・・・ Ec ・・・ Ed ・・・ x ay ・・ ds ・・・ dL ・・ ディジタル微分回折器 フレームバッファ RT 短軸座標カウンタ 長軸座標カウンタ 長軸カウンタ 誤差レジスタ 誤差 誤差の初期値 誤差の補正値 誤差の増過分 X座標の変位 X座標の変位 短軸座標の変位 長軸座標の変位
Claims (1)
- ディスプレイ装置の画面上に描画する線分の始点及び終
点の座標値に基づき短軸及び長軸を設定し、長軸を所定
値ずつ増加させた際の短軸方向の線分座標の増加分を演
算したのち、長軸座標を始点の長軸座標値から所定量刻
みで終点まで増加させながら、線分座標の増加分を累積
加算し短軸近似座標の増加に伴い所定量を減算すること
による短軸近似座標の加算の指標値たる誤差値の演算と
、この誤差値が所定値以上のときには短軸近似座標に所
定量を加算し、誤差値が所定値以下のときには短軸近似
座標をそのまま維持する近似座標演算と、を行う線分近
似座標発生方法において、誤差値が所定値に等しいとき
に、短軸の増加方向が正の場合には短軸近似座標に前記
加算を施し、負の場合にはそのまま維持することを特徴
とする線分近似座標発生方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12236590A JPH0417081A (ja) | 1990-05-10 | 1990-05-10 | 線分近似座標発生方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12236590A JPH0417081A (ja) | 1990-05-10 | 1990-05-10 | 線分近似座標発生方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0417081A true JPH0417081A (ja) | 1992-01-21 |
Family
ID=14834076
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP12236590A Pending JPH0417081A (ja) | 1990-05-10 | 1990-05-10 | 線分近似座標発生方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0417081A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8826516B2 (en) | 2008-11-28 | 2014-09-09 | Thyssenkrupp Elevator Ag | Method for applying magnets |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS628275A (ja) * | 1985-07-03 | 1987-01-16 | Fujitsu Ltd | ベクトル描画方式 |
-
1990
- 1990-05-10 JP JP12236590A patent/JPH0417081A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS628275A (ja) * | 1985-07-03 | 1987-01-16 | Fujitsu Ltd | ベクトル描画方式 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8826516B2 (en) | 2008-11-28 | 2014-09-09 | Thyssenkrupp Elevator Ag | Method for applying magnets |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20020109687A1 (en) | Visibility and usability of displayed images | |
| JPS5995669A (ja) | 図形処理装置 | |
| JP2005038263A (ja) | 画像処理装置、画像処理方法、記録媒体及びプログラム | |
| KR100376196B1 (ko) | 아웃라인 스무딩 처리 방법, 장치 및 기억매체 | |
| JPH0417081A (ja) | 線分近似座標発生方法 | |
| JPH0322186A (ja) | 画像出力方法 | |
| US20090073180A1 (en) | Graphics drawing apparatus, method, and program and recording medium on which the program is recorded | |
| US20070216688A1 (en) | Display program, data structure and display device | |
| JP3146771B2 (ja) | フォントラスタライズ装置およびその方法 | |
| JPH02235185A (ja) | 図形再生方法 | |
| JP3382546B2 (ja) | 座標群湾曲化補正装置および座標群湾曲化補正方法 | |
| KR19980026643A (ko) | 고속 그래픽드로잉 방법 | |
| JP2886702B2 (ja) | アウトラインフォント処理装置 | |
| JP2888270B2 (ja) | 図形処理装置及びその方法 | |
| KR100324755B1 (ko) | 그래픽 처리기의 클리핑 장치 및 방법 | |
| JP2908194B2 (ja) | 文字の変形制御方式 | |
| JPS63217394A (ja) | 文字輪郭線生成方式 | |
| CN119473204A (zh) | 一种激光加工显控界面装置 | |
| JPS5872242A (ja) | 円孤表示方式 | |
| JP2897721B2 (ja) | 多角形二重化装置 | |
| JP2984336B2 (ja) | 図形処理方法 | |
| JPH03196379A (ja) | 描画演算処理装置 | |
| CN118485804A (zh) | 一种矢量图案扭曲绘制方法、装置、电子设备及介质 | |
| JPH03280095A (ja) | 画像処理方法 | |
| JPH0594365A (ja) | パターン描画方式 |