這很長,只是因爲問題太大。我試圖根據你的要點對我的評論進行分組。
組件繪製多邊形
我的猜測是,你有有限的成功不提供更多的信息 - 組件繪製多邊形會覺得很連接到您所使用的語言和UI範例你的項目的其餘部分,即。 Web組件的代碼看起來與本地組件非常不同。
也許另一種選擇是將流程的這個元素與您正在嘗試做的其他事情分開。有一些非常棒的預先編輯器可用於創建2d和3d多邊形。
Inkscape是一個矢量圖形編輯器的例子,它可以很容易地輸入2D多邊形,並且具有生成輸出SVG的優點,這個SVG相當容易解析。
三維Blender是一款開源編輯器,可用於生成可導出爲多種格式的任意幾何圖形。
如果您可以使用google-maps API(可能位於本地HTML呈現控件中),並且您有興趣在地圖疊加層上添加空間點,則可能對相關的click-to-draw polygon question on stackoverflow感興趣。根據以往的經驗,其他地圖API如OpenLayers支持類似的方法。
檢查多邊形是否重疊
托馬斯噸他answer提出的觀點,即有一些可以用來解決這個問題以及相關查詢相關謂詞的家庭。如果你真的只是在兩個維度上尋找重疊和其他集合的理論操作(聯合,交集,設置差異),你可以使用General Polygon Clipper
當兩個多邊形不需要時,你可能還需要考慮稍微更通用的問題, t應該重疊或共享一個頂點。您可以使用Minkowski和來擴大(放大)二維和三維多邊形以避免此類問題。 Computational Geometry Algorithms Library具有這些算法的健壯實現。
我認爲你很可能是在尋找一種可以執行頂點焊接的軟件,Christer Ericson的書Real-time Collision Detection包含了對該領域基礎知識的廣泛和非常可讀的描述,以及相關的邊緣問題攫取,裂紋檢測,T型接頭等等。然而,儘管這本書包含了代碼片段,但我知道沒有現成的庫來解決這些問題,特別是,除了基本的頂點焊接之外,沒有給出任何完整的實現。
很明顯,所有的3D軟件包(攪拌機,maya,max,rhino)都包含內置的軟件和工具來解決這個問題。基於頂點
從以往的經驗
集團多邊形,這竟然是耗時開發軟件來解決這方面的問題的部分時間最多的一個。它需要對圖論和算法有合理的理解來穿越邊界。值得依靠一個堅實的幾何圖形庫來爲你做繁重的工作。在過去,我通過igraph獲得了成功。
將更新的多邊形鏈接回原件。
再次,從過去的經驗來看,這只是一個小心的記錄,以及一些非常小心的網格類預先設計。我想提供更多的建議,但即使在過去六個月裏花了很大一部分時間,我仍然努力尋找一個「很好」的方式來做到這一點。
其他意見
如果您與用戶互動,我會強烈建議避免這種問題,即可能通過使用「捕捉」,捨去所有的用戶輸入的點到電網的編輯。這將有望顯着減少您必須完成的工作量。
多邊形是二維還是三維? –