编辑:添加了更多信息。
我想QPolygonF
围绕下图所示的原点旋转 a:
我想要这个多边形(图像中心是原点 - 0, 0
):
要顺时针旋转以使其结束:
QPolygonF
与上图中的第一个块的位置相同:
QPolygonF p1 = QPolygonF() << QPointF(0, 1) << QPointF(4, 1) << QPointF(4, 2) << QPointF(0, 2);
然后我围绕我认为正确的原点(2, 2
)旋转:
QTransform t;
t.translate(2, 2);
t.rotate(-90);
t.translate(-2, -2);
QPolygonF p2 = t.map(p1);
qDebug() << p1 << "rotated = " << p2;
输出:
QPolygonF(QPointF(0, 1) QPointF(4, 1) QPointF(4, 2) QPointF(0, 2) ) rotated = QPolygonF(QPointF(1, 4) QPointF(1, 0) QPointF(2, 0) QPointF(2, 4) )
当我想要的输出是:
QPolygonF(QPointF(0, 1) QPointF(4, 1) QPointF(4, 2) QPointF(0, 2) ) rotated = QPolygonF(QPointF(2, 0) QPointF(3, 0) QPointF(3, 4) QPointF(2, 4) )
但是,根据上面的输出,多边形最终看起来像这样:
我应该在什么时候旋转?