从轮廓生成2D网格

时间:2017-12-21 12:41:53

标签: algorithm geometry clipping

我得到了一个我想要生成的平面的轮廓(点列表)。平面非常大,我需要在轮廓内均匀分布顶点。每个顶点都有一个从红色到绿色的颜色值,以显示平面中的一些数据。我需要实时可视化数据。

我的想法是简单地创建一个网格并调整轮廓之外的所有顶点。结果证明这很复杂。

这是我想要实现的一个快速示例。 Clipping a 2D grid by an outline

有没有解决这个问题的算法? 是否有另一种方法可以从具有均匀分布顶点的轮廓生成网格?

3 个答案:

答案 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

http://www.geom.at/wp-content/uploads/grid-mesh.png

相关问题