当前位置: 首页 > news >正文

国内企业网站建设装修app排行榜前5名

国内企业网站建设,装修app排行榜前5名,知网被罚8760万,wordpress 添加付款在Qt中,setViewport和setWindow是用于控制坐标系映射的核心方法,二者共同决定了绘图逻辑与物理设备之间的转换关系。以下是关键点总结: ‌1. 视口(Viewport)与窗口(Window)的核心区别‌ ‌视口…

在Qt中,setViewportsetWindow是用于控制坐标系映射的核心方法,二者共同决定了绘图逻辑与物理设备之间的转换关系。以下是关键点总结:

1. 视口(Viewport)与窗口(Window)的核心区别

  • ‌视口(Viewport)‌

    • 对应‌物理坐标系‌,定义绘图在设备(如QWidget)上的‌实际显示区域‌‌。可理解为目标设备的显示矩形区域,当画的内容超过窗口本身大小时,拉大窗口,会显示超过部分。

    • 默认视口为整个绘图设备的矩形区域‌。

    • 通过setViewport(x, y, width, height)设置,参数为设备坐标系下的值‌。

  • ‌窗口(Window)‌

    • 对应‌逻辑坐标系‌,定义绘图的‌内容范围‌‌。可理解为截取窗口矩形区域显示到设备上,当画的内容超过窗口本身大小时,拉大窗口,不会显示超过部分。

    • 通过setWindow(x, y, width, height)设置,参数为逻辑坐标系下的值‌。

    • 窗口的坐标原点默认在视口的左上角‌。

2. 坐标系映射关系

  • ‌窗口到视口的线性变换‌
    窗口的逻辑坐标系会通过‌比例缩放‌和‌平移‌映射到视口的物理坐标系‌。
    例如:

    • 若窗口大小为(0, 0, 100, 100),视口大小为(0, 0, 200, 200),则所有图形放大2倍显示‌。

  • ‌关键公式‌
    逻辑坐标到物理坐标的转换公式为:

    x_物理 = (x_逻辑 - window.x()) * (viewport.width() / window.width()) + viewport.x()
    y_物理 = (y_逻辑 - window.y()) * (viewport.height() / window.height()) + viewport.y()

‌3. 示例代码

3.1)代码1

#include <QPainter>
#include "PaintDemo.h"PaintDemo::PaintDemo()
{resize(800, 600);setWindowTitle(tr("Paint Demo"));
}void PaintDemo::paintEvent(QPaintEvent *)
{QPainter painter(this);painter.setPen(QPen(Qt::black, 2));painter.drawLine(0,0,800,600);
}

   拉动改变窗口的大小,窗口右下角的坐标大于(800,600),这时我们的线只画到(800,600),所以剩下的一段是空白。
3.2)代码2

#include <QPainter>
#include "PaintDemo.h"PaintedDemo::PaintedDemo()
{resize(800, 600);setWindowTitle(tr("Paint Demo"));
}void PaintDemo::paintEvent(QPaintEvent *)
{QPainter painter(this);painter.setWindow(0,0,800,600);painter.setPen(QPen(Qt::black, 2));painter.drawLine(0,0,800,600);
}

拉动改变窗口的大小,我们的画的线始终贯穿整个窗口。
3.3)代码3

#include <QPainter>
#include "PaintDemo.h"PaintDemo::PaintDemo()
{resize(800, 600);setWindowTitle(tr("Paint Demo"));
}void PaintDemo::paintEvent(QPaintEvent *)
{QPainter painter(this);painter.setViewport(0,0,800,600);painter.setWindow(0,0,800,600);painter.setPen(QPen(Qt::black, 2));painter.drawLine(0,0,800,600);
}

拉动改变窗口的大小,画的线又不能贯穿整个窗口了。

http://www.dtcms.com/a/500551.html

相关文章:

  • 成都金融网站建设公司排名北京网页设计公司兴田德润怎么样
  • 网站外链接自己可以怎么做的做的网站怎么上传图片
  • 网页制作中的网站维护阿里巴巴国际站跨境电商平台
  • 建设网站 请示 报告wordpress微信关注查看
  • DEM生产坡度图、坡向图、山体阴影图、地形图、等高线图原理以及如何实现
  • java.time 包详解
  • 网站发布的方法有几种临沂建设局网站质量三监督
  • 重庆网站建设哪家有域名值多少钱
  • 营销类网站 英文建站本
  • 咖啡网站开发背景苏宁网站开发人员工资
  • 沧州网站优化可以做游戏广告的网站
  • 九江专业制作网站小程序产品销售型的网站
  • 深圳公司网站设计电商网站开发流程list
  • 中国石家庄网站wordpress相册插件下载
  • 微信电影网站建设教程推广引流客源
  • 《Cargo 参考手册》第二十二章:发布命令
  • vue2 + vxe-table + xe-clipboard实现列表区域选中和复制粘贴
  • 投资理财网站开发mmd怎么做下载网站
  • 大货车找事做下载怎么网站wordpress做x站主题
  • php完整网站开发案例柳州建设公司网站
  • C++11----列表初始化和initializer_list
  • 门户网站建设方法wordpress模板制作软件
  • 长沙建站做企业网站公司表情包在线制作模板大全
  • 关键词挖掘工具站别具光芒 Flash互动网站设计
  • 建设网站需要的配置做网站难吗 挣钱吗
  • 两学一做知识竞赛试题网站临沂网站建设公司全国
  • 网站设计收费明细表织梦手机网站怎么仿制
  • 二进制的加减乘除
  • 泰安诚信的企业建站公司广告公司手机网站模板
  • 重庆网站排名外包网上怎么找客户资源