我需要对一个有很多顶点的多边形进行三角测量。多边形将代表国家的形状。我正在使用libgdx,并希望使用它的PolygonRegion类:
PolygonRegion(TextureRegion region, float[] vertices, short[] triangles)
通过对顶点中的多边形坐标进行三角测量来创建多边形区域,并以此为基础计算uvs。
在libgdx中有一个用于对多边形进行三角化的EarClippingTriangulator。其文档称:
如果输入多边形不简单(自相交),则会有输出,但其质量未指定(垃圾输入、垃圾输出)。
libgdx中的其他三角函数对此没有太多说明,我在谷歌上找不到任何帮助。
我想知道,对顶点可以相邻或非常接近的复杂多边形进行三角测量是否会有任何问题。我的多边形可能包含几百个顶点(我认为可能更多)。
[编辑]我不确定在对多边形进行三角测量时是否有一个点,因为它将创建多少个三角形。
您不必自己编程。大多数高级编程语言都有二维图形库,并提供多边形可编程对象。它将闭合(简单)多边形定义为按CCW顺序访问的顶点列表[x,y]。这个多边形对象带有一个"填充"功能,用于快速填充像你这样的复杂形状。三角测量将是一种相对缓慢的方法。。。更快的算法将形状转换为一组水平扫描线(利用最低级别的图形系统必须填充像素的事实)。就岛屿而言,每个岛屿都必须有自己的多边形对象。如果一个地区有切口(瑞士奶酪),每个区域都有自己的多边形。每个多边形都需要闭合。