Pythonで線分の内分、外分を計算する

$A(a_x,a_y),B(b_x,b_y)$ を結ぶ線分を m:n に内分する点の座標は、次の通り計算します。

$\displaystyle(\frac{na_x+mb_x}{m+n},\frac{na_y+mb_y}{m+n})$

点A(-1,3)、点B(5,0)を2:1に内分する点Pの座標を求めます。

import numpy as np
A=np.array([-1,3])
B=np.array([5,0])
m=2
n=1
p=(n*A+m*B)/(n+m)
p
array([3., 1.])

$A(a_x,a_y),B(b_x,b_y)$ を結ぶ線分を m:n に外分する点の座標は、次の通り計算します。

$\displaystyle(\frac{-na_x+mb_x}{m-n},\frac{na_y+mb_y}{m-n})$

点A(-2,1)、点B(2,3)を2:1に外分する点Qの座標を求めます。

import numpy as np
A=np.array([-2,1])
B=np.array([2,3])
m=3
n=1
q=(-n*A+m*B)/(-n+m)
q
array([4., 4.])

点A(-3,5)、点B(-4,6)を1:2に外分する点Rの座標を求めます。

import numpy as np
A=np.array([-3,5])
B=np.array([-4,6])
m=1
n=2
r=(-n*A+m*B)/(-n+m)
r
array([-2.,  4.])

NumPyやSymPyで関数を探してみましたが見つかりませんでした。

この記事を書いた人

目次
閉じる