从轮廓生成2D网格

问题描述 投票:2回答:3

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

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

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

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

algorithm geometry clipping
3个回答
0
投票

虽然从问题中并不完全清楚,但是我想到了适应两个方面的marching cubes algorithm。可以在here找到二维版本的详细描述。


0
投票

听起来你想做这样的事情:

1)首先生成三角形多边形以创建网格。有很多选择:https://en.wikipedia.org/wiki/Polygon_triangulation

2)然后,当网格中的任何边缘太长时(意味着两端的点可能相距太远),将最长边的中点添加到网格中,将相邻的三角形划分为2。

结果是在每个方向上的其他点的有限距离内的每个点的网格。生成的网格不一定是最佳的,因为它可能有比严格要求更多的点,但它可能满足您的需求。

如果你需要减少点数和细三角形的数量,你可以先应用Delaunay Triangulation翻转每个候选边缘:https://en.wikipedia.org/wiki/Delaunay_triangulation#Visual_Delaunay_definition:_Flipping


0
投票

Delaunay网格划分可以在形状内创建均匀分布的顶点。下图显示了组合网格和Delaunay网格。你可以看看here

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

© www.soinside.com 2019 - 2024. All rights reserved.