點與多邊形的的位置關係
--點在形內
--點在形外
--點在邊界上
判斷方法
--射線法
--轉角法
射線法
--通常取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.觀察及檢驗之下,射線法 判斷奇偶 ...