【问题标题】:Best way to triangulating complex irregular concave and convex polygons对复杂不规则凹凸多边形进行三角剖分的最佳方法
【发布时间】:2018-04-13 06:54:56
【问题描述】:

我需要对一个有很多顶点靠近的多边形进行三角剖分。多边形将代表国家的形状。我正在使用 libgdx 并想利用它的 PolygonRegion 类:

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

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

在 libgdx 中有 EarClippingTriangulator 用于对多边形进行三角剖分。它的文档说:

如果输入多边形不是简单的(自相交),会有输出,但它的质量是不确定的(垃圾输入,垃圾输出)。

libgdx 中的其他三角测量器对此没有多说,我在谷歌上找不到任何帮助。

我想知道对顶点可以彼此相邻或非常接近的复杂多边形进行三角剖分是否会出现任何问题。我的多边形可能包含几百个顶点(我认为可能更多)。

[编辑] 我不确定在对多边形进行三角剖分时是否有一点,因为它将创建多少个三角形。

【问题讨论】:

  • 文档+文档格式的链接
  • 为什么需要对多边形进行三角剖分?只是填满还不够吗?是用来检测鼠标位置是在里面还是外面? (一个国家可能由几个多边形、岛屿组成。)
  • 我必须对它进行三角测量才能填充它。

标签: java graphics libgdx triangulation polygons


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-04-21
    • 2016-09-28
    • 2016-03-03
    • 2018-08-22
    • 2011-07-15
    • 2012-09-06
    • 2016-09-27
    • 2021-11-01
    • 2017-05-23
    相关资源
    最近更新 更多