QPainter::drawConvexPolgon 有什么意义

Nil*_*ner 5 qt convex-hull qpainter

从文档:

QPainter提供两种绘画方法QPolygonsdrawPolygondrawConvexPolygon

文档中没有任何地方明确它们之间的区别是什么。此外,drawConvexPolygon文档状态

如果提供的多边形不是凸多边形,即它包含至少一个大于 180 度的角,则结果不确定。

所以……这是为了什么?我希望该方法能以某种方式找到我的多边形的凸包并绘制它,但似乎并非如此。

And*_*ter 5

文档QPainter::drawConvexPolygon()

在某些平台(例如X11)上,drawConvexPolygon() 函数可能比drawPolygon() 函数更快。

所以,

  • drawPolygon()通用,因为它还允许绘制非凸多边形(但绘制可能会更慢)
  • drawConvexPolygon()只能用于绘制凸多边形,但在特定平台上可能会更快

例如,在进行 3D 渲染时,您可以使用由凸多边形组成的多边形网格,只是为了使渲染更简单,在这种情况下,速度越快drawConvexPolygon()越好(因为您需要绘制大量凸多边形)。