QTransform 以矩形图形中心旋转,旋转后四个顶点坐标如何获取
时间: 2024-02-11 11:08:20 浏览: 148
获取图像上某点坐标的程序
要获取矩形图形旋转后的四个顶点坐标,可以按照以下步骤进行:
1. 获取矩形的中心点坐标,可以使用矩形的左上角和右下角坐标计算得出。
2. 创建一个 QTransform 对象,并使用 rotate() 方法对其进行旋转,参数为旋转角度。
3. 使用 map() 方法将矩形的四个顶点坐标映射到旋转后的坐标系中,得到旋转后的四个顶点坐标。
以下是示例代码:
```cpp
QRectF rect(0, 0, 100, 50); // 创建一个矩形
QPointF center = rect.center(); // 获取矩形中心点坐标
QTransform transform;
transform.rotate(30); // 将矩形旋转 30 度
QPointF topLeft = rect.topLeft();
QPointF topRight = rect.topRight();
QPointF bottomLeft = rect.bottomLeft();
QPointF bottomRight = rect.bottomRight();
topLeft = transform.map(topLeft - center) + center;
topRight = transform.map(topRight - center) + center;
bottomLeft = transform.map(bottomLeft - center) + center;
bottomRight = transform.map(bottomRight - center) + center;
// 输出旋转后的四个顶点坐标
qDebug() << "TopLeft:" << topLeft;
qDebug() << "TopRight:" << topRight;
qDebug() << "BottomLeft:" << bottomLeft;
qDebug() << "BottomRight:" << bottomRight;
```
以上代码会将一个宽为 100,高为 50 的矩形以其中心点为基准旋转 30 度,然后输出旋转后的四个顶点坐标。
阅读全文