在上一篇文章《游戲中戰(zhàn)斗傷害范圍攻擊計(jì)算完整全版》我們計(jì)算了扇形,多邊形,圓形,等傷害范圍獲取。

但是前天的多邊形規(guī)整計(jì)算中,我發(fā)現(xiàn)一個(gè)問題,就是在獲取多邊形判斷的時(shí)候,總有驗(yàn)證不足的情況,也就是未包含出現(xiàn)!

最后百度幾何原理,得到一個(gè)算法

1 /*我們可以把多邊形可以看做是一條從某點(diǎn)出發(fā)的閉合路,可以觀察到在內(nèi)部的點(diǎn)永遠(yuǎn)都在路的同一邊。2         給定線段的兩個(gè)點(diǎn)P0(x0,y0)和P1(x1,y1),目標(biāo)點(diǎn)P(x,y),它們有如下的關(guān)系:3         計(jì)算(y - y0) (x1 - x0) - (x - x0) (y1 - y0)4         如果答案小于0則說明P在線段的右邊,大于0則在左邊,等于0說明在線段上。5          */

 

更簡單便捷的方式,支持浮點(diǎn)數(shù)計(jì)算:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

 1     /** 2      * 驗(yàn)證點(diǎn)在多邊形內(nèi) 3      * 4      * @param x 5      * @param z 6      * @return 7      */ 8     public boolean contains(double x, double z) { 9         /*我們可以把多邊形可以看做是一條從某點(diǎn)出發(fā)的閉合路,可以觀察到在內(nèi)部的點(diǎn)永遠(yuǎn)都在路的同一邊。10         給定線段的兩個(gè)點(diǎn)P0(x0,y0)和P1(x1,y1),目標(biāo)點(diǎn)P(