QT 坐标变换

这篇博客详细介绍了QT中的坐标变换,包括使用QPainter的scale(), rotate(), translate(), shear()函数进行仿射变换,以及QTransform类的应用。同时阐述了窗口-视口转换的过程,如何将逻辑坐标映射到物理坐标。此外,还讨论了QPainterPath用于绘制路径的机制和填充规则,以及QImage、QPixmap、QBitmap和QPicture在图像处理中的作用。最后提到了触发重绘事件的条件及其响应函数。" 129762648,1467541,信息论应用:香农第二定律与生活启示,"['网络通信', '信息论', '教育理念', '夫妻沟通', 'TCP/IP']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QT 坐标变换

  1. 基本变换
      默认的,QPainter在相关设备的坐标系统上进行操作,但是完全支持仿射坐标变换.绘图时可以使用QPainter::scale()函数缩放坐标系统,使用QPainter::rotate()函数顺时针旋转坐标系统,使用QPainter::translate()函数平移坐标系统,可以使用QPainter::shear()围绕原点来扭曲坐标系统.
      坐标系统的2D变换由QTransform类实现,可以使用前面提到的那些便捷函数进行坐标系统变换,当然也可以通过QTransform类实现;而且QTransform类对象可以存储多个变换操作,当同样的变换要多次使用时,建议使用QTransform类对象.坐标系统的变换是通过变换矩阵实现的,可以在平面上变换一个点到另一个点.进行所有变换操作的变换矩阵都可以使用QPainter::worldTransform()函数获得,如果要设置一个变换矩阵,可以使用QPainter::setWorldTransform()函数,这两个函数也可以分别使用QPainter::transform()和QPainter::setTransform()函数来代替.
      可以使用QPainter::save()函数来保存QPainter的变换矩阵,它会把变换矩阵保存到一个内部栈中,然后再需要恢复变换矩阵时再使用QPainter::restore()函数将其弹出.
  2. 窗口-视口转换
      使用QPainter绘制时会使用到逻辑坐标,然后再转换为绘图设备的物理坐标.逻辑坐标到物理坐标的映射由QPainter的worldTransform()函数,QPainter的viewport()以及window()函数进行处理.其中,视口表示物理坐标下指定的一个任意矩形,而窗口表示逻辑坐标下的相同矩形.默认的,逻辑坐标和物理坐标是重合的,都相当于绘图设备上的矩形.
  3. 绘制路径
      通过使用QPainterPath类对象,然后使用QPainter::drawPath()来进行绘制.QPainter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值