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

用自己电脑做服务器 网站吗临沂建设质量监督站网站

用自己电脑做服务器 网站吗,临沂建设质量监督站网站,高德地图怎么导航环线,泰州做网站软件参考#xff1a; https://zhuanlan.zhihu.com/p/584048811https://www.zhihu.com/tardis/zm/art/634951149?source_id1005 小谈Qt的坐标系系统 Qt中有三个坐标系 设备坐标系窗口坐标系逻辑坐标系 设备坐标系: 即Device坐标系。也是物理坐标系。即真实的的物理坐标系。 …参考 https://zhuanlan.zhihu.com/p/584048811https://www.zhihu.com/tardis/zm/art/634951149?source_id1005 小谈Qt的坐标系系统 Qt中有三个坐标系 设备坐标系窗口坐标系逻辑坐标系 设备坐标系: 即Device坐标系。也是物理坐标系。即真实的的物理坐标系。 逻辑坐标系: 即用户坐标系。也就是说日常大家使用Qt的时候的坐标系。 窗口坐标系: 这个坐标系是QPainter设置setWindow以后的一个坐标系。 这三个坐标系基本上就代表了常规的绘制引擎的三个坐标系。 那么三个坐标系就代表可以用两次变换来实现了。 这个就是QPainter中的setWindow() setViewport()的两个概念了 直接看下图 via https://doc.qt.io/qt-6/coordsys.html#window-viewport-conversion OK既然有了这些概念那么我们就开始讲一下坐标系的转换流程。 废话不多说 还是按照我的方式 Qt的官方文档来讲吧 我自己的例子 画个图描述下这三个坐标系 平时我们的三个坐标系都是相同的都是水平方向是X轴垂直方向是Y轴坐标原点是左上角(0, 0)。 X轴从左到右增加Y轴从上到下增加 即如图所示 那么三个坐标系的变化流程就是 还是先上个Qt的Demo Qt的Demo 设定屏幕的DPI是96 三个坐标系重叠 先创建一个QWidget然后设置其大小是(500, 500) resize(500,500);然后再重写他的PaintEvent事件 void QtWidgetsApplication1::paintEvent(QPaintEvent*e) { QPainter painter(this); painter.drawLine(0,0,500,500); }那么表现 这里可以先重点说下 我们以普通用户(程序员)的角度来理解这个代码。因为有三个坐标系所以Qt的代码全都是以逻辑坐标系为基础的。对于这个代码来讲 painter.drawLine(0,0,500,500);drawLine的时候实际上就是以逻辑坐标系为准。这时候三个坐标系是相等的没有任何比例变化。大家可以理解为这三个坐标系是重叠的。 setWindow() 控制变量其他的代码不变我们只单独设置setWindow这个代码setWindow的作用就是在物理坐标系不变的情况下将逻辑坐标系进行缩放。 假定我们的代码是这样的。将逻辑坐标扩大一倍那么代码就是这样的 void QtWidgetsApplication1::paintEvent(QPaintEvent*e) { QPainter painter(this); painter.setWindow(0,0,1000,1000); painter.drawLine(0,0,500,500); }这时候我们的窗口就变成了这个样子。 也就是说我的物理大小并没有变我通过更改逻辑坐标(放大两倍的效果) 看起来将我的整个坐标系变大了。比如原来我可以通过 painter.drawLine(0,0,500,500);来绘制对角。 经过 painter.setWindow(0,0,1000,1000)\\放大逻辑坐标系两倍最后 painter.drawLine(0,0,500,500);\\只能绘制一半的效果。如果还想绘制对角那么就得 painter.drawLine(0,0,1000,1000);也就是我们现在将用户的坐标系放大了两倍。这个就是setWindow的作用。 setViewport() 大家可以理解setViewport的作用就是控制物理坐标系的。 比如官方代码 int sideqMin(width(),height()); int x(width()-side/2); int y(height()-side/2);painter.setViewport(x,y,side,side); 还要控制窗口的宽高这时候就更难理解了。我的例子还是控制变量假定Window不变。我们只更改ViewPort 还是那个例子窗口大小(500, 500)。我们还是画对角线。这时候我们把代码改成 void QtWidgetsApplication1::paintEvent(QPaintEvent*e) { QPainter painter(this); painter.setViewport(0,0,1000,1000) painter.drawLine(0,0,250,250); }大家可以看现象画线也变粗了。这是为啥呢 很简单painter.setViewport(0, 0, 1000, 1000)这个代码相当于把整个物理坐标系翻倍了。也就是单位逻辑坐标变大了。 原来逻辑坐标画1个像素点现在相当于画2个。 所以会有两个现象 画线变粗drawLine现在只需要一半就可以撑满整个窗口。 小结 还是要好好观察下这个顺序。 Qt通过三个坐标系来做到了窗口之间的变换 放大缩小。 那么工程上是如何使用的呢。一般来说viewport这个跟当前物理DPI保持一致。 然后通过setWindow放大坐标系 如果你想把整个逻辑坐标系放大。那么就用setWindow()还是看你当前的逻辑需求- 即逻辑坐标系的需求。 以这个为出发点那么再去理解setWindow setViewport就很好理解了。
http://www.sadfv.cn/news/407937/

相关文章:

  • 做网站备案是什么意思网站图片上传不上去怎么办
  • 乐清网站建设哪家好秦皇岛北京网站建设
  • 网站设计好后如何发布wordpress 兼容php7
  • 湘潭知名网站建设南充做网站电话
  • 有哪些网站可以做电子邀请函网站建设和赚钱方法
  • 做家具的企业网站投资小利润高的小生意
  • 旅游网站建设答辩ppt购物网站排行榜前十名
  • rails 网站开发企业所得税税前扣除项目有哪些
  • 济南网站建设(力选聚搜网络)怎样解除拦截网站设置
  • 企业网站建设有哪些书籍湘潭做网站 活动磐石网络
  • wordpress架设教程黄山网站seo
  • 站长之家最新网站做网站违法吗
  • 360网站建设服务合肥网站建设网新
  • 如何做一个论坛网站临淄信息港官网
  • 网站建设流程有discuz网站备份
  • 工厂管理软件长沙seo代理
  • 站长推荐珠宝首饰网站建设
  • 做网站接广告浙江公司网站建设制作
  • 做微商网站设计福建泉州做网站公司
  • 免费信息网站建设平台在线课堂手机网站模板
  • 无锡企业网站制作公司有哪些网络广告策划方案
  • 长春市快速建站网站手机app前端开发工具
  • wordpress网站重做陕西网站建设托管
  • 家庭电影网站建设郑州量站站软件开发有限公司
  • 搜h网站技巧愿意合作做游戏的网站平台
  • 手机单页网站wordpress id连续
  • 长沙优化网站方法php如何制作网页
  • 网站建设贰金手指下拉贰壹网站一定备案吗
  • 做网络推广可以通过哪些渠道推广山西网络营销推广seo
  • 从零精通网站建设wordpress怎么开启会员下载