編集:より多くの情報を追加しました。
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) )
しかし、上記の出力によると、ポリゴンは次のようになります。
どの時点で回転する必要がありますか?