qt QGraphicsItem 绕轴旋转问题

wapjia43106140 2013-06-27 11:49:15
1.我用Qt图形视图框架,对QGraphicsItem进行旋转,发现他是以屏坐标系统进行旋转的,不是以自己坐标系统旋转。
2.我先把QGraphicsIte 绕Z轴平面旋转一定角度,然后再把QGraphicsItemY轴旋转。
我想以QGraphicsItem自己坐标系统旋转。但它却以标准坐标屏旋转。
有什么方法可以解决不。

以下是我的代码

resetTransform();
QTransform transformf = transform();
r += 20;
qreal x = boundingRect().center().x();
qreal y = boundingRect().center().y();
transformf.translate(boundingRect().center().x(),boundingRect().center().y() );
transformf.rotate(r, Qt::XAxis);
transformf.translate( - boundingRect().center().x(),-boundingRect().center().y() );
setTransform(transformf);
...全文
902 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilovevc709 2013-07-02
  • 打赏
  • 举报
回复
楼上正解. translate(x,y).rotate(r).translate(-x,-y)
  • 打赏
  • 举报
回复
把你这个对象先移动到0.0点。然后旋转。 然后再移回去~
彩阳 2013-06-27
  • 打赏
  • 举报
回复
boundingRect().center()返回的本来是你在scene中的坐标,不知道你这段代码写在哪里的,QGraphicsItem::paint( )函数本来就有一个参数是QPainter,而QPainter可以执行旋转放大缩小和平移操作,为什么不使用它呢?

16,239

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧