在超声软件的开发中,超声成像模块需要绘制圆弧,例如绘制一个扇形的取样框,左右是一条直线,上下是一个圆弧,像这样。

Qt中使用QPainter::drawArc绘制圆弧,使用QPainter::drawPie绘制扇形。

圆弧和扇形的绘制接口输入一致,在调试过程中使用扇形会更直观。

Qt绘制扇形的接口:

void  QPainter::drawPie(const QRectF &rectangle, int startAngle, int spanAngle);
void  QPainter::drawPie(int x, int y, int width, int height, int startAngle, int spanAngle);
void  QPainter::drawPie(const QRect &rectangle, int startAngle, int spanAngle);

扇形的接口入参可以概括为,设置一个矩形区域,开始角度,和偏移角度。

矩形区域

Rectangle矩形区域解释为该扇形或圆弧,对应圆的外接矩形,实际指明了圆心点和半径,圆心点即矩形的中心点。

以一个400*400的画布为例,绘制一个扇形,黑色画布左上角为(0, 0)点,圆心坐标为(200,0)外接矩形为(-30, -230, 460,460)。

扇形的角度

开始角度和偏移角度决定了扇形绘制的弧长,Qt中一个完整的圆分为5760 等分(360*16),在指定角度时,角度数需要乘16,同时需要注意,弧度和角度的转换。

//radian弧度, 将弧度转换为符合Qt的形式
float CoordiUtil::ConvertToQtAngle(float radian)
{//先转成度float angle = ConvertToAngle(radian);//Qt以3点钟为0度,正值逆时针方向,而负值表示顺时针方向float qtAngle = angle - 90;return (qtAngle) * 16;//一个完整的圆等于5760(16 * 360)
}// 将弧度转换为角度,radian弧度
float CoordiUtil::ConvertToAngle(float radian)
{//度=弧度×180°/πconst float PI = 3.1415926f;float angle = radian * 180 / PI;return angle;
}//将角度转换为弧度,angle角度
float CoordiUtil::ConvertToRadian(float angle)
{//弧度=度×π/180const float PI = 3.1415926f;float radian =  angle / 180 * PI;return radian;
}

在指定开始角度和偏移角度时,Qt以3点钟为0度,正值表示逆时针方向,而负值表示顺时针方向。

如果觉得文章有用请关注我,微信公众号一根筋都不缺

echart中拆线点的偏移_Qt中圆弧和扇形的绘制相关推荐

  1. echart中拆线点的偏移_Real BIM | Rhino+Grasshopper在双曲异形玻璃幕墙中的应用

    转载请联系并注明来源 你好,我以自己所做的项目为例,介绍一下我的认知里,BIM技术对于真实项目的作用. 案例是一个异形.双曲面的玻璃屋盖幕墙系统. 如效果图所示,玻璃屋盖呈波浪状,塔楼装饰条与屋盖装饰 ...

  2. qt5中字符串转字符串数组_Qt中的对象类型转换(Qstring 转换char*有三种方法)

    char * 与 const char *的转换 char *ch1="hello11"; const char *ch2="hello22"; ch2 = c ...

  3. qt5中字符串转字符串数组_Qt中整形数组转换成字符串的问题

    应项目的要求终于在一天中学会了把整型数组转换成QString,也算是小有成就的一天了. 由于还没发现怎么直接把整型数组转换成string类型,但是可以通过间接的方法来实现.首先要实现在Qt中建立整型数 ...

  4. ArcGIS中加载无偏移谷歌卫星影像!奥维官方插件与ArcGIS协同互动

    前段时间奥维地图推出了一款与ArcGIS协同插件OmapArcMap 对于经常使用奥维的小伙伴来说无疑是一种福利 这个插件会让你大大提高工作效率 这个插件主要有两个功能 可以在ArcGIS中在线加载谷 ...

  5. qtextedit 默认文案_QT中常用的控件说明.md

    2主窗口类型 有三种窗口 QMainWindow QWiget QDialog QMainWindow:可以包含菜单栏,工具栏和标题栏,是 最常见的窗口显示形式. QDialog:是对话窗口的基类.没 ...

  6. qwidget show 是否有信号_QT中的消息传递与函数回调机制:信号(signal)和槽(slot)...

    Qt是一个跨平台的C++应用程序开发框架,被广泛用于开发GUI程序. 信号和槽是Qt的核心,就相当于MFC的消息传递和回调函数一样.只不过功能比MFC 消息处理的机制和回调函数更强大.GUI应用程序要 ...

  7. qt如何定义全局变量_QT中全局变量的定义

    多的就不说了,本来就是一个简单地内容,只是不会的话会很头疼 我们首先新建两个文件,文件名可以自定义,我们在这里定义为variate.h 和 variate.cpp 当然了,后缀是不能变的. 和函数一样 ...

  8. java中的case1怎么说_Java 中的 CAS 简述及原理解析

    一.CAS 是什么? CAS(Compare And Swap),比较并交换,它是一条CPU并发原语.它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的.1 publi ...

  9. L2C中CtempGen层语义保持证明中环境匹配的定义

    ModelCoder是一款由迪捷软件自主研发,支持多种嵌入式系统建模并可以自动生成高安全可靠的C代码的软件设计和开发工具.ModelCoder支持同步数据流以及状态机等嵌入式模型,其从模型生成代码的过 ...

最新文章

  1. 什么是BeanShell?
  2. jstl标签的用法 fn标签
  3. Matlab下 IIR 滤波器实现(Simulink仿真和C语言实现)
  4. html dom 高级,DOM 高级工程师不完全指南
  5. 宝塔使用webhook自动部署php项目
  6. php pdo 封装类,php pdo封装类代码(支持事务)
  7. docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像
  8. MySQL性能优化知识:长连接、短连接、连接池
  9. mysql 主从复制结构配置
  10. Keras与PyTorch全方位比较 哪一个深度学习框架更适合初学者?
  11. android 系统(155)---如何自己添加号码归属地数据库?
  12. JAVA虚拟机环境如何在IMX6平台上搭建呢?
  13. IEC 61131 标准系列
  14. nginx反向代理获取用户真实Ip地址
  15. 干货:esp32彩屏自制太空人主题透明手表!
  16. 高中数学基础-对数2.2.2对数函数图象及其性质(上)
  17. NLP Stemming与Lemmatization的区别
  18. Dell服务器出错代码和含义
  19. 谈谈准确率(P值)、召回率(R值)及F值
  20. 如何用python遍历文件夹下的所有excel文件

热门文章

  1. 无法定位程序输入点 在.exe上_win7提示explorer.exe应用程序错误的解决方法
  2. android activity关联,如何实现两个Activity 之间如何通讯
  3. 西南大学网络教育学院计算机答案,西南大学网络与继续教育学院课程《数字信号处理》2018年春季大作业机考 答案.doc...
  4. IDEA创建Maven工程
  5. Linux用某一用户创建文件,Linux创建用户,并赋予管理指定目录的权限
  6. excel python插件_利用 Python 插件 xlwings 读写 Excel
  7. 部署superset_ubuntu16下部署apache superset趟坑指南(内有福利)
  8. 深度学习之循环神经网络(3)梯度传播
  9. 深度学习之卷积神经网络(12)深度残差网络
  10. python公开发行版本_Python2 最后一个版本发布,正式迈入 Python3 时代