判斷點在多邊形內部的方法 Java版

2021-06-08 06:20:22 字數 500 閱讀 7944

/*** 檢查多邊形是否包含了某點~

* @param point

* @return

*/public

boolean containspoint(bypoint point)   

if ( point.gety() < math.min(p1.gety(), p2.gety()) )   

if ( point.gety() >= math.max(p1.gety(), p2.gety()) )   

// 求交點的 x 座標

float x = (point.gety() - p1.gety()) * (p2.getx() - p1.getx())   

/ (p2.gety() - p1.gety()) + p1.getx();  

if ( x > point.getx() )   

}  // 單邊交點為偶數,點在多邊形之外

return (ncross%2==1);  

}  

判斷點在多邊形內部

微博 文中所指的多邊形均為凸多邊形,一些描述可能有誤,歡迎指正。在開始之前,我們需要先構建好測試環境。我構建了乙個比較特殊的多邊形,如下。從最上面的頂點順時針座標 螢幕座標系 分別為 40,10 60,30 60,50 20,50 20,30 根據對多邊形的了解,我們可以得出如下結論 如果乙個點在多...

判斷點在多邊形內部

用的是射線法,我的 取的是向右的射線 這題沒有點在邊上的情況,但是還是要考慮很多 比如射線覆蓋邊,射線交短點的情況,為了區分各種狀況 我分成了6中相交情況 唉 有點多了 不過比較清晰 不知道別人是怎麼做的 include struct edge struct point 儲存邊 edge e 105...

判斷點在多邊形內部

文中所指的多邊形均為凸多邊形,一些描述可能有誤,歡迎指正。在開始之前,我們需要先構建好測試環境。我構建了乙個比較特殊的多邊形,如下。從最上面的頂點順時針座標 螢幕座標系 分別為 40,10 60,30 60,50 20,50 20,30 根據對多邊形的了解,我們可以得出如下結論 如果乙個點在多邊形內...