コラム

エンジニアの道草ノート−

直線

2つのパラメータとその範囲 −青木正喜*

Off the track notes of an engineer– Straight lines two parameters and their range –Masayoshi
概AOKI*
要

直線は平面上での最も基本的な図形の一つである。本稿では，直線の記述を中心として，点群への直線の当てはめを含め，応用的側面について述べる。

はじめに直線は2つのパラメータにより定義，記述される。本稿ではこれらのパラメータの値の範囲に着目する。まず
は直線と関係の深い典型的な道具について述べる。直線の記述において，座標軸やパラメータの選び方によっては，特定の直線が表せない場合がある。全ての直線を記述可能な一般的な方法ならびに，これらのパラメータの値の範囲が無限の場合と有限の場合とについて述べる。
最後に点群を直線で記述するいくつかの手法について述べる。
（脚注写真 1

本稿では，xを独立変数，yを従属変数としてx烏口に関する一次式y=mx+nで直線を記述する場合に，定数として扱われるm, nをパラメータと呼ぶ。変数xとyを第れた方向に三角定規の長辺を合わせ，直角を挟む辺のど三の変数 t により x=fx(t), y=fy(t) の様に記述する場合の t

ちらかを定規にあてて滑らせ，与えられた点を長辺が通を補助変数と呼ぶ。）

るようにすれば，与えられた方向と平行で与えられた点を通る直線が得られる。
もう一つの指定方法は，平面上の2点を与える事で，１．直線と道具与えられた2点を通るように定規または三角定規を置く。
本稿では平面上の直線について考える。直線を書くた定規や三角定規の辺を突き合わせると，これを辺の方向めの道具としては，定規，三角定規等があり，これらのにずらしてもすき間は生じない。これは直線の即物的な定規の辺に添って鉛筆や烏口（烏の嘴の形からの連想，性質である。製図に用いられるドラフター（製図器）で

写真1参照。英語ではa drawing penと烏は関係なく，機は，定規が平行性を保ったまま移動できるようになって能面の記述）を当てることで直線が引かれる。

いる。直線の直感的，即物的な性質としては，2点間を直線の特定方法の一つとしては，直線の方向が任意の糸でぴんと張る事で得られる（これは3次元空間内でも位置に線分として書かれるか，定規を固定して指定され，成立する）。この性質を用いた，非常に完成度の高い大工

直線の通るべき一点を平面上に与える事である。与えら道具として墨壷があり，現在も建築現場などで用いられている。（写真2参照）。

*情報工学科教授(Professor, Dept. of Computer and InformationScience), e-mail address:masa@st.seikei.ac.jp－21－で表される。y切片はn={(y2-y1)/(x2-x1)}(-x1)+y1で与えられる。

x1=x2 の場合は y 軸に平行な直線であり，直線の式はx=x1またはx=x2となり，(3)式では表せない。(1)~(3)式のように座標軸の取り方によっては，特定の直線が記述できなくなる。これは正弦波波形が座標軸の取り方によってsinになったりcosになったりする現象と，類似している。座標軸の取り方は便宜的であり，直線や正弦波波形の本質とは無関係である。ただし，直線や正弦波形の相写真2対的な関係においては，重要な役割を担う。

炭壷(y − y1 )(x 2 − x1) = (y 2 − y1)(x − x1 )(4)と書くと，x1=x2の場合にも適用でき，全ての直線が記述

墨壷の中には墨を含ませた糸が入っており，この糸を材料である木材やコンクリートの平面上の2点に針を用できる。
直線がどちらかの座標軸に平行の場合には， (1)~(3)いてピンと張り，糸を少し上に引っぱり上げてから手を式の記述を用いる場合に注意が必要である。

放すことにより，材料の上に直線が書かれる。製図では，パラメータとしての傾きm，y切片nの値の範囲は，烏口を用いて最終的な図面を書くことを墨入れと言う。

-∞<m<+∞，-∞<n<+∞と共に無限である。
２．式による記述 一点と傾き
３．パラメータ範囲の有限化
式により直線を記述しようとする場合には，平面上に座標系を導入する必要がある。一般的には，直交xy座標

傾きの代りに直線の向き，たとえばx軸と直線の成す系（ガウス座標系）が用いられる。ここで，座標系の原角度θを用いれば，0<θ<2πと値の範囲が有限になる。

点の位置やxy軸の方向の決め方は便宜的であり，記述すx, y切片を用いた，べき直線とは直接の関係はないということに注意が必要である。特定の直線が記述出来なくなる要因は，座標軸x y+ =1
a bの決め方とパラメータの選び方に深く関係している。

式(5)は，2点(a, 0),(0, b)を通る直線を表す。a, bはそれぞれx切片とy切片である。この表記法はx, yに関して対まず一点を通り指定された傾きを有する直線を考える。

称となっており，楕円の表記法

・傾きm，y切片nの直線 x 2  y 2  +   =1 a  by = mx + n

(5)

(1)

mは傾き（x軸方向に1進んだときにy軸方向にm進む），nはy切片（直線とy軸との交点）。

(6)と式の形が類似している。

この記述ではy軸に平行な直線は表せない。逆に(5)式の表記では，x軸に平行な直線，y軸に平行な直線

x=ky+lとすると，今度はx軸に平行な直線が表せない。

はそれぞれa→∞(y=b)，b→∞(x=a)となり明示的には表・点(x0, y0)を通り傾きmの直線せない。またパラメータの範囲は無限である。ここで原y − y 0 = m(x − x 0 )(2)点から直線までの距離ρ，原点から直線に下ろした垂線

y切片はn=-mx0+y0で与えられる。

がx軸と成す角度θを用いたHough変換を適用する。

この場合もy軸に平行な直線は表せない。

ρ = acosθρ = b sinθk(y-y0)= (x-x0)ではx軸に平行な直線が表せない。
・2点(x1, y1), (x2, y2)を通る直線(7)式を代入すると(5)式はx1≠x2であれば，傾きmが(y2-y1)/(x2-x1)で与えられ，直x cosθ + y sinθ = ρ線は

y −y y − y1 =  2 1 (x − x1)
 x 2 − x1 (7)(8)と変形される。ここで既に述べたようにθの範囲は有限(3)(0<θ<2π)である。ρは原点から直線へ下ろした垂線の足の長さであるから，原理的には無限大までの値を取り－22－うる。しかし実際的な問題としては，例えば目の前にあることがほとんどである。この条件の下では，対象とす

Lp = P1 + t(P2 − P1)
Lq = Q1 + k(Q2 − Q1)

る直線は考えている有限の平面内のどこかを必ず通る。

LpとLqを等しいと置くことによりそこでρの最大値としては，扱っている有限な平面内でP1 + t(P2 − P1) = Q1 + k(Q2 − Q1 )考えられる最長の距離まででよい。対象としている平面としてt, kを未知数とする連立一次方程式の解として得が長方形であれば，長方形の対角線の長さが最大値であられる。ここで0<t<1, 0<k<1であれば“線分”P1P2と“線る。無限の範囲を有限化することは，複素数空間におけ分”Q1Q2が交点を持つ。たとえばコンピュータグラフィ

る直線上の点が逆数により有限の円周上の点に写像されックスにおいて，ウィンドウを構成する辺と描画すべきることを連想させる。

直線との交点を求める場合に応用できる。

４．補助変数表示とベクトル表示

５．陰関数で表した直線と点の距離る紙やディスプレイの有限な平面内での直線を対象とす

(13)

(14)

運動の軌跡等の記述では変数xとyを第三の補助変数 txとyに関する1次式によりx=fx(t), y=fy(t)の様に記述する場合がある。補助変f (x, y) = ax + by + c

数としては時間が用いられることが多い。例えばxy平面を用いて内の放物運動は

f (x, y) = 0

f x (t) = x 0 + v x tと置くことにより，直線の陰関数表示が得られる。この(9)1f y (t) = y 0 + v y t − gt 22る。また(16)式の直線は，2次元空間をf (x, y) < 0, f (x, y) > 0

ジュー図形（Lissajous figure）が得られ，の2つの部分空間に分割する。の場合には，単位円となる。fx(t),f x (t) = x 0 + v x t
f y (t) = y 0 + v y t(17)

式(15)にはa, b, cの3つのパラメータがあるが，直線は(10)

これを0と置いた式(16)で与えられ，c≠0と仮定し式(16)の両辺をcで割れば，直線を定めるパラメータはa/cとb/cfy(t)をtの一次関数の2つになる。
ここで点(x0, y0)と式(16)で表される直線との距離を求め(11)る。2直線を

y = mx + k, y = nx + lとすると，点P0(x0, y0)を通り，V(vx, vy)の方向を持つ直(18)とすれば，2直線が直交する条件は線を表す。このP0とVはそれぞれ位置ベクトルと方向ベ

mn = −1

クトルとなっている。この記法を2点P1とP2を通る直線で与えられる。

(19)a≠0, b≠0と仮定し，点(x0, y0)を通り，直線f(x, y)=0に適用すると

L = P1 + t(P2 − P1 )(16)

表現は座標軸の取り方に関係なく全ての直線を記述できで表される。fx(t), fy(t)を正弦波関数とした場合にはリサ

f x (t) = cos t
f y (t) = sint

(15)(12)と直交する直線を考える。式(16)を

P1側の点，t=0は点P1，0<t<1は直線上のP1とP2の間の点，

acy=− x−bbt=1は点P2，1<tは直線上のP2側の点に対応している。ベと書き直すと，点(x0, y0)を通り，直線f(x, y)=0と直交す

クトル表示は座標軸の取り方に依存せず全ての直線を表る直線はすことが出来る。さらにベクトル表示の利点は多次元空by − y 0 = (x − x 0 )aの形のベクトル表示が得られる。ここでt<0は直線上の間内の直線の記述にそのまま拡張できることである。
二次元平面上において，2点P1とP2を通る直線と，2点(20)(21)と書ける。式(20)と式(21)から交点のx座標がb 2 x 0 − ac − aby 0x=
a2 + b2

Q1とQ2を通る直線の交点は，それぞれの直線上の点を以下のようにLp, Lqとしたとき，と求まる。これにより

－23－

(22)

ax 0 + by 0 + c
a2 + b2
ax + by + cy − y 0 = −b 0 2 02a +bNx − x 0 = −a(x − x 0 ) + (y − y 0 ) =2N

i=1i=1a∑ x i + b∑ x i = ∑ x i y i

(23)

i=1
N

ax 0 + by 0 + ca2 + b2i=1(24)(29)

Na∑ x i + bN = ∑ y iが得られ，交点と点(x0, y0)の距離は2N2(30)i=1が得られる。式(29)，式(30)を解くことにより，a,bが次式で求まる。

N N  N ∑ x i y i N −  ∑ x i ∑ y i  i=1  i=1 a = i=1N N 22∑ x i N −  ∑ x i  i=1  i=1  N 2  N   N  N∑ x i  ∑ y i  −  ∑ x i ∑ x i y i  i=1   i=1  i=1b = i=12
 N 2
N ∑ x i  N − ∑ x i  i=1  i=1 となる。

a≠0, b≠0の仮定は(20)式で傾きを用いたために必要となった。a，b共には0ではないとして，a=0，b=0のそれぞれの場合について個別に距離を求めた結果は，(24)
式でそれぞれa=0, b=0としたものとなる。(24)式を求めるときに計算の都合上a≠0, b≠0の条件を課したが，その結果はa=0, b=0の場合を包含している。これは陰関数
表示が座標軸の取り方と表記法とは無関係に，全ての直線を表わせることと対応する。

６．点群への直線当てはめ

(31)

(32)

・点群のモーメントを最小とするやり方もある。ここでは各点が単位の重さを持ち，点群の重心が原点にある

2 次元平面上の N 個の点群

(x i , y i ) i = 1,.....NNN∑ x = 0, ∑ y = 0(25)iii=1が与えられたときに，これらの点群に直線を当てはめる

(33)

i=1

ことにより，点群の性質を表す指標の一つを得ることをと仮定し，座標軸を回転させてモーメントが最大（最小）考える。ここで点群の順序iは考慮しないこととする。となる軸を，点群を代表する軸とする。

・xとyの間に関数関係があると仮定し，実験式(empirical

座標軸をθ時計方向に回転させるとformula)を求めることがよく行われる。ここでは，一次X i = x i cosθ + y i sinθYi = −x i sinθ + y i cosθの関係として直線の式

y = ax + b(26)を仮定する。式(26)の右辺にxiを代入した値は，xiに対応が得られ，X軸まわりの回転モーメントはする直線のyの値であり，実際の点のyの値はyiであるかN

MX = ∑ Xi

ら，点(xi, yi)に関するyの値の近似誤差は

ei = y i − (ax i + b)

=る誤差の二乗和

E = ∑ ei2i=1(27)で与えられる。点群全体について，それぞれの点に関すN(34)Ccos2θ
+ (sin2θ )B +2A2(35)で与えられる。ここで2

 N 2 N 2
A = ∑ y i − ∑ x i  i=1
i=1i=1N= ∑{y i − (ax i + b)}2N(28)B = ∑ xi yii=1i=1の最小化を行う。このためにE をaとbで偏微分し，それNNC = ∑ xi + ∑ yi

ぞれ0と置くことにより，a，bの2つを未知数とする一次i=1

連立方程式

22i=1であり，Cはθにはよらない。式(35)をθで微分して0と－24－xi=x0+cosθ

置くことにより

tan2θ =2BA

yi=yo+sinθ(36)

式(37)のΣは積分となり，を満たすθとして，モーメントが最大（最小）となる軸式(37)の分子 =θが得られる。

2π∫ cosθ sinθ dθ

誤差の二乗和最小，モーメントが最大（最小）の直線は0

両方とも点群の重心を通り，点群全体を一つの直線で表=0す。となり，分母は二乗項であるから，・複数個の直線の検出にはHough変換を用いる手法があR=0る。各点の周りに直線を一回転させると，ρθ空間上でとなる。

(39)

一本の正弦波関数が対応する。同一直線上に属す点に対おわりに応する正弦波関数群は，直線の持つ特定のパラメータρ
θで交差するため，ρθ空間上で交差する点を検出する。
直線を表すパラメータρθは，前述したように，ρは考

本稿では直線を定義，記述する 2 つのパラメータの値えている2次元平面の対角線の長さ，θは0<θ<2πと共の範囲に着目して考察した。このように一つ視点に着目に有限である。そこでパラメータ空間のρθを有限個にすることで，新たな側面が見えてくる。なお最後に取り分割し，小さい投票領域の配列とする。各点に対応する上げた相関係数は，関数自体の性質の指標である自己相正弦波関数を描く代りに，正弦波関数が投票領域を通過関・相互相関とは性質を異にするので注意が必要である。

する時に1票の投票を行う。投票数の多い投票領域に対応するパラメータρθが複数個の直線を与える。

2次元平面上のN個の点群の線形関係の指標として相関係数がある。式(25)の点群に対して，相関係数RはN∑ (x − x)(y − y)iR=ii=1
N(37)N∑ (x − x) ∑ (y − y)2i2ii=1i=1により定義される。相関係数Rはxiとyiの間にyi=axi+bの関係が成立するときに+1または-1となり，完全な相関関係があることを示す。無相関の場合にはRは0となる。
点群が直線に属する場合はyi=axi+bとすれば∑ (x − x)

式(37)の分子 = ai

式(37)の分母 = a∑ (x − x )22iから

R=aa(38)となり，aの値に係わらず，点群が直線上にあれば+1または-1である。
点群が円周上に均一に分布している場合は，(x0, y0)を中心とする単位円の円周上に連続的に分布する点を仮定し，次式のように(xi, yi)をθに関する連続量で置き換えると－25－