C 中儲存乙個幾何體的頂點和邊,該如何管理資源?

時間 2021-05-13 00:47:55

1樓:

採用shared_ptr的方案可以這麼改:

把建構函式設為private,然後把make_shared()設為Vertex的友元。

2樓:

cgal庫是全球最強大的開源的計算幾何庫,halfedge資料結構就是用來儲存任意幾何物件的資料,且效率較高,可供參考。https://

doc.cgal.org/latest/Hal

fedgeDS/index.html

3樓:Vii

從節省記憶體的角度考慮,把頂點無重複的存在乙個列表中,幾何體的結構資訊可以用對應的index來解析和構建. 計算機圖形學中有很多很高效的資料結構來解決這個問題.

4樓:Milo Yip

針對需求來設計。

對於這個問題,要考慮需要什麼操作,例如是否需要經常增刪頂點和邊,是否需要從頂點找到邊等等。

如果幾何體在建立後不會被修改,那麼最簡單的設計是在每邊儲存兩個頂點的索引。

另外,多邊形網格(polygonal mesh)有一些常見的資料結構,例如 winged-edge、half-edge 等,可以去了解一下。

兩點透視當乙個幾何體超過其中乙個滅點是怎麼畫的?

星期天 你想說的應該是這種情況吧 當我們確定乙個視角觀察正方體時,正方體水平方向的乙個邊長不斷延長從而導致超過原正方體水平方向上另乙個邊滅點所在位置。首先你要明白乙個觀點,一點透視,兩點透視以及後面的各種透視都只是透視的特殊情況。絕對的一點透視只有你正面面對物體並且沒有偏差角度才是一點透視。也就是說...

C語言記憶體中是否存在乙個區域,儲存著變數的符號,變數的型別和變數的首位址?

fx991ESplus 沒有,編譯器在編譯的時候就已經完成了變數 函式名到實際位址 或者說是偏移量 的轉換了。分割線順便提乙個有趣的事情,vs的編譯器為了能夠讓程式設計師較快的查出陣列下標越界之類的bug,在debug模式下分配記憶體的時候,每個陣列 變數之間都留下一大塊空白,裡面儲存著特定的資訊。...

我和老公訂座的時候乙個在窗邊,乙個在過道,然後發現中間有人要求換座合理嗎?

鋼鐵本鐵 如果想挨在一起為啥不定一起的?而且啥叫要求換座,至少應該是請求吧,大家誰也不欠誰的,人家願意和你換是人家大度,不和你換也沒什麼毛病。生活沒那麼些理所應當。 故人獨酌 你和老公坐火車,兩個座不挨著,中間隔著個人,說話不方便,你想跟人家換座,得徵求人家意見,你要是拿靠窗那個座,與人家換肯定好換...