this questionの結果として、QtのQTransform::rotate
機能の詳細を知りたいと思います。 In the documentationは、それは言う:QtのQTransform回転機能の理解
QTransform & QTransform ::回転(QREAL角度、Qtの::軸の軸= Qtの:: Z軸)
は、指定された軸の周りに所定の角度だけ反時計回りの座標系を回転させ行列への参照を返します。
ウィジェット座標で定義されたポイントにQTransformを適用すると、y軸が下を指しているため、回転の方向は時計回りになります。
角度は度で指定します。私の前の質問から
、私はQPolygonF
時計回りに回転させるように、私は実際にrotate
機能に応じて、それを90度反時計回りに回転しなければならないことを学びました:
QPolygonF original = QPolygonF() << QPoint(0, 1) << QPoint(4, 1) << QPoint(4, 2) << QPoint(0, 2);
QTransform transform = QTransform().translate(2, 2).rotate(90).translate(-2, -2);
QPolygonF rotated = transform.map(original);
qDebug() << rotated;
出力:
QPolygonF(QPointF(3, 0) QPointF(3, 4) QPointF(2, 4) QPointF(2, 0))
例この長方形のために:
ここに回転させるには:
これはなぜでしょうか?私が「ウィジェットの座標」にないと信じているときに、QTransform::rotate
への私の呼び出しが時計回りの回転を引き起こしていると書類が言っているのはなぜですか?
スティーブンに感謝します。 – Mitch