如何判断一个点在任意四边形内
生活随笔
收集整理的這篇文章主要介紹了
如何判断一个点在任意四边形内
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
通過面積法,判斷點(diǎn)P是否在四邊形(A,B,C,D)內(nèi)。如果在四邊形內(nèi),則四邊形的面積=面積(P,A,B)+面積(P,B,C)+面積(P,C,D)+面積(P,D,A),反之不在四邊形內(nèi)。
?
? 此處我將判斷方法定義成了靜態(tài)方法,方便其他類訪問,代碼如下:
public?class?IsInQuadrangle?{public?IsInQuadrangle()?{super();}/***?判斷p是否在abcd組成的四邊形內(nèi)*?@param?a*?@param?b*?@param?c*?@param?d*?@param?p*?@return?如果p在四邊形內(nèi)返回true,否則返回false.*/public?static?boolean?pInQuadrangle(Point?a,?Point?b,?Point?c,?Point?d,Point?p)?{double?dTriangle?=?triangleArea(a,?b,?p)?+?triangleArea(b,?c,?p)+?triangleArea(c,?d,?p)?+?triangleArea(d,?a,?p);double?dQuadrangle?=?triangleArea(a,?b,?c)?+?triangleArea(c,?d,?a);return?dTriangle?==?dQuadrangle;}//?返回三個(gè)點(diǎn)組成三角形的面積private?static?double?triangleArea(Point?a,?Point?b,?Point?c)?{double?result?=?Math.abs((a.x?*?b.y?+?b.x?*?c.y?+?c.x?*?a.y?-?b.x?*?a.y-?c.x?*?b.y?-?a.x?*?c.y)?/?2.0D);return?result;} }? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?技術(shù)交流、商務(wù)合作請(qǐng)直接聯(lián)系博主
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 掃碼或搜索:猿說python
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?猿說python
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?微信公眾號(hào)?掃一掃關(guān)注
?
總結(jié)
以上是生活随笔為你收集整理的如何判断一个点在任意四边形内的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq之slideDown() stop(
- 下一篇: BugkuCTF-PWN题canary超