关键词不能为空

当前您在: 主页 > 英语 >

实时数据曲线绘制的Qt编程实现_图文(精)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-08 04:57
tags:

-

2021年2月8日发(作者:yilian)



2008年10月



第45卷增刊2



四川大学学报(自然科学版)



Jou rnalofSichuanUniversity(Natural


ScienceE dition)



oCt.2008



V01.45



Suppl.2



文章编号:0490 -6756【2008)Suppl-0061


?


04



实时数据曲线绘制的Qt编程实现



杨盛毅1,文



方1,师娇2



(1.贵州大学电气工 程学院。贵阳550003;2.北京理工大学宇航科


学技术学院,北京100081)



摘要:动态绘制和显示实时数据曲线是工业测控系统中一项重 要功能.本文提


出了一种利用Qt编程动态绘制实时数据曲线的方案,解决了由于绘制时 间较长而


无法满足实时显示要求的问题,并通过实例介绍了其具体实现方法.实践证明该 绘


制方案能满足实时监控的要求.关键词:测控系统;实时数据曲线;Qt



中图分类号:TP311



文献标识码:A





Realizationof



real_time



data



curve



drawingbaseon



Qtprogramming



YAN GSheng



Yil,WENFan91,SHIJia02



(1.CollegeofElectricEnginee ring,Gu


izhouUniversity,Guiyang550003,Ch ina,



2.SchoolofAerospaceScie nceand



Engineering.BeijingIn stituteofTech


nology,Beijing100081,China )



Abstract:Dynamicdrawingand showingt


hereal



ti medata



curve



is



an



importantfunctionoftheindustri-

< br>




altestingan dcontrollingsystem.Amet


hodofdynamicdraw ingandshowingthereal



timedat acurve



based



on



Qtprogrammingi sintroducedinthispap


er,anditsolvesthepr oblemthatthedrawi


ngtimeis



too



long



to



showthedata



curve



intime.anditisillustratedby





integralexample .Itprovedthatthe



programcoul dsatisfythereal



timecon

< p>
trolrequirements.



Keyw ords:testingandcontrollingsyst


em,real



timedatacurve,Qt







引言



工业测控系统中,常用动态实时 数据曲线来监测某些量在工作环境变化时的控


制稳定性.从而动态绘制实时数据曲线成为 测控软件开发中的重要一环,而动态绘


制实时数据曲线存在由于绘制时间较长而无法满足 实时显示要求、绘制数据量大、


动态平滑显示等问题.Qt是由挪威Trolltech 公司开发的一个跨平台的


C++图形应用程序开发框架,基于



信号一槽



的通讯机制,并具有高度模 块化、


可重用性好、运行速度快、可移植性好等特点,对于用户开发来说是非常方便.目


前主要用于Linux下的开发.同时Qt还是跨平台的,它使得跨平台软



件编程直观、简易和方便.但同其它编程工具一样,Qt也不具备直接的动 态


曲线绘制能力,必须借助一些编程技术来实现.我们提出了一种利用Qt编程动态


绘制实时数据曲线的方案,解决了由于绘制时间较长而无法满足实时显示要求的问

< p>
题.





实时数据曲线绘制的基本思路



所谓数据曲线,实质上是由许多直线首尾相连



组合而成,在绘图区中用直线连接两数据点来实现,通过setWindow


函 数可设定绘图区大小及绘图原点坐标.数据曲线上前一时刻数据点通常在曲线上


最左端显 示,随着时间推移,整条曲线自右向左移动.实现曲线的动态平移必然涉


及到曲线的消< /p>



收稿日期:2008-08-31


< /p>


作者简介:杨盛毅(1986一),男,布依族,贵州平塘人,在读硕士研究


生,研究方向为计算机测控技术.



62





四川大学学报(自然科学版)增刊2



隐或重绘,常用的两种绘图方式为:一种方式是将画线对象的属性设为与或,


然后在原位 置重绘曲线,单一背景色的情况下,也可直接用背景色重绘曲线,实现


曲线的动态效果; 另一种方式是通过调用API函数BitBh实现曲线的平滑移


动.


上述两种常用绘制方案,虽然解决了大数据量、动态平滑显示的问题,但实时


性不佳,所以本文提出一种新的数据绘制方案.本方案中数据曲线上各点纵坐标反

< p>
映实时数据的大小,通过记录次新点数据,并更新最新点数据,在定时器中使用Q

< br>wid



get类中scorll函数定时将图象向左卷 动一定像素,卷动后sc


roll函数发送绘制事件.绘制事件中,只绘制由于卷动而空 出的区域,利用d


rawLine函数将最新数据点与次新数据点以直线相连,即可实现 实时数据曲


线自右向左的平滑移动效果.


绘图区内实时曲线的数据量由scroll函数卷曲的像素值所决定,即卷曲


的像素 越多,数据量越少,卷曲的像素越少,数据量越多.条件允许时,应增加实


时曲线的数据 量,更有利于监控现场环境的变化趋势.同时为了避免绘图区数据点


过于拥挤,可在当前 绘图区显示一部分数据曲线,通过滚动条查看数据曲线的其它


部分.3

< br>


实时曲线绘制的实时性



由于绘制时间较长而无法满足实时显示的要


< br>求,是实时数据曲线绘制中存在的普遍问题.我们提出的方案,由于每次绘制


时所 需绘制的数据极I



(2)声明模块级变量



int



myTimerld;





intxpos;



intdisplayDatalypos;intdisplayData


f yposintdisplayDatachargebool



Close



(3)在Drawer类构造函数中添加代码



setBackgroundColor(black)myTimerld


= 0xpos=O



displayDatalcharge-----0



(4)为公有槽openDraw和closeDraw添加代码


< /p>


openDraw:Close



TUR E;



myTimerId



startTimer(30):



少,所以能 有效提高绘制的实时性.在程序中,通过调用函数QueryPe


rformanceC ounter获取计算机定时器的当前值,并调用函数Qu


eryPerformanc e



Frequency获取计算机定时器的频率,

< p>
通过计算绘制后计算机定时器的值与绘制前计算机定时器的值之差,再乘以定时器

< br>频率,即可得到绘制所花费的时间.目前常用PC的定时器频率在3.5


×



106



Hz左右,所以采用该方法计算绘制所花费的时



间可以精确到0.28x10一S.通过实验,得到本文所述方案的平均绘制


时间为173ns,而采用双缓冲绘制方案的平均绘制时间为1.72ms,由此


可见, 我们提出的方案有效的提高了绘制的实时性.



-


-


-


-


-


-


-


-



本文更新与2021-02-08 04:57,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/612175.html

实时数据曲线绘制的Qt编程实现_图文(精)的相关文章