我正在尝试使用QPainter(QT5.8,win64)在其中绘制带有多个孔的多边形。我正在使用以下代码:
QPainter pm(&image);
QPen p(Qt::gray, 2);
p.setCosmetic(true);
pm.setPen(p);
pm.setBrush(QBrush(color));
QPainterPath pap;
pap.addPolygon(pObject->getOuterGeometryPolyF());
for (int i = 0; i < (int)pObject->m_InnerGeometry.size(); i++)
{
QPainterPath papInner;
papInner.addPolygon(pObject->getInnerGeometryPolyF(i));
pap = pap.subtracted(papInner);
}
pm.drawPath(pap);
但是它只会显示一个洞(见图):
有人可以为我提供一个如何绘制带有多个孔的多边形的示例吗?关于这一点,文档尚不清楚。
答案 0 :(得分:1)
我会回答我自己的问题...
这完全取决于多边形的旋转顺序(顺时针或逆时针)。 孔应与外部多边形具有相反的旋转顺序,以使其正常工作。
例如,外部多边形=顺时针,内部多边形应具有逆时针顺序。如果不是这种情况,请颠倒顺序。