当前位置:   article > 正文

大白话理解-QPainter视口和窗口_qpainter viewport

qpainter viewport

关于视口和窗口这个概念你需要牢记以下几点:

1、在绘制图形中有三个坐标系:逻辑坐标系,物理坐标系,应用程序坐标系(此坐标系为便于理解是我杜撰的);

2、 窗口(window) 是逻辑坐标系中的一个投影块,视口(viewport) 是物理坐标系中的一个投影块;

3、默认情况下逻辑坐标系和物理坐标系是重合的,原点在应用程序窗口的左上角,默认下窗口和视口同样是重合的也在各自坐标系原点,它们的矩形宽高是应用程序的宽高;

4、QPainter绘制任何图形首先是依据逻辑坐标系的坐标点去绘制,在通过“窗口投影块”四角映射投影(窗口和视口矩形不一致就会存在缩放概念)到物理坐标系中的“视口投影块”的四角,在以物理坐标系的原点对上应用程序坐标系原点把视口内的图形显示在程序中 (重点:窗口和视口永远是四角对应,如果窗口大于视口那么图形就会缩小,如果窗口小于视口那么图形就会被放大,在这里视口投影块是基准)

在这里插入图片描述

现在来探究一下绘制的映射过程

    p.setWindow(50,50,300,300);     //设置窗口
    p.setViewport(0,50,400,400);    //设置视口
    p.drawRect(60,60,80,80);        //绘图
  • 1
  • 2
  • 3

1. 设置窗口和视口位置

在这里插入图片描述

2.在逻辑坐标系中绘制矩形

在这里插入图片描述

3.窗口绘制的图形投影在视口中

1)在投影的过程中不需要管两个坐标系,只需要将窗口左上角为起始点包括绘制的图形一起移动到视口左上角;
2)将视口大小为基准尺寸,把窗口携带图形以左上角为起始点缩放到视口尺寸即可。
在这里插入图片描述

4.应用程序显示图形

说明:这个过程是便于理解作者杜撰的一个步骤,其实缩放步骤完成后,物理坐标原点就是窗口显示原点了。

以物理坐标系原点为起始点把图形移动到应用程序窗口中显示(应用程序原点是在显示区的左上角)。
在这里插入图片描述

5.验证结果(正确)

在这里插入图片描述

视频

viewprotANDwindow

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/589684
推荐阅读
相关标签
  

闽ICP备14008679号