JPH0640349B2 - ディジタル図形処理方法 - Google Patents
ディジタル図形処理方法Info
- Publication number
- JPH0640349B2 JPH0640349B2 JP24568684A JP24568684A JPH0640349B2 JP H0640349 B2 JPH0640349 B2 JP H0640349B2 JP 24568684 A JP24568684 A JP 24568684A JP 24568684 A JP24568684 A JP 24568684A JP H0640349 B2 JPH0640349 B2 JP H0640349B2
- Authority
- JP
- Japan
- Prior art keywords
- dot
- register
- straight line
- sequentially
- plane
- 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.)
- Expired - Lifetime
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は、ディジタル図形処理方法に関し、更に詳しく
は、画像メモリ等にあって、2組の与えられた2点を通
る直線の交点に対応するドットを簡単な構成で精度良く
抽出することのできるディジタル図形処理方法に関する
ものである。
は、画像メモリ等にあって、2組の与えられた2点を通
る直線の交点に対応するドットを簡単な構成で精度良く
抽出することのできるディジタル図形処理方法に関する
ものである。
(従来の技術) 例えばファクシミリ装置等のディジタル図形読み取り/
再生装置では、強調表示の対象とする、または図形塗り
潰し処理の境界点とする等の種々の応用において、ビッ
ト・マップ・メモリ、また画像メモリ等に格納された2
つの直線の交点に対応するドットが必要となる場合がし
ばしばある。
再生装置では、強調表示の対象とする、または図形塗り
潰し処理の境界点とする等の種々の応用において、ビッ
ト・マップ・メモリ、また画像メモリ等に格納された2
つの直線の交点に対応するドットが必要となる場合がし
ばしばある。
2つの直線L1,L2の交点に対応するドットを抽出す
る従来の方法の例は第2図に示される。
る従来の方法の例は第2図に示される。
即ち、直線L1が通る2つのドットがP11(x11,
y11),P12(x12,y12)で与えられ、直線
L2が通る2つのドットがP21(x21,y21),
P22(x22,y22)で与えられる場合、 x=(b2c1−b1c2)× 1/(a1b2−a2b1), y=(a1c2−a2c1)× 1/(a1b2−a2b1)…(1) 但し、 a1=x12−x11,a2=x22−x21, b1=y11−y12,b2=y21−y22, c=a1x11+b1y11, c2=a2x22+b2y22…(2) を計算する。
y11),P12(x12,y12)で与えられ、直線
L2が通る2つのドットがP21(x21,y21),
P22(x22,y22)で与えられる場合、 x=(b2c1−b1c2)× 1/(a1b2−a2b1), y=(a1c2−a2c1)× 1/(a1b2−a2b1)…(1) 但し、 a1=x12−x11,a2=x22−x21, b1=y11−y12,b2=y21−y22, c=a1x11+b1y11, c2=a2x22+b2y22…(2) を計算する。
尚、数値x11,y11,x12,y12,x21,y
21,x22,y22は全て整数値である。
21,x22,y22は全て整数値である。
そして、上記の(1)式で算出された座標値(x,y)
は整数値でない場合があり、座標値が整数値でないと最
終的なドット位置が確定できないため、(x,y)に四
捨五入、切上げ、切下げ等を施して真値((1)式で求
まった座標値)に最も近い点(整数座標で表されるドッ
ト)を算出し、このドットを2つの直線L1,L2の交
点にきわめて近いドット、またはこの交点に対応するド
ットR(xc,yc)として抽出していた。
は整数値でない場合があり、座標値が整数値でないと最
終的なドット位置が確定できないため、(x,y)に四
捨五入、切上げ、切下げ等を施して真値((1)式で求
まった座標値)に最も近い点(整数座標で表されるドッ
ト)を算出し、このドットを2つの直線L1,L2の交
点にきわめて近いドット、またはこの交点に対応するド
ットR(xc,yc)として抽出していた。
(発明が解決しようとする問題点) 以上のような従来の方法によれば、2つの直線L1,L
2の交点に対応するドットRを求めるためには、(1)
式、(2)式に表されるような剰除算を実行する機能が
必要となり、その分ハードウェア構成が複雑となり、装
置全体も複雑かつ高価なものになるという不具合が発生
していた。
2の交点に対応するドットRを求めるためには、(1)
式、(2)式に表されるような剰除算を実行する機能が
必要となり、その分ハードウェア構成が複雑となり、装
置全体も複雑かつ高価なものになるという不具合が発生
していた。
本発明は、このような点に鑑みてなされたものであっ
て、その目的は、2組の与えられた2つのドットを通る
直線の交点に対応するドットを、簡単な構成でかつ精度
良く抽出することのできるディジタル図形処理方法を実
現することにある。
て、その目的は、2組の与えられた2つのドットを通る
直線の交点に対応するドットを、簡単な構成でかつ精度
良く抽出することのできるディジタル図形処理方法を実
現することにある。
(問題点を解決するための手段) 前記した問題点を解決する本発明は、システムバスを経
由して上位装置からのコマンドを入力解読し初期値設定
を制御する入力制御部と、該入力制御部から与えられた
各種定数を基にして数値演算を行うレジスタ演算部と、
該レジスタ演算部の演算結果より得られた各種ステイタ
スを受けて全体を制御するマイクロプログラム制御部と
を備えて、ドットによって図形処理を行う方法であって
ドットP11(x11,y11)及びドットP12(x
12,y12)を通る直線L1とドットP
21(x21,y21)及びドットP22(x22,y
22)を通る直線L2 (但し、x11,y11,x12,y12,x21,y
21,x22,y22は整数値)との交点に対応するド
ットR(xc,yc)を抽出するディジタル図形処理方
法において、 (a)直線L1,L2を関数 L1:f1(x,y)=a1x+b1y−c1, L2:f2(x,y)=a2x+b2y−c2 (但し、a1=x12−x11,b1=y11−
y12, a2=x22−x21,b2=y21−y22, c1,c2は任意、 f1(x11,y11)=f1(x12,y12)=
0, f2(x21,y21)=f2(x22,y22)=
0) として定義し、a1=a2=0またはb1=b2=0の
ときはエラーとするエラー発生工程、 (b)前記直線L1を含む平面1 :z=f1(x,y)=a1x+b1y−c1 を定義し、 x21−x11→xd1,y21−y11→yd1, x11→x,0→f1(x) を前記レジスタ演算部内のレジスタに格納し、 xd1≧0の場合、xをx11からx21まで順次1イ
ンクリメントしf1(x)にa1を加算し、xd1<0
の場合、xをx11からx21まで順次1デクリメント
しf1(x)=0からa1を減算し、f1(x)=f1
(x21)を求めてf1(x21)=f1(y)として
前記レジスタ演算部内のレジスタに格納し、yd1≧0
の場合、yをy11からy21になるまで順次1インク
リメントしf1(y)にb1を加算し、yd1<0の場
合、yをy11からy21まで順次1デクリメントしf
1(y)からb1を減算し、f1(y)=f
1(y21)の値を前記ドットP21から前記平面1
までの変位f11とし、続いて、 x22−x11→xd2,y22−y11→yd2 x11→x,0→f1(x) を前記レジスタ演算部内のレジスタに格納し、 xd2≧0の場合、xをx11からx22まで順次1イ
ンクリメントしf1(x)にa1を加算し、xd2<0
の場合、xをx11からx22まで順次1デクリメント
しf1(x)=0からa1を減算してf1(x)=f1
(x22)を求めてf1(x21)=f1(y)として
前記レジスタ演算部内のレジスタに格納し、yd2≧0
の場合、yをy11からy22になるまで順次1インク
リメントしf1(y)にb1を加算し、yd2<0の場
合、yをy11からy22まで順次1デクリメントしf
1(y)からb1を減算してf1(y)=f
1(y22)の値を前記ドットP22から前記平面1
までの変位f12とし、|f11|≦|f12|の場合
には前記ドットP21を始点とし|f11|>|f12
|の場合には前記ドットP22を始点として選択する始
点選択工程、 (c)前記工程(b)で得られた始点P21またはP22から
変位比較法を用いて前記直線L2をドットで描画するよ
うに最適ドットを選択し、この最適ドットの前記平面
1からの変位の絶対値が|f11|または|f12|に
比較して小さくなる方向に向かって順次最適ドットを発
生させていくドット発生工程と、 (d)前記工程(c)と並行して行われる工程であって、前記
工程(c)にて逐次発生した最適ドットにつき前記平面1 :z=f1(x,y)=a1x+b1y−c1へ向
かってxy平面に垂直となる垂線の長さを距離F
1(x,y)と定義し、 F1(x,y)=f1(x+Δx,y+Δy)=f
1(x,y)+a1Δx+b1Δy (但し、f1(x,y)の初期値は f1(x21,y21)=f11または f1(x22,y22)=f12であり、 Δx,Δy=−1,0,+1) を、前記工程(c)にて最適ドットが選択される毎に、そ
の時に選択されたΔx,Δyの値を用いて距離F
1(x,y)を算出する距離算出工程、 (e)前記工程(d)と並行して行われる工程であって、前記
距離F1(x,y)の符号を逐次監視し、前記符号の反
転を検出した場合、前記符号が反転する直前の距離F1
(x,y)の絶対値と前記符号が反転した直後の距離F
1(x,y)の絶対値とを比較し、小さい方の距離F1
(x,y)に対応するドット(x,y)を前記直線L1
と前記直線L2との交点に対応するドットR(xc,y
c)として抽出する交点抽出工程 よりなることを特徴とするディジタル図形処理方法であ
る。
由して上位装置からのコマンドを入力解読し初期値設定
を制御する入力制御部と、該入力制御部から与えられた
各種定数を基にして数値演算を行うレジスタ演算部と、
該レジスタ演算部の演算結果より得られた各種ステイタ
スを受けて全体を制御するマイクロプログラム制御部と
を備えて、ドットによって図形処理を行う方法であって
ドットP11(x11,y11)及びドットP12(x
12,y12)を通る直線L1とドットP
21(x21,y21)及びドットP22(x22,y
22)を通る直線L2 (但し、x11,y11,x12,y12,x21,y
21,x22,y22は整数値)との交点に対応するド
ットR(xc,yc)を抽出するディジタル図形処理方
法において、 (a)直線L1,L2を関数 L1:f1(x,y)=a1x+b1y−c1, L2:f2(x,y)=a2x+b2y−c2 (但し、a1=x12−x11,b1=y11−
y12, a2=x22−x21,b2=y21−y22, c1,c2は任意、 f1(x11,y11)=f1(x12,y12)=
0, f2(x21,y21)=f2(x22,y22)=
0) として定義し、a1=a2=0またはb1=b2=0の
ときはエラーとするエラー発生工程、 (b)前記直線L1を含む平面1 :z=f1(x,y)=a1x+b1y−c1 を定義し、 x21−x11→xd1,y21−y11→yd1, x11→x,0→f1(x) を前記レジスタ演算部内のレジスタに格納し、 xd1≧0の場合、xをx11からx21まで順次1イ
ンクリメントしf1(x)にa1を加算し、xd1<0
の場合、xをx11からx21まで順次1デクリメント
しf1(x)=0からa1を減算し、f1(x)=f1
(x21)を求めてf1(x21)=f1(y)として
前記レジスタ演算部内のレジスタに格納し、yd1≧0
の場合、yをy11からy21になるまで順次1インク
リメントしf1(y)にb1を加算し、yd1<0の場
合、yをy11からy21まで順次1デクリメントしf
1(y)からb1を減算し、f1(y)=f
1(y21)の値を前記ドットP21から前記平面1
までの変位f11とし、続いて、 x22−x11→xd2,y22−y11→yd2 x11→x,0→f1(x) を前記レジスタ演算部内のレジスタに格納し、 xd2≧0の場合、xをx11からx22まで順次1イ
ンクリメントしf1(x)にa1を加算し、xd2<0
の場合、xをx11からx22まで順次1デクリメント
しf1(x)=0からa1を減算してf1(x)=f1
(x22)を求めてf1(x21)=f1(y)として
前記レジスタ演算部内のレジスタに格納し、yd2≧0
の場合、yをy11からy22になるまで順次1インク
リメントしf1(y)にb1を加算し、yd2<0の場
合、yをy11からy22まで順次1デクリメントしf
1(y)からb1を減算してf1(y)=f
1(y22)の値を前記ドットP22から前記平面1
までの変位f12とし、|f11|≦|f12|の場合
には前記ドットP21を始点とし|f11|>|f12
|の場合には前記ドットP22を始点として選択する始
点選択工程、 (c)前記工程(b)で得られた始点P21またはP22から
変位比較法を用いて前記直線L2をドットで描画するよ
うに最適ドットを選択し、この最適ドットの前記平面
1からの変位の絶対値が|f11|または|f12|に
比較して小さくなる方向に向かって順次最適ドットを発
生させていくドット発生工程と、 (d)前記工程(c)と並行して行われる工程であって、前記
工程(c)にて逐次発生した最適ドットにつき前記平面1 :z=f1(x,y)=a1x+b1y−c1へ向
かってxy平面に垂直となる垂線の長さを距離F
1(x,y)と定義し、 F1(x,y)=f1(x+Δx,y+Δy)=f
1(x,y)+a1Δx+b1Δy (但し、f1(x,y)の初期値は f1(x21,y21)=f11または f1(x22,y22)=f12であり、 Δx,Δy=−1,0,+1) を、前記工程(c)にて最適ドットが選択される毎に、そ
の時に選択されたΔx,Δyの値を用いて距離F
1(x,y)を算出する距離算出工程、 (e)前記工程(d)と並行して行われる工程であって、前記
距離F1(x,y)の符号を逐次監視し、前記符号の反
転を検出した場合、前記符号が反転する直前の距離F1
(x,y)の絶対値と前記符号が反転した直後の距離F
1(x,y)の絶対値とを比較し、小さい方の距離F1
(x,y)に対応するドット(x,y)を前記直線L1
と前記直線L2との交点に対応するドットR(xc,y
c)として抽出する交点抽出工程 よりなることを特徴とするディジタル図形処理方法であ
る。
(実施例) 以下、図面を参照して本発明の実施例を詳細に説明す
る。
る。
第1図は、本発明の方法を実現するためのハードウェア
構成例を示す構成ブロック図である。
構成例を示す構成ブロック図である。
図に示す装置は、マイクロプログラム制御方式を採用
し、入力制御部10,レジスタ演算部20及びマイクロ
プログラム制御部30の3つの主要部分より構成されて
いる。入力制御部10とレジスタ演算部20は、内部バ
スUBによって相互に連結されている。
し、入力制御部10,レジスタ演算部20及びマイクロ
プログラム制御部30の3つの主要部分より構成されて
いる。入力制御部10とレジスタ演算部20は、内部バ
スUBによって相互に連結されている。
10は、システムバスSBを経由して上位の計算機等か
ら直線の交点に対応するドット抽出コマンドを入力・解
読し、初期値設定を制御する入力制御部で、入力レジス
タ11及びバス制御部12とから構成されている。
ら直線の交点に対応するドット抽出コマンドを入力・解
読し、初期値設定を制御する入力制御部で、入力レジス
タ11及びバス制御部12とから構成されている。
20は、数値演算を行うレジスタ演算部で、レジスタ・
アンド・アリスメティック・ロジカル・ユニット(以下
「RALU」と略す)21を中心に構成されている。
アンド・アリスメティック・ロジカル・ユニット(以下
「RALU」と略す)21を中心に構成されている。
RALU21は、複数個の内部レジスタより構成される
レジスタ群22を有し、これらの内部レジスタ間で、例
えば加減算、論理積、論理和等の論理算術演算を行う。
更に、RALU21での演算結果における各種ステイタ
スは、マイクロプログラム制御部30内のマルチプレク
サ31への入力となっている。
レジスタ群22を有し、これらの内部レジスタ間で、例
えば加減算、論理積、論理和等の論理算術演算を行う。
更に、RALU21での演算結果における各種ステイタ
スは、マイクロプログラム制御部30内のマルチプレク
サ31への入力となっている。
30は全体の制御及び交点に対応するドット算出の工程
を実行するマイクロプログラム制御部で、マルチプレク
サ31,アドレスシーケンサ32,マイクロプログラム
メモリ33及びパイプラインレジスタ34とから構成さ
れている。
を実行するマイクロプログラム制御部で、マルチプレク
サ31,アドレスシーケンサ32,マイクロプログラム
メモリ33及びパイプラインレジスタ34とから構成さ
れている。
パイプラインレジスタ34は、マイクロプログラムメモ
リ33からの出力を保持し、前述の入力制御部10及び
レジスタ演算部20の各部分へマイクロ命令を供給す
る。
リ33からの出力を保持し、前述の入力制御部10及び
レジスタ演算部20の各部分へマイクロ命令を供給す
る。
マイクロプログラムでの条件付分岐は、マルチプレクサ
31において、レジスタ演算部20からの各種ステイタ
スを含む入力の内、一つを選択しアドレスシーケンサ3
2で判定することによって行われるようになっている。
31において、レジスタ演算部20からの各種ステイタ
スを含む入力の内、一つを選択しアドレスシーケンサ3
2で判定することによって行われるようになっている。
本発明は、このように構成された回路を用いて実現され
る方法であり、その詳しい動作は以下の通りである。
る方法であり、その詳しい動作は以下の通りである。
本発明にあっては、第2図に示すように、2つのドット
P11(x11,y11),P12(x12,y12)
を通る直線L1と、2つのドットP21(x21,y
21)P22(x22,y22)を通る直線L2との交
点にきわめて近く、その交点に対応するドットとしてR
(xc,yc)を抽出する場合を例として動作説明をす
る。
P11(x11,y11),P12(x12,y12)
を通る直線L1と、2つのドットP21(x21,y
21)P22(x22,y22)を通る直線L2との交
点にきわめて近く、その交点に対応するドットとしてR
(xc,yc)を抽出する場合を例として動作説明をす
る。
尚、本発明の方法では、ドットR(xc,yc)を抽出
する過程で従来より提案されている変位比較法を使用し
ている。この変位比較法とは、線分の発生法の一つであ
り、直線、2次曲線図形等を発生させるときに用いられ
るものである。
する過程で従来より提案されている変位比較法を使用し
ている。この変位比較法とは、線分の発生法の一つであ
り、直線、2次曲線図形等を発生させるときに用いられ
るものである。
このような変位比較法は、例えば、 ・「図形のドット表示」信学論vol.56-A, No.7,p.401(July1973) ・“An improved algorithm for the generation of no
nparametric curves”: B.W.Jordan.Jr.,W.J.Lennon, B.D.Holm:IEEETrans.C-22 No.12,p.1052(Dec.1973) 等に記載されている。
nparametric curves”: B.W.Jordan.Jr.,W.J.Lennon, B.D.Holm:IEEETrans.C-22 No.12,p.1052(Dec.1973) 等に記載されている。
その概略は次の通りである。
発生すべき直線Lの方程式を L:f(x,y)=ax−by+c=0…(3) としたとき、始点を含む既に選択したドットの次に選択
すべきドットを IF MIN|f(Pi)|=|f(Pj)| THEN TAKE Pj (但し、i,j∈I,I=1,2,…,8)…(4) なるアルゴリズムに基づいて生成する方法である。
すべきドットを IF MIN|f(Pi)|=|f(Pj)| THEN TAKE Pj (但し、i,j∈I,I=1,2,…,8)…(4) なるアルゴリズムに基づいて生成する方法である。
ここで、a,b,cは定数である。
第3図は、このような変位比較法にあって、候補となる
ドットを選択するときの説明図である。
ドットを選択するときの説明図である。
P0,P1,…,P8は、xy平面内のドット位置を表
し、P0は前回選択したドットを、P1,…,P8は今
回選択すべき候補ドットをそれぞれ表している。候補ド
ットP1,…,P8のうちP1,…,P4は4画素連結
表示時の候補ドット、P1,…,P8は8画素連結表示
時の候補ドットである。
し、P0は前回選択したドットを、P1,…,P8は今
回選択すべき候補ドットをそれぞれ表している。候補ド
ットP1,…,P8のうちP1,…,P4は4画素連結
表示時の候補ドット、P1,…,P8は8画素連結表示
時の候補ドットである。
また、(4)式内のIはドットP1,…,P8の添字番
号を示し、f(Pi)は特定平面からドットPiの位
置までの変位(詳細は後述)を表すものである。
号を示し、f(Pi)は特定平面からドットPiの位
置までの変位(詳細は後述)を表すものである。
即ち、(3)式で表される直線Lは次式 :z=f(x,y)=ax−by+c…(5) で表される平面とxy平面(z=0の面)との交線と
考えることができ、これを第4図及び第5図に表す。
考えることができ、これを第4図及び第5図に表す。
第4図は、特定平面とxyz3次元空間内のxy平面
との交わりを示す図、第5図は特定平面の断面図であ
る。
との交わりを示す図、第5図は特定平面の断面図であ
る。
第4図及び第5図において、特定平面とxy平面との
交線はLで表される。そして、xy平面上のドットP0
(第3図に示したように、既に選択された前回のドット
P0)からの垂線が特定平面と交わる点をA0とする
と、ドットP0(x0,y0)から交点A0までの距離
を|f(P0)|または|z0|で表わし、f(P0)
を特定平面からのドットP0に対する変位と定義す
る。
交線はLで表される。そして、xy平面上のドットP0
(第3図に示したように、既に選択された前回のドット
P0)からの垂線が特定平面と交わる点をA0とする
と、ドットP0(x0,y0)から交点A0までの距離
を|f(P0)|または|z0|で表わし、f(P0)
を特定平面からのドットP0に対する変位と定義す
る。
即ち、 f(P0)=z0=ax0−by0+c…(51) で表される。
このように、変位比較法とは、前回選択したドットP0
から今回選択すべきドットを決定するにあたり、第3図
に示したような候補ドットP1,…,P8のうちからそ
の変位f(Pi)(i=1,…,8)が最小となるドッ
トを選択して線分を発生し、この操作を順次繰り返して
線分を発生していく方法である。
から今回選択すべきドットを決定するにあたり、第3図
に示したような候補ドットP1,…,P8のうちからそ
の変位f(Pi)(i=1,…,8)が最小となるドッ
トを選択して線分を発生し、この操作を順次繰り返して
線分を発生していく方法である。
即ち、(4)式で各々の候補ドットP1に対応する変位
f(Pi)の絶対値を比較し、最小の変位を有する候補
ドットPiを次に選択すべきドットとするものである。
f(Pi)の絶対値を比較し、最小の変位を有する候補
ドットPiを次に選択すべきドットとするものである。
なおここで、変位比較法を用いて単純な加減算機能のみ
で直線、曲線を発生するためには、発生すべき線図形の
始点Psが当該線図形上に存在すること、即ち、始点P
sにおける変位f(PS)が“0”であることが前提で
ある。
で直線、曲線を発生するためには、発生すべき線図形の
始点Psが当該線図形上に存在すること、即ち、始点P
sにおける変位f(PS)が“0”であることが前提で
ある。
このように、変位比較法によって最適ドットを選択して
いく場合、変位f(Pi)(i=1,2,…,8)の算
出は、(5)式,(51)式を前提とすると、 f(Pi)=f(x0+Δx,y0+Δy) =f(x0,y0)+aΔx−bΔy =f(P0)+aΔx−bΔy により表される。
いく場合、変位f(Pi)(i=1,2,…,8)の算
出は、(5)式,(51)式を前提とすると、 f(Pi)=f(x0+Δx,y0+Δy) =f(x0,y0)+aΔx−bΔy =f(P0)+aΔx−bΔy により表される。
但し、今回選択すべき候補ドットをドットPi(x0+
Δx,y0+Δy)とし、前回選択されたドットをドッ
トP0(x0,y0)とする。また、Δx,Δyは表示
ドットの座標を対象としているため、iの値により0,
+1,−1のいずれかの値をとる。
Δx,y0+Δy)とし、前回選択されたドットをドッ
トP0(x0,y0)とする。また、Δx,Δyは表示
ドットの座標を対象としているため、iの値により0,
+1,−1のいずれかの値をとる。
更に、発生すべき線図形の始点Psが当該線L上に存在
し、変位f(PS)が“0”であるのでf(P0)の初
期値は“0”である。
し、変位f(PS)が“0”であるのでf(P0)の初
期値は“0”である。
以上のように、変位比較法によれば、乗除算機能を設置
しなくとも、加減算機能のみを有すれば線分発生を実現
できるものである。
しなくとも、加減算機能のみを有すれば線分発生を実現
できるものである。
以上が従来よりある変位比較法の概要説明であり、本発
明方法にあっては、この変位比較法をその手順の中に用
いてある。
明方法にあっては、この変位比較法をその手順の中に用
いてある。
次に本発明方法にかかる工程を第8図、第9図、第10
図、第11図のフローチャートを用いて説明する。
図、第11図のフローチャートを用いて説明する。
はじめに、第8図のフローチャートより説明を開始す
る。
る。
上位の計算機等よりシステムバスSBを経由して、直線
L1が通る2つのドットP11,P12、直線L2が通
る2つのドットP21,P22のそれぞれのx座標,y
座標(x11,y11,x12,y12,x21,y
21,x22,y22)を入力制御部10内の入力レジ
スタ11にセットした後、上位計算機等から入力制御部
に対してスタート起動(START)がかかる。
L1が通る2つのドットP11,P12、直線L2が通
る2つのドットP21,P22のそれぞれのx座標,y
座標(x11,y11,x12,y12,x21,y
21,x22,y22)を入力制御部10内の入力レジ
スタ11にセットした後、上位計算機等から入力制御部
に対してスタート起動(START)がかかる。
スタート起動(START)がかかると、マイクロプロ
グラム制御部30は、パラメータx11,y11,x
12,y12,x21,y21,x22,y22を内部
バスUBを経由してレジスタ演算部20内のレジスタ群
22に格納する。これにより、レジスタ群22には上の
レジスタから順に、第1図に示すように、x11,x
12,x21,x22,…のデータが格納される。
グラム制御部30は、パラメータx11,y11,x
12,y12,x21,y21,x22,y22を内部
バスUBを経由してレジスタ演算部20内のレジスタ群
22に格納する。これにより、レジスタ群22には上の
レジスタから順に、第1図に示すように、x11,x
12,x21,x22,…のデータが格納される。
続いてレジスタ演算部20は、これらのデータを基に、 x12−x11,y11−y12, x22−x21,y21−x22, を演算し、 x12−x11→a1,y11−y12→b1, x22−x21→a2,y21−y22→b2 として、a1,a2,b1,b2をそれぞれのレジスタ
22に格納する。
22に格納する。
この時点で、a1=a2=0またはb1=b2=0の場
合(YES)には、直線L1と直線L2は、それぞれ異
なる2つのドットにおけるx座標またはy座標が等しい
ので、x軸またはy軸に平行となり、第2図を参照する
と明らかなように、直線L1と直線L2とは平行であ
り、その交点は存在しない。従って、この場合はエラー
(ERROR)とし、レジスタ演算部20は処理を停止
する。
合(YES)には、直線L1と直線L2は、それぞれ異
なる2つのドットにおけるx座標またはy座標が等しい
ので、x軸またはy軸に平行となり、第2図を参照する
と明らかなように、直線L1と直線L2とは平行であ
り、その交点は存在しない。従って、この場合はエラー
(ERROR)とし、レジスタ演算部20は処理を停止
する。
一方、a1とa2の少なくとも一方が“0”でない場
合、または、b1とb2の少なくとも一方が“0”でな
い場合(NO)には、直線L1と直線L2とは平行でな
く、交点に対応するドットが存在するので処理を続行す
る。
合、または、b1とb2の少なくとも一方が“0”でな
い場合(NO)には、直線L1と直線L2とは平行でな
く、交点に対応するドットが存在するので処理を続行す
る。
なおここで、直線L1を表す関数を L1:f1(x,y)=a1x+b1y−c1 (但し、f1(x11,y11)=f1(x12,y
12)と定義する。値c1については、後述の算出式に
は用いられないので特に求めなくてもよく、任意定数と
する。
12)と定義する。値c1については、後述の算出式に
は用いられないので特に求めなくてもよく、任意定数と
する。
そして、この直線L1を含む、3次元空間における平面1 :z=f1(x,y)=a1x+b1y−c1と直
線L2上のドットP21との変位f11と、この平面
1と直線L2上のドットP22との変位f12を求める
処理を開始する。
線L2上のドットP21との変位f11と、この平面
1と直線L2上のドットP22との変位f12を求める
処理を開始する。
この変位f11と変位f12を求める処理は、後に詳述
するが、変位比較法によって直線L2を発生するときの
始点となるべき点を選択するためのものである。
するが、変位比較法によって直線L2を発生するときの
始点となるべき点を選択するためのものである。
尚、変位f11と変位f12を求める処理は、単純に
は、1 :z=f1(x,y)=a1x+b1y−c1の式
にドットP21(x21,y21)またはドットP22
(x22,y22)を代入すれば求まるが、この演算を
行うにはハードウェア資源として乗算器を設定しないと
処理不可である。本発明は、乗除算機能を設定しないと
いう前提により、次に説明するような処理によって乗算
を含まない演算処理により変位f11と変位f12を求
めるものである。
は、1 :z=f1(x,y)=a1x+b1y−c1の式
にドットP21(x21,y21)またはドットP22
(x22,y22)を代入すれば求まるが、この演算を
行うにはハードウェア資源として乗算器を設定しないと
処理不可である。本発明は、乗除算機能を設定しないと
いう前提により、次に説明するような処理によって乗算
を含まない演算処理により変位f11と変位f12を求
めるものである。
これらの変位f11,f12を求める概念を第6図に表
し、この図を参照しながら変位f11,f12を求める
工程を次に説明する。
し、この図を参照しながら変位f11,f12を求める
工程を次に説明する。
さて、第8図のフローチャートに戻り、まず、変位f
11を求める手順を説明する。
11を求める手順を説明する。
最初に、ドットP21(x21,y21)とドットP
11(x11,y11)のx座標,y座標の差をそれぞ
れ求め、 x21−x11→xd1, y21−y11→yd1…(8) をレジスタ群22内のレジスタに格納する。
11(x11,y11)のx座標,y座標の差をそれぞ
れ求め、 x21−x11→xd1, y21−y11→yd1…(8) をレジスタ群22内のレジスタに格納する。
次に、第9図のフローチャートに遷移する。
なおここで、 f1(x11+Δx,y11) =f1(x11,y11)+a1Δx…(9) と表すことができ(但し、x座標の増減分Δxについて
は、xy平面上における表示ドットを対象としているた
め、Δx=−1,0,+1)、f1(x11,y11)
=0である((x11,y11)は直線L1上の点)か
ら、(9)式は、 f1(x,y11)=f1(x) (但し、f1(x11)=0)…(10) と表わすことができる。
は、xy平面上における表示ドットを対象としているた
め、Δx=−1,0,+1)、f1(x11,y11)
=0である((x11,y11)は直線L1上の点)か
ら、(9)式は、 f1(x,y11)=f1(x) (但し、f1(x11)=0)…(10) と表わすことができる。
そして、y=y11を固定とし、x11→x,0→f1
(x)をレジスタ群22内のレジスタに格納する。
(x)をレジスタ群22内のレジスタに格納する。
続いて、xd1≧0の場合には、x=x11からxの値
を順次+1インクリメントし、同時に、xをインクリメ
ントする毎にf1(x)=0にa1を加算していき、こ
の動作をx=x21になるまで繰り返す。
を順次+1インクリメントし、同時に、xをインクリメ
ントする毎にf1(x)=0にa1を加算していき、こ
の動作をx=x21になるまで繰り返す。
一方、xd1<0の場合には、x=x11からxの値を
順次1デクリメントし、同時に、xをデクリメントする
毎にf1(x)=0からa1を減算し、この動作をx=
x21になるまで繰り返す。
順次1デクリメントし、同時に、xをデクリメントする
毎にf1(x)=0からa1を減算し、この動作をx=
x21になるまで繰り返す。
これにより、x=x21に達したときのf1(x)の値
はf1(x21)で表される。
はf1(x21)で表される。
次に、x=x21を固定とする。
このときは、 f1(x21,y11+Δy) =f1(x21,y11)+b1Δy…(11) と表すことができ(但し、y座標の増減分Δyについて
は、xy平面上における表示ドットを対象としているた
め、Δy=−1,0,+1)、(10)式より、f1(x
21,y11)=f1(x21)となる。
は、xy平面上における表示ドットを対象としているた
め、Δy=−1,0,+1)、(10)式より、f1(x
21,y11)=f1(x21)となる。
従って、(11)式は、 f1(x21,y)=f1(y) (但し、f1(y11)=f1(x21))…(12) と表わすことができる。
そして、y11→y,f1(x21)→f1(y)をレ
ジスタ群22内のレジスタに格納する。
ジスタ群22内のレジスタに格納する。
ここで、yd1≧0の場合には、y=y11からyの値
を順次+1インクリメントし、同時に、yをインクリメ
ントする毎にf1(y)=f1(x21)にb1を加算
していき、この動作をy=y21になるまで繰り返す。
を順次+1インクリメントし、同時に、yをインクリメ
ントする毎にf1(y)=f1(x21)にb1を加算
していき、この動作をy=y21になるまで繰り返す。
一方、yd1<0の場合には、y=y11からyの値を
順次1デクリメントし、同時に、yをデクリメントする
毎にf1(y)=f1(x21)からb1を減算し、こ
の動作をy=y21になるまで繰り返す。
順次1デクリメントし、同時に、yをデクリメントする
毎にf1(y)=f1(x21)からb1を減算し、こ
の動作をy=y21になるまで繰り返す。
以上のf1(y)=0にb1を加算または減算していく
動作をy=y21に達するまで繰り返す。
動作をy=y21に達するまで繰り返す。
そして、y=y21に達したときのf1(y21)の値
を変位f11とする。この変位f11はドットP21に
おける平面1との変位に対応する。
を変位f11とする。この変位f11はドットP21に
おける平面1との変位に対応する。
次に、変位f12を求める。
ドットP22(x22,y22)とドットP11(x
11,y11)のx座標,y座標の差をそれぞれ求め、 x22−x11→xd2, y22−y11→yd2…(13) をレジスタ群22内のレジスタに格納する。
11,y11)のx座標,y座標の差をそれぞれ求め、 x22−x11→xd2, y22−y11→yd2…(13) をレジスタ群22内のレジスタに格納する。
以下、第10図のフローチャートに示すように、第9図
のフローチャートと同様の工程に従ってf1(y22)
を算出し、この値をドットP22(x22,y22)と
平面1との変位f12とする。
のフローチャートと同様の工程に従ってf1(y22)
を算出し、この値をドットP22(x22,y22)と
平面1との変位f12とする。
次に、変位f11,変位f12のそれぞれの絶対値|f
11|,|f12|を算出して、その大小関係を|f
11|≦|f12|として調べる。
11|,|f12|を算出して、その大小関係を|f
11|≦|f12|として調べる。
|f11|≦|f12|が成立する場合(YES)は第
11図のM1からの工程を起動して、点P
21(x21,y21)を始点とする。
11図のM1からの工程を起動して、点P
21(x21,y21)を始点とする。
一方、|f11|≦|f12|が成立しない場合(N
O)は第11図のM2からの工程を起動して、ドットP
22(x22,y22)を始点とする。
O)は第11図のM2からの工程を起動して、ドットP
22(x22,y22)を始点とする。
なおここで、直線L2を表す関数を L2:f2(x,y)=a2x+b2y−c2=0(但
し、f2(x21,y21)=f2(x22,y22) =0)…(14) と定義する。値c2については、後述の算出式には用い
られないので求めなくてもよく、任意でよい。
し、f2(x21,y21)=f2(x22,y22) =0)…(14) と定義する。値c2については、後述の算出式には用い
られないので求めなくてもよく、任意でよい。
そして、決定した始点P21またはP22から、上述し
た変位比較法を用いて、今度は、直線L1に近づく方向
に、直線L2を描画するべく、順次、最適ドットを発生
させていく。
た変位比較法を用いて、今度は、直線L1に近づく方向
に、直線L2を描画するべく、順次、最適ドットを発生
させていく。
即ち、始点P21またはP22より、変位比較法 f2(x+Δx,y+Δy) =f2(x,y)+a2Δx+b2Δy により、直線L2: f2(x,y)=a2x+b2y−c2=0 のドット表示を、直線L1: f1(x,y)=a1x+b1y−c1=0 (但し、f1(x11,y11)=f1(x12,y
12)=0) の存在する方向に向かって、順次実行する。
12)=0) の存在する方向に向かって、順次実行する。
このとき、併せて、逐次発生した直線L2上の最適ドッ
トにつき、直線L1を含む平面1 :z=f1(x,y)=a1x+b1y−c1へ向
かって、xy平面に垂直となる垂線を下ろし、その垂線
の長さを距離F1(x,y)と定義してこの値を算出す
る。
トにつき、直線L1を含む平面1 :z=f1(x,y)=a1x+b1y−c1へ向
かって、xy平面に垂直となる垂線を下ろし、その垂線
の長さを距離F1(x,y)と定義してこの値を算出す
る。
尚、直線L2上の最適ドットと平面1までの距離F1
(x,y)(但し、xy平面に垂直な距離)は、単純に
は、1 :z=f1(x,y)=a1x+b1y−c1の式
に、選択された最適ドットの座標値(x,y)を逐次代
入すれば求まるが、この演算を行うにはハードウェア資
源として乗算器を設定しないと処理不可である。本発明
は、乗算機能を設定しないという前提により、次に説明
するような処理によって乗算を含まない演算処理によっ
て距離F1(x,y)を求めるものである。
(x,y)(但し、xy平面に垂直な距離)は、単純に
は、1 :z=f1(x,y)=a1x+b1y−c1の式
に、選択された最適ドットの座標値(x,y)を逐次代
入すれば求まるが、この演算を行うにはハードウェア資
源として乗算器を設定しないと処理不可である。本発明
は、乗算機能を設定しないという前提により、次に説明
するような処理によって乗算を含まない演算処理によっ
て距離F1(x,y)を求めるものである。
詳しくは、最適ドットの選択は、変位比較法により、 f2(x+Δx,y+Δy) =f2(x,y)+a2Δx+b2Δy に従って行われるが、同時に、距離を算出するため、距
離F1(x,y)を F1(x,y)=f1(x+Δx,y+Δy) =f1(x,y)+a1Δx+b1Δy (但し、f1(x,y)の初期値は f1(x21,y21)=f11または f1(x22,y22)=f12であり、 Δx,Δyは0,+1,−1のいずれかの値である) により求める。
離F1(x,y)を F1(x,y)=f1(x+Δx,y+Δy) =f1(x,y)+a1Δx+b1Δy (但し、f1(x,y)の初期値は f1(x21,y21)=f11または f1(x22,y22)=f12であり、 Δx,Δyは0,+1,−1のいずれかの値である) により求める。
即ち、距離F1(x,y)の初期値f(x,y)とし
て、始点としてドットP21を選択したときはf11の
値を採用し、始点としてドットP22を選択したときは
f12の値を採用する。そして、直線L2を描画するド
ットが選択される毎に、その時に選択されたΔx,Δy
の値(−1,0,+1)を用いて距離F1(x,y)を
算出する。
て、始点としてドットP21を選択したときはf11の
値を採用し、始点としてドットP22を選択したときは
f12の値を採用する。そして、直線L2を描画するド
ットが選択される毎に、その時に選択されたΔx,Δy
の値(−1,0,+1)を用いて距離F1(x,y)を
算出する。
ここで、前回のドット選択時の距離F0をf1(x,
y)とし、今回のドット選択時の距離F1をf1(x+
Δx,y+Δy)とする。
y)とし、今回のドット選択時の距離F1をf1(x+
Δx,y+Δy)とする。
尚、直線L1に近づく方向に最適ドットを発生させるた
めには、始点P21またはP22の次に選択すべき最適
ドットの平面1からの変位の絶対値が始点とのそれ
(平面1からの変位)に比較して小さくなる方向に直
線L2の描画方向を選べばよい。
めには、始点P21またはP22の次に選択すべき最適
ドットの平面1からの変位の絶対値が始点とのそれ
(平面1からの変位)に比較して小さくなる方向に直
線L2の描画方向を選べばよい。
そして、距離F1(x,y)の符号が反転した時点、即
ち、平面1がxy平面を切る時点で、距離F1(x,
y)の符号が反転する直前の直線L2の最適ドットの平
面1からの距離F0と、反転した直後の直線L2の最
適ドットの平面1からの距離F1の絶対値を比較す
る。
ち、平面1がxy平面を切る時点で、距離F1(x,
y)の符号が反転する直前の直線L2の最適ドットの平
面1からの距離F0と、反転した直後の直線L2の最
適ドットの平面1からの距離F1の絶対値を比較す
る。
|F0|≦|F1|の場合には、符号反転直前の最適ド
ットを直線L1と直線L2の交点にきわめて近いドット
とし、このドットを交点に対応するドットとして抽出す
る。
ットを直線L1と直線L2の交点にきわめて近いドット
とし、このドットを交点に対応するドットとして抽出す
る。
また、|F0|>|F1|の場合には、符号反転直後の
最適ドットを直線L1と直線L2の交点にきわめて近い
ドットとし、このドットを交点に対応するドットとして
抽出する。
最適ドットを直線L1と直線L2の交点にきわめて近い
ドットとし、このドットを交点に対応するドットとして
抽出する。
この交点にた対応する点、即ちドットR(xc,yc)
を第7図に示す。
を第7図に示す。
このように、本発明によれば、直線L1とL2の交点に
対応するドットRを乗除算機能を用いることなく、加減
算を主とするので、簡単なハードウェア構成で精度良く
求めることができるものである。
対応するドットRを乗除算機能を用いることなく、加減
算を主とするので、簡単なハードウェア構成で精度良く
求めることができるものである。
尚、(4)式で表される値a1,b1,a2,b2のい
ずれの1つも0でなく、a1b2=a2b1の場合、即
ち、直線L1とL2が平行な場合には前述の距離F
1(x,y)の符号がいつまでたっても反転しない。こ
のような不都合を発生させないようにするためには、ソ
フトウェアまたはハードウェアによる時間監視タイマー
を設け、一定時間経過しても動作が終了しないときには
エラーとし、動作を打ち切るようにしておく。
ずれの1つも0でなく、a1b2=a2b1の場合、即
ち、直線L1とL2が平行な場合には前述の距離F
1(x,y)の符号がいつまでたっても反転しない。こ
のような不都合を発生させないようにするためには、ソ
フトウェアまたはハードウェアによる時間監視タイマー
を設け、一定時間経過しても動作が終了しないときには
エラーとし、動作を打ち切るようにしておく。
(発明の効果) 以上詳細に説明したように、本発明は次のように作用す
る。
る。
まず、2つのドットP11(x11,y11)とP12
(x12,y12)を通る直線L1と、2つのドットP
21(x21,y21)とP22(x22,y22)を
通る直線L2のそれぞれに対して、関数 f1(x,y)=a1x+b1y−c1, f2(x,y)=a2x+b2y−c2 但し、 a1=x12−x11,b1=y11−y12, a2=x22−x21,b2=y21−y22, c1,c2は任意、 f1(x11,y11)=f1(x12,y12) =f2(x21,y21)=f2(x22,y22)=
0を定義する。
(x12,y12)を通る直線L1と、2つのドットP
21(x21,y21)とP22(x22,y22)を
通る直線L2のそれぞれに対して、関数 f1(x,y)=a1x+b1y−c1, f2(x,y)=a2x+b2y−c2 但し、 a1=x12−x11,b1=y11−y12, a2=x22−x21,b2=y21−y22, c1,c2は任意、 f1(x11,y11)=f1(x12,y12) =f2(x21,y21)=f2(x22,y22)=
0を定義する。
そして、乗除算を用いずに直線L2上のドットP21ま
たはドットP22のいずれかを始点として選択し、この
始点から変位比較法を用いて最適ドット選択により直線
L2を発生させながら、併せて、選択した最適ドットの
直線L1を含む平面1 :z=f1(x,y) からの距離F1(x,y)を逐次計算し、この距離F1
(x,y)の符号がいつ反転するかを判定する。
たはドットP22のいずれかを始点として選択し、この
始点から変位比較法を用いて最適ドット選択により直線
L2を発生させながら、併せて、選択した最適ドットの
直線L1を含む平面1 :z=f1(x,y) からの距離F1(x,y)を逐次計算し、この距離F1
(x,y)の符号がいつ反転するかを判定する。
距離F1(x,y)の符号の反転を検出すると、符号反
転前後の最適ドットの平面1からのそれぞれの距離F
1(x,y)の絶対値を比較し、小さい方の最適ドット
を直線L1と直線L2の交点に対応するドットとして抽
出する。
転前後の最適ドットの平面1からのそれぞれの距離F
1(x,y)の絶対値を比較し、小さい方の最適ドット
を直線L1と直線L2の交点に対応するドットとして抽
出する。
従って、本発明によれば、2つの直線の交点に対応する
ドットを単純な加減算機能のみで精度良く求めることが
できる。
ドットを単純な加減算機能のみで精度良く求めることが
できる。
また、本発明によれば、直線L2を発生する際に、 平面1:z=f1(x,y)からドットP21までの
距離f11と、 平面1:z=f1(x,y)からドットP22までの
距離f12とを計算し、 |f11|≦|f12|の場合には、ドットP21を始
点とし、|f11|>|f12|の場合には、ドットP
22を始点として選択するので、直線L2の描画開始時
に始点をドットP21またはドットP22のいずれか一
方を固定する方法に比較すると、より高速に2つの直線
の交点に対応するドットを求めることができる。
距離f11と、 平面1:z=f1(x,y)からドットP22までの
距離f12とを計算し、 |f11|≦|f12|の場合には、ドットP21を始
点とし、|f11|>|f12|の場合には、ドットP
22を始点として選択するので、直線L2の描画開始時
に始点をドットP21またはドットP22のいずれか一
方を固定する方法に比較すると、より高速に2つの直線
の交点に対応するドットを求めることができる。
第1図は本発明の方法を実現するための一実施例を示す
構成ブロック図、第2図は直線の交点に対応するドット
を表す図、第3図は候補ドットの方向を示す図、第4
図,第5図は変位比較法を説明するための図、第6図は
変位f11と変位f12の算出を説明するための図、第
7図は直線の交点に対応するドットを算出するための説
明図、第8図〜第11図は本発明の処理工程を示すフロ
ーチャートである。 10……入力制御部、11……入力レジスタ 12……バス制御部、20……レジスタ演算部 21……RALU、22……レジスタ群 30……マイクロプログラム制御部 31……マルチプレクサ 32……アドレスシーケンサ 33……マイクロプログラムメモリ 34……パイプラインレジスタ SB……システムバス、UB……内部バス
構成ブロック図、第2図は直線の交点に対応するドット
を表す図、第3図は候補ドットの方向を示す図、第4
図,第5図は変位比較法を説明するための図、第6図は
変位f11と変位f12の算出を説明するための図、第
7図は直線の交点に対応するドットを算出するための説
明図、第8図〜第11図は本発明の処理工程を示すフロ
ーチャートである。 10……入力制御部、11……入力レジスタ 12……バス制御部、20……レジスタ演算部 21……RALU、22……レジスタ群 30……マイクロプログラム制御部 31……マルチプレクサ 32……アドレスシーケンサ 33……マイクロプログラムメモリ 34……パイプラインレジスタ SB……システムバス、UB……内部バス
Claims (1)
- 【請求項1】システムバスを経由して上位装置からのコ
マンドを入力解読し初期値設定を制御する入力制御部
と、該入力制御部から与えられた各種定数を基にして数
値演算を行うレジスタ演算部と、該レジスタ演算部の演
算結果より得られた各種ステイタスを受けて全体を制御
するマイクロプログラム制御部とを備えて、ドットによ
って図形処理を行う方法であってドットP
11(x11,y11)及びドットP12(x12,y
12)を通る直線L1とドットP21(x21,
y21)及びドットP22(x22,y22)を通る直
線L2(但し、x11,y11,x12,y12,x
21,y21,x22,y22は整数値)との交点に対
応するドットR(xc,yc)を抽出するディジタル図
形処理方法において、 (a)直線L1,L2を関数 L1:f1(x,y)=a1x+b1y−c1, L2:f2(x,y)=a2x+b2y−c2 (但し、a1=x12−x11,b1=y11−
y12, a2=x22−x21,b2=y21−y22, c1,c2は任意、 f1(x11,y11)=f1(x12,y12)=
0, f2(x21,y21)=f2(x22,y22)=
0) として定義し、a1=a2=0またはb1=b2=0の
ときはエラーとするエラー発生工程、 (b)前記直線L1を含む平面1 :z=f1(x,y)=a1x+b1y−c1 を定義し、 x21−x11→xd1,y21−y11→yd1, x11→x,0→f1(x) を前記レジスタ演算部内のレジスタに格納し、 xd1≧0の場合、xをx11からx21まで順次1イ
ンクリメントしf1(x)にa1を加算し、xd1<0
の場合、xをx11からx21まで順次1デクリメント
しf1(x)=0からa1を減算し、f1(x)=f1
(x21)を求めてf1(x21)=f1(y)として
前記レジスタ演算部内のレジスタに格納し、yd1≧0
の場合、yをy11からy21になるまで順次1インク
リメントしf1(y)にb1を加算し、yd1<0の場
合、yをy11からy21まで順次1デクリメントしf
1(y)からb1を減算し、f1(y)=f
1(y21)の値を前記ドットP21から前記平面1
までの変位f11とし、続いて、 x22−x11→xd2,y22−y11→yd2 x11→x,0→f1(x) を前記レジスタ演算部内のレジスタに格納し、 xd2≧0の場合、xをx11からx22まで順次1イ
ンクリメントしf1(x)にa1を加算し、xd2<0
の場合、xをx11からx22まで順次1デクリメント
しf1(x)=0からa1を減算してf1(x)=f1
(x22)を求めてf1(x21)=f1(y)として
前記レジスタ演算部内のレジスタに格納し、yd2≧0
の場合、yをy11からy22になるまで順次1インク
リメントしf1(y)にb1を加算し、yd2<0の場
合、yをy11からy22まで順次1デクリメントしf
1(y)からb1を減算してf1(y)=f
1(y22)の値を前記ドットP22から前記平面1
までの変位f12とし、|f11|≦|f12|の場合
には前記ドットP21を始点とし|f11|>|f12
|の場合には前記ドットP22を始点として選択する始
点選択工程、 (c)前記工程(b)で得られた始点P21またはP22から
変位比較法を用いて前記直線L2をドットで描画するよ
うに最適ドットを選択し、この最適ドットの前記平面
1からの変位の絶対値が|f11|または|f12|に
比較して小さくなる方向に向かって順次最適ドットを発
生させていくドット発生工程と、 (d)前記工程(c)と並行して行われる工程であって、前記
工程(c)にて逐次発生した最適ドットにつき前記平面1 :z=f1(x,y)=a1x+b1y−c1へ向
かってxy平面に垂直となる垂線の長さを距離F
1(x,y)と定義し、 F1(x,y)=f1(x+Δx,y+Δy) =f1(x,y)+a1Δx+b1Δy (但し、f1(x,y)の初期値は f1(x21,y21)=f11または f1(x22,y22)=f12であり、 Δx,Δy=−1,0,+1) を、前記工程(c)にて最適ドットが選択される毎に、
その時に選択されたΔx,Δyの値を用いて距離F
1(x,y)の算出する距離算出工程、 (e)前記工程(d)と並行して行われる工程であって、前記
距離F1(x,y)の符号を逐次監視し、前記符号の反
転を検出した場合、前記符号が反転する直前の距離F1
(x,y)の絶対値と前記符号が反転した直後の距離F
1(x,y)の絶対値とを比較し、小さい方の距離F1
(x,y)に対応するドット(x,y)を前記直線L1
と前記直線L2との交点に対応するドットR(xc,y
c)として抽出する交点抽出工程 よりなることを特徴とするディジタル図形処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24568684A JPH0640349B2 (ja) | 1984-11-20 | 1984-11-20 | ディジタル図形処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24568684A JPH0640349B2 (ja) | 1984-11-20 | 1984-11-20 | ディジタル図形処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61123980A JPS61123980A (ja) | 1986-06-11 |
| JPH0640349B2 true JPH0640349B2 (ja) | 1994-05-25 |
Family
ID=17137303
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP24568684A Expired - Lifetime JPH0640349B2 (ja) | 1984-11-20 | 1984-11-20 | ディジタル図形処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0640349B2 (ja) |
-
1984
- 1984-11-20 JP JP24568684A patent/JPH0640349B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61123980A (ja) | 1986-06-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5309521A (en) | Method and apparatus for generating a character curve by dividing and developing a bezier curve | |
| US5363479A (en) | System and method for rendering bezier splines | |
| US6295072B1 (en) | Method and apparatus for rendering cubic curves | |
| JPH0214714B2 (ja) | ||
| JPS6326898B2 (ja) | ||
| JP2002298153A (ja) | 4ピクセル・テクスチャ・パイプラインにおけるパースペクティブ補正テクスチャ座標のための偏導関数生成 | |
| JP3059739B2 (ja) | 曲線描画機能を備えた情報処理装置および処理方法 | |
| JP2004348708A (ja) | 地図情報システム用ポリゴン生成方法及びその装置 | |
| JP3305395B2 (ja) | 図形分割装置 | |
| JP2971765B2 (ja) | 多角形描画方法及び多角形描画装置 | |
| JP2904994B2 (ja) | 座標間接続表示方法 | |
| JP4089806B2 (ja) | 曲線生成装置およびその方法ならびに記憶媒体 | |
| JP3210448B2 (ja) | 文字処理方法及び装置 | |
| JP3091472B2 (ja) | 画像処理方法 | |
| JPH08335274A (ja) | 曲線生成方法 | |
| JPH0587869B2 (ja) | ||
| JP2734643B2 (ja) | 自由曲線間の交点算出方式 | |
| JP3118064B2 (ja) | 曲線描画装置 | |
| JPH07121735A (ja) | 図形処理方法とその装置 | |
| JP2780496B2 (ja) | 描画装置のクリッピング処理方式 | |
| JPH10116354A (ja) | 演算装置および演算方法 | |
| JPH07146673A (ja) | 太め細め文字の生成装置 | |
| JPH0522946B2 (ja) | ||
| JPH03147190A (ja) | 直線描画方法 | |
| JPH0266677A (ja) | 曲面生成装置 |