素人さんからの質問
問題
4点A:(xa, ya),B:(xb, yb),C:(xc, yc),D:(xd,
yd) があり、四角形ABCDが凸四角形であるとき、
点E:(xe, ye) がこの四角形の内部にあるための条件を求めよ。
解答
4つのベクトル
AB=(xb-xa, yb-ya)
AC=(xc-xa, yc-ya)
AD=(xd-xa, yd-ya)
AE=(xe-xa, ye-ya)
を決める。
AE=sAB+tAC
を満たすs、t を求める。成分を比較して、
xe-xa = s(xb-xa) + t(xc-xa)
ye-ya = s(yb-ya) + t(yc-ya)
これを、s、t について解くと、
s={(xe-xa)(yc-ya) + (xa-xc)(ye-ya)}/{(xb-xa)(yc-ya)
- (xc-xa)(yb-ya)}
t={(xe-xa)(ya-yb) + (xb-xa)(ye-ya)}/{(xb-xa)(yc-ya)
- (xc-xa)(yb-ya)}
同様に、
AE=uAD+vAC
を満たすu、v を求めると、
u={(xe-xa)(yc-ya) + (xa-xc)(ye-ya)}/{(xd-xa)(yc-ya)
- (xc-xa)(yd-ya)}
v={(xe-xa)(ya-yd) + (xd-xa)(ye-ya)}/{(xd-xa)(yc-ya)
- (xc-xa)(yd-ya)}
このとき、
s≧0 かつ t>0 かつ 0<s+t<1
であれば、点Eは、△ABCの内部および辺AC(両端は含まない)上にある。
また、
u≧0 かつ v>0 かつ 0<u+v<1
であれば、点Eは、△ACDの内部および辺AC(両端は含まない)上にある。
つまり、このいずれか一方が成り立てば、点Eは、四角形ABCDの内部にある。
「算数・数学」の部屋に戻る