Pythonで、2点を通る直線の方程式を求める

図形の問題に関する計算をするとき、ある2点を通る直線の一次方程式を計算することができると便利です。2点$(x_{0},y_{0}),$(x_{1},y_{1})$を通る一次方程式$ax+by+c=0$を求めます。数式は次の通りになります。

$(y_2-y_1)x+(x_1-x_2)y+(x_2y_1-x_1y_2)=0$
$a=(y_2-y_1)
b=(x_1-x_2)
c=x_2y_1-x_1y_2$

例として(2,3),(5,9)を通る直線の方程式を求めると次の通りになります。

p1=(2,3)
p2=(5,9)
a=p2[1]-p1[1]
b=p1[0]-p2[0]
c=p1[1]*p2[0]-p1[0]*p2[1]
print(a,b,c)
6 -3 -3

結果は、$6x-3y-3=0$となります。とても簡単な数式ですが、Pythonで点から直線に下した足(Perpendicular legs)を計算すると組み合わせると、使い勝手がよさそうです。今後、3次元に展開できると面白いと思います。

この記事を書いた人

目次
閉じる