![]() 図1 点から直線に垂線を下す例題のグラフ |
Excel VBA 2007/2003/2002対応(できる大辞典) すぐに使える! Excel関数逆引き辞典 Excel VBA(ブイビーエー)辞典 |
図1のように、P点から直線に垂線を下ろしましょう。 P点は座標(xp,yp)で表現できます。 直線は2点(始点と終点)の座標(x、y)で表現できます。 始点座標は(xs, ys)、 終点座標は(xe,ye)とします |
直線の方程式は ax + by + c = 0 ・・・・・ (1) と表現できる。 (1)式の係数 a,b,c は直線の始点(xs,ys)、終点(xe,ye)座標から求まり、 a = ye - ys b = xs - xe c = -( a・xs + b・ys ) となる。 |
直線の始点(xs,ys)、終点(xe,ye)間の距離(L)は L = √( ( xe-xs)2 + (ye-ys)2 ) ・・・・・ (2) となる。 直線方向の単位ベクトル(ex,ey)は下式となる。 ex = (xe - xs) / L ey = (ye - ys) / L この直線に直角な単位ベクトル( vx,vy )は下式となる。 vx = -ey vy = ex いま、P点(xp,yp)から直線までの距離(最短距離)をkとすると、 (最短距離はP点から垂線の足までの長さとなる) P点(xp,yp)から直線の直角方向(vx,vy)にkだけ移動した点 x = xp + k・vx ・・・・・ (3) y = yp + k・vy ・・・・・ (4) は直線の方程式( (1)式 ax+by+c = 0 ) 上にある。 よって、(3)(4)式のx,yを(1)式の方程式に代入すると、(5)式により、距離kが求まる。 k = - (a・xp + b・yp + c)/(a・vx+b・vy) ・・・・・ (5) 求まった距離 kと(3)(4)式より、垂線の足の座標(xq,yq)が次式で求まる。 xq = xp + k・vx ・・・・・ (6) yq = yp + k・vy ・・・・・ (7) |
P点座標、(xp,yp) = ( 2, 3) とする。 直線の始点 (xs,ys) = ( 5 ,2), 終点( 1 ,7)とし、 図2のように、エクセルを用いP点から直線へ垂線を下ろしましょう。 ![]() 図2 点から線に垂線を下す例題のエクセルシート うまく垂線の足が求まりました。 |