[英]Mesh 2D triangulation
我正在尝试制作一个程序,用于在空间中的点上找到包含三角形的网格中的三角形。 我有一些中间步骤。 但是我正在尝试找到另一种方法,因为它效率不高。
第一:
对于K,一个三角形和该三角形的一个顶点可以找到与该顶点相反的相邻三角形。 困难的部分是,对于网格中的所有三角形,都需要使用O(nt)或O(ntlog2(nt))来完成。 我想使用无序贴图来存储每个三角形的所有边,这样我可以在O(1)中找到要查找的三角形,因此可以在O(nt)中找到所有网格。
但是我不知道如何编码我的无序映射,以便在第一个冒号中具有2个顶点的值,在第二和第三列中具有三角形的数。
我的网格属性是:
public:
//attribut
std::vector<Sommet> m_Sommet; // Sommet's array
std::vector<Triangle> m_Triangle; //Triangle's array
如果您有任何帮助,那将是非常好的。
您应该使用与网格关联的分区结构,边界体积层次结构的计算非常简单,轻巧且高效(您可以在此页面上找到各种排序算法)。 如果您的网格物体是静态的,那么kd-tree应该会更快,但构建起来也会更复杂。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.