判斷乙個點是否在多邊形內

2021-06-22 01:35:59 字數 434 閱讀 4973

演算法:如果是凸多邊形,我覺得這樣很方便:1)在多邊形內任取一點a(比如是某對角線的中點,如果是三角形則取某中線的中點)。2)判斷未知點(設為b)與a是否在任何一條邊的同側。方法簡單有效:設任一邊的直線方程為:y=ax+b;令f(x)=ax+b-y;只需判斷f(a)×f(b)>0:a,b同側 =0:在邊上 <0:異側,則點b在多邊形外遍歷每條邊,如果a,b都在同側,則點b在多邊形內;如果是凹多邊形,就無法找到像a的點。已經說了凸多邊形的方法了。

但是對於凹多邊形的解法可能並不是經典做法。對於凹多邊形的經典做法如下:1. 做一條過被測試點p的任意直線。2. 求得所有和多邊形的交點。這裡需要正確判斷「奇點」和「偶點」。3. 從點p開始沿著直線往外面數,如果不算點p,能夠數的點數為奇數點,則說明點p在多邊形內,否則如果是偶數點,則說明點p在多邊形外。另外,還須仔細檢查p是否在多邊形上。

庫函式:c++的ptinregion

射線法判斷乙個點是否在多邊形內

一 射線法 從需要判斷的點向任意方向引一條射線,計算與多邊形交點的個數,如果是偶數或0,則點在多邊形外,如果是奇數,則點在多邊形內,若點在多邊形的邊上,則需要做特殊判斷。二 思路 1 從需要判斷的點向x軸負方向引一條射線,判斷多邊形的每一條邊與這條射線是否有交點。需判斷的點為point p,多邊形頂...

演算法 Python判斷乙個點是否在多邊形內部

題目 點與多邊形頂點重合 if sx px and sy py or tx px and ty py return px,py 判斷線段兩端點是否在射線兩側 if sy py and ty py or sy py and ty py 線段上與射線 y 座標相同的點的 x 座標 x sx py sy ...

判斷乙個點是否在多邊形中

例項 1 圖 1是乙個典型的14邊形,紅點為測試點,判斷該紅點是否在14邊形中。解決方法 穿過紅點,做一條平行於x軸的水平線,於14邊形共有8個交點,如果,在紅點的左右兩邊各有奇數個交點,那麼在多邊形中 如果,左右兩邊各有偶數個交點,那麼不在多邊形中 圖 2 例項 2 多邊形是交叉的且封閉的。如圖二...