JPH0640349B2 - Digital figure processing method - Google Patents
Digital figure processing methodInfo
- 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点を通
る直線の交点に対応するドットを簡単な構成で精度良く
抽出することのできるディジタル図形処理方法に関する
ものである。Description: TECHNICAL FIELD The present invention relates to a digital figure processing method, and more particularly, to an intersection of straight lines passing through two given two points in an image memory or the like. The present invention relates to a digital figure processing method capable of accurately extracting dots to be formed with a simple configuration.
(従来の技術) 例えばファクシミリ装置等のディジタル図形読み取り/
再生装置では、強調表示の対象とする、または図形塗り
潰し処理の境界点とする等の種々の応用において、ビッ
ト・マップ・メモリ、また画像メモリ等に格納された2
つの直線の交点に対応するドットが必要となる場合がし
ばしばある。(Prior Art) For example, digital figure reading / reading of a facsimile machine, etc.
In the reproducing apparatus, in various applications such as the object of highlighting or the boundary point of the graphic filling process, the data stored in the bit map memory, the image memory, or the like is stored.
It is often necessary to have dots that correspond to the intersections of two straight lines.
2つの直線L1,L2の交点に対応するドットを抽出す
る従来の方法の例は第2図に示される。An example of a conventional method for extracting dots corresponding to the intersections of two straight lines L 1 and L 2 is shown in FIG.
即ち、直線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) を計算する。That is, the two dots that the straight line L 1 passes through are P 11 (x 11 ,
y 11 ), P 12 (x 12 , y 12 ), and two dots that the straight line L 2 passes through are P 21 (x 21 , y 21 ),
When given by P 22 (x 22 , y 22 ), x = (b 2 c 1 −b 1 c 2 ) × 1 / (a 1 b 2 −a 2 b 1 ), y = (a 1 c 2 −) a 2 c 1) × 1 / (a 1 b 2 -a 2 b 1) ... (1) where, a 1 = x 12 -x 11 , a 2 = x 22 -x 21, b 1 = y 11 -y 12, b 2 = y 21 -y 22, c = a 1 x 11 + b 1 y 11, c 2 = a 2 x 22 + b 2 y 22 ... (2) is calculated.
尚、数値x11,y11,x12,y12,x21,y
21,x22,y22は全て整数値である。The numerical values x 11 , y 11 , x 12 , y 12 , x 21 , y
21 , x 22 , y 22 are all integer values.
そして、上記の(1)式で算出された座標値(x,y)
は整数値でない場合があり、座標値が整数値でないと最
終的なドット位置が確定できないため、(x,y)に四
捨五入、切上げ、切下げ等を施して真値((1)式で求
まった座標値)に最も近い点(整数座標で表されるドッ
ト)を算出し、このドットを2つの直線L1,L2の交
点にきわめて近いドット、またはこの交点に対応するド
ットR(xc,yc)として抽出していた。Then, the coordinate value (x, y) calculated by the above equation (1)
May not be an integer value, and if the coordinate value is not an integer value, the final dot position cannot be determined, so rounding, rounding up, or rounding down (x, y), etc. The dot closest to the coordinate value (dot represented by integer coordinate) is calculated, and this dot is very close to the intersection of the two straight lines L 1 and L 2 , or the dot R (x c , which corresponds to this intersection, y c ).
(発明が解決しようとする問題点) 以上のような従来の方法によれば、2つの直線L1,L
2の交点に対応するドットRを求めるためには、(1)
式、(2)式に表されるような剰除算を実行する機能が
必要となり、その分ハードウェア構成が複雑となり、装
置全体も複雑かつ高価なものになるという不具合が発生
していた。(Problems to be Solved by the Invention) According to the conventional method as described above, the two straight lines L 1 and L
To obtain the dot R corresponding to the intersection of 2 ,
The function of executing the remainder division as expressed by equation (2) is required, and the hardware configuration becomes complicated accordingly, and the entire apparatus becomes complicated and expensive.
本発明は、このような点に鑑みてなされたものであっ
て、その目的は、2組の与えられた2つのドットを通る
直線の交点に対応するドットを、簡単な構成でかつ精度
良く抽出することのできるディジタル図形処理方法を実
現することにある。The present invention has been made in view of such a point, and an object thereof is to extract a dot corresponding to an intersection of a straight line passing through two sets of two given dots with a simple configuration and with high accuracy. It is to realize a possible digital figure processing method.
(問題点を解決するための手段) 前記した問題点を解決する本発明は、システムバスを経
由して上位装置からのコマンドを入力解読し初期値設定
を制御する入力制御部と、該入力制御部から与えられた
各種定数を基にして数値演算を行うレジスタ演算部と、
該レジスタ演算部の演算結果より得られた各種ステイタ
スを受けて全体を制御するマイクロプログラム制御部と
を備えて、ドットによって図形処理を行う方法であって
ドット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)として抽出する交点抽出工程 よりなることを特徴とするディジタル図形処理方法であ
る。(Means for Solving Problems) According to the present invention for solving the problems described above, an input control unit which decodes a command from a host device via a system bus and controls initial value setting, and the input control. Register arithmetic unit that performs numerical operations based on various constants given by
A method of performing graphic processing by dots, comprising: a micro program control unit that receives various statuses obtained from the calculation result of the register calculation unit and controls the whole, which is a method of performing dot graphic processing using dots P 11 (x 11 , y 11 ) and Dot P 12 (x
Straight line L 1 passing through 12 , 12 and dot P
21 (x 21 , y 21 ) and the dot P 22 (x 22 , y 21 ).
22 ) through a straight line L 2 (however, x 11 , y 11 , x 12 , y 12 , x 21 , y
In the digital figure processing method for extracting the dot R (x c , y c ) corresponding to the intersection with 21 , x 22 , y 22 is an integer value, (a) the straight lines L 1 and L 2 are converted into the function L 1 : f 1 (x, y) = a 1 x + b 1 y-c 1, L 2: f 2 (x, y) = a 2 x + b 2 y-c 2 ( where, a 1 = x 12 -x 11 , b 1 = y 11 −
y 12, a 2 = x 22 -x 21, b 2 = y 21 -y 22, c 1, c 2 is optionally, f 1 (x 11, y 11) = f 1 (x 12, y 12) =
0, f 2 (x 21 , y 21 ) = f 2 (x 22 , y 22 ) =
0) was defined as an error generating step of an error when a 1 = a 2 = 0 or b 1 = b 2 = 0, the plane including the (b) said linear L 1 1: z = f 1 (x, y) = a 1 x + b 1 y−c 1 is defined, and x 21 −x 11 → xd 1 , y 21 −y 11 → yd 1 , x 11 → x, 0 → f 1 (x) is stored in the register calculation unit. When xd 1 ≧ 0, x is sequentially incremented by 1 from x 11 to x 21 and a 1 is added to f 1 (x) to obtain xd 1 <0.
In the case of x, x is sequentially decremented by 1 from x 11 to x 21, f 1 (x) = 0 to a 1 is subtracted, and f 1 (x) = f 1
(X 21 ) is calculated and stored as f 1 (x 21 ) = f 1 (y) in the register in the register operation unit, and yd 1 ≧ 0
In the case of, y is sequentially incremented by 1 from y 11 to y 21 and b 1 is added to f 1 (y). When yd 1 <0, y is sequentially decremented by 1 from y 11 to y 21 and f
B 1 is subtracted from 1 (y), and f 1 (y) = f
1 (y 21 ) from the dot P 21 to the plane 1
Up to the displacement f 11, and subsequently store x 22 −x 11 → xd 2 , y 22 −y 11 → yd 2 x 11 → x, 0 → f 1 (x) in the register in the register operation unit, When xd 2 ≧ 0, x is sequentially incremented by 1 from x 11 to x 22, and a 1 is added to f 1 (x) to obtain xd 2 <0.
In the case, x is sequentially decremented by 1 from x 11 to x 22 and a 1 is subtracted from f 1 (x) = 0 to obtain f 1 (x) = f 1
(X 22 ) is calculated and stored as f 1 (x 21 ) = f 1 (y) in the register in the register operation unit, and yd 2 ≧ 0
In the case of, y is sequentially incremented by 1 from y 11 to y 22 and b 1 is added to f 1 (y). When yd 2 <0, y is sequentially decremented by 1 from y 11 to y 22 and f
B 1 is subtracted from 1 (y) to obtain f 1 (y) = f
1 (y 22 ) from the dot P 22 to the plane 1
A displacement f 12 up, | f 11 | ≦ | f 12 | of when a start point of the dot P 21 | f 11 |> | f 12
In the case of |, the starting point selection step of selecting the dot P 22 as a starting point, (c) the straight line L 2 from the starting point P 21 or P 22 obtained in the step (b) using the displacement comparison method Select the best dot to draw, and the plane of this best dot
A dot generating step of sequentially generating optimum dots in a direction in which the absolute value of the displacement from 1 becomes smaller than | f 11 | or | f 12 |, and (d) the step (c) and the step (c) in parallel. In the step 1), the optimum dot sequentially generated in the step (c) is formed on the xy plane toward the plane 1 : z = f 1 (x, y) = a 1 x + b 1 y-c 1 . The vertical length of the vertical line is the distance F
1 (x, y), and F 1 (x, y) = f 1 (x + Δx, y + Δy) = f
1 (x, y) + a 1 Δx + b 1 Δy ( where, f 1 (x, initial value of y) is f 1 (x 21, y 21 ) = f 11 or f 1 (x 22, y 22 ) = f 12 Δx, Δy = −1, 0, +1) is calculated every time the optimum dot is selected in the step (c) by using the values of Δx and Δy selected at that time.
A distance calculation step of calculating 1 (x, y), (e) a step performed in parallel with the step (d), wherein the code of the distance F 1 (x, y) is sequentially monitored, , The distance F 1 immediately before the sign is reversed.
The distance F immediately after the absolute value of (x, y) and the sign are inverted
1 (x, y) is compared with the absolute value, and the smaller distance F 1
The dot (x, y) corresponding to (x, y) is defined by the straight line L 1
And the dot R (x c , y corresponding to the intersection of the line L 2 and the straight line L 2.
The digital figure processing method is characterized by comprising an intersection point extraction step of extracting as c ).
(実施例) 以下、図面を参照して本発明の実施例を詳細に説明す
る。(Example) Hereinafter, an example of the present invention will be described in detail with reference to the drawings.
第1図は、本発明の方法を実現するためのハードウェア
構成例を示す構成ブロック図である。FIG. 1 is a configuration block diagram showing a hardware configuration example for implementing the method of the present invention.
図に示す装置は、マイクロプログラム制御方式を採用
し、入力制御部10,レジスタ演算部20及びマイクロ
プログラム制御部30の3つの主要部分より構成されて
いる。入力制御部10とレジスタ演算部20は、内部バ
スUBによって相互に連結されている。The device shown in the figure adopts a micro program control system, and is composed of three main parts: an input control unit 10, a register operation unit 20, and a micro program control unit 30. The input control unit 10 and the register calculation unit 20 are interconnected by an internal bus UB.
10は、システムバスSBを経由して上位の計算機等か
ら直線の交点に対応するドット抽出コマンドを入力・解
読し、初期値設定を制御する入力制御部で、入力レジス
タ11及びバス制御部12とから構成されている。Reference numeral 10 denotes an input control unit for inputting / decoding a dot extraction command corresponding to an intersection of a straight line from a high-order computer or the like via the system bus SB, and controlling initial value setting. It consists of
20は、数値演算を行うレジスタ演算部で、レジスタ・
アンド・アリスメティック・ロジカル・ユニット(以下
「RALU」と略す)21を中心に構成されている。Reference numeral 20 is a register arithmetic unit that performs numerical arithmetic.
It is mainly composed of an AND ARISTIC Logical Unit (hereinafter abbreviated as “RALU”) 21.
RALU21は、複数個の内部レジスタより構成される
レジスタ群22を有し、これらの内部レジスタ間で、例
えば加減算、論理積、論理和等の論理算術演算を行う。
更に、RALU21での演算結果における各種ステイタ
スは、マイクロプログラム制御部30内のマルチプレク
サ31への入力となっている。The RALU 21 has a register group 22 composed of a plurality of internal registers, and performs logical arithmetic operations such as addition and subtraction, logical product, and logical sum between these internal registers.
Further, various statuses in the calculation result of the RALU 21 are input to the multiplexer 31 in the micro program control unit 30.
30は全体の制御及び交点に対応するドット算出の工程
を実行するマイクロプログラム制御部で、マルチプレク
サ31,アドレスシーケンサ32,マイクロプログラム
メモリ33及びパイプラインレジスタ34とから構成さ
れている。Reference numeral 30 denotes a microprogram control unit that executes the overall control and dot calculation process corresponding to the intersections, and includes a multiplexer 31, an address sequencer 32, a microprogram memory 33, and a pipeline register 34.
パイプラインレジスタ34は、マイクロプログラムメモ
リ33からの出力を保持し、前述の入力制御部10及び
レジスタ演算部20の各部分へマイクロ命令を供給す
る。The pipeline register 34 holds the output from the micro program memory 33 and supplies a micro instruction to each part of the input control unit 10 and the register operation unit 20 described above.
マイクロプログラムでの条件付分岐は、マルチプレクサ
31において、レジスタ演算部20からの各種ステイタ
スを含む入力の内、一つを選択しアドレスシーケンサ3
2で判定することによって行われるようになっている。In the conditional branching in the microprogram, the multiplexer 31 selects one of the inputs including various statuses from the register operation unit 20 and selects the address sequencer 3
The determination is made in 2.
本発明は、このように構成された回路を用いて実現され
る方法であり、その詳しい動作は以下の通りである。The present invention is a method realized by using the circuit thus configured, and its detailed operation is as follows.
本発明にあっては、第2図に示すように、2つのドット
P11(x11,y11),P12(x12,y12)
を通る直線L1と、2つのドットP21(x21,y
21)P22(x22,y22)を通る直線L2との交
点にきわめて近く、その交点に対応するドットとしてR
(xc,yc)を抽出する場合を例として動作説明をす
る。In the present invention, as shown in FIG. 2, two dots P 11 (x 11 , y 11 ), P 12 (x 12 , y 12 ).
Straight line L 1 that passes through and two dots P 21 (x 21 , y
21 ) P 22 (x 22 , y 22 ) is very close to an intersection with a straight line L 2 passing through, and R is a dot corresponding to the intersection.
The operation will be described by taking the case of extracting (x c , y c ) as an example.
尚、本発明の方法では、ドットR(xc,yc)を抽出
する過程で従来より提案されている変位比較法を使用し
ている。この変位比較法とは、線分の発生法の一つであ
り、直線、2次曲線図形等を発生させるときに用いられ
るものである。In the method of the present invention, the displacement comparison method conventionally proposed in the process of extracting the dots R (x c , y c ) is used. The displacement comparison method is one of line segment generation methods and is used when generating a straight line, a quadratic curve, or the like.
このような変位比較法は、例えば、 ・「図形のドット表示」信学論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) 等に記載されている。Such displacement comparison methods include, for example, "Dot display of figures", Theory of theory, vol.56-A, No.7, p.401 (July1973), "An improved algorithm for the generation of no.
nparametric curves ”: BWJordan.Jr., WJLennon, BDHolm: IEEETrans.C-22 No.12, p.1052 (Dec.1973) and the like.
その概略は次の通りである。The outline is as follows.
発生すべき直線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) なるアルゴリズムに基づいて生成する方法である。When the equation of the straight line L to be generated is L: f (x, y) = ax−by + c = 0 (3), the dot to be selected next to the already selected dot including the start point is IF MIN | f ( P i ) | = | f (P j ) | THEN TAKE P j (where i, jεI, I = 1,2, ..., 8) (4) is a method of generating.
ここで、a,b,cは定数である。Here, a, b, and c are constants.
第3図は、このような変位比較法にあって、候補となる
ドットを選択するときの説明図である。FIG. 3 is an explanatory diagram when selecting a candidate dot in such a displacement comparison method.
P0,P1,…,P8は、xy平面内のドット位置を表
し、P0は前回選択したドットを、P1,…,P8は今
回選択すべき候補ドットをそれぞれ表している。候補ド
ットP1,…,P8のうちP1,…,P4は4画素連結
表示時の候補ドット、P1,…,P8は8画素連結表示
時の候補ドットである。 P 0, P 1, ..., P 8 represents the dot position in the xy plane, P 0 is a dot previously selected, P 1, ..., P 8 represents a candidate dot to be selected this time, respectively. Candidate dots P 1, ..., P 1 of the P 8, ..., P 4 candidate dots at four pixels connected display, P 1, ..., P 8 is a candidate dots at 8 pixel connected display.
また、(4)式内のIはドットP1,…,P8の添字番
号を示し、f(Pi)は特定平面からドットPiの位
置までの変位(詳細は後述)を表すものである。Further, I in the equation (4) represents the subscript number of the dots P 1 , ..., P 8 , and f (P i ) represents the displacement from the specific plane to the position of the dot P i (details will be described later). is there.
即ち、(3)式で表される直線Lは次式 :z=f(x,y)=ax−by+c…(5) で表される平面とxy平面(z=0の面)との交線と
考えることができ、これを第4図及び第5図に表す。That is, the straight line L represented by the equation (3) is the intersection of the plane represented by the following equation: z = f (x, y) = ax−by + c (5) and the xy plane (the surface of z = 0). It can be thought of as a line and is represented in FIGS. 4 and 5.
第4図は、特定平面とxyz3次元空間内のxy平面
との交わりを示す図、第5図は特定平面の断面図であ
る。FIG. 4 is a diagram showing the intersection of the specific plane and the xy plane in the xyz three-dimensional space, and FIG. 5 is a sectional view of the specific plane.
第4図及び第5図において、特定平面とxy平面との
交線はLで表される。そして、xy平面上のドットP0
(第3図に示したように、既に選択された前回のドット
P0)からの垂線が特定平面と交わる点をA0とする
と、ドットP0(x0,y0)から交点A0までの距離
を|f(P0)|または|z0|で表わし、f(P0)
を特定平面からのドットP0に対する変位と定義す
る。In FIGS. 4 and 5, the line of intersection between the specific plane and the xy plane is represented by L. Then, the dot P 0 on the xy plane
(As shown in FIG. 3, if the point where the perpendicular line from the previously selected previous dot P 0 ) intersects with the specific plane is A 0 , the dot P 0 (x 0 , y 0 ) to the intersection A 0 Is represented by | f (P 0 ) | or | z 0 |, and f (P 0 )
Is defined as the displacement with respect to the dot P 0 from the specific plane.
即ち、 f(P0)=z0=ax0−by0+c…(51) で表される。That is, it is represented by f (P 0 ) = z 0 = ax 0 −by 0 + c (51).
このように、変位比較法とは、前回選択したドットP0
から今回選択すべきドットを決定するにあたり、第3図
に示したような候補ドットP1,…,P8のうちからそ
の変位f(Pi)(i=1,…,8)が最小となるドッ
トを選択して線分を発生し、この操作を順次繰り返して
線分を発生していく方法である。As described above, the displacement comparison method refers to the previously selected dot P 0
From the candidate dots P 1 , ..., P 8 as shown in FIG. 3, the displacement f (P i ) (i = 1, ..., 8) is determined to be the minimum in determining the dot to be selected this time. This is a method in which the dot is selected to generate a line segment, and this operation is sequentially repeated to generate the line segment.
即ち、(4)式で各々の候補ドットP1に対応する変位
f(Pi)の絶対値を比較し、最小の変位を有する候補
ドットPiを次に選択すべきドットとするものである。That is, the absolute value of the displacement f (P i ) corresponding to each candidate dot P 1 is compared by the equation (4), and the candidate dot P i having the smallest displacement is selected as the next dot to be selected. .
なおここで、変位比較法を用いて単純な加減算機能のみ
で直線、曲線を発生するためには、発生すべき線図形の
始点Psが当該線図形上に存在すること、即ち、始点P
sにおける変位f(PS)が“0”であることが前提で
ある。Here, in order to generate a straight line or a curved line only by a simple addition / subtraction function using the displacement comparison method, the starting point P s of the line figure to be generated must exist on the line figure, that is, the starting point P
it is assumed displacement in s f (P S) is "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 により表される。As described above, when the optimum dot is selected by the displacement comparison method, the displacement f (P i ) (i = 1, 2, ..., 8) is calculated based on the equations (5) and (51). Then, it is represented by f (P i ) = f (x 0 + Δx, y 0 + Δy) = f (x 0 , y 0 ) + aΔx−bΔy = f (P 0 ) + aΔx−bΔy.
但し、今回選択すべき候補ドットをドットPi(x0+
Δx,y0+Δy)とし、前回選択されたドットをドッ
トP0(x0,y0)とする。また、Δx,Δyは表示
ドットの座標を対象としているため、iの値により0,
+1,−1のいずれかの値をとる。However, the candidate dot to be selected this time is the dot P i (x 0 +
Δx, y 0 + Δy), and the previously selected dot is dot P 0 (x 0 , y 0 ). Further, since Δx and Δy are intended for the coordinates of the display dot, depending on the value of i, 0,
It takes either a value of +1 or -1.
更に、発生すべき線図形の始点Psが当該線L上に存在
し、変位f(PS)が“0”であるのでf(P0)の初
期値は“0”である。Further, since the starting point P s of the line figure to be generated exists on the line L and the displacement f (P S ) is “0”, the initial value of f (P 0 ) is “0”.
以上のように、変位比較法によれば、乗除算機能を設置
しなくとも、加減算機能のみを有すれば線分発生を実現
できるものである。As described above, according to the displacement comparison method, even if the multiplication / division function is not installed, it is possible to realize the line segment generation only by having the addition / subtraction function.
以上が従来よりある変位比較法の概要説明であり、本発
明方法にあっては、この変位比較法をその手順の中に用
いてある。The above is a brief description of the conventional displacement comparison method. In the method of the present invention, this displacement comparison method is used in the procedure.
次に本発明方法にかかる工程を第8図、第9図、第10
図、第11図のフローチャートを用いて説明する。Next, the steps involved in the method of the present invention will be described with reference to FIGS.
This will be described with reference to the flowcharts of FIGS.
はじめに、第8図のフローチャートより説明を開始す
る。First, the description will be started from the flowchart of FIG.
上位の計算機等よりシステムバスSBを経由して、直線
L1が通る2つのドットP11,P12、直線L2が通
る2つのドットP21,P22のそれぞれのx座標,y
座標(x11,y11,x12,y12,x21,y
21,x22,y22)を入力制御部10内の入力レジ
スタ11にセットした後、上位計算機等から入力制御部
に対してスタート起動(START)がかかる。The x-coordinates and y of the two dots P 11 and P 12 through which the straight line L 1 passes and the two dots P 21 and P 22 through which the straight line L 2 pass from the host computer or the like via the system bus SB.
Coordinates (x 11 , y 11 , x 12 , y 12 , x 21 , y
21 , x 22 , y 22 ) are set in the input register 11 in the input control unit 10, and then a start-up (START) is applied to the input control unit from the host computer or the like.
スタート起動(START)がかかると、マイクロプロ
グラム制御部30は、パラメータx11,y11,x
12,y12,x21,y21,x22,y22を内部
バスUBを経由してレジスタ演算部20内のレジスタ群
22に格納する。これにより、レジスタ群22には上の
レジスタから順に、第1図に示すように、x11,x
12,x21,x22,…のデータが格納される。When the start-up (START) is applied, the micro program control unit 30 causes the parameters x 11 , y 11 , x
12 , 12 , y 21 , x 21 , y 21 , x 22 , y 22 are stored in the register group 22 in the register arithmetic unit 20 via the internal bus UB. Thus, from the register of top to bottom in the register group 22, as shown in FIG. 1, x 11, x
Data of 12 , x 21 , x 22 , ... Are stored.
続いてレジスタ演算部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に格納する。Then register arithmetic unit 20, based on these data, x 12 -x 11, y 11 -y 12, x 22 -x 21, y 21 -x 22, calculates a, x 12 -x 11 → a The values a 1 , a 2 , b 1 , b 2 are stored in the respective registers 22 as 1 , y 11 −y 12 → b 1 , x 22 −x 21 → a 2 , y 21 −y 22 → b 2 .
この時点で、a1=a2=0またはb1=b2=0の場
合(YES)には、直線L1と直線L2は、それぞれ異
なる2つのドットにおけるx座標またはy座標が等しい
ので、x軸またはy軸に平行となり、第2図を参照する
と明らかなように、直線L1と直線L2とは平行であ
り、その交点は存在しない。従って、この場合はエラー
(ERROR)とし、レジスタ演算部20は処理を停止
する。At this point, when a 1 = a 2 = 0 or b 1 = b 2 = 0 (YES), the straight line L 1 and the straight line L 2 have the same x coordinate or y coordinate in two different dots, respectively. , X-axis or y-axis, and as is apparent from FIG. 2, the straight line L 1 and the straight line L 2 are parallel, and there is no intersection. Therefore, in this case, an error (ERROR) is set, and the register calculation unit 20 stops the processing.
一方、a1とa2の少なくとも一方が“0”でない場
合、または、b1とb2の少なくとも一方が“0”でな
い場合(NO)には、直線L1と直線L2とは平行でな
く、交点に対応するドットが存在するので処理を続行す
る。On the other hand, when at least one of a 1 and a 2 is not “0” or when at least one of b 1 and b 2 is not “0” (NO), the straight line L 1 and the straight line L 2 are parallel to each other. However, since there is a dot corresponding to the intersection, the processing is continued.
なおここで、直線L1を表す関数を L1:f1(x,y)=a1x+b1y−c1 (但し、f1(x11,y11)=f1(x12,y
12)と定義する。値c1については、後述の算出式に
は用いられないので特に求めなくてもよく、任意定数と
する。Here, the function expressing the straight line L 1 is L 1 : f 1 (x, y) = a 1 x + b 1 y−c 1 (where f 1 (x 11 , y 11 ) = f 1 (x 12 , y
12 ). Since the value c 1 is not used in the calculation formula described later, it does not need to be particularly calculated and is an arbitrary constant.
そして、この直線L1を含む、3次元空間における平面1 :z=f1(x,y)=a1x+b1y−c1と直
線L2上のドットP21との変位f11と、この平面
1と直線L2上のドットP22との変位f12を求める
処理を開始する。Then, a plane 1 in a three-dimensional space including the straight line L 1 : z = f 1 (x, y) = a 1 x + b 1 y-c 1 and a displacement f 11 between the dot P 21 on the straight line L 2 and This plane
The process of obtaining the displacement f 12 between 1 and the dot P 22 on the straight line L 2 is started.
この変位f11と変位f12を求める処理は、後に詳述
するが、変位比較法によって直線L2を発生するときの
始点となるべき点を選択するためのものである。The process of obtaining the displacements f 11 and f 12 will be described later in detail, but is for selecting a point to be a starting point when the straight line L 2 is generated by the displacement comparison method.
尚、変位f11と変位f12を求める処理は、単純に
は、1 :z=f1(x,y)=a1x+b1y−c1の式
にドットP21(x21,y21)またはドットP22
(x22,y22)を代入すれば求まるが、この演算を
行うにはハードウェア資源として乗算器を設定しないと
処理不可である。本発明は、乗除算機能を設定しないと
いう前提により、次に説明するような処理によって乗算
を含まない演算処理により変位f11と変位f12を求
めるものである。The process of obtaining the displacement f 11 and the displacement f 12 is simply performed by using the formula of 1 : z = f 1 (x, y) = a 1 x + b 1 y-c 1 to calculate the dot P 21 (x 21 , y 21 ) Or dot P 22
It can be obtained by substituting (x 22 , y 22 ), but in order to perform this calculation, processing cannot be performed unless a multiplier is set as a hardware resource. According to the present invention, the displacement f 11 and the displacement f 12 are obtained by a calculation process that does not include multiplication by the process described below on the assumption that the multiplication / division function is not set.
これらの変位f11,f12を求める概念を第6図に表
し、この図を参照しながら変位f11,f12を求める
工程を次に説明する。The concept of obtaining these displacements f 11 and f 12 is shown in FIG. 6, and the process of obtaining the displacements f 11 and f 12 will be described below with reference to this figure.
さて、第8図のフローチャートに戻り、まず、変位f
11を求める手順を説明する。Now, returning to the flowchart of FIG. 8, first, the displacement f
A procedure for obtaining 11 will be described.
最初に、ドットP21(x21,y21)とドットP
11(x11,y11)のx座標,y座標の差をそれぞ
れ求め、 x21−x11→xd1, y21−y11→yd1…(8) をレジスタ群22内のレジスタに格納する。First, the dot P 21 (x 21 , y 21 ) and the dot P 21
11 (x 11 , y 11 ) x-coordinate and y-coordinate difference are respectively calculated, and x 21 −x 11 → xd 1 , y 21 −y 11 → yd 1 (8) are stored in registers in the register group 22. To do.
次に、第9図のフローチャートに遷移する。Next, the process proceeds to the flowchart of FIG.
なおここで、 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) と表わすことができる。Here, it can be expressed as f 1 (x 11 + Δx, y 11 ) = f 1 (x 11 , y 11 ) + a 1 Δx (9) (however, for the increase / decrease Δx of the x coordinate, the xy plane Since the display dots above are targeted, Δx = −1,0, + 1), f 1 (x 11 , y 11 ).
= 0 ((x 11 , y 11 ) is a point on the straight line L 1 ), the formula (9) is as follows: f 1 (x, y 11 ) = f 1 (x) (where f 1 (x 11 ) = 0) ... (10)
そして、y=y11を固定とし、x11→x,0→f1
(x)をレジスタ群22内のレジスタに格納する。Then, y = y 11 is fixed and x 11 → x, 0 → f 1
(X) is stored in the register in the register group 22.
続いて、xd1≧0の場合には、x=x11からxの値
を順次+1インクリメントし、同時に、xをインクリメ
ントする毎にf1(x)=0にa1を加算していき、こ
の動作をx=x21になるまで繰り返す。Then, when xd 1 ≧ 0, the value of x is sequentially incremented by 1 from x = x 11 and at the same time, a 1 is added to f 1 (x) = 0 each time x is incremented. This operation is repeated until x = x 21 .
一方、xd1<0の場合には、x=x11からxの値を
順次1デクリメントし、同時に、xをデクリメントする
毎にf1(x)=0からa1を減算し、この動作をx=
x21になるまで繰り返す。On the other hand, when xd 1 <0, the value of x is sequentially decremented from x = x 11 by 1, and at the same time, a 1 is subtracted from f 1 (x) = 0 each time x is decremented. x =
repeat until the x 21.
これにより、x=x21に達したときのf1(x)の値
はf1(x21)で表される。Thus, the value of f 1 (x) when x = x 21 is represented by f 1 (x 21 ).
次に、x=x21を固定とする。Next, x = x 21 is fixed.
このときは、 f1(x21,y11+Δy) =f1(x21,y11)+b1Δy…(11) と表すことができ(但し、y座標の増減分Δyについて
は、xy平面上における表示ドットを対象としているた
め、Δy=−1,0,+1)、(10)式より、f1(x
21,y11)=f1(x21)となる。In this case, it can be expressed as f 1 (x 21 , y 11 + Δy) = f 1 (x 21 , y 11 ) + b 1 Δy (11) (however, for the increase / decrease Δy of the y coordinate, the xy plane Since the display dots above are targeted, Δy = −1, 0, +1), from equation (10), f 1 (x
21 , y 11 ) = f 1 (x 21 ).
従って、(11)式は、 f1(x21,y)=f1(y) (但し、f1(y11)=f1(x21))…(12) と表わすことができる。Therefore, the equation (11) can be expressed as f 1 (x 21 , y) = f 1 (y) (where f 1 (y 11 ) = f 1 (x 21 )) (12).
そして、y11→y,f1(x21)→f1(y)をレ
ジスタ群22内のレジスタに格納する。Then, y 11 → y, f 1 (x 21 ) → f 1 (y) are stored in the registers in the register group 22.
ここで、yd1≧0の場合には、y=y11からyの値
を順次+1インクリメントし、同時に、yをインクリメ
ントする毎にf1(y)=f1(x21)にb1を加算
していき、この動作をy=y21になるまで繰り返す。Here, when yd 1 ≧ 0, the value of y is sequentially incremented by 1 from y = y 11 and at the same time, b 1 is set to f 1 (y) = f 1 (x 21 ) each time y is incremented. Addition is performed, and this operation is repeated until y = y 21 .
一方、yd1<0の場合には、y=y11からyの値を
順次1デクリメントし、同時に、yをデクリメントする
毎にf1(y)=f1(x21)からb1を減算し、こ
の動作をy=y21になるまで繰り返す。On the other hand, when yd 1 <0, the value of y is sequentially decremented from y = y 11 by 1, and at the same time, b 1 is subtracted from f 1 (y) = f 1 (x 21 ) each time y is decremented. Then, this operation is repeated until y = y 21 .
以上のf1(y)=0にb1を加算または減算していく
動作をy=y21に達するまで繰り返す。The above operation of adding or subtracting b 1 to f 1 (y) = 0 is repeated until y = y 21 is reached.
そして、y=y21に達したときのf1(y21)の値
を変位f11とする。この変位f11はドットP21に
おける平面1との変位に対応する。The value of f 1 (y 21 ) when y = y 21 is reached is the displacement f 11 . This displacement f 11 corresponds to the displacement of the dot P 21 from the plane 1 .
次に、変位f12を求める。Next, the displacement f 12 is calculated.
ドットP22(x22,y22)とドットP11(x
11,y11)のx座標,y座標の差をそれぞれ求め、 x22−x11→xd2, y22−y11→yd2…(13) をレジスタ群22内のレジスタに格納する。Dot P 22 (x 22 , y 22 ) and dot P 11 (x
The difference between the x-coordinate and the y-coordinate of ( 11 , y 11 ) is obtained, and x 22 −x 11 → xd 2 , y 22 −y 11 → yd 2 (13) are stored in the registers in the register group 22.
以下、第10図のフローチャートに示すように、第9図
のフローチャートと同様の工程に従ってf1(y22)
を算出し、この値をドットP22(x22,y22)と
平面1との変位f12とする。Hereinafter, as shown in the flowchart of FIG. 10, f 1 (y 22 ) is processed according to the same steps as those of the flowchart of FIG.
Is calculated, and this value is defined as the displacement f 12 between the dot P 22 (x 22 , y 22 ) and the plane 1 .
次に、変位f11,変位f12のそれぞれの絶対値|f
11|,|f12|を算出して、その大小関係を|f
11|≦|f12|として調べる。Next, the absolute values of the displacements f 11 and f 12 | f
11 |, | f 12 | are calculated, and the magnitude relationship is calculated as | f
It is investigated as 11 | ≦ | f 12 |.
|f11|≦|f12|が成立する場合(YES)は第
11図のM1からの工程を起動して、点P
21(x21,y21)を始点とする。If | f 11 | ≦ | f 12 | is satisfied (YES), the process from M 1 in FIG.
21 (x 21 , y 21 ) is the starting point.
一方、|f11|≦|f12|が成立しない場合(N
O)は第11図のM2からの工程を起動して、ドットP
22(x22,y22)を始点とする。On the other hand, when | f 11 | ≦ | f 12 | is not satisfied (N
O) starts the process from M 2 in FIG.
22 (x 22 , y 22 ) is the starting point.
なおここで、直線L2を表す関数を L2:f2(x,y)=a2x+b2y−c2=0(但
し、f2(x21,y21)=f2(x22,y22) =0)…(14) と定義する。値c2については、後述の算出式には用い
られないので求めなくてもよく、任意でよい。Here, the function representing the straight line L 2 is L 2 : f 2 (x, y) = a 2 x + b 2 y−c 2 = 0 (however, f 2 (x 21 , y 21 ) = f 2 (x 22 , Y 22 ) = 0) (14). The value c 2 is not used in the calculation formula to be described later and thus need not be calculated and may be arbitrary.
そして、決定した始点P21またはP22から、上述し
た変位比較法を用いて、今度は、直線L1に近づく方向
に、直線L2を描画するべく、順次、最適ドットを発生
させていく。Then, from the determined starting point P 21 or P 22 , using the displacement comparison method described above, optimal dots are sequentially generated this time so as to draw the straight line L 2 in a direction approaching the straight line L 1 .
即ち、始点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) の存在する方向に向かって、順次実行する。That is, from the starting point P 21 or P 22 , the straight line L 2 : f 2 (x, y) = a 2 x + b is obtained by the displacement comparison method f 2 (x + Δx, y + Δy) = f 2 (x, y) + a 2 Δx + b 2 Δy. The dot display of 2 y−c 2 = 0 is represented by a straight line L 1 : f 1 (x, y) = a 1 x + b 1 y−c 1 = 0 (however, f 1 (x 11 , y 11 ) = f 1 ( x 12 , y
12 ) = 0) is executed sequentially.
このとき、併せて、逐次発生した直線L2上の最適ドッ
トにつき、直線L1を含む平面1 :z=f1(x,y)=a1x+b1y−c1へ向
かって、xy平面に垂直となる垂線を下ろし、その垂線
の長さを距離F1(x,y)と定義してこの値を算出す
る。At this time, together with the optimum dots on the straight line L 2 that are sequentially generated, the plane 1 including the straight line L 1 is: z = f 1 (x, y) = a 1 x + b 1 y−c 1 toward the xy plane. A perpendicular line perpendicular to is drawn, and the length of the perpendicular line is defined as the distance F 1 (x, y), and this value is calculated.
尚、直線L2上の最適ドットと平面1までの距離F1
(x,y)(但し、xy平面に垂直な距離)は、単純に
は、1 :z=f1(x,y)=a1x+b1y−c1の式
に、選択された最適ドットの座標値(x,y)を逐次代
入すれば求まるが、この演算を行うにはハードウェア資
源として乗算器を設定しないと処理不可である。本発明
は、乗算機能を設定しないという前提により、次に説明
するような処理によって乗算を含まない演算処理によっ
て距離F1(x,y)を求めるものである。The distance F 1 to the optimum dot and plane 1 on the straight line L 2
(X, y) (however, the distance perpendicular to the xy plane) is simply 1 : z = f 1 (x, y) = a 1 x + b 1 y-c 1 It can be obtained by successively substituting the coordinate values (x, y) of the above. However, in order to perform this calculation, processing cannot be performed unless a multiplier is set as a hardware resource. According to the present invention, on the assumption that the multiplication function is not set, the distance F 1 (x, y) is obtained by a calculation process that does not include multiplication by the process described below.
詳しくは、最適ドットの選択は、変位比較法により、 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のいずれかの値である) により求める。More specifically, the optimum dot is selected by the displacement comparison method according to f 2 (x + Δx, y + Δy) = f 2 (x, y) + a 2 Δx + b 2 Δy. At the same time, however, the distance F 1 is calculated. (x, y) the initial value of the F 1 (x, y) = f 1 (x + Δx, y + Δy) = f 1 (x, y) + a 1 Δx + b 1 Δy ( where, f 1 (x, y) is f 1 (X 21 , y 21 ) = f 11 or f 1 (x 22 , y 22 ) = f 12 , and Δx and Δy are any values of 0, +1 and −1.
即ち、距離F1(x,y)の初期値f(x,y)とし
て、始点としてドットP21を選択したときはf11の
値を採用し、始点としてドットP22を選択したときは
f12の値を採用する。そして、直線L2を描画するド
ットが選択される毎に、その時に選択されたΔx,Δy
の値(−1,0,+1)を用いて距離F1(x,y)を
算出する。That is, as the initial value f (x, y) of the distance F 1 (x, y), the value of f 11 is adopted when the dot P 21 is selected as the starting point, and f is selected when the dot P 22 is selected as the starting point. A value of 12 is adopted. Then, every time a dot for drawing the straight line L 2 is selected, Δx and Δy selected at that time are selected.
The distance F 1 (x, y) is calculated using the value of (−1, 0, +1).
ここで、前回のドット選択時の距離F0をf1(x,
y)とし、今回のドット選択時の距離F1をf1(x+
Δx,y+Δy)とする。Here, the distance F 0 at the time of the previous dot selection is set to f 1 (x,
y), and the distance F 1 at the time of dot selection this time is f 1 (x +
Δx, y + Δy).
尚、直線L1に近づく方向に最適ドットを発生させるた
めには、始点P21またはP22の次に選択すべき最適
ドットの平面1からの変位の絶対値が始点とのそれ
(平面1からの変位)に比較して小さくなる方向に直
線L2の描画方向を選べばよい。In order to generate the optimum dot in the direction approaching the straight line L 1 , the absolute value of the displacement from the plane 1 of the optimum dot to be selected next to the start point P 21 or P 22 is that of the start point (from the plane 1 It is sufficient to select the drawing direction of the straight line L 2 in a direction that becomes smaller than the drawing direction.
そして、距離F1(x,y)の符号が反転した時点、即
ち、平面1がxy平面を切る時点で、距離F1(x,
y)の符号が反転する直前の直線L2の最適ドットの平
面1からの距離F0と、反転した直後の直線L2の最
適ドットの平面1からの距離F1の絶対値を比較す
る。Then, when the code is inverted distance F 1 (x, y), i.e., when the plane 1 hangs xy plane, the distance F 1 (x,
the distance F 0 from the plane 1 of the optimal dot straight line L 2 immediately before the sign of y) is reversed, comparing the absolute value of the distance F 1 from the plane 1 of the optimal dot straight line L 2 immediately after inversion.
|F0|≦|F1|の場合には、符号反転直前の最適ド
ットを直線L1と直線L2の交点にきわめて近いドット
とし、このドットを交点に対応するドットとして抽出す
る。In the case of | F 0 | ≦ | F 1 |, the optimum dot immediately before the sign inversion is set as a dot extremely close to the intersection of the straight line L 1 and the straight line L 2 , and this dot is extracted as a dot corresponding to the intersection.
また、|F0|>|F1|の場合には、符号反転直後の
最適ドットを直線L1と直線L2の交点にきわめて近い
ドットとし、このドットを交点に対応するドットとして
抽出する。In the case of | F 0 |> | F 1 |, the optimum dot immediately after sign reversal is set as a dot extremely close to the intersection of the straight lines L 1 and L 2 , and this dot is extracted as a dot corresponding to the intersection.
この交点にた対応する点、即ちドットR(xc,yc)
を第7図に示す。A point corresponding to this intersection, that is, a dot R (x c , y c )
Is shown in FIG.
このように、本発明によれば、直線L1とL2の交点に
対応するドットRを乗除算機能を用いることなく、加減
算を主とするので、簡単なハードウェア構成で精度良く
求めることができるものである。As described above, according to the present invention, since the dot R corresponding to the intersection of the straight lines L 1 and L 2 is mainly added and subtracted without using the multiplication / division function, it is possible to accurately obtain the dot R with a simple hardware configuration. It is possible.
尚、(4)式で表される値a1,b1,a2,b2のい
ずれの1つも0でなく、a1b2=a2b1の場合、即
ち、直線L1とL2が平行な場合には前述の距離F
1(x,y)の符号がいつまでたっても反転しない。こ
のような不都合を発生させないようにするためには、ソ
フトウェアまたはハードウェアによる時間監視タイマー
を設け、一定時間経過しても動作が終了しないときには
エラーとし、動作を打ち切るようにしておく。It should be noted that if any one of the values a 1 , b 1 , a 2 , b 2 expressed by the equation (4) is not 0 and a 1 b 2 = a 2 b 1 , that is, the straight lines L 1 and L When 2 is parallel, the distance F
The sign of 1 (x, y) does not invert. In order to prevent such an inconvenience from occurring, a time monitoring timer provided by software or hardware is provided, and if the operation does not end even after a certain period of time, an error is generated and the operation is aborted.
(発明の効果) 以上詳細に説明したように、本発明は次のように作用す
る。(Effects of the Invention) As described in detail above, the present invention operates as follows.
まず、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を定義する。First, two dots P 11 (x 11 , y 11 ) and P 12
A straight line L 1 passing through (x 12 , y 12 ) and two dots P
The function f 1 (x, y) = a 1 x + b 1 y-c 1 , f 2 (for each of the straight lines L 2 passing through 21 (x 21 , y 21 ) and P 22 (x 22 , y 22 ). x, y) = a 2 x + b 2 y-c 2 where, a 1 = x 12 -x 11 , b 1 = y 11 -y 12, a 2 = x 22 -x 21, b 2 = y 21 -y 22 , C 1 , c 2 are arbitrary, f 1 (x 11 , y 11 ) = f 1 (x 12 , y 12 ) = f 2 (x 21 , y 21 ) = f 2 (x 22 , y 22 ) =
Define 0.
そして、乗除算を用いずに直線L2上のドットP21ま
たはドットP22のいずれかを始点として選択し、この
始点から変位比較法を用いて最適ドット選択により直線
L2を発生させながら、併せて、選択した最適ドットの
直線L1を含む平面1 :z=f1(x,y) からの距離F1(x,y)を逐次計算し、この距離F1
(x,y)の符号がいつ反転するかを判定する。Then, multiply select one of the dot P 21 or dot P 22 on the straight line L 2 as a starting point without using division, while generating a linear L 2 by the optimum dot selected using a displacement comparison method from the start point, At the same time, the distance F 1 (x, y) from the plane 1 : z = f 1 (x, y) including the straight line L 1 of the selected optimum dot is sequentially calculated, and this distance F 1
Determine when the sign of (x, y) is inverted.
距離F1(x,y)の符号の反転を検出すると、符号反
転前後の最適ドットの平面1からのそれぞれの距離F
1(x,y)の絶対値を比較し、小さい方の最適ドット
を直線L1と直線L2の交点に対応するドットとして抽
出する。When the sign reversal of the distance F 1 (x, y) is detected, the respective distances F from the plane 1 of the optimum dots before and after the sign reversal
The absolute values of 1 (x, y) are compared, and the smaller optimum dot is extracted as a dot corresponding to the intersection of the straight line L 1 and the straight line L 2 .
従って、本発明によれば、2つの直線の交点に対応する
ドットを単純な加減算機能のみで精度良く求めることが
できる。Therefore, according to the present invention, the dot corresponding to the intersection of two straight lines can be accurately obtained only by the simple addition / subtraction function.
また、本発明によれば、直線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つの直線
の交点に対応するドットを求めることができる。Further, according to the present invention, when generating the straight line L 2 , the distance f 11 from the plane 1 : z = f 1 (x, y) to the dot P 21 and the plane 1 : z = f 1 (x, y) from the dot P 22 to the distance f 12 and if | f 11 | ≦ | f 12 |, the dot P 21 is the starting point, and if | f 11 |> | f 12 | , Dot P
Since 22 is selected as the starting point, compared to a method in which the starting point is fixed to either dot P 21 or dot P 22 when the drawing of the straight line L 2 is started, the dot corresponding to the intersection of the two straight lines is obtained at higher speed. be able to.
第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……内部バスFIG. 1 is a configuration block diagram showing an embodiment for realizing the method of the present invention, FIG. 2 is a diagram showing dots corresponding to intersections of straight lines, FIG. 3 is a diagram showing directions of candidate dots, and FIG. Four
5 and 5 are diagrams for explaining the displacement comparison method, FIG. 6 is a diagram for explaining calculation of the displacements f 11 and f 12 , and FIG. 7 is for calculating dots corresponding to intersections of straight lines. FIGS. 8 to 11 are flow charts showing the processing steps of the present invention. 10 ... Input control unit, 11 ... Input register 12 ... Bus control unit, 20 ... Register operation unit 21 ... RALU, 22 ... Register group 30 ... Micro program control unit 31 ... Multiplexer 32 ... Address Sequencer 33 ... Micro program memory 34 ... Pipeline register SB ... System bus, UB ... Internal bus
Claims (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)として抽出する交点抽出工程 よりなることを特徴とするディジタル図形処理方法。1. An input control unit which decodes a command from a host device via a system bus and controls initial value setting, and a register which performs a numerical operation based on various constants given from the input control unit. A method for performing graphic processing by dots, which comprises a calculation unit and a microprogram control unit for controlling the whole by receiving various statuses obtained from the calculation result of the register calculation unit.
11 (x 11 , y 11 ) and the dot P 12 (x 12 , y
12 ) and a straight line L 1 and a dot P 21 (x 21 ,
y 21 ) and a straight line L 2 (however, x 11 , y 11 , x 12 , y 12 , x) passing through the dot P 22 (x 22 , y 22 ).
In the digital figure processing method for extracting the dot R (x c , y c ) corresponding to the intersection point with 21 , y 21 , x 22 , y 22 is an integer value, (a) the straight lines L 1 and L 2 are converted into the function L 1: f 1 (x, y ) = a 1 x + b 1 y-c 1, L 2: f 2 (x, y) = a 2 x + b 2 y-c 2 ( where, a 1 = x 12 -x 11 , b 1 = y 11 −
y 12, a 2 = x 22 -x 21, b 2 = y 21 -y 22, c 1, c 2 is optionally, f 1 (x 11, y 11) = f 1 (x 12, y 12) =
0, f 2 (x 21 , y 21 ) = f 2 (x 22 , y 22 ) =
0) was defined as an error generating step of an error when a 1 = a 2 = 0 or b 1 = b 2 = 0, the plane including the (b) said linear L 1 1: z = f 1 (x, y) = a 1 x + b 1 y−c 1 is defined, and x 21 −x 11 → xd 1 , y 21 −y 11 → yd 1 , x 11 → x, 0 → f 1 (x) is stored in the register calculation unit. When xd 1 ≧ 0, x is sequentially incremented by 1 from x 11 to x 21 and a 1 is added to f 1 (x) to obtain xd 1 <0.
In the case of x, x is sequentially decremented by 1 from x 11 to x 21, f 1 (x) = 0 to a 1 is subtracted, and f 1 (x) = f 1
(X 21 ) is calculated and stored as f 1 (x 21 ) = f 1 (y) in the register in the register operation unit, and yd 1 ≧ 0
In the case of, y is sequentially incremented by 1 from y 11 to y 21 and b 1 is added to f 1 (y). When yd 1 <0, y is sequentially decremented by 1 from y 11 to y 21 and f
B 1 is subtracted from 1 (y), and f 1 (y) = f
1 (y 21 ) from the dot P 21 to the plane 1
Up to the displacement f 11, and subsequently store x 22 −x 11 → xd 2 , y 22 −y 11 → yd 2 x 11 → x, 0 → f 1 (x) in the register in the register operation unit, When xd 2 ≧ 0, x is sequentially incremented by 1 from x 11 to x 22, and a 1 is added to f 1 (x) to obtain xd 2 <0.
In the case, x is sequentially decremented by 1 from x 11 to x 22 and a 1 is subtracted from f 1 (x) = 0 to obtain f 1 (x) = f 1
(X 22 ) is calculated and stored as f 1 (x 21 ) = f 1 (y) in the register in the register operation unit, and yd 2 ≧ 0
In the case of, y is sequentially incremented by 1 from y 11 to y 22 and b 1 is added to f 1 (y). When yd 2 <0, y is sequentially decremented by 1 from y 11 to y 22 and f
B 1 is subtracted from 1 (y) to obtain f 1 (y) = f
1 (y 22 ) from the dot P 22 to the plane 1
A displacement f 12 up, | f 11 | ≦ | f 12 | of when a start point of the dot P 21 | f 11 |> | f 12
In the case of |, the starting point selection step of selecting the dot P 22 as a starting point, (c) the straight line L 2 from the starting point P 21 or P 22 obtained in the step (b) using the displacement comparison method Select the best dot to draw, and the plane of this best dot
A dot generating step of sequentially generating optimum dots in a direction in which the absolute value of the displacement from 1 becomes smaller than | f 11 | or | f 12 |, and (d) the step (c) and the step (c) in parallel. In the step 1), the optimum dot sequentially generated in the step (c) is formed on the xy plane toward the plane 1 : z = f 1 (x, y) = a 1 x + b 1 y-c 1 . The vertical length of the vertical line is the distance F
1 (x, y), F 1 (x, y) = f 1 (x + Δx, y + Δy) = f 1 (x, y) + a 1 Δx + b 1 Δy (however, the initial of f 1 (x, y) The value is f 1 (x 21 , y 21 ) = f 11 or f 1 (x 22 , y 22 ) = f 12 , and Δx, Δy = −1, 0, +1) in step (c) above. Each time the optimum dot is selected,
The distance F is calculated using the values of Δx and Δy selected at that time.
1 (x, y) to calculate a distance, (e) a step performed in parallel with the step (d), wherein the code of the distance F 1 (x, y) is sequentially monitored, and the code is calculated. , The distance F 1 immediately before the sign is reversed.
The distance F immediately after the absolute value of (x, y) and the sign are inverted
1 (x, y) is compared with the absolute value, and the smaller distance F 1
The dot (x, y) corresponding to (x, y) is defined by the straight line L 1
And the dot R (x c , y corresponding to the intersection of the line L 2 and the straight line L 2.
(c ) A digital figure processing method comprising an intersection extraction step of extracting as c ).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24568684A JPH0640349B2 (en) | 1984-11-20 | 1984-11-20 | Digital figure processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24568684A JPH0640349B2 (en) | 1984-11-20 | 1984-11-20 | Digital figure processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61123980A JPS61123980A (en) | 1986-06-11 |
JPH0640349B2 true JPH0640349B2 (en) | 1994-05-25 |
Family
ID=17137303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24568684A Expired - Lifetime JPH0640349B2 (en) | 1984-11-20 | 1984-11-20 | Digital figure processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0640349B2 (en) |
-
1984
- 1984-11-20 JP JP24568684A patent/JPH0640349B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS61123980A (en) | 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 | |
JPH076232A (en) | System and method for execution of hybrid forward diffrence process so as to describe bezier spline | |
JPH0214714B2 (en) | ||
US4608660A (en) | Data processing system with condition data setting function | |
JP2002298153A (en) | Generation of partial derivative for perspective correction texture coordinate in four-pixel texture pipeline | |
JPH0640349B2 (en) | Digital figure processing method | |
JP3059739B2 (en) | Information processing apparatus with curve drawing function and processing method | |
JP3305395B2 (en) | Figure division device | |
JPH09106321A (en) | Coordinate input method and device therefor | |
JP2004348708A (en) | Polygon creation method for geographical information system, and its device | |
JP2971765B2 (en) | Polygon drawing method and polygon drawing device | |
JPH0769968B2 (en) | Straight line drawing method in the clip area | |
JP2904994B2 (en) | Coordinate connection display method | |
JP4089806B2 (en) | Curve generating device and method, and storage medium | |
JPH0587869B2 (en) | ||
JP2734643B2 (en) | Intersection calculation method between free curves | |
JPH05274444A (en) | Curved line drawing device | |
JP2780496B2 (en) | Clipping method for drawing equipment | |
JPH0453318B2 (en) | ||
JPH07121735A (en) | Method and device for processing graphic | |
JPH06187425A (en) | Graphic generator | |
JPH10116354A (en) | Arithmetic unit and its method | |
JPH05334431A (en) | Function approximating device for dot shape data | |
JPH03147190A (en) | Straight line drawing method |