3
我有一個有趣的問題,我一直試圖解決一段時間。沒有「正確的」解決方案,因爲沒有成功的嚴格標準。我想做到的是兩個簡單的多邊形之間的多邊形B.多邊形多邊形B.完全包含在一個平穩過渡,從多邊形A兩個相交多邊形之間的平滑過渡(有趣的問題)
我對這個過渡標準是:
- 的過渡是在時間和空間上連續
- 從多邊形A「填充」爲多邊形B的區域應填充好像A中有液體倒出成B形
- 重要的是,這個動畫可以在飛行中進行計算,也可以通過一組需要的參數進行定義空間,比如少於幾個Kb。
作弊是完美的罰款,任何方式來解決這個問題,使它看起來不錯是一個可能的解決方案。
解決方案,我認爲,和大多排除:
- 配對起來一個頂點和B,只需插。看起來不好,在凹多邊形的情況下不起作用。
- 將區域B-A劃分成凸多邊形,也許是一個Voronoi圖,並通過在較小的凸多邊形上執行BFS來計算多邊形的離散狀態。然後我在離散狀態之間進行插值。注意:如果多邊形B-A是凸的,則轉換相當平凡。我沒有采用這個解決方案,因爲將B-A劃分成尺寸相同的小凸多邊形令人驚訝地困難
- 模擬:細分多邊形A.以離散的小步驟沿着多邊形線正常(向外)移動每個頂點。對於每一步,檢查頂點是否仍然在B內。如果不是,則返回到前一個位置。重複,直到A等於B.我不喜歡這個解決方案,因爲檢查一個頂點是否在一個多邊形內是很慢的。
有沒有人有任何不同的想法?
對於堆棧溢出,這不是一個合適的問題。它太寬泛了,你基本上要求別人爲你寫代碼(或者至少爲你提供一個算法)。 – user1118321