我嘗試實現我的小型CAD,並想知道如何組織Bezier立方體表面基元的數據。我的原始作品,例如一個盒子,將包含六個立方Bezie貼片,爲了方便起見,它們通過自己的數據彼此分離。任何補丁都有16點。我的primitieves將針對任何迭代(選擇點)縫合:例如,補丁邊上的任何點將與相鄰補丁的對應點共享自己的位置。我可以刪除重複點,但爲了渲染和更新原始數據,我需要保持數據不變,同時我需要強大的鼠標拾取算法,在邊緣選取這些點並讓相鄰點的相應點移動一個點。 我想我有兩個選擇:CAD程序的數據結構。用一個數據進行鼠標拾取和渲染
- 組織數據的std :: multimap中或別的東西,其中有幾點需要通過按鍵連接,但在這裏我有搜索點的問題。
- 改進挑選算法,提供2-3點挑選作爲一點,但我認爲這是一個不好的解決方案。
解決此問題的常用方法是什麼?感謝您的任何建議。
您可以更改數據結構,以便點不是修補程序的一部分。然後你只有一個點,並且你會有兩個指向同一點的補丁。 – immibis
這個問題對Stack Overflow格式來說太寬泛了。我認爲你有很多選擇,那麼爲什麼不嘗試一些,看看它們是如何工作的?給出簡要說明真的很難說他們會如何發揮。 – tadman
目前還沒有明確的答案,您真的需要檢查現有的解決方案,甚至可能混合一些以便爲您的需求提供最有效的解決方案。它不在堆棧溢出的範圍內。 –