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

128b7c9336fd77ee16f546a098f8d968.png

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

0611aff71aec474485163fc1eae7b8c7.png

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矩形区域解释为该扇形或圆弧,对应圆的外接矩形,实际指明了圆心点和半径,圆心点即矩形的中心点。

3aa43a6de115a817e667b64dd6521cb7.png

以一个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度,正值表示逆时针方向,而负值表示顺时针方向。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python xpath定位元素方法_Python爬虫杂记 - Xpath高级用法

xpath 高级用法 1. 匹配当前节点下的所有: .// . 表示当前 // 表示当前标签下的所有标签 注: 要配合使用 2. 匹配某标签的属性值: /属性名称 这里以input里的value值为例: 例:xpath(//input/value) 3. 匹配多个路径&am…

反向Z(Reversed-Z)的深度缓冲原理

参考文章:https://zhuanlan.zhihu.com/p/75517534 https://zjinc36.github.io/2020/03/10/2020-20200309-%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E6%B5%AE%E7%82%B9%E6%95%B0%E4%B8%8E%E6%B5%AE%E7%82%B9%E6%95%B0%E7%9A%84%E7%B2%BE%E5%BA%A6%E9%97%AE%E9%A2%98/ …

screenocr怎么卸载_screenocr是什么软件 screenocr软件及其功能介绍

在日常的生活和工作当中不免会遇到一些无法进行复制但是又想要去将它摘录下来的文字。用手去进行输入的话及麻烦又费力,这个时候我们可以使用OCR技术来讲它们识别出来。而screenocr就是这样子的一款软件,还不是很了解screenocr都有哪些功能如何使用的用户…

saspython知乎_SAS入门书籍有哪些值得推荐?

2020年 8月更新:我觉得,我应该推荐下我本人出版的《SAS编程演义》《SAS编程演义》(谷鸿秋)【摘要 书评 试读】- 京东图书​item.jd.com ------------------------------------------------------------ 我觉得这个问题我还是可以唠叨几句的,我…

access exex控制pc_ownCloud/Nextcloud文件访问控制(Files Access Control)

事实上这是一个插件(APP),也是ownCloud/Nextcloud的一项重要功能:文件访问控制。文件访问控制APP可以提供丰富强大的访问管理功能,从单文件权限到组文件,再到IP地址屏蔽,可以引用访问的时间、文件类型、用户、组等因素…

渲染杂谈:early-z、z-culling、hi-z、z-perpass到底是什么?

渲染杂谈:early-z、z-culling、hi-z、z-perpass到底是什么? 之前一直被这几个和深度缓存(z-buffer)相关的概念搞得神魂颠倒。今天在翻阅《Real-Time Rendering》时碰巧碰巧看到了这部分的讲解。硬着头皮看了看,姑且算…

output怎么用_性能领先,即训即用,快速部署,飞桨首次揭秘服务器端推理库

允中 发自 凹非寺量子位 编辑 | 公众号 QbitAI假如问在深度学习实践中,最难的部分是什么?猜测80%的开发者都会说:“当然是调参啊。”为什么难呢?因为调参就像厨师根据食材找到了料理配方,药剂师根据药材找到了药方&…

GPU架构杂乱备忘——IMR、TBR、TBDR

原文:https://juejin.cn/post/6844904132864655367 GPU架构杂乱备忘——IMR、TBR、TBDR 之前觉得涉及到gpu架构相关的问题只需要知道个大概就好,毕竟在图形api的层面上应该把硬件的细节给隐蔽掉,gpu的架构千千万万,每家厂商每个…

如何用python制作九九乘法表_Python一行代码给儿子制作九九乘法表

一行代码实现九九乘法表 print(\n.join( .join([%sX%s%s%(j,i,i*j) for j in range(1,i1)]) for i in range(1,10))) 1X11 1X22 2X24 1X33 2X36 3X39 1X44 2X48 3X412 4X416 1X55 2X510 3X515 4X520 5X525 1X66 2X612 3X618 4X624 5X630 6X636 1X77 2X714 3X721 4X728 5X735 6X…

帧同步相关文章

https://zentia.github.io/2019/04/22/frame-sync/ http://www.skywind.me/blog/archives/131 https://blog.codingnow.com/2018/08/lockstep.html

动词变名词的变化规则_动词过去式变化规则 - 点评英语网

动词考查是英语学习的重点和难点,动词过去式和过去分词的变化是学生学习的“拦路虎“之一。为了避免枯燥的去记忆,我们可以用一些轻松有趣的口诀去记住动词过去式的变化形式。动词过去式的变化口诀过去式很简单,只要你能这样记。前提必须是动…

requests下载大文件_11种方法教你用Python高效下载资源!

在本教程中,你将学习如何使用不同的Python模块从web下载文件。此外,你将下载常规文件、web页面、Amazon S3和其他资源。最后,你将学习如何克服可能遇到的各种挑战,例如下载重定向的文件、下载大型文件、完成一个多线程下载以及其他…

android自定义push通知_20个海外Web和App推送通知服务工具

在App和网站中使用推送通知有不同的原因,并且在提高流量和与客户互动方面有很多好处。推送通知是一种交互式可点击消息,可将访问者直接引导至你的网站。它们可以帮助你以指数方式增加流量和参与率。因此,营销人员,广告商&#xff…

linux 删除文件_Linux删除文件夹命令有哪些

今天要和大家分享的Linux常用命令是Linux删除文件夹命令,Linux删除文件夹很简单,常用的命令有rmdir和rm,以下分别介绍一下,大家根据情况选择使用即可。 Linux删除文件夹命令有哪些 ①Linux删除文件夹命令:rmdir rmdir命令使用场景: 当有空目录要删除时,可使用rmdir指令。…

url上接收到 el表达式 不渲染_一文摸透从输入URL到页面渲染的过程

一文摸透从输入URL到页面渲染的过程从输入URL到页面渲染需要Chrome浏览器的多个进程配合,所以我们先来谈谈现阶段Chrome浏览器的多进程架构。一、Chrome架构目前Chrome采用的是多进程的架构模式,可分为主要的五类进程,分别是:浏览…

模拟弱网工具的使用

https://zhuanlan.zhihu.com/p/98185153 https://www.jianshu.com/p/5e35a3585df5 今年5G技术开始铺开并进入商用。随着5G的到来,不知道大家有没有和我一样的感受,希望是我心理作用吧,我发现作为一个4G用户,最近我的手机网速是不…

c语言计算a+aa+aaa_物业服务企业信用等级公布,42家获AAA级!你家小区物业怎么样?...

杭州住保房管 根据《浙江省物业服务企业信用信息管理办法》和《浙江省行业信用监管责任体系构建工作方案》,日前,省建设厅公布了 2020年度浙江省物业服务企业信用等级结果名单,杭州165家物业服务企业上榜,绿城物业服务集团有限公司…

python 可视化_python可视化基础

常用的python可视化工具包是matplotlib,seaborn是在matplotlib基础上做的进一步封装。入坑python可视化,对有些人来说如同望山跑死马,心气上早输了一节。其实学习一门新知识,首先要掌握的是这门知识的最少最核心知识,剩…

ios did receive memory warning

今天测试IOS包体时,在一个很老的Ipad上闪退,查log显示是did receive memory warning。 Google了一圈,原因是2013年之前的ipad,用的A7处理器,不支持Unity的ASTC的Texture格式,因此游戏启动后,内…

使用post访问不到接口_Postman工具使用说明

一、工具说明接口测试工具,支持post,get,请求的接口测试;支持参数中带token,带cookie等接口测试。印度阿三开发的产品,稳定性较好,强烈推荐,屡试很爽。适用:前后端分离的…