Qtransform 旋转中心其他坐标点也要跟着旋转
时间: 2024-05-23 19:14:03 浏览: 127
是的,QTransform在进行旋转变换时,会以指定的旋转中心为基准进行旋转。其他坐标点也会跟着旋转。如果你想让其他坐标点不跟着旋转,可以先将这些坐标点转换为以旋转中心为原点的坐标系,然后进行旋转变换,最后再将坐标点转换回原来的坐标系。这样可以保证旋转中心周围的坐标点跟着旋转,而其他坐标点不发生旋转。
相关问题
QtransForm 中旋转后坐标信息跟着旋转后来改变
是的,QTransform 是 Qt 中用于变换坐标系的类,它可以进行平移、缩放和旋转等变换操作。当使用 QTransform 进行旋转操作时,会对坐标系进行旋转,从而导致坐标信息的改变。具体来说,如果你有一个点 (x, y),并且对其使用 QTransform 进行旋转操作,那么最终得到的点的坐标将会是 (x', y'),其中 x' 和 y' 是根据旋转进行计算得到的新的坐标值。因此,旋转操作会影响后续的坐标信息。
QTransform 旋转后的图形坐标如何获取
通过QTransform的map()函数可以将一个点从原始坐标系变换到旋转后的坐标系中,也就是将坐标系进行了旋转、平移、缩放等变换后的坐标系。因此,如果需要获取旋转后的图形坐标,可以通过以下步骤:
1. 获取图形的原始坐标,可以通过QGraphicsItem的pos()函数获取。
2. 根据图形的旋转角度,创建一个QTransform对象。
3. 调用QTransform对象的map()函数,将原始坐标映射到旋转后的坐标系中,得到旋转后的坐标。
示例代码如下:
```
QGraphicsItem* item = ...; // 获取图形对象
QPointF originalPos = item->pos(); // 获取图形的原始坐标
qreal rotation = item->rotation(); // 获取图形的旋转角度
QTransform transform;
transform.rotate(rotation); // 创建一个旋转变换
QPointF rotatedPos = transform.map(originalPos); // 将原始坐标映射到旋转后的坐标系中
// rotatedPos 就是旋转后的图形坐标
```
需要注意的是,如果图形还进行了平移或缩放等变换,需要在创建QTransform对象时将这些变换一起考虑进去。
阅读全文