Qt 绘图坐标系转换
Qt 绘图坐标系转换
先上一段代码,简单的画了个实心矩形
QPainter paint(this);paint.setBrush(Qt::yellow);paint.drawRect(0.0, 0.0, 100, 100); //绘制原点为(0.0,0.0),长宽为100的矩形
效果如图:
现在说到绘图内的坐标系转换,Qt可用translate方法变换坐标原点,函数声明为:
void QPainter::translate(const QPointF &offset)
参数offset为新的坐标原点,原点可精确到小数;
void QPainter::translate(const QPoint &offset)
参数offset为新的坐标原点,原点只能精确到整数;
void QPainter::translate(qreal dx, qreal dy)
参数dx为新的坐标原点x,dy为新的坐标原点y,类型为qreal,即为double。
值得一提的是在转换坐标原点前需要先调用save方法保存当前坐标系原点,再转换坐标原点后需调用restore方法恢复之前保存的坐标系。如下代码:
paint.save(); //保存当前坐标系paint.translate(QPointF(100, 100)); //设置坐标系原点为(100,100)paint.drawRect(0.0, 0.0, 100, 100); //绘制原点为(0.0,0.0),长宽为100的矩形paint.restore(); //恢复坐标原点
效果如图:
这里需要注意的是转换坐标原点后,在未恢复时,当前的坐标都是基于转换后的坐标原点后的坐标。
若是在转换坐标系前未保存坐标系也没有关系,此时需要手动设置还原坐标系原点,代码如下:
paint.translate(QPointF(100.0, 100.0));paint.drawRect(0.0, 0.0, 100, 100);paint.translate(QPointF(-100.0, -100.0)); //转换坐标系原点paint.drawRect(0.0, 0.0, 100, 100);
(-100.0,-100.0)即为之前的坐标原点(0,0)。
效果如下:
今天的分享记录就到这里,希望对大家有所帮助。
下一篇文章介绍Qt的旋转机制。
Qt 绘图坐标系转换相关推荐
- 使用Qt绘图制作一个钟表
使用Qt绘图制作一个钟表 实际效果如下: 一.钟表实现的大概思路 设置定时器,定时器每隔一秒调用repaint()函数,paintEvent()函数随即被调用,利用paintEvent()函数重绘钟表 ...
- Qt绘图:求圆和椭圆上任意角度点的坐标
(2021-2-11 之前把笛卡尔坐标的 x 和 y 标注反了,已修正) 0.圆相关公式 在笛卡尔坐标系上,一个标准的圆是这样的: 已知圆心坐标 (x0,y0),半径 R,角度 a,则圆边上点(x', ...
- 高德,百度,Google地图定位偏移以及坐标系转换
本文引用地址 一.地图坐标系解释 在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: WGS-84原始坐标系,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Go ...
- 基于Hi3516AV200/Hi3519V101的Qt绘图优化
首先,Qt5.X移植到海思平台以及linuxfb插件的修改可以参考https://www.cnblogs.com/chay/p/10431403.html一文,本文介绍的优化过程与之相似,只是结合了具 ...
- GNSS系列--GNSS坐标系转换
大部分内容来自<http://onemo10086.com/#/school/article/165> "GNSS定位不准确,漂移了好几公里,是怎么回事呢?"相信有 ...
- 【Java代码】坐标系说明+WGS84\GCJ02\BD09坐标系转换工具+Java坐标系转换及验证源代码分享(粘贴可用)
1. 坐标系说明 开发地图应用服务时,一定会接触到各种坐标系,而保证坐标系的正确与合理是一切数据分析的前提,总的来说,坐标系可以分为两大类:地理坐标系GCS(Geographic Coordinate ...
- threejs中坐标系转换和实现物体跟随鼠标移动
坐标系转换 下面函数可以将鼠标所在点的屏幕坐标转化成一个Threejs三维坐标: convertTo3DCoordinate(clientX,clientY){var mv = new THREE.V ...
- Qt文件编码转换工具(三) Qt界面设计
目录 下载链接 上一节为C++判断文件编码 本节为Qt界面设计 下载链接 Realase打包版本下载: Qt文本转化工具 realase版本 https://download.csdn.net/dow ...
- Qt文件编码转换工具(二) C++判断文件编码
目录 下载链接 上一节 如何判断文件编码 下一节 下载链接 Realase打包版本下载: Qt文本转化工具 realase版本 https://download.csdn.net/download/q ...
最新文章
- 没有什么不可能(1)
- 网路神警上网行为管理系统 v3.4.5官方版
- mysql 列目录_Linux ls命令:查看目录下文件
- 永不示弱_永不过时的网页设计:今天和2000年的在线投资组合
- openresty 前端开发进阶一之http后端
- 微型计算机2014年9月下,2014年9月计算机应用基础》网络教育统考真题.doc
- linux mint 安装内核,使用Ukuu在Ubuntu/Linux Mint上安装Linux Kernel 5.0的方法
- CmsEasy可视化编辑商城系统源码
- Qt SQL 学习笔记二:qt建立数据库,创建和操纵表
- 个人小程序 给头像戴圣诞帽
- 访问页面出错:The requested URL / was not found on this server. 网站打开出现404
- ROS2进阶:安装与初体验(附choco介绍)
- Raspberry Pi3驱动Oled ssh1106屏
- OSPF状态切换以及包内容的交互,以及如何根据LSDB还原单区域拓扑
- 一篇文章,搞懂自动化行业现状
- WebStorm 的全局搜索字符串
- 纳豆红曲胶囊价格作用怎么样!
- VS Code,PyCharm与GitHub同步
- 经济学基础(本)【3】
- 管理服务器维护外包,运维外包管理