CGAL:检查现有CDT上给定点的插入是否影响矩形内的自然邻域插值

时间:2014-04-28 09:38:56

标签: conflict interpolation triangulation sparse-matrix cgal

我将描述整个场景,以避免询问如何实现我认为的解决方案而不是询问实际上可以解决我的问题的方法。

我必须从稀疏点和约束进行自然邻域插值(NNI)生成栅格。 输入太大,无法使用核心外解决方案。 然后,我选择将输入域划分为规则的重叠方块(因此,由于块边界处的重叠,因此不是纯分区),使用NNI计算每个像素的值,然后通过应用组装最终的块(此时不重叠)在边界处混合的单元分区(PoU)。 为了在图块上执行NNI,我将分配给图块及其8个相邻邻居的所有点和约束,并构造用于检索NNI坐标的约束delaunay三角剖分(CDT)。 问题在于,当数据集的某个区域非常稀疏时,仅使用8个邻居并不能保证相邻的切片在边界处匹配(即使使用PoU策略),因为三角测量结构差异很大。

我现在使用的解决方案是从正在处理的磁贴T开始并使用其点制作CDT。然后,我继续在图块域上执行广度优先的泛洪填充访问,并且如果其中至少一个点与至少“冲突”,则将所访问的图块的点(一次性)添加到当前CDT包含在T的边界矩形中的一个三角形(我将这个访问过的磁贴“添加”到CDT)。如果将新的磁贴添加到CDT,则其所有直接的8个邻居都被安排访问(如果尚未访问)。当不再需要瓦片时访问结束:我认为这意味着如果我将另一个点(从当前添加的瓦片区域的边界处的瓦片)添加到CDT,则在边界矩形内的点上执行NNI。 T将继续给出相同的结果,因为新点不会影响T中的三角测量。

现在,这是真的(T内的三角测量不受影响),但这并不意味着NNI是相同的,因为我认为我也应该检查(至少!)与重叠的T相邻的所有三角形仍然存在与被测试的要点没有冲突。

这种改进是否会确保NNI不变? 你有一个更好的解决原始问题的方法吗?

我确信我对问题和当前解决方案的描述远非最佳,所以请评论并给我任何建议,你可能会认为这会改善我的解释。

非常感谢。

修改

也许一个可能的解决方案是将所有三角形的外接圆的边界框B重叠为T并使用B作为保守边界,也就是说,我只添加属于重叠B的所有切片的点。

或许相反?由于上述不是对称的,可能最好事先为每个图块计算B,然后在处理图块T时,在其CDT中包括“B”与T重叠的所有图块。

0 个答案:

没有答案