从文档:
QPainter
提供两种绘画方法QPolygons
:drawPolygon
和drawConvexPolygon
。
文档中没有明确说明它们之间的区别。此外,drawConvexPolygon
文档状态
如果提供的多边形不是凸的,即它包含至少一个大于 180 度的角,则结果是不确定的。
那么……它是干什么用的?我希望该方法能以某种方式找到我的多边形的凸包并绘制它,但似乎并非如此。
从文档:
QPainter
提供两种绘画方法QPolygons
:drawPolygon
和drawConvexPolygon
。
文档中没有明确说明它们之间的区别。此外,drawConvexPolygon
文档状态
如果提供的多边形不是凸的,即它包含至少一个大于 180 度的角,则结果是不确定的。
那么……它是干什么用的?我希望该方法能以某种方式找到我的多边形的凸包并绘制它,但似乎并非如此。
QPainter::drawConvexPolygon()
文档说:
在某些平台(例如 X11)上,drawConvexPolygon() 函数可能比 drawPolygon() 函数更快。
所以,
drawPolygon()
更通用,因为它还允许绘制非凸多边形(但绘制可能会更慢)drawConvexPolygon()
只能用于绘制凸多边形,但在特定平台上可能更快例如,在进行 3D 渲染时,您可以使用仅由凸多边形组成的多边形网格来简化渲染,在这种情况下,速度越快drawConvexPolygon()
越好(因为您需要绘制大量凸多边形)。
确定多边形的哪一部分是外部和内部(用于填充目的)会根据多边形是否包含凸区域做出不同的选择。考虑如何确定星形的内部与矩形的内部。