JPH0255800B2 - - Google Patents

Info

Publication number
JPH0255800B2
JPH0255800B2 JP56007545A JP754581A JPH0255800B2 JP H0255800 B2 JPH0255800 B2 JP H0255800B2 JP 56007545 A JP56007545 A JP 56007545A JP 754581 A JP754581 A JP 754581A JP H0255800 B2 JPH0255800 B2 JP H0255800B2
Authority
JP
Japan
Prior art keywords
register
clock signal
point
coordinate
input
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
Application number
JP56007545A
Other languages
English (en)
Other versions
JPS57120983A (en
Inventor
Nobuhiko Yamagami
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP754581A priority Critical patent/JPS57120983A/ja
Publication of JPS57120983A publication Critical patent/JPS57120983A/ja
Publication of JPH0255800B2 publication Critical patent/JPH0255800B2/ja
Granted legal-status Critical Current

Links

Description

【発明の詳細な説明】
本発明は与えられた2点を結ぶ直線を近似する
格子点群の座標を発生する直線座標発生器に関す
る。 たとえばラスタ・スキヤン型のCRTモニタを
用いた画像表示装置で画像を表示する場合の基本
動作の一つに、その画面上の任意の2点を結ぶ直
線を作画する動作がある。ところで、CRTモニ
タは電子ビームを螢光面に照射してスポツト発光
させるものであり、ラスタ・スキヤン型のCRT
モニタではその原理上から発光位置はラスタ方向
に平行と垂直の2方向のCRTモニタの仕様によ
つて決定される間隔を持つ格子群の交点(格子
点)に限定される。したがつて、与えられた2点
P0,Poを結ぶ直線y=(Y/X)x+a(Y/X
は直線の傾き)を表示するには、この直線の最も
近傍にある格子点を連続発光させて直線近似する
必要がある。このためには、この直線を近似する
発光すべき連続した格子点群の座標を総て見出さ
なければならない。 一般に、格子点間隔が一定の格子点群を有する
2次元座標面を考えた場合、x=xkに対応する上
記直線上の位置を近似する格子点は、x=xkにお
けるy軸上の格子点群の中で上記x=xkに対応す
る直線y=(Y/X)x+a上の位置に最も近接
している格子点である。したがつて、第1図に示
されるようにx=xkに対応する直線y=(Y/X)
x+a上の位置Qを近似する格子点Pk(xk,yk
は、当該位置Qにy軸上で隣接する2点P,P′の
いずれか一方である。明らかなように、上記位置
Qが点Pにより近い場合には、点Pが近似点Pk
となり、逆に点P′により近い場合には、点P′が近
似点Pkとなる。すなわち、x=xkに対応する直
線y=(Y/X)x+a上の位置Qを近似する格
子点Pk(xk,yk)のy座標ykは、上記位置Qのy
座標をy、上記2点P,P′のy座標をそれぞれ
n,n+1(nは整数)とすると n≦y<n+1/2のときyk=n …(1) n+1/2≦y≦n+1のときyk=n+1 …(2) の規則に従つて決定される。この規則は、上記位
置Qが点Pと点P,P′の中点(これを比較点と称
する)との間にあれば点Pを近似点(上記直線上
の位置Qを近似する格子点)Pkとし、上記位置
Qが点P,P′の中点(比較点)と点P′との間にあ
れば点P′を近似点Pkとするものである。第1図
の例では点P′が近似点Pkとして採用されること
は明らかである。 与えられた2点P0,Poを結ぶ直線y=(Y/
X)x+a(ただし0≦Y/X≦1)を近似する
格子点群{PkIk=1,2o-1}の各座標(xk,yk)を
求める方法について更に詳細に説明する。直線の
傾きY/Xが0≦Y/X≦1の場合、求められて
いる最新の格子点の次の(x軸方向に+1された
y軸上の)格子点のy座標は、最新(前)の格子
点のそれと同じであるか、最新(前)の格子点の
それに+1したものである。すなわち、求められ
た最新の格子点Pk-1の座標が(xk-1、yk-1)であ
る場合、次の格子点Pkの座標(xk,yk)は xk=xk-1+1、y=yk-1 …(3) であるか、或いは xk=xk-1+1、y=yk-1+1 …(4) であるかのいずれかである。なお、x座標を順次
マイナス方向に1ずつ移動して、直線を近似する
格子点群の各座標を求める場合には、上記(3),(4)
の符号は「+」を「−」に置き換えればよい。こ
こでは、x座標を順次プラス方向に1ずつ移動し
て格子点の座標を求める場合について説明する。 新たに(次に)求めるべき格子点Pkはx=xk
で示されるy軸上にある。しかして、x=xkのと
きの上記直線上のy座標(真値)をfkとすると、
fkの値はyk-1≦fk≦yk-1+1を満足するはずであ
る。このyk-1すなわちすでに求められている最新
の(前の)格子点Pk-1のy座標は、明らかなよう
に前記(1),(2)のn(第1図参照)に対応しており、
fkは同じくyに対応している。したがつて、前記
(1),(2)は yk-1≦fk<yk-1+1/2のとき yk=yk-1 …(5) yk-1+1/2≦fk≦yk-1+1のとき yk=yk-1+1 …(6) と表わすことができる。上述したようにfkの値は
yk-1≦fk≦yk+1を満足するから、点Pkのy座標
ykを決定するための必要条件はfkの値がyk-1+1/
2より小さいか或いは大きいかを知ることである。
すなわち、 fk<yk-1+1/2のときyk=yk-1 …(7) fk≧yk-1+1/2のときyk=yk-1+1 …(8) となる。ここで gk-1=yk-1+1/2 …(9) と置くと上記(7),(8)は fk<gk-1のときyk=yk-1 …(10) fk≧gk-1のときyk=yk-1+1 …(11) となる。このgk-1をx=xkにおける比較点Ckの比
較値と称する。 以上の説明から明らかなように、与えられた2
点P0,Poを結ぶ直線y=(Y/X)x+a(ただ
し0≦Y/X≦1)を近似する格子点群{Phk=
1,2o−1}の各座標(xk,yk)を求めるためには

x=xkにおける上記直線上のy座標fk(真値)と、
x=xkにおける比較点Ckの比較値gk-1とを求めて
その大小を調べればよい。なお、比較値gk-1は前
記(9)から明らかなようにすでに求められている最
新の格子点Pk-1のy座標yk-1に1/2(格子点間隔
の1/2)をプラスした値である。 次に、上述の考え方に基づいて直線座標(格子
点群の各座標)を決定する従来の方法について具
体的に説明する。たとえば2点P0(0,0)、P6
(6,2)が与えられ、この2点P0,P6を結ぶ直
線y=(1/3)xを近似する格子点群{Phk=1,2
}の各座標(xk,yk)を求めるものとする。こ
の場合、点P0(0,0)を開始点としてx座標を
順次+1しながら点P6(6,2)に至るまでの
xk,yk,fk,gkの値は第1表に示される通りであ
り、この第1表の内容について第2図を参照して
説明する。
【表】 まず、P0を開始点とする場合、その座標(x0
y0)は当然(0,0)となる。そして、比較値g0
はg0=y0+1/2=0+0.5=0.5となる。この比較値
g0(=0.5)は、次の格子点P1を求める際のx1=1
上における真値f1の比較点C1のy座標となる。 x1=1におけるf1の値はf1=(1/3)x1=1/3=
0.333である。この場合f1<g0であり、前記(10)、更
には第2図から明らかなようにy1=y0=0とな
る。すなわち直線y=(1/3)xを近似する点P0
(0,0)に続く格子点P1の座標(x1,y1)は、
(1,0)となる。この結果、比較値g1はg1=y1
+1/2=0+0.5=0.5となる。 次に、x2=2における格子点P2の座標(x2
y2)が求められる。x2=2におけるf2の値はf2
(1/3)x2=(1/3)×2=2/3=0.666である。この
場合f2>g1であり、前記(11)、更には第2図から明
らかなようにy2=y1+1=0+1=1となる。こ
の結果、比較値g2はg2=y2+1/2=1+0.5=1.5と
なる。以下、同様にしてx3(=3)〜x5(=5)に
おける格子点P3〜P5の座標が求められる。 このような従来の直線座標発生方法では、上述
の説明から明らかなようにfk,gkを求める場合に
小数点処理が不可欠であり、更にfkとgkとの大小
比較の場合にも小数点を含む数値の比較が必要で
あつた。このため、直線を近似する格子点群の各
座標を発生する従来の直線座標発生器には、小数
点処理を行なうために積分器などのアナログ回路
などが設けられていた。しかし、このようなアナ
ログ回路は周知のように構成が複雑であり、高価
格となると共に、処理速度が極めて遅い欠点があ
つた。また、上述の手順で、ホストコンピユータ
或いはマイクロプロセツサ等のインテリジエント
機能によつてソフトウエア(フアームウエア)で
行なう手段もあつたが、アナログ回路を用いる手
段にくらべ更に処理速度が遅くなる欠点があり、
問題であつた。また、上記の問題を解決するため
に特開昭52―108739号公報に記載されているよう
な「直線座標発生器(ベクトル発生器)」も知ら
れているが、比較値(の正規化値)を算出するの
に適用される(直線に固有の)値が整数とならな
い場合に、その近似値を用いていることから、精
度が低くなり、また比較値(の正規化値)および
真値(の正規化値)の算出用の高価な加算器を2
個必要とする欠点があつた。 本発明は上記事情に鑑みてなされたものでその
目的は、任意の格子点の2点P0,Poの座標が与
えられたときに、この2点P0,Poを結ぶ直線
(ただし、この直線の傾きをY/Xとすると0≦
Y/X≦1を満足する直線である)を近似する格
子点群の各座標が1個の加算器を含む簡単なデジ
タル回路構成で極めて効率よく高速に、しかも高
精度で発生できる直線座標発生器を提供すること
にある。 以下、本発明の一実施例を説明する。まず、本
発明の直線座標発生器で適用される直線座標発生
方法の原理を説明する。前述したように、与えら
れた2点P0,Poを結ぶ直線y=(Y/X)x+a
(ただし0≦Y/X≦1)を近似する格子点群
{Phk=1,2o-1}の各座標(xk,yk)を求めるた
めには、x=xkにおける上記直線上のy座標fk
(真値)と、x=xkにおける比較点Ckの比較値
gk-1とを求めてその大小を調べる必要がある。こ
こでfkはfk=(Y/X)xk+aによつて求められ
るが、x座標を1移動する毎に乗算が必要となる
ためハード構成が複雑になる恐れがある。そこで
次のようにしてfkを求める。 x=xk-1における上記直線上のy座標はfk-1
(Y/X)xk-1+aである。したがつてfk−fk-1
(Y/X)(xk−xk-1)=Y/Xである。すなわち fk=fk-1+(Y/X) …(12) となる。fk-1は格子点Pk-1を求める際に求められ
ており、この求められた値をラツチしておくこと
により上記(12)で示されるように加算だけでfkが得
られる。 ところでfk,gk-1の大小比較は、x=xkにおけ
る直線y=(Y/X)x+a上の位置が比較点Ck
より上にあるか下にあるかを判定することであ
る。したがつて、この判定が可能であれば必ずし
もfk,gk-1は必要でない。そこで、ここでは、開
始点P0(またはPo)を基準点とし、この規準点か
らx=xkにおける直線上の位置に至るy方向の真
値をf′k、同じく規準点からx=xkにおける比較
点Ckに至るy方向の真値をg′kとする考えを導入
する。この場合、x=x0(またはxo)における比
較点C0(またはCo)のg′0(またはg′o)は明らかな
ように g′0=1/2(またはg′o=1/2) …(13) となる。同じくx=x0(またはxo)におけるf′0は f′0=0(またはf′o=0) …(14) である。また、点P0(x0,y0)を開始点とする場
合、前記(10),(11)からも類推できるように f′k<g′k-1のときyk=yk-1 …(15) f′k≧g′k-1のときyk=yk-1+1 …(16) となる。また、(15),(16)から f′k<g′k-1のときg′k=g′k-1 …(17) f′k≧g′k-1のときg′k=g′k-1+1…(18) となることは明らかである。更に、 f′k=f′k-1+(Y/X) …(19) である。なお、点Po(xo,yo)を開始点とする場
合には、上記(15)〜(19)においてkとk−1
とを入れ替えると共に、(16)においてyk-1+1
をyk-1−1とすればよい。以下、特に断りのない
限り、点P0(x0,y0)を開始点とする場合につい
て説明する。 ところで、f′k,g′k(g′k-1)を求める場合、更に
f′kとg′k-1との大小を調べる場合、上記(13),
(18),(19)から明らかなように小数点処理は避
けられない。そこで本発明では、上記f′k、g′k-1
に代えて、f′k,g′k-1をそれぞれ正規化した真値
Fkと比較値Gk-1を導入し、小数点処理を不要と
している。すなわち、前記(17),(18)で示され
るg′k(g′k-1)が1/2の倍数であり、前記(19)で
示されるf′kが1/Xの倍数であることに着目し、
分数(小数点)が生じることを防止するようにし
ている。そして、このためには以下に示す2通り
の方法A,Bが考えられる。 Aの方法は、前記(13)〜(19)を2X倍する
もので、これにより(13)〜(19)は g′0・2X=X …(13′) f′0・2X=0 …(14′) f′k・2X<g′k-1・2Xのときyk=yk-1…(15′) f′k・2X≧g′k-1・2Xのときyk=yk-1+1 …(16′) f′k・2X<g′k-1・2Xのときg′k・2 X=g′k-1・2X …(17′) f′k・2X≧g′k-1・2Xのときg′k・2X =g′k-1・2X+2X …(18′) f′k・2X=f′k-1・2X+2Y …(19′) となる。ここで Gk=g′k・2X …(20) Fk=f′k・2X …(21) とおくと、上記(13′)〜(19′)は G0=X …(22) F0=0 …(23) Fk<Gk-1のときyk=yk-1 …(24) Fk≧Gk-1のときyk=yk-1+1 …(25) Fk<Gk-1のときGk=Gk-1 …(26) Fk≧Gk-1のときGk=Gk-1+2X …(27) Fk=Fk-1+2Y …(28) となる。明らかなように分数(小数点)の要素が
消えている。 一方、Bの方法は前記(13)〜(19)をX倍す
るもので、これにより(13)〜(19)は g′0・X=X/2 …(13″) f′0・X=0 …(14″) f′k・X<g′k-1・Xのときyk=yk-1…(15″) f′k・X≧g′k-1・Xのときyk=yk-1+1 …(16″) f′k・X<g′k-1・Xのときg′k・X=g′k-1・X
…(17″) f′k・X≧g′k-1・Xのときg′k・X =g′k-1・X+X …(18″) f′k・X=f′k-1・X+Y …(19″) となる。ここで Gk=g′k・X …(28) Fk=f′k・X …(29) とおくと上記(13″)〜(19″)は G0=X/2 …(30) F0=0 …(31) Fk<Gk-1のときyk=yk-1 …(32) Fk≦Gk-1のときyk=yk-1+1 …(33) Fk<Gk-1のときGk=Gk-1 …(34) Fk≧Gk-1のときGk=Gk-1+X …(35) Fk=Fk-1+Y …(36) となる。この場合、(30)から明らかなようにX
が奇数のときG0の値は小数点を有するようにな
る。この結果、Gkには小数点の要素が含まれる。
そこでBの方法では、Xが偶数のとき X′=X/2 …(37) とおき、Xが奇数のとき X′={X−(2n−1)}/2、nは正の整数
…(38) とおき、上記(30)を G0=X′ …(39) として分数(小数点)の要素を消すようにしてい
る。このBの方法では、Xが奇数のとき、G0
値すなわちGkの値が正しい値より上記(38)で
補正した分だけずれてしまうため、従来例、或い
はAの方法にくらべて座標発生に際しわずかに誤
差を生じる。この誤差はnとして小さな値(たと
えばn=1)を用いることでほとんど無視され
る。Bの方法の場合、前記(13)〜(19)をX倍
しているだけなので、Aの方法にくらべ取り扱う
数値の大きさが1/2となる。したがつて、デジタ
ル回路で処理をする場合、取り扱うビツト数が少
なくなり、レジスタ類の構成が簡単になる。 本発明の直線座標発生器は上記Aの方法を用い
たものであり、前述した説明から明らかなように
その直線座標発生方法の原理は、直線y=(Y/
X)x+aを近似するx=xk-1における格子点
Pk-1の座標(xk-1、yk-1)を求めた際に得られて
いるFk-1、Gk-1を用い、まずFk=Fk-1+2Yによ
つてFkを得、次にこのFkと上記Gk-1との大小を
調べることによつて次の(x=xk)格子点Pk
y座標ykを得ると共に、Gkを得て更に次の格子
点Pk+1のy座標を求めるのに備える。 次に第3図を参照して、たとえばCRTモニタ
を用いた画像表示装置における直線座標発生器の
一実施例を説明する。図中、11は2入力情報
(A1入力、B1入力)のいずれか一方を選択する第
1セレクタ、12は同じく2入力情報(A2入力、
B2入力)のいずれか一方を選択する第2セレク
タである。セレクタ11,12は、図示せぬ制御
部(マイクロプロセツサ、ホストコンピユータ)
からセレクト端子Sに与えられる選択信号SELの
論理状態に応じて選択動作を行なう。本発明にお
いて、セレクタ11,12はSEL=“0”のとき
それぞれA1,A2入力を選択し、SEL=“1”のと
きそれぞれB1,B2入力を選択する。13はセレ
クタ11,12の各選択出力を加算する加算器で
ある。 14はセレクタ11に対するA1入力を与える
2Yレジスタ、15はセレクタ11に対するB1
力を与える2Xレジスタである。16はセレクタ
12に対するA2入力を与えるFkレジスタ、17
はセレクタ12に対するB2入力を与えるGkレジ
スタである。Fkレジスタ16には、図示せぬ制
御部から与えられる第1クロツク信号CLK1
(の立上り)に同期して加算器13の加算結果が
保持される。また、Gkレジスタ17には、後述
する制御クロツク信号(の立上り)に同期して加
算器13の加算結果が保持される。 18は比較器である。比較器18は加算器13
の加算結果をA入力、Gkレジスタ17の保持内
容をB入力とし、その入力内容の大小を比較す
る。本実施例において、比較器18はA≧Bのと
きに論理“1”の比較検出信号CMPを発生する。
19は比較器18の比較結果を選択的に記憶する
D型フリツプフロツプ(以下、FFと称する)で
ある。FF19は比較検出信号CMPをD入力、第
1クロツク信号CLK1をクロツク(CK)入力と
し、第1クロツク信号CLK1のたとえば立上り
のタイミングで比較検出信号CMPのレベルをラ
ツチする。20はFF19のQ出力と第2クロツ
ク信号CLK2とを入力するアンドゲートである。
第2クロツク信号CLK2は図示せぬ制御部から
前記第1クロツク信号CKL1より所定時間経過
後に与えられるものである。第2クロツク信号
CLK2は第1クロツク信号CLK1と同一周期T
であり、その位相差は本実施例において180゜であ
る。すなわち、第2クロツク信号CLK2は第1
クロツク信号CLK1より時間T/2遅れている。
アンドゲート20はFF19のQ出力がQ=“1”
である期間中、第2クロツク信号CLK2を制御
クロツク信号CNT―CLKとして出力する。この
制御クロツク信号CNT―CLKはGkレジスタ17
のクロツク(CK)入力となると共に、後述する
ykカウンタ22のクロツク(CK)入力となる。 21は与えられた2点P0,Poを結ぶ直線y=
(Y/X)x+a(ただし0≦Y/X≦1)を近似
する格子点群{Phk=1,2o-1}のx座標xkを発
生するカウンタ(xkカウンタ)である。カウンタ
21はたとえばアツプカウンタであり、第1クロ
ツク信号CLK1に同期してその内容を+1する。
また、22は上記格子点群{Phk=1,2o-1}の
y座標ykを発生するカウンタ(ykカウンタ)であ
る。カウンタ22はたとえばアツプカウンタであ
り、制御クロツク信号CNT―CLKに同期してそ
の内容を+1する。 次に本発明の一実施例の動作を、従来例と同様
に2点P0(0,0)、P6(6,2)が与えられ、こ
の2点P0,P6を結ぶ直線y=(1/3)xを近似す
る格子点群{Phk=1,25}の各座標(xk,yk
を求める場合について、第4図のタイミングチヤ
ートを参照して説明する。本実施例では点P0
(0,0)を開始点としてx座標を順次+1しな
がら点P6(6,2)に至る各格子点Ph(xk,yk
を求めるものとするが、この場合xk,yk,(fk),
Fk,Gkの値は後に詳述するように第2表に示さ
れる通りとなる。
【表】 まず、直線座標を発生するに際し、カウンタ2
1,22および各レジスタ14〜17に対して図
示せぬ制御部(マイクロプロセツサ或いはホスト
コンピユータなど)により初期設定が行なわれ
る。この場合、カウンタ21,22には開始点の
座標がセツトされる。この例では、点P0(0,
0)を開始点とするため、点P0の座標x0(=0)、
y0(=0)が第4図ヲ,ワに示されるようにカウ
ンタ21,22にセツトされる。また、レジスタ
14,15にはそれぞれ2Y(=2×1=2)、2X
(=2×3=6)がセツトされる。これはP0(0,
0)、P6(6,2)を結ぶ直線の傾きY/Xが1/3
であることから明らかである。なお、Y=y6−y0
=2、X=x6−x0=6としても構わないが、この
場合各レジスタ14〜17、セレクタ11,1
2、加算器13、比較器18等のビツト構成を増
やす必要が生じるため、構成が複雑になり高価格
となる恐れがある。更にレジスタ16,17には
第4図ホ,ヘに示されるようにF0,G0がセツト
される。この場合、前記(22)、(23)から明らか
なようにF0=0,G0=X(=3)である。 上述の初期設定が行なわれる初期状態では、選
択信号SELは第4図ハに示されるようにSEL=
“0”とされている。セレクタ11はSEL=“0”
に応じてA1入力すなわちレジスタ14の保持内
容2Y(=2)を選択出力する。また、セレクタ1
2はSEL=“0”に応じてA2入力すなわちレジス
タ16の保持内容F0(=0)を選択出力する(第
4図ニ,ト参照)。加算器13はセレクタ11,
12の各選択出力を加算する。この場合、加算器
13の加算結果は第4図チに示されるようにF0
+2Y(=2)となる。加算器13の加算結果F0
2Y(=2)はレジスタ16,17に出力されると
共に、比較器18のA入力となる。このとき、レ
ジスタ17の保持内容G0(=3)は比較器18の
B入力となつている。 比較器18はA入力、B入力の入力内容の大小
比較を行なう。この場合、比較器18はF0+2Y
(=2)すなわちF1と、G0(=3)との大小を比
較する。明らかなようにA<Bであるため、比較
器18から論理“1”の比較検出信号CMPが出
力されることはない(第4図リ)。 一方、各レジスタ14〜17およびカウンタ2
1,22への初期設定が終了して所定時間が経過
した後、制御部から第1クロツク信号CLK1が
与えられる(第4図イ)。このとき、制御部によ
つて第1クロツク信号CLK1の立上りで第4図
ハに示されるように選択信号SELがSEL=“1”
とされる。 第1クロツク信号CLK1はレジスタ16、FF
19およびカウンタ21のクロツク(CK)入力
となつている。これにより、レジスタ16には第
1クロツク信号CLK1の立上りのタイミングで
加算器13の前記加算結果F0+2Y(=2)がF1
して保持される。また、FF19には第1クロツ
ク信号CLK1の立上りのタイミングでD入力の
内容すなわち比較器18の比較結果(CMP=
“0”)が記憶され、そのQ出力は第4図ヌに示さ
れるように論理“0”である。また、カウンタ2
1の内容x0(=0)は第1クロツク信号CLK1の
立上りで+1され、第4図ヲに示されるようにx1
=x0+1=1となる。これが格子点Pのx座標x1
の値である。 セレクタ11は選択信号SELのSEL=“1”(第
4図ハ)に応じてB1入力すなわちレジスタ15
の保持内容2X(=6)を選択出力する。また、セ
レクタ12は同じくSEL=“1”に応じてB2入力
すなわちレジスタ17の保持内容G0(=3)を選
択出力する(第4図ニ,ト参照)。加算器13は
セレクタ11,12の各選択出力を加算する。こ
の場合、加算器13の加算結果は第4図チに示さ
れるようにF0+2Y(=2)からG0+2X(=9)と
なる。加算器13の加算結果G0+2X(=9)はレ
ジスタ16,17に出力されると共に比較器18
のA入力となる。このとき、レジスタ17の保持
内容G0(=3)は比較器18のB入力となつてい
る。 比較器18はA入力、B入力の入力内容の大小
比較を行なう。この場合、比較器18はG0+2X
(=9)すなわちG1と、G0(=3)との大小を比
較し、第4図リに示されるように比較結果を示す
比較検出信号CMP(CMP=“0”またはCMP=
“1”)を発生する。この信号CMPはFF19のD
入力となる。この時点では、第4図イに示される
ように第1クロツク信号CLK1の後続するパル
スは入力されていないため、FF19は動作しな
い。すなわち、FF19は、比較器18のG1(Gk
とG0(Gk-1)との大小比較結果に無関係にF1(Fk
とG0(Gk-1)との大小比較結果を記憶し続ける。
本実施例では加算器13を時分割で使用し、同一
の加算器13でFk-1+2Y(=Fk)と、Gk-1+2X
(=Gk)とを繰り返し行なうようにしている。こ
の加算器13の加算結果は比較器18のA入力と
なつている。ところで、比較器18はFkとGk-1
との大小比較のために設けられたものである。し
たがつて、加算器13の時分割使用によりGk-1
と2Xとの加算結果GkがA入力となつた場合の比
較器18の比較結果(GkとGk-1との大小比較結
果)は不要なものであり、無視する必要がある。
一方、Fk-1と2Yとの加算結果FkがA入力となつ
た場合の比較器18の比較結果(FkとGk-1との
大小比較結果)は必要とする情報である。そこで
本実施例では、FF19を用い、比較器18の比
較結果(比較検出信号CMP)をD入力、第1ク
ロツク信号CLK1をクロツク(CK)入力とする
ことによつて、前述したように第1クロツク信号
CLK1の立上りのタイミングでFkとGk-1との大
小比較結果だけを選択的に記憶するようにしてい
る。明らかなように前述のG1とG0との大小比較
結果は無視される。これはGkとGk-1との比較結
果についても同じである。したがつて、本実施例
によれば、加算器13を時分割使用してFk-1
2Y(=Fk)およびGk-1+2X(=Gk)の2種の加算
を行なわせることによる不都合は生じない。 第1クロツク信号CLK1が直線座標発生器に
与えられた後、所定時間T/2が経過すると、第
4図ロに示されるように第2クロツク信号CLK
2が与えられる。そして、これに伴つて選択信号
SELがSEL=“0”とされる。このように、本実
施例では、選択信号SELは初期状態においてSEL
=“0”とされており、以後第1クロツク信号
CLK1のパルスの出現に応じてSEL=“1”とさ
れ、この第1クロツク信号CLK1より位相が180゜
(時間T/2)遅れている第2クロツク信号CLK
2のパルスの出現に応じてSEL=“0”とされる
(第4図イ,ロ,ハ参照)。第2クロツク信号
CLK2はアンドゲート20の一方の入力端子に
入力される。このとき、アンドゲート20の他方
の入力端子にはFF19のQ出力(Q=“0”)が
入力されている。 アンドゲート20はFF19のQ出力が論理
“0”である期間中、閉じられている。したがつ
て、第2クロツク信号CLK2が入力されている
にもかかわらず制御クロツク信号CNT―CLKは
発生されない(第4図ル)。このためカウンタ2
2では、カウント動作は行なわれず、x=x1にお
ける格子点P1のy座標y1は第4図ワに示されるよ
うに点P0のy座標y0(=0)と同じである。この
時点で点P1の座標(x1,y1)は(1,0)とな
る。また、同じ理由により、レジスタ17のロー
ド動作が行なわれないため(第4図ヘ)、加算器
13からG0と2Xとの加算結果(G0+2X)がレジ
スタ17に出力されているにもかかわらず、レジ
スタ17の内容は更新されずG0(=3)のままで
ある。すなわちG1=G0である。 SEL=“0”では、前述したように加算器13
はレジスタ16,14の各保持内容すなわちF1
(=2)と2Y(=2)とを加算してF2すなわちF1
+2Y(=4)を得る。この加算器13の加算結果
はレジスタ16,17に出力されると共に比較器
18のA入力となる。このとき、レジスタ17の
保持内容G1(=3)は比較器18のB入力となつ
ている。 比較器18はA入力、B入力の入力内容、すな
わちF2=F1+2Y(=4)とG1(=3)との大小を
比較する。この場合F2>G1すなわちA>Bであ
るため、比較器18は第4図リに示されるように
論理“1”の比較検出信号CMPを出力する。こ
の信号CMP(CMP=“1”)はFF19のD入力と
なつている。 一方、第2クロツク信号CLK2のパルスが出
現した後時間T/2が経過すると、再び第1クロ
ツク信号CLK1のパルスが出現する(第4図イ,
ロ)。そして、これに伴つて選択信号SELがSEL
=“1”とされる(第4図ハ)。第1クロツク信号
CLK1はレジスタ16、FF19およびカウンタ
21のクロツク(CK)入力となつている。これ
により、レジスタ16には第1クロツク信号
CLK1の立上りのタイミングで加算器13の前
記加算結果F1+2Y(=4)がF2として保持され
る。また、FF19には第1クロツク信号CLK1
の立上りのタイミングでD入力の内容すなわち比
較器18の比較結果(CMP=“1”)が記憶され、
そのQ出力は第4図ヌに示されるように論理
“1”である。また、カウンタ21の内容x1(=
1)は第1クロツク信号CLK1の立上りで+1
され、第4図ヲに示されるようにx2=x1+1=2
となる。これが格子点Pのx座標x2の値である。 SEL=“1”では、一般に加算器13は前述し
たようにレジスタ16,14の各保持内容Gk-1
Xを加算してGkを得る。この場合、加算器13
はG1(=3)と2X(=6)とを加算してG2すなわ
ちG1+2X(=9)を得る。この加算器13の加算
結果はレジスタ16,17に出力されると共に比
較器18のA入力となる。このとき、レジスタ1
7の保持内容G1(=3)は比較器18のB入力と
なつている。比較器18はA入力、B入力内容の
大小比較を行なう。G2(Gk)とG1(Gk-1)の比較
結果の出力期間中は、前述したように第1クロツ
ク信号CLK1のパルスが出現されないため、FF
19によるラツチ(記憶)動作は行なわれず、上
記比較結果は無視される。 そして、第1クロツク信号CLK1のパルスが
出現した後時間T/2が経過すると、再び第2ク
ロツク信号CLK2のパルスが出現する(第4図
イ,ロ)。このとき、前述したようにFF19のQ
出力は論理“1”(Q=“1”)であるため、アン
ドゲート20は開かれている。したがつて、アン
ドゲート20は、FF19のQ出力がQ=“1”で
ある期間中、第4図ルに示されるように第2クロ
ツク信号CLK2を制御クロツク信号CNT―CLK
として出力される。この制御クロツク信号CNT
―CLKはカウンタ22およびレジスタ17のク
ロツク(CK)入力となる。これにより、カウン
タ22の内容y1(=0)は第4図ワに示されるよ
うに+1され+1となる。これが格子点P2のy
座標y2の値である。また、レジスタ17には上記
制御クロツク信号CNT―CLKに同期して第4図
ヘに示されるように加算器13の加算結果G1
2X(=9)が保持される。これがG2であり、前述
した動作説明から明らかなように、次の格子点
P3のy座標を求める際の(x=x3における)比
較点C3の規格化された比較値として用いられる。 以下、同様にしてFk,Gk-1の大小比較、この
大小比較結果の記憶、この比較結果の記憶内容に
基づく格子点Pkの(y)座標の決定、およびレ
ジスタ16,17の内容の更新が繰り返し行なわ
れ、残りの格子点P3〜P6の座標が求められる
(第2表参照)。なお、点P6の座標はあらかじめ
与えられているものであり、必ずしも上述の手段
によつて点P6の座標を発生する必要はない。 明らかなように本実施例によれば、極めて簡単
なデジタル回路で構成される直線座標発生器によ
つて、与えられた2点P0(0,0)、P6(6,2)
を結ぶ直線y=(1/3)xを近似する格子点群の各
座標(xk,yk)を小数点処理を行なうことなく効
率よくかつ高速に発生できる。本発明は、直線の
傾きY/Xが0≦Y/X≦1であればいかなる直
線にも対処できることは勿論である。 なお、前記実施例では、点P0を開始点とした
場合について説明したが、点P6を開始点すなわ
ち与えられた2点のうちy座標(x座標)の大き
い点を開始点とし、x座標をマイナス方向に進め
て各格子点を求めることも可能である。この場合
アツプカウンタ機能を有するカウンタ21,22
に代えてダウンカウンタが必要となる。またアツ
プ/ダウンカウンタを用い、与えられた2点のい
ずれを開始点とするかによつて、カウント方向を
切換えるようにしてもよい。 ところで、前記実施例で用いられたFk,Gk-1
は開始点P0(またはPo)を規準点とし、この規準
点からx=xkにおける直線y=(Y/X)x+a
上の位置に至るy方向の値f′k、および規準点か
らx=xkにおける比較点Ckに至るy方向の真値
g′k-1を2X倍して正規化した値である。この場合、
F0,G0は前記(23),(22)から明らかなように
開始点P0(またはPo)の座標に無関係に固定値と
なる。これに対し、従来例で示したようにx=xk
における直線y=(Y/X)x+a上の位置のy
座標fk、およびx=xkにおける比較点Ckのy座標
gkを2X倍してFk,Gk-1とすることも可能である。
この場合、F0,G0には開始点P0(またはPo)の座
標の要素が含まれるため、F0,G0は開始点の座
標によつて種種変わり得る。このため、G0,F0
の初期設定が多少複雑となることはあり得る。ま
た、この場合、点P6(Po)を開始点とするには、
加算器13に減算を行なわせる必要がある。 また前記実施例では、本発明をCRTモニタを
用いた画像表示装置に適用した場合について説明
したが、これに限るものではなく、本発明は、同
様の原理に基づいて図形を表現するX―Yプロツ
タなどの装置にも適用できる。 以上詳述したように本発明によれば、任意の格
子点の2点P0,Poの座標が与えられたときに、
この2点P0,Poを結ぶ直線を近似する格子点群
の各座標を、1個の加算器を含む簡単なデジタル
回路構成で極めて効率よく高速に、しかも高精度
で発生することができる。
【図面の簡単な説明】
第1図は格子点群を有する2次元座標面におけ
る直線と、この直線を近似する格子点とを一般的
に説明するための図、第2図は上記の関係を具体
的に説明するための図、第3図は本発明の直線座
標発生器の一実施例を示すブロツク図、第4図は
動作を説明するためのタイミングチヤートであ
る。 11…第1セレクタ、12…第2セレクタ、1
3…加算器、14…2Yレジスタ、15…2Xレジ
スタ、16…Fkレジスタ、17…Gkレジスタ、
18…比較器、19…フリツプフロツプ(FF)、
21…xkカウンタ、22…ykカウンタ。

Claims (1)

  1. 【特許請求の範囲】 1 2点P0(x0,y0)、Po(xo,yo)を結ぶ傾き
    Y/X(ただし0≦Y/X≦1)の直線を近似す
    る格子点群{Pkk=1,2o-1}の座標を発生する
    直線座標発生器において、 値「2Y」が初期設定される2Yレジスタと、 値「2X」が初期設定される2Xレジスタと、 値「0」が初期設定されるレジスタであつて、
    周期Tの第1クロツク信号に同期して入力情報を
    保持するためのFkレジスタと、 値「X」が初期設定されるレジスタであつて、
    上記第1クロツク信号と同一周波数で位相がほぼ
    T/2だけ異なる第2クロツク信号に同期した制
    御クロツク信号に同期して入力情報を保持するた
    めのGkレジスタと、 上記第1クロツク信号の周期Tの後半である第
    1の期間毎に上記2Yレジスタの保持内容を選択
    し、前半である第2の期間毎に上記2Xレジスタ
    の保持内容を選択する第1セレクタと、 上記第1の期間毎に上記Fkレジスタの保持内
    容を選択し、上記第2の期間毎に上記Gkレジス
    タの保持内容を選択する第2セレクタと、 上記第1セレクタおよび第2セレクタの両出力
    を加算してその加算結果を上記Fkレジスタおよ
    び上記Gkレジスタの両入力に供給するための加
    算器と、 この加算器の加算結果と上記Gkレジスタの保
    持内容との大小を比較する比較器と、 この比較器の比較結果を上記第1クロツク信号
    に同期して記憶するための状態保持手段と、 この状態保持手段の記憶内容に応じて上記第2
    クロツク信号を上記制御クロツク信号として出力
    するゲート回路と、 上記点P0またはPoのx座標が初期設定され、
    上記第1クロツク信号に同期してカウント動作を
    行うxkカウンタと、 上記点P0またはPoのy座標が初期設定され、
    上記制御クロツク信号に同期してカウント動作を
    行うykカウンタと、 を具備し、上記xkカウンタおよびykカウンタか
    ら、上記直線を近似する格子点群の各座標を順次
    発生させることを特徴とする直線座標発生器。
JP754581A 1981-01-21 1981-01-21 Generation of linear coordinate Granted JPS57120983A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP754581A JPS57120983A (en) 1981-01-21 1981-01-21 Generation of linear coordinate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP754581A JPS57120983A (en) 1981-01-21 1981-01-21 Generation of linear coordinate

Publications (2)

Publication Number Publication Date
JPS57120983A JPS57120983A (en) 1982-07-28
JPH0255800B2 true JPH0255800B2 (ja) 1990-11-28

Family

ID=11668756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP754581A Granted JPS57120983A (en) 1981-01-21 1981-01-21 Generation of linear coordinate

Country Status (1)

Country Link
JP (1) JPS57120983A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04281700A (ja) * 1991-03-08 1992-10-07 Yamaha Corp 多チャンネル再生装置
JPH0534799U (ja) * 1991-10-07 1993-05-07 株式会社ケンウツド プロロジツクデコーダ

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52108739A (en) * 1976-03-09 1977-09-12 Nec Corp Vector generator

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52108739A (en) * 1976-03-09 1977-09-12 Nec Corp Vector generator

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04281700A (ja) * 1991-03-08 1992-10-07 Yamaha Corp 多チャンネル再生装置
JPH0534799U (ja) * 1991-10-07 1993-05-07 株式会社ケンウツド プロロジツクデコーダ

Also Published As

Publication number Publication date
JPS57120983A (en) 1982-07-28

Similar Documents

Publication Publication Date Title
US7205800B2 (en) Clock frequency divider circuit
US7937424B2 (en) Frequency converter and methods of use thereof
US4339722A (en) Digital frequency multiplier
US4991188A (en) Digital frequency divider
US4910698A (en) Sine wave generator using a cordic algorithm
KR960003063B1 (ko) 프로그램으로 분수 주파수를 분할할 수 있는 클럭 발생기
US4479192A (en) Straight line coordinates generator
JPH1027088A (ja) 乱数発生装置および乱数発生方法
JPH0255800B2 (ja)
US7072920B2 (en) Method and apparatus for digital frequency conversion
JPH0255799B2 (ja)
JP7397686B2 (ja) 時刻生成装置
KR20220014992A (ko) 올-디지털 위상 고정 루프
JPS6232519B2 (ja)
JP3536426B2 (ja) 波形発生器
US6697830B2 (en) Polynomial coefficient generator
US6647080B1 (en) Carrier phase initialization with sub-LSB accuracy
JPH01136203A (ja) ディジタル一次ホールド回路
JPH08202533A (ja) 除算処理装置
KR20050016309A (ko) 디지털 주파수 전환을 위한 방법 및 장치
JP2018137747A (ja) 信号出力装置
JPH03108004A (ja) 電磁石制御装置
JPH04105415A (ja) 信号選択回路
KR20030076030A (ko) 셀프 스캔 생성회로
JPH05300377A (ja) 画像データ変換処理装置