我对于 setWindow, setViewPort 与 translate 的理解


当前在学习 Qt, 到了坐标系统这一块的时候, 有点凌乱, 在看了几个相关的博客后, 果然......更凌乱了, 直到看了 Qt 的帮助手册(不是应该第一个就看这个吗?) 才有了自己的领悟:

1. translate(), 这个其实挺好理解, 这个函数需要的是一个向量的信息, 承载这个信息的可能是:

1.1 一个点: const QPoint &offset(浮点? const QPointF &offset) 向量由原点指向它;

1.2两个实数, 即两个分向量, 合成的向量即为所需信息;

得到这个信息后, 原点会根据这个向量平移, 这就是 translate().

2. setWindow(), 建立一个映射, 它需要的是一个长方形的信息, 因为它将以这个长方形来映射当前的窗口, 你可以直接给它一个长方形 const QRect &rectangle, 或者给出它的左上角的点(int x, int y) 以及它的宽和高(int width, int heigh). 如 painter.setWindow(rectangle) 的意思就是用 rectangle 与 painter 当前的窗口进行映射. 当然这层意思仅限于只有这一个函数的情况, 因为如果有多个该函数, 则它的意思就是设置微软的系统(set Windows)......好吧我知道这个笑话很冷.

3. setViewPort(), 也是建立与当前窗口的一个映射, 需要的一样, 但是与 setWindow 相反, 它是建立一个 当前窗口与所给长方形的映射.

优质内容筛选与推荐>>
1、.Net语言 APP开发平台——Smobiler学习日志:在应用中添加WeiXin组件
2、004.CleanUp方法
3、【Java】Java_05 标识符与字符集
4、用Visual C#调用Windows API函数
5、Google papers


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号