點在多邊形內外的判斷

2022-09-07 11:24:08 字數 2379 閱讀 5317

點與多邊形的的位置關係

--點在形內

--點在形外

--點在邊界上

判斷方法

--射線法

--轉角法

射線法

--通常取x軸正方向為射線方向

--奇數次相交,則在形內

--偶數次相交,則在形外

對於凹多邊形也是可以的

射線法的特殊情況

--與定點相交

--與其相鄰的端點或者線段在射線的異側,則認為是相交

--否則不認為相交

與邊部分重合

--縮點法:遇到乙個在射線上的點,向後梁旭跳過所有也在射線上的點,直到第乙個不再射線上的點,在用上述條件。

--平移法:

將射線稍微上公升或下降很小的乙個量。

--實際操作時不用真的平移,只需要判斷較高的端點高於射線,較低的端點低於射線或恰在射線上。

邊界情況

--可以附加判斷

--判斷是否在邊界或者與多邊形的定點重合

--叉乘+座標比較

--轉角法

通過多邊形走一圈,累計繞給定的點多少角度來判斷:

--沿正方向轉角的代數和為2∏,則在內部

--沿正方向轉角的代數和為0,則在外部

轉角法

--特殊情況

--沿正方向轉角的代數和為∏,則在邊上

--沿正方向轉角的代數和為大於 0 小於 2∏

--當相鄰兩條線段共線時,只根據角度有可能分辨不出兩種情況,可以用點積輔以判斷

角度的計算

轉角法還是射線法?

--射線法特殊情況的處理比較麻煩,不夠優美。

--轉角法很優美,而且時間複雜度與射線法一樣

--但是轉角法需要反三角函式、開根、浮點除法的計算。因此實際運算的速度慢很多。

演算法 點在多邊形內外判斷

射線發 射線發判斷點是否在多邊形內部 p 待判斷的點。格式 poly 多邊形定點,陣列成員格式相同 private string raycasting point p,listpoly 判斷線段兩短點是否在射線兩側 if sy py sy py tyif x px return flag in ou...

多邊形判斷點內外

在圖形學中判斷乙個點是否在多邊形內,若多邊形不是自相交的,那麼可以簡單的判斷這個點在多邊形內部還是外部 若多邊形是自相交的,那麼就需要根據非零環繞數規則和奇 偶規則判斷。判斷多邊形是否是自相交的 多邊形在平面內除頂點外還有其他公共點 內 外測試 不自交的多邊形 多邊形僅在頂點處連線,而在平面內沒有其...

點 多邊形內外判斷

問題情境 1.判斷點是否在人體某個部位 不規則多邊形 上 思路辨析 判斷方法有好多種,需要考慮到實用性 侷限性 和 化簡易程度。1.面積和判斷,內角和判斷 角法 等,或侷限於多邊形形狀 凹 凸 或 計算有複雜地方 弧長,角度計算 或侷限於多邊形頂點的順序問題等。2.觀察及檢驗之下,射線法 判斷奇偶 ...