5

从文档:

QPainter提供两种绘画方法QPolygonsdrawPolygondrawConvexPolygon

文档中没有明确说明它们之间的区别。此外,drawConvexPolygon文档状态

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

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

4

2 回答 2

4

QPainter::drawConvexPolygon()文档说:

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

所以,

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

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

于 2013-03-07T13:57:38.580 回答
0

确定多边形的哪一部分是外部和内部(用于填充目的)会根据多边形是否包含凸区域做出不同的选择。考虑如何确定星形的内部与矩形的内部。

于 2013-03-07T13:55:27.450 回答