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