从轮廓生成2D网格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从轮廓生成2D网格相关的知识,希望对你有一定的参考价值。
我得到了一个我想要生成的平面的轮廓(点列表)。平面非常大,我需要在轮廓内均匀分布顶点。每个顶点都有一个从红色到绿色的颜色值,以显示平面中的一些数据。我需要实时可视化数据。
我的想法是简单地创建一个网格并调整轮廓之外的所有顶点。事实证明这非常复杂。
有没有解决这个问题的算法?是否有另一种方法从具有均匀分布顶点的轮廓生成网格?
虽然从问题中并不完全清楚,但是我想到了适应两个方面的marching cubes algorithm。可以在here找到二维版本的详细描述。
听起来你想做这样的事情:
1)首先生成三角形多边形以创建网格。有很多选择:https://en.wikipedia.org/wiki/Polygon_triangulation
2)然后,当网格中的任何边缘太长时(意味着两端的点可能相距太远),将最长边的中点添加到网格中,将相邻的三角形划分为2。
结果是在每个方向上的其他点的有限距离内的每个点的网格。生成的网格不一定是最佳的,因为它可能有比严格要求更多的点,但它可能满足您的需求。
如果你需要减少点数和细三角形的数量,你可以先应用Delaunay Triangulation翻转每个候选边缘:https://en.wikipedia.org/wiki/Delaunay_triangulation#Visual_Delaunay_definition:_Flipping
Delaunay网格划分可以在形状内创建均匀分布的顶点。下图显示了组合网格和Delaunay网格。你可以看看here。
以上是关于从轮廓生成2D网格的主要内容,如果未能解决你的问题,请参考以下文章