Qt学习笔记八 二维图形(2) 坐标系统变换

2023-11-08

在 Qt 中,可以改变系统默认的屏幕坐标系。

在 QPainter 默认的坐标系中,点 (0,0) 位于屏幕的左上角, X 轴向右, Y 轴向下。每个像素占 1x1 大小。

 

1.  移动坐标系,改变坐标系原点 (0,0) 位置:

通过 QPainter ::setWindow(); 可以移动坐标系原点和设置大小。例如:

 

painter. setWindow(- 50 , - 50 , 100 , 100 );

 

这个函数将坐标系原点移动到了屏幕的中间位置,屏幕大小为 100x100 。从屏幕物理坐标系的角度看,逻辑坐标系的 (0,0) 点位于物理坐标系 (50,50) 位置,而逻辑坐标系的 (50,50) 点则对应整个屏幕的右下角。

 

2.       旋转坐标系:

通过 QPainter ::rotate() 可以对逻辑坐标系进行旋转。例如:

 

       painter. rotate( 45.0 );

 

这个函数将逻辑坐标系顺时针旋转了 45 °。此时, X 轴从屏幕左上角向屏幕右下角延伸, Y 轴有屏幕右上角向屏幕左下角延伸。




from: http://blog.csdn.net/zhaotaobenny/article/details/6184251

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt学习笔记八 二维图形(2) 坐标系统变换 的相关文章

  • 【WIFI】802.11AX(WIFI6)无线协商速率计算

    从2019年末的iphone11系列开始 到后来的三星S10 在手机参数中总会有WIFI6这么一条参数 这里的WIFI6就是802 11的一个比较新的协议规范 802 11AX 因为笔者软件出生 对射频了解的不多 基本上也是靠查查找到 学习
  • 解决stylelint报错:Expected double quotes

    目录 背景 处理 背景 问题原因 stylelint对css期望引用时使用双引号 解决方法 修改stylelint 中css引入图片必须使用双引号的检查 注意 只希望修改掉stylelint 中css用url引入图片必须使用双引号的检查 而
  • stable diffusion webui 安装部署(linux系统)

    文中部署stable diffusion webui所使用的机器是腾讯云服务器linux系统 centos7 一 环境准备 在这里使用anaconda安装 优势就是可以方便地安装和管理软件包 同一系统上可以同时使用不同版本的 Python
  • Python数据分析之Excel

    openpyxl库 1 openpyxl概述 2 Excel写入 2 1 新建 2 2 添加数据 2 3 单元格格式 3 Excel读取 4 openpyxl操作Excel之CRUD 4 1 查 4 2 改 4 3 删 1 openpyxl
  • MyEclipse连接mysql报错

    将driverclassname 换为 com mysql jdbc Driver 成功连接
  • 工具网站大汇总!!!

    目录 1 翻译类 2 学术类 3 搜索类 4 术语类 5 在线工具 1 翻译类 Google翻译 https translate google cn 必应翻译 http cn bing com translator 百度翻译 https f
  • visual studio:调试时最好不要编辑,否则断点可能不会命中

    在用vs调试unity时 发现断点不会命中 在删除所有断电后重新打断点 重新运行 断点命中了 猜测原因是在调试过程中编辑过代码 但是没有保存 可能保存了 然后后续打断点出现了问题 下图不起作用 暂时没有看到有比较好的帖子 根据workflo
  • 符号“∑”和“Π”的用法。

    符号 和 的用法 ecnelises posted 2011年2月06日 07 33 in 计算机 with tags 公式 数学 级数 记号 6492 阅读 在数学中 符号 和 分别用来表示求和与求积 首先是函数的累积求和 n取 m k
  • Java多线程Callable方法详解

    多线程实现方式转载自https blog csdn net bandenger article details 81637034 重点看Callable方法 以下内容是Callable方法实现多线程过程中涉及到的概念 ExecutorSer
  • java sql server 连接异常

    但1433端口号不可用 程序报错 com microsoft sqlserver jdbc SQLServerException 到主机 的 TCP IP 连接失败 java net ConnectException Connection
  • ubuntu中cmake编译arm linux应用程序实现

    CMake是一个跨平台的安装编译工具 使用起来非常简单 在开发arm linux过程中主要用它来生成makefile 进而根据makefile生成可执行文件 下面举一个简单的例子介绍下CMake的用法 bulid src strlen c

随机推荐

  • 滚动条事件window.onscroll

    获取页面某一元素的绝对X Y坐标 var X ElementID offset top var Y ElementID offset left 获取相对 父元素 位置 var X ElementID position top var Y E
  • Java基础学习一----命令提示符常用指令

    cmd命令提示符 Command 常用指令 cd gt 跳转 cd gt 跳转到上一级地址 C D E gt 跳转到C D E盘 dir gt 目录directory cls gt 清屏 clear screen
  • redis-benchmark(压力测试)

    redis benchmark 一 redis benchmark exe 二 redis benchmark命令 三 redis benchmark压力测试 我的redis是安装在windows系统的 linux系统用法都一样 一 red
  • 解决问题记录14:若依微服务版本报错记录

    1 网关启动报错 Failed to bind properties under spring cloud sentinel datasource ds1 nacos rule type to com alibaba cloud senti
  • Python内存缓存实现

    Python内存缓存实现 内存缓存是一种常用的优化技术 它可以将计算结果存储在内存中 以避免重复计算 提高程序的性能 在Python中 我们可以使用装饰器来实现内存缓存功能 本文将介绍如何使用Python实现一个简单的内存缓存 并提供相应的
  • VMware 虚拟机安装Linux(Ubuntu)系统教程

    VMware 虚拟机安装Linux Ubuntu 系统教程 1 准备的工具 2 虚拟机中新建Ubuntu系统 1 准备的工具 1 首先安装VMware 虚拟机软件 2 在linux Ubuntu官网下载iso镜像文件或者我放了个百度云盘的链
  • 设计模式-多业务,统一入口

    比如对接一些第三方 会有异步通知 或者在第三方设置唯一回调接口 或者统一验签等场景 这个时候可能就需要我们搞一个统一入口来处理不同的业务 1 定义统一入口 RestController RequestMapping value notify
  • GitHub和Gitee的源码下载

    1 使用clone命令下载 如果本地安装了Git环境的话 可以直接在命令行中使用git clone命令把仓库中的文件全部下载到本地 通过GitHub下载源码 执行如下命令 git clone https github com git 其中后
  • BigDecimal详解

    文章目录 前言 一 BigDecimal类 二 常用方法 1 构造方法 2 基本的运算 加法 减法 乘法 除法 3 保留小数 精确到几位 4 舍入的类型 ROUND UP向上舍入 ROUND DOWN向下舍入 ROUND CEILING正向
  • iOS import包

    Frameworks Frameworks 顾名思义就是框架 是第三方打包完成看不到源码 可以直接使用的 在项目中引用方式 OC 引用某一个文件 Frameworks一般会提供一个h文件引用全部其他文件 import
  • 【100天精通python】Day27:文件与IO操作_CSV文件处理

    目录 专栏导读 1 CSV文件格式简介 2 csv模块的使用方法 3 读写CSV文件的示例 3 1 读取CSV文件示例 3 2 写入CSV文件示例 4 CSV文件的常用数据处理 4 1 读取CSV文件的特定列 4 2 读取CSV文件的特定行
  • maven打包时和 deploy时候将不会 依赖包含在生成的项目 jar中方法

    用 provided
  • Python模块学习:glob 文件路径查找

    文章转载自 伯乐在线 原文出处 Darkbull Python模块学习 glob 文件路径查找 glob模块是最简单的模块之一 内容非常少 用它可以查找符合特定规则的文件路径名 跟使用windows下的文件搜索差不多 查找文件只用到三个匹配
  • 第2.2章 使用两个“半加器”实现一个“全加器”

    刚才的电路考虑了加法的运算结果可能会有进位 当A和B都为1时 可以作为最低位的运算电路 但不能计算其他位 十位 百位等 因为没有考虑低位的进位结果 因此 只能叫做半加器 Half Adder 实际上 一个完整的加法器的输入端有3个 A B和
  • 04-3. Huffman Codes (30)

    04 3 Huffman Codes 30 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN Yue In 1953 David A Huffman publishe
  • 1、若依VUE代码结构:官方文档+资料+总结

    来自官方文档 build 构建相关 bin 执行脚本 public 公共文件 favicon ico favicon图标 index html html模板 robots txt 反爬虫 src 源代码 api 所有请求 assets 主题
  • js实现数组扁平化的几种方式

    数组扁平化 数组的扁平化就是将一个嵌套多层的数组转换为只有一层的数组 扁平化也是面试中常见的考题 举个简单的例子 假设有个名为 flatDeep 的函数能实现数组扁平化效果 代码运行效果如下面 var array 1 2 3 4 5 con
  • 大模型攻防|Prompt 提示词攻击

    前言 本文介绍大模型攻防领域中 Prompt提示词攻击 的相关知识 目录 Prompt 提示词攻击 提示词注入攻击 提示词泄露攻击 提示词越狱攻击 假装 其他 越狱 方法 AI 的进步 防御方法 Prompt 提示词攻击 提示词作为人和大语
  • 尚硅谷 Vue2.0 + Vue3.0 入门到精通教程学习笔记 (一)

    目录 第1章 Vue 核心 1 1 Vue 简介 1 1 1 官网 1 1 2 介绍与描述 1 1 3 Vue 的特点 1 1 4 与其他 JS 框架的关联 1 1 5 Vue 周边库 1 2 初始 Vue 1 3 模板语法 1 4 数据绑
  • Qt学习笔记八 二维图形(2) 坐标系统变换

    在 Qt 中 可以改变系统默认的屏幕坐标系 在 QPainter 默认的坐标系中 点 0 0 位于屏幕的左上角 X 轴向右 Y 轴向下 每个像素占 1x1 大小 1 移动坐标系 改变坐标系原点 0 0 位置 通过 QPainter setW