2013-09-28 60 views
0

我有一個多邊形。 enter image description herexlib編程 - 如何查找線是否在給定的多邊形之外

如何通過xlib編程找出黑色線是位於多邊形之外還是位於多邊形之內。

+0

嗯..這似乎是一個優勢案例。如果起點和/或終點在*多邊形邊界*上,那是「內部」?如果一個點在裏面而另一個不在?如果兩個點都不是內部的,你可以檢查它是否穿過任何一個多邊形的邊緣(如果進入,然後離開,多邊形 - 就是*那個「在裏面」)? – usr2564301

回答

0
  1. 創建函數,確定如果點是內/上邊緣/外多邊形

    如果在任何方向投射光線(半軸)從該點到無窮大應該相交多邊形的奇數如果它位於多邊形內部則爲線條,如果在多邊形外部則爲偶數。

    如果光線交叉點直接位於某個邊緣(交點==點),那麼改變一點方向並重試或如果多邊形不是複雜的一個,則可以單擊處理雙擊(來自該頂點的相鄰線條) ...

  2. 如果線不相交任何多邊形線然後

    • 如果其展臺點內的多邊形,然後行內多邊形
    • 如果其展臺點以外的多邊形,然後行是外多邊形
    • 如果一個點是內部,然後一個外線部分位於
    • 如果一個或兩個點都在邊緣然後測試線中點代替
  3. 如果行不相交的任何多邊形線然後

    和該交點是不行也行(上邊緣)的頂點,則線是部分地以別的是完全或縮小根據所述線的第二點

相關問題