2010-03-01 37 views
4

我一直在尋找,但找不到答案。 I 需要使用鼠標交互繪製可調整大小的多邊形,但我不希望 末尾出現不規則,重疊或相交的多邊形。繪圖可調整大小(不相交)多邊形

這裏是繪製多邊形可以調整大小 http://www.wolfpil.de/polygon.html

的一個簡單的例子,你可以輕鬆地創建&調整多邊形這是偉大的。但我需要一個額外的功能來檢測交叉點,並且不允許奇怪的 尋找形狀/多邊形。 你可以看到在這個視頻中的問題: http://www.youtube.com/watch?v=zou2jcGM8zw

對於這個問題,我發現在http://www.wikimapia.org唯一的解決方案。他們增加了處理問題的功能。 你可以在這個視頻中看到它:http://www.youtube.com/watch?v=K7-K0k2D-2A

我花了3天試圖實現這樣的事情。我已經通過wikimapia的javascript代碼去了 ,但是對於我來說 的理解太複雜了。

總之,它不必像wikimapia那樣看起來很花哨。我只需要 需要可調整大小的多邊形,這些大小在調整大小時不會相交,或者 需要添加新的點。你可以給我任何建議如何實現 ?

提前致謝。

回答

1

根據您允許的點數,天真簡單的O(N^2)線相交算法就足夠了。從算法上講,這不是最好的解決方案,但是對於初學者來說,它是計算幾何中最容易獲得的。請參閱Wikipedia article on line segment intersectionOne of its links對如何計算兩條線段的交點有一個容易理解的解釋。

祝你好運!

+0

謝謝,它幫助我明白,這個問題要複雜得多,比我想的。 – pars 2010-03-01 19:49:42

1

雖然這不是一個完整的答案,但請注意,您提供的示例似乎使用的是GMaps Utility Library中的Geometry Controls,這是一個託管在Google代碼上的開源項目。您可以檢查the full source code in the Google Code browser

Google's Geometry Controls http://img521.imageshack.us/img521/6787/poly.jpg

+0

謝謝丹尼爾,我已經通過了這個例子,但它並沒有幫助我完全滿足我需要的東西。 – pars 2010-03-01 19:47:47