我对于 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 相反, 它是建立一个 当前窗口与所给长方形的映射.