直線の方程式

Top »

二点を通る直線

2点は(x1, y1), (x2, y2)

一般形:a*x + b*y + c = 0

a = y2-y1
b = x1-x2
c = x2*y1-x1*y2

代入すると

(y2-y1)*x + (x1-x2)*y + x2*y1 - x1*y2 = 0

x,yについて解くと

x = -(b*y + c)/a

y = -(a*x + c)/b

導出

2点は一直線上にあることにより

a*x1+b*y1+c = 0
a*x2+b*y2+c = 0

を満たすa,b,cを解けばよい。

a,bを解くと

a = (y2-y1)*c/(x2*y1-x1*y2),
b = (x1-x2)*c/(x2*y1-x1*y2)

a*x + b*y + c = 0 に代入すると

(y2-y1)*c/(x2*y1-x1*y2)*x + (x1-x2)*c/(x2*y1-x1*y2)*y + c = 0

c/(x2*y1-x1*y2) で割ると

(y2-y1)*x + (x1-x2)*y + x2*y1 - x1*y2 = 0

標準形:y = m*x + n

標準形ではx軸に垂直な直線を表すことができない。

傾き値は(yの変化量)/(xの変化量)だから

m = (y2-y1)/(x2-x1)

(x1, y1)を通るから、

y - y1 = m*(x-x1)

y = m*(x-x1) + y1
= m*x - x1*m + y1

よって

n = -x1*m - y1

xを解くと

x = -(y1-y-m*x1)/m

ただしx2=x1のときx軸に垂直で:x = x1

媒介変数表示

1次ベジェ曲線の式より

x = (x2-x1)*t + x1
y = (y2-y1)*t + y1

一点を通り任意の傾きの直線

1点は(x1, y1)、傾きは m か tanθ

標準形:y = mx + n

y = m(x - x1) + y1
= m*x - m*x1 + y1

一般形:a*x + b*y + c = 0

m*x - y - m*x1 + y1 = 0

inserted by FC2 system