我有一个STL文件,其中包含坐标(x,y,z)
3点(p0, p1, p2)
的一个三角形。这些三角形代表3D表面f(x,y,z)
。 STL文件可能有超过1000个三角形来表示复杂的几何图形。邻居搜索算法
对于我的应用程序,我需要知道stl文件中每个三角形条目的相邻三角形。这意味着对于每个三角形,我必须挑选3对点pair1=(p0,p1), pair2=(p0,p2), pair3= (p1,p2)
并将它们与集合中其他三角形中的一对点进行比较
实现此目的的最佳和最有效的算法是什么?我可以使用hashtree,hashmap吗?
您对我的解决方案有什么看法? 1-创建一个三角形结构,其中包含三个具有x,y,z坐标的点。 2-制作三角形阵列并通过读取stl文件中的条目来更新它们。 3-使用unordered_multimap和散列函数将所有点散列到表中。 4-对于每个三角形,散列它们的点P0,P1和P2,并找出散列到表中相同位置的其他三角形的ID。 5-相邻的三角形是在表格中有两个共享点的那些。 – Arash
@Arash与我的方法几乎一样,所以它应该工作。 – Spektre