如何判斷乙個點在多邊形的內部

2021-09-27 07:32:58 字數 597 閱讀 7859

給定任意多邊形(不一定是凸多邊形)的頂點座標(逆時針給出點的座標), 然後給定一點,判斷該點是否在多邊形內部?

使用 向量的叉乘(向量積)來進行計算

向量積複習:

因此,當多邊形點的順序是逆時針時,如果點在 多邊形內,則向量積 的結果時正數(為什麼呢,見下面)

特殊:對於三角形,如果給定的點不是逆時針的,也可以通過向量積判斷,然後交換兩個點,得到逆時針的 三角形 的點。

there may be some mistakes in this blog. so, any suggestions and comments are welcome!

[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 根據對多邊形的了解,我們可以得出如下結論 如果乙個點在多邊形內...