我在輸入上有兩個表示爲兩個向量點的凹多邊形。我想對它做一些多邊形操作 - 聯合,相交和差異。我發現這些多邊形之間的交點並將它們插入每個多邊形的正確位置。然後我給出關於它的位置的信息(內部 - 它在另一個多邊形內,外部 - 它在另一個多邊形之外,交點 - 多邊形的兩條邊相交)到每個頂點。現在我知道哪些點創建了這些多邊形(外部和交叉點)的聯合等,但我需要知道如何將它們排序到正確的順序。在相交運算的情況下,我需要將這些已排序的點分爲正確的集合數,因爲相交的結果可能不止一個多邊形。對多邊形的操作 - 如何對找到的頂點進行排序
我使用C++,但我不一定需要代碼,我只想要如何排序這些最終的多邊形點。而且我不想爲這些操作使用任何庫,因爲我已經有了自己的功能並且想要使用它們。
我看了一下這個問題How to intersect two polygons?還有其他一些問題,但是他們都沒有解決最終的點排序問題。 我也讀過這篇文章http://www.gvu.gatech.edu/~jarek/graphics/papers/04PolygonBooleansMargalit.pdf,但我可能不明白。
任何幫助,將不勝感激。
你如何定義交點(你說你已經定義了它們)?觸點是交點嗎? –
我將觸點定義爲交點,但如果需要,我可以很容易地將觸點定義爲觸點。我有一個位置屬性保存每個點。 – TinF
還有一件事:如果在其中一個多邊形中有對應的觸摸/相交點,您能輕鬆找到相應的觸摸/相交點嗎? –