网格2D三角剖分

时间:2015-05-30 09:05:55

标签: c++ algorithm search containers mesh

我正在尝试制作一个程序,让空间中的某个点找到包含它的网格中的三角形。我有一些中间步骤。 但我试图找到另一种方法,因为它效率不高。

首先:

对于K三角形,我是该三角形的顶点,以便能够找到相邻的三角形并且与该顶点相对。 对于网格中的所有三角形,需要在O(nt)或O(ntlog2(nt))中完成。 我想使用无负载的地图来存储每个三角形的所有边,我可以在O(1)中找到我正在寻找的三角形,以便O(nt)中的所有网格。

但我不知道如何编码我的无序地图,以便在第一个colone中包含2个顶点值,在第二列和第三列中包含三角形的数字。

我的网格属性是:

 public:
  //attribut
  std::vector<Sommet> m_Sommet; // Sommet's array
  std::vector<Triangle> m_Triangle; //Triangle's array

如果你有任何帮助,那就太好了。

1 个答案:

答案 0 :(得分:0)

您应该使用与网格关联的分区结构,边界体积层次结构非常易于计算,轻量且高效(您可以查看this page的各种排序算法)。如果您的网格是静态的,那么kd树应该更快,但构建起来也更复杂。