問(wèn)題:
如果在一個(gè)二維坐標(biāo)系中刽沾,已知三角形三個(gè)點(diǎn)的坐標(biāo),那么對(duì)于坐標(biāo)系中的任意一點(diǎn),如何判斷該點(diǎn)是否在三角形內(nèi)(點(diǎn)在三角形邊線上也認(rèn)為在三角形內(nèi))咙冗。假設(shè)三角形的三個(gè)點(diǎn)的坐標(biāo)為ABC(逆時(shí)針順序)孵滞,需要判斷點(diǎn)D是否在該三角形內(nèi)中捆。
解法:
如果有一個(gè)點(diǎn)D在三角形ABC內(nèi),那么沿著三角形的邊界逆時(shí)針走坊饶,點(diǎn)D一定保持在邊界的左邊泄伪,也就是說(shuō)點(diǎn)D在邊AB、BC幼东、CA的左邊臂容。于是問(wèn)題轉(zhuǎn)化成如何去判斷一個(gè)點(diǎn)P3是在射線P1P2的左邊科雳,這其實(shí)是個(gè)數(shù)學(xué)問(wèn)題根蟹,通過(guò)判斷P1P2和P1P3兩個(gè)向量的叉積的正負(fù)來(lái)判斷。
二維向量的叉積公式:
a(x1糟秘,y1)简逮,b(x2,y2)尿赚,則a×b=(x1y2-x2y1)散庶。