【Qt学习笔记】对QPainter中setWindow和setViewport的理解

理解了一些概念也就理解了这两个函数

看的见的物理坐标:即创建的Widget中的坐标,左上角为原点(0,0),宽和高就是Widget的宽和高

看不见的逻辑坐标:QPainter是在看不见的逻辑坐标中进行绘图的

在不调用setWindow和setViewport的时候物理坐标和逻辑坐标是一样的

setWindow将逻辑坐标的哪一部分区域拿出来映射到物理坐标,其中的参数矩形区域是对于逻辑坐标来说的

在不调用setViewport的情况下该矩形区域会映射到整个Widget区域,并且会同比例的进行缩放,比如Widget的高为400宽为400,setWindow设置的矩形区域的高为200,宽为200,那么逻辑区域会被放大

以上Widget的宽高为(550,440),setWindow将逻辑坐标的(100,100,200,200)的区域映射到了Widget的整个区域,drawRect画的第一个矩形区域是(100,100,200,200)也即setWindow设置的逻辑区域,那么该矩形就会是整个Widget区域。

setViewport是将逻辑坐标映射到物理坐标的哪个区域,指定的区域是相对于Widget来说的

 逻辑坐标上宽200高200的矩形,被映射到物理坐标宽100高100的区域了。

所以从逻辑坐标到物理坐标的映射,会发生缩放

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值