24.4.23
鉴于最近在学102,作以下记录以供自己以后查阅。(希望可以快点开始做作业
浅浅领悟其目的,万物全是numpy,简化数据结构。
以下v均指vertex,f均指face
注:点序号,面序号指点你提供的点数组(v)和面数组(f)的顺序。比方说,第1个点/点序号为1的点,就是v[1]。
# ⭐⭐⭐⭐⭐
igl.edge_topology(v,f):
return ev,fe,ef
ev: 每一行代表一条边,元素分别代表组成这条边的两个顶点的
fe: 每一行代表一个面,元素分别为组成这个面的三条边的边序号
ef:每行代表一个边,元素为包含这条边的两个面的面序号
#⭐⭐⭐⭐⭐
1邻域点
igl.adjacency_list(f):
return list
list:每行代表一个点的邻接点集,元素表示邻接点的点序号
例如list[n] 代表了第n个点的邻接点的序号集合
# ⭐⭐⭐⭐⭐
每个点法向量
igl.per_face_normals(v, f, z):
return list
z:退化向量,就是处理异常情况时固定返回的值,一般取np.array([1.0,1,1])这种
list:每一行代表一个面的法向量
eg:list[n]代表第n个面的法向量,以长度为3的浮点数组表示。
# ⭐⭐⭐⭐⭐
开边界点(还没试过对于bunny底下的那种小洞能不能检测到)
igl.is_border_vertex(v,f):
return list
list[n] 代表第n个顶点是否为开边界点
# ⭐⭐⭐⭐⭐
连通分量
igl.facet_components(f)
# ⭐⭐⭐⭐⭐
计算顶点的数量
n = np.max(f) + 1
维诺图链接:
【Aegisub】不规则三角网(TIN)、德劳内(delaunay)三角网的生成算法 - 哔哩哔哩
QEM链接: