【发布时间】:2016-09-28 15:25:58
【问题描述】:
我正在使用a C++ wrapper of the Triangle library,但无法摆脱多边形之外的三角形。
这是我想要的:
这就是我用三角形得到的:
(我故意没有填充三角形以表明多边形中有一些三角形)
我尝试使用光线投射算法(找到三角形边缘的中心并查看它是否在多边形中。如果至少有一个不存在则不要绘制这个三角形)但它非常慢出于我的目的(多边形每帧都会更新)。我错过了什么?我应该将哪些参数传递给 Triangle 以对凹多边形进行三角剖分?
如果无法用三角形做我想做的事,有人可以建议我一种快速绘制多边形的方法(我的程序使用 Qt Quick Scene Graph,而且我仅限于绘制三角形或凸多边形,因为 OpenGL 需要)?目前我想尝试使用 GLU 的镶嵌方法并使用模板缓冲区进行绘图。我也打算试试this library。
【问题讨论】:
-
ear clipping技术易于实现。 -
@j-p 我尝试了 [this library] (github.com/ivanfratric/polypartition) 的耳剪实现,但它没有产生正确的结果。我还担心剪耳的 O(n^2) 复杂性。
-
你必须处理渲染完全通用的凹多边形吗?或者它总是像你在照片中展示的那样简单的形状?对于这种形状,直接生成三角几何是很容易的。
-
@RetoKoradi 直接生成几何图形是什么意思?
标签: c++ qt opengl graphics triangulation