题
我有一个三角形网格类,其中包含节点列表(在我的例子中是 2d,但这不重要)和面列表。每个面都是一个三角形,它只包含节点数组的索引。网格来自 Delaunay 算法,因此非常干净。
对于网格中的每个节点,我需要找到哪些节点通过单边连接到它。构建和搜索该拓扑数据库的快速方法是什么?
大卫·鲁滕(David Rutten)
其他提示
我想我已经盯着自己盲目的哈希表,字典和排序的列表...以下是可能是最简单和最快的:
Public Sub SolveConnectivity(ByVal nodes As Node2List, ByVal faces As List(Of Face))
m_map = New List(Of List(Of Int32))(nodes.Count)
'Create blank lists
For i As Int32 = 0 To nodes.Count - 1
m_map.Add(New List(Of Int32)(6))
Next
'Populate connectivity diagram
For i As Int32 = 0 To faces.Count - 1
Dim F As Face = faces(i)
m_map(F.A).Add(F.B)
m_map(F.A).Add(F.C)
m_map(F.B).Add(F.A)
m_map(F.B).Add(F.C)
m_map(F.C).Add(F.A)
m_map(F.C).Add(F.B)
Next
End Sub
不隶属于 StackOverflow