半邊結構實踐總結

做者: 姚彧
版本歷史:算法

版本 日期 說明
0.1 2019-06-03 建立文檔

版權聲明:本文爲做者原創文章,博客地址:https://www.cnblogs.com/yaoyu126 未經做者容許不得轉載。數據結構

1. 半邊定義

爲了方便表達流形表面,經過把一條邊拆分紅相對兩條半邊,使咱們查找邊、頂點、面很是便捷。spa

2. 半邊的基本性質

2.1 一條邊

對於一條邊來講,對邊正好構成了環。code

\(e_0=\left\{\begin{aligned} e_1.pair \\ e_1.next \\ e_1.prev \\ \end{aligned}\right.\)
\(e_1=\left\{\begin{aligned} e_0.pair \\ e_0.next \\ e_0.prev \\ \end{aligned}\right.\)blog

2.2 在頂點插入邊

\(e_n\)插入到\(e_0\)以前,步驟以下:文檔

  1. 找到前邊\(e_0.prev\);
  2. \(e_0.prev.next = e_n.next\)
  3. \(e_n.next = e_0\)

3. 基本數據結構

在這裏,咱們約定按逆時針方向設置半邊。get

# 頂點
class HE_vert:
    edge        # 頂點指向的半邊

# 面
class HE_face:
    edge        # 面右側的半邊

# 半邊
class HE_edge:
    vert        # 半邊指向的頂點
    pair        # 對邊(半邊成對)
    next        # 下一條半邊
    face        # 半邊左側的面

4. 構網問題

4.1 在三維文件中,面與面之間並不必定連續

面與面的不連續,形成了構網過程時,頂點的遍歷算法失效。這是由於構網過程當中,形成了它不是流形表面,這時用字典記錄點對對應的半邊來解決已有邊查找問題。在格網構建完成後,由於是流形面,頂點的遍歷算法又有效了。博客

相關文章
相關標籤/搜索