我正在尝试学习使用 CGAL。我对使用哪种数据结构和三角测量方案来解决我的问题有疑问。
问题描述:
我有少量(<1000)粒子在球体上移动。我需要用这个点云制作一个三角形的Delaunay网格。在每个时间步骤,我需要:
- 仅在需要时重新网格化点云,以使 Delaunay 准则仍然成立。独立于点坐标存储网格连通性。
- 保持拓扑固定,使用迭代求解器进行一些优化以计算新的粒子位置。具有相同连通性的求解器迭代次数可以是 100 次或更多。在每次迭代中,计算需要每个三角形的面积和一些由边连接的顶点的计算(即每个顶点与最近邻的第一环相互作用)。
问题:
- 如何在不使三角剖分的迭代器或循环器失效的情况下更改与网格(三角剖分数据结构、曲面网格、多面体等)顶点关联的点的坐标?
- 如何检查何时需要重新划分网格?
- 哪种数据结构可以在整个网格上一次通过最快的速度访问所有边和面?每条边都在两个三角形之间共享。边缘的计算是最昂贵的。因此,我只想为每个边计算一次。对所有面进行一次迭代并分别对所有边进行迭代可能效率较低。
如果需要更多信息,请告诉我。