這裏的光線是一個有趣的練習:查找有多次相交的多邊形儘可能
設P爲一個簡單的,但不一定是凸的,多邊形和q任意點不一定P.
設計一個高效的算法來找到一個線段從q個始發相交P.
的邊緣換言之的最大數量,如果站在點q,在什麼方向,你的目標應該是槍讓子彈會穿過最多的牆壁?
通過P的頂點的子彈只獲得一面牆的功勞。
O(n log n)算法是可能的。 n是頂點或邊的數量,因爲它是一個多邊形,邊的數量大致等於頂點的數量。
這裏是我的想法:
連接Q隨所有的頂點(假設有N個頂點)的P個第一。將會有N條線或N-1條線。
最後的射門線必須位於這兩對之間。所以我們必須找到包含最多邊數的對。
我不認爲這個解決方案是O(n log n)。
任何想法?
哇,我不知道。出於好奇,這裏是什麼?邊緣的數量? – Jeremy
我相信這個問題是相關的:http://stackoverflow.com/questions/4446112/search-for-interval-overlap-in-list-of-intervals你可以表示P中的每個線段作爲一對弧度值來自q的射線必須落在其間。 –
圖像應該沒問題。 –