素人さんからの質問
問題
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の内部にある。

「算数・数学」の部屋に戻る