// pt1-------pt2
// | |
// | |
// | |
// pt4-------pt3
// 已知矩形中心点QPoint pt, 矩形宽W,高H,求沿中心点旋转_anle后的坐标位置
QPoint _pt1, _pt2, _pt3, _pt4;
qreal angle = _angle / 180.0 * M_PI;
qreal a = qSin(angle) * 0.5;
qreal b = qCos(angle) * 0.5;
_pt1 = QPoint(pt.x() + a * H- b * W, pt.y() - b * H- a * W);
_pt3 = QPoint(2 * pt.x() - _pt1.x(), 2 * pt.y() - _pt1.y());
_pt4 = QPoint(pt.x() - a * H- b * W, pt.y() + b * H- a * W);
_pt2 = QPoint(2 * pt.x() - _pt4.x(), 2 * pt.y() - _pt4.y());
使用QT
QRectF rectF = QRectF((m_windowCenter - QPointF(m_windowSize.width() / 2, m_windowSize.height() / 2)), m_windowSize);
QPolygonF polyf;
polyf << rectF.topLeft() << rectF.topRight() << rectF.bottomRight() << rectF.bottomLeft() << rectF.topLeft();
QTransform trans;
trans.translate(m_windowCenter.x(), m_windowCenter.y());
trans.rotate(m_windowRotation);
trans.translate(-m_windowCenter.x(), -m_windowCenter.y());
polyf = trans.map(polyf);
pt1 = polyf.at(0);
pt2 = polyf.at(1);
pt3 = polyf.at(2);
pt4 = polyf.at(3);
1317

被折叠的 条评论
为什么被折叠?



