2

我正在尝试使用 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);

但它只会显示一个洞(见图):

在此处输入图像描述

有人可以为我提供一个如何绘制带有多个孔的多边形的示例吗?文档在这一点上并不清楚。

4

1 回答 1

2

我会回答我自己的问题...

这完全取决于多边形的旋转顺序(顺时针或逆时针)。这些孔应该具有与外部多边形相反的旋转顺序,以使其完美地工作。

因此,例如外部多边形 = 顺时针,内部多边形应该具有逆时针顺序。如果不是这种情况,请颠倒顺序。

于 2020-04-14T04:57:21.720 回答