三角形复杂不规则凹凸多边形的最佳方法

时间:2017-11-01 00:54:30

标签: java graphics libgdx triangulation polygons

我需要对一个多边形的三角形进行三角剖分。多边形将代表国家的形状。我正在使用libgdx并希望利用其PolygonRegion类:

  

PolygonRegion(TextureRegion region, float[] vertices, short[] triangles)

     

通过对顶点中的多边形坐标进行三角测量并根据该坐标计算uvs来创建PolygonRegion。

在libgdx中,有EarClippingTriangulator用于三角测量多边形。它的文档说:

  

如果输入多边形不简单(自相交),则会有输出,但质量不明(垃圾输入,垃圾输出)。

libgdx中的其他triangulator对此并没有多说,我在谷歌上找不到任何帮助。

我想知道是否存在三角测量复杂多边形的问题,这些复数多边形的顶点可能彼此相邻,或者非常接近。我的多边形可能包含几百个顶点(我认为它可能更多)。

[编辑] 我不确定在多边形三角测量中是否存在一个点,因为它将创建多少个三角形。

1 个答案:

答案 0 :(得分:0)

您不必自己编程。大多数高级编程语言都有2D图形库,并提供Polygon Shape可编程对象。它将闭合(简单)多边形定义为以CCW顺序访问的顶点[x,y]列表。 这个Polygon对象带有一个" fill"功能,专为快速填充像您的复杂形状而设计。三角测量将是一种相对缓慢的方法...更快的算法将形状转换为一组水平扫描线(利用最低级别的图形系统必须填充像素的事实)。就岛而言,每个岛都必须有自己的多边形对象。如果一个地区(瑞士奶酪)有切口,每个都有自己的多边形。每个多边形都需要关闭。