三維網格資訊分為兩個部分:幾何(geometry:頂點的位置資訊)資訊和拓撲(topology:點線面之間的鄰接關係)資訊
儲存點麵資訊的資料結構:
1. 以麵為中心(face set):儲存面,每個面包含三角形的頂點的座標值.占用大量記憶體
2. 共享頂點:頂點座標陣列,三角麵片為頂點索引,沒有鄰接關係。
3. 基於面連線
4. 基於邊連線
5. 鄰接矩陣
6. 角表
7. 半邊資料結構
半邊資料結構
內容**)
如下圖使用半邊資料結構表示三角麵片,黃點為點,藍線為半邊,半邊具有方向,黃線為指標。
;半邊:半邊的終點,另一條與該半邊方向相反的半邊,該半邊所在的面,以及半邊順時針(或逆時針)的順序的半邊
struct he_edge
;
面:從示圖可以看出,乙個半邊其實就可以表示乙個面
struct he_face
;
應用:半邊相鄰的點和麵(最兩個面,封閉模型必定有兩個面)
he_vert* vert1 = edge->vert;
he_vert* vert2 = edge->pair->vert;
he_face* face1 = edge->face;
he_face* face2 = edge->pair->face;
迭代乙個面所有的邊
he_edge* edge = face->edge;
do while (edge != face->edge);
處理乙個點所有的鄰接點:
he_edge* edge = vert->edge;
do while (edge != vert->edge);
優點:相對於鄰接矩陣和角表,利用了更少的空間儲存了更加豐富的資訊,利於很多區域性操作。
粗略地實現了半邊資料結構,以及將unity3d的麵片儲存結構轉換為半邊結構。
半邊資料結構
實體的b rep表示模型是一非常複雜的模型,要求能夠表達出多面體各幾何元素之間完整的幾何和拓撲關係,並且允許對這種幾何和拓撲關係進行修改.在b rep表示中,體 面 邊和頂點是最基本的幾何元素,在實體的拼合 顯示 分析計算或人機互動過程中,對基本幾何元素的下列操作是必不可少的 增加或刪除體 面 邊或...
半邊結構實踐總結
目錄3.基本資料結構 4.構網問題 版本日期 說明0.1 2019 06 03 建立文件 為了方便表達流形表面,通過把一條邊拆分成相對兩條半邊,使我們查詢邊 頂點 面非常便捷。對於一條邊來說,對邊正好構成了環。e 0 left e 1.pair e 1.next e 1.prev end right...
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...