CN106771452A - 一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 - Google Patents
一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 Download PDFInfo
- Publication number
- CN106771452A CN106771452A CN201611030078.3A CN201611030078A CN106771452A CN 106771452 A CN106771452 A CN 106771452A CN 201611030078 A CN201611030078 A CN 201611030078A CN 106771452 A CN106771452 A CN 106771452A
- Authority
- CN
- China
- Prior art keywords
- waveform
- coordinate
- coordinate data
- storage array
- method based
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R13/00—Arrangements for displaying electric variables or waveforms
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,在波形绘制窗口建立直角坐标系,确定像素坐标和直角坐标之间的转换关系,给坐标数据存储数组分配内存空间;设定数据修正和波形重绘操作的时间间隔;记录鼠标点击并移动过程中的鼠标点击时的坐标,并存储到坐标数据存储数组内,执行绘制操作过程中,按照设定的时间间隔,依次进行坐标数据存储数组的数据进修正和波形重绘操作,直到检测到鼠标释放信息;对坐标数据存储数组的坐标数据进行插值拟合,输出绘制信号。本发明通过对采集的波形曲线进行插值运算,克服波形曲线时域信息丢失的缺点。
Description
技术领域
本发明涉及一种基于MFC类库和屏幕分辨率的波形绘制和采集方法。
背景技术
在航空和国防领域中,电子技术的发展对信号波形得要求越来越复杂,同时又不能降低信号的分辨率,这对测试用的信号源提出了新的挑战。要求信号源不仅具备复杂波形的输出能力,还对输出频率、波形质量、输出通道数目以及输出信号之间的同步能力等功能指标提出了更高的要求。
任意波形绘制及信号产生是任意波发生装置最重要的功能,该功能注重于以灵活的方式产生任意复杂信号,并通过任意波发生装置实现“逐点输出”。以显示屏幕为载体构建直角坐标系,左下角为坐标原点,向右为x正方向,对应时间信息,向上为y正方向,对应幅度信息。
采用MFC设计波形绘制软件的基本方法是通过跟踪鼠标响应消息(如鼠标按下WM_LBUTTONDOWN、鼠标抬起WM_LBUTTONUP、鼠标移动WM_MOUSEMOVE)来触发操作。当鼠标按下时表示绘制开始,在鼠标移动过程中会按一定时间间隔触发WM_MOUSEMOVE消息,每触发一次WM_MOUSEMOVE消息,系统可以获取一次当前鼠标的位置(以像素为单位)并存入数组pBuf,鼠标抬起表示绘制操作结束,将pBuf中的数据取出后转化为直角坐标系中的对应的坐标点,逐点连接后显示鼠标轨迹曲线。图1所示绘制的正弦波,坐标系x方向长度为21个像素,x方向相邻像素点的间隔可以等效为时域上的一个时间间隔。y方向由像素位置转化为对应的幅度坐标,范围为0~3V。为了能够实时显示鼠标运动轨迹,需设置一个定时器消息WM_TIMER,设定定时间隔,在执行波形绘制操作时,时间每过,执行一次波形重绘操作。
现有鼠标跟踪法下,如若鼠标向左移动,如图2所示缺点1示意图的虚线部分,由于先前位置存储数组pBuf中的位置数据没有做相应的处理,导致一个x对应两个或多个y值,造成“曲线重复”,这种波形是无法输出的。
在波形绘制鼠标移动过程中,MFC以一定的时间间隔触发WM_MOUSEMOVE消息,记为Δt。若鼠标绘制过程中某段移动速度非常快,如图1所示,A->B用时Δt,B->C用时Δt,pBuf中的波形数据将会失去部分时域上的信息。该波形数据通过任意波形发生装置输出的后如图2中缺点2所示,导致正弦波信号部分失真。
当鼠标向x负方向移动时,会产生类似半封闭的曲线,造成在同一时间点上对应多个不同的幅度信息,这里把这种现象称为“曲线重复”,这显然不是波形发生装置希望输出的信号。
发明内容
本发明为了解决上述问题,提出了一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,本方法解决了常用的鼠标跟踪法存在的同一时间点,可能存在多个不同幅度的缺点,通过定时对存储的坐标数据进行处理,实现时间和幅度的一一对应。同时通过插值的方法,以达到采集数据准确反映波形数据时域信息的目的。
为了实现上述目的,本发明采用如下技术方案:
一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,包括以下步骤:
(1)在波形绘制窗口建立直角坐标系,确定像素坐标和直角坐标之间的转换关系,给坐标数据存储数组分配内存空间;
(2)设定数据修正和波形重绘操作的时间间隔;
(3)记录鼠标点击并移动过程中的鼠标点击时的坐标,并存储到坐标数据存储数组内;
(4)执行绘制操作过程中,按照设定的时间间隔,依次进行坐标数据存储数组的数据进修正和波形重绘操作,直到检测到鼠标释放信息;
(5)对坐标数据存储数组的坐标数据进行插值拟合,输出绘制信号。
所述步骤(2)中,设置不同的存储单元分别记录鼠标的左键点击、释放和移动信息。
所述步骤(2)中,数据修正的时间间隔小于波形重绘的时间间隔。
所述步骤(4)中,如果坐标数据存储数组的存在多个在时间上存在先后顺序的点,用最新的数据替换最先数据,依次进行填补舍弃。
所述步骤(4)中,波形重绘操作包括背景刷新和坐标连线。
所述步骤(5)中,利用三次样条插值运算进行拟合。
所述步骤(5)中,具体包括:
(5-1)取出坐标数据存储数组中的坐标数据,横坐标赋值给一维数组X,纵坐标赋值给一维数组Y;
(5-2)初始化插值后的新的横坐标一维数组X’;
(5-3)利用三次样条插值运算进行拟合,以新的曲线横坐标值和纵坐标值替换坐标数据存储数组中的数据。
本发明的有益效果为:
(1)本发明不仅解决了“曲线重复”问题,还通过对坐标数据的插值运算解决了时域信息丢失的问题;
(2)本发明采用定时数据修正法,每隔一定时间间隔就对坐标数据存储数组中的数据进行一次修正,达到一个x只对应一个y的目的,确保每个横坐标仅对应一个纵坐标,采用定时数据刷新设计,实现绘制曲线实时显示;
(3)采用插值的方法来弥补缺失的数据,最终实现在波形x方向范围内,每一个x方向的像素点,都有一个y方向的幅度数值与之相对,克服波形曲线时域信息丢失的缺点。
附图说明
图1为本发明的MFC鼠标跟踪法绘制正弦波曲线;
图2为本发明的已有方法缺点示意图;
图3为本发明的无修正和定时修正后的轨迹对比图;
图4为本发明的采用插值法拟合的波形曲线图;
图5为本发明的流程示意图。
具体实施方式:
下面结合附图与实施例对本发明作进一步说明。
采用定时修正法和插值法,克服已有方法存在的曲线重复和波形失真缺点。把整个方法可分为两个部分:波形绘制、采集及波形数据修正和波形数据插值拟合。具体实现流程如下:
第一部分:波形绘制和采集
(1)设计波形绘制窗口,建立直角坐标系,确定像素坐标和直角坐标之间的转换关系,给坐标数据存储数组pBuf分配一定的内存空间后初始化;
(2)添加三个鼠标响应消息WM_LBUTTONDOWN、WM_LBUTTONUP、WM_MOUSEMOVE和一个定时器消息WM_TIMER,并设定定时间隔Δt1和Δt2,分别用于数据修正和波形重绘操作,且满足Δt1<Δt2;
(3)鼠标按下并移动过程中,每响应一次MOUSEMOVE消息记录一次当前鼠标的坐标,并将坐标数据存入pBuf;
(4)在执行绘制操作的过程中,时间每过Δt1执行一次数据修正,若pBuf数组中存在多个在时间上存在先后顺序的点,如满足 则先舍弃共k-1个坐标值,然后将移动到在pBuf中的位置,pBuf中的其它坐标点依次向左推移填补舍弃后的所有空白位置,如图3所示;
(5)时间每过Δt2执行一次波形重绘操作,包括背景刷新和坐标连线;
(6)鼠标抬起时表示绘制操作结束;
第二部分:波形数据插值拟合
(7)绘制操作结束后对pBuf中的坐标数据进行插值拟合,解决时域上的波形失真问题。本发明通过调用Matlab接口函数实现插值运算,Matlab具有强大的数值运算能力,其提供的一维插值函数也有多种,这里选用精度最高、曲线最平滑的三次样条插值运算。
以图1绘制的正弦波曲线为例,具体实现步骤如下:
Step1:取出pBuf中的坐标数据,横坐标赋值给一维数组X=[x1,x2…,xn],纵坐标赋值给一维数组Y=[y1,y2…,yn];
Step2:初始化插值后的新的横坐标一维数组X’=[x1,x1+1,x1+2,…,xn-1,xn];
Step3:调用Matlab接口函数做插值运算Y’=interp1(X,Y,X’,'spline');
Step4:X’为曲线横坐标值,Y’为曲线纵坐标值替换pBuf中的数据。
(8)将pBuf中的数据存入文件,通过任意波形发生装置输出绘制的信号。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (7)
1.一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,其特征是:包括以下步骤:
(1)在波形绘制窗口建立直角坐标系,确定像素坐标和直角坐标之间的转换关系,给坐标数据存储数组分配内存空间;
(2)设定数据修正和波形重绘操作的时间间隔;
(3)记录鼠标点击并移动过程中的鼠标点击时的坐标,并存储到坐标数据存储数组内;
(4)执行绘制操作过程中,按照设定的时间间隔,依次进行坐标数据存储数组的数据进修正和波形重绘操作,直到检测到鼠标释放信息;
(5)对坐标数据存储数组的坐标数据进行插值拟合,输出绘制信号。
2.如权利要求1所述的一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,其特征是:所述步骤(2)中,设置不同的存储单元分别记录鼠标的左键点击、释放和移动信息。
3.如权利要求1所述的一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,其特征是:所述步骤(2)中,数据修正的时间间隔小于波形重绘的时间间隔。
4.如权利要求1所述的一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,其特征是:所述步骤(4)中,如果坐标数据存储数组的存在多个在时间上存在先后顺序的点,用最新的数据替换最先数据,依次进行填补舍弃。
5.如权利要求1所述的一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,其特征是:所述步骤(4)中,波形重绘操作包括背景刷新和坐标连线。
6.如权利要求1所述的一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,其特征是:所述步骤(5)中,利用三次样条插值运算进行拟合。
7.如权利要求1所述的一种基于MFC类库和屏幕分辨率的波形绘制和采集方法,其特征是:所述步骤(5)中,具体包括:
(5-1)取出坐标数据存储数组中的坐标数据,横坐标赋值给一维数组X,纵坐标赋值给一维数组Y;
(5-2)初始化插值后的新的横坐标一维数组X’;
(5-3)利用三次样条插值运算进行拟合,以新的曲线横坐标值和纵坐标值替换坐标数据存储数组中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611030078.3A CN106771452A (zh) | 2016-11-15 | 2016-11-15 | 一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611030078.3A CN106771452A (zh) | 2016-11-15 | 2016-11-15 | 一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106771452A true CN106771452A (zh) | 2017-05-31 |
Family
ID=58970578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611030078.3A Pending CN106771452A (zh) | 2016-11-15 | 2016-11-15 | 一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106771452A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109612509A (zh) * | 2018-11-13 | 2019-04-12 | 中电科仪器仪表有限公司 | 一种基于手持式信号测量仪器的趋势图显示处理方法 |
CN111189427A (zh) * | 2020-02-13 | 2020-05-22 | 桂林理工大学 | 简支梁弯曲形变实时监测方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976448A (zh) * | 2010-10-22 | 2011-02-16 | 华为技术有限公司 | 绘图方法及装置 |
CN201956986U (zh) * | 2011-01-07 | 2011-08-31 | 桂林电子科技大学 | 手绘波形发生器 |
CN102360287A (zh) * | 2011-09-28 | 2012-02-22 | 中国航天科工集团第四研究院第四总体设计部 | 一种用于高速实时仿真的曲线绘制方法 |
CN102566868A (zh) * | 2010-12-24 | 2012-07-11 | 北京普源精电科技有限公司 | 鼠标绘制波形的处理方法及装置 |
CN102566867A (zh) * | 2010-12-24 | 2012-07-11 | 北京普源精电科技有限公司 | 鼠标绘制波形的处理方法及装置 |
CN103744472A (zh) * | 2013-12-17 | 2014-04-23 | 中国船舶工业集团公司第七〇八研究所 | 一种通用数字型信号发生系统 |
JP2014142915A (ja) * | 2012-12-26 | 2014-08-07 | Graphtec Corp | 波形描画装置及び波形描画プログラム |
CN104363006A (zh) * | 2014-11-24 | 2015-02-18 | 兰州大学 | 一种支持多种波形输入形式的任意波形发生系统 |
CN105630210A (zh) * | 2015-12-21 | 2016-06-01 | 中国电子科技集团公司第四十一研究所 | 能任意绘制波形的4GSa/s高速波形数据合成装置 |
-
2016
- 2016-11-15 CN CN201611030078.3A patent/CN106771452A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976448A (zh) * | 2010-10-22 | 2011-02-16 | 华为技术有限公司 | 绘图方法及装置 |
CN102566868A (zh) * | 2010-12-24 | 2012-07-11 | 北京普源精电科技有限公司 | 鼠标绘制波形的处理方法及装置 |
CN102566867A (zh) * | 2010-12-24 | 2012-07-11 | 北京普源精电科技有限公司 | 鼠标绘制波形的处理方法及装置 |
CN201956986U (zh) * | 2011-01-07 | 2011-08-31 | 桂林电子科技大学 | 手绘波形发生器 |
CN102360287A (zh) * | 2011-09-28 | 2012-02-22 | 中国航天科工集团第四研究院第四总体设计部 | 一种用于高速实时仿真的曲线绘制方法 |
JP2014142915A (ja) * | 2012-12-26 | 2014-08-07 | Graphtec Corp | 波形描画装置及び波形描画プログラム |
CN103744472A (zh) * | 2013-12-17 | 2014-04-23 | 中国船舶工业集团公司第七〇八研究所 | 一种通用数字型信号发生系统 |
CN104363006A (zh) * | 2014-11-24 | 2015-02-18 | 兰州大学 | 一种支持多种波形输入形式的任意波形发生系统 |
CN105630210A (zh) * | 2015-12-21 | 2016-06-01 | 中国电子科技集团公司第四十一研究所 | 能任意绘制波形的4GSa/s高速波形数据合成装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109612509A (zh) * | 2018-11-13 | 2019-04-12 | 中电科仪器仪表有限公司 | 一种基于手持式信号测量仪器的趋势图显示处理方法 |
CN111189427A (zh) * | 2020-02-13 | 2020-05-22 | 桂林理工大学 | 简支梁弯曲形变实时监测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164086B (zh) | 一种基于红外触摸屏的触摸显示方法、装置及红外触摸屏 | |
CN100570373C (zh) | 一种极高波形捕获率数字存储示波器 | |
CN102768593B (zh) | 触控显示装置 | |
US9092129B2 (en) | System and method for capturing hand annotations | |
CN102750060B (zh) | 利用空间差异性的投射式电容触摸屏系统时域降噪方法 | |
US9471186B2 (en) | Method for improving linearity of touch system coordinates | |
CN106708413A (zh) | 触摸屏手写输入呈现为具有型笔特征笔迹的方法 | |
CN101937299A (zh) | 位置检测装置 | |
CN105579940A (zh) | 用于宽纵横比应用的触控面板 | |
CN106547433A (zh) | 书写笔迹确定方法及装置 | |
CN111142770A (zh) | 一种生成笔锋的方法及处理装置 | |
CN106771452A (zh) | 一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 | |
US3506875A (en) | Pen-tracking system in cathode-ray tube display equipment | |
CN109001514B (zh) | 一种基于三维波形映射图像的参数测量与标记方法 | |
CN113342208A (zh) | 基于多点触控设备的铁路选线方法、终端及存储介质 | |
CN103605477A (zh) | 基于电容屏手写笔迹的手势定位方法及电容屏 | |
CN108335340A (zh) | 压力触摸屏手写输入呈现为具有型笔特征笔迹的方法 | |
CN107942114A (zh) | 一种扫描模式下的三维映射方法 | |
CN104978068B (zh) | 触摸显示驱动方法、系统、显示装置和应用处理器 | |
CN106127685A (zh) | 线条快速擦除方法及其系统 | |
CN107728907B (zh) | 一种书写笔迹生成方法及装置 | |
CN203324956U (zh) | 电容式触摸屏 | |
JPH03294918A (ja) | 入力表示一体型ディスプレイ装置 | |
CN109358799A (zh) | 在手写设备上添加用户输入的手写批注信息的方法 | |
CN113986032A (zh) | 智能手写笔书写轨迹偏差的调整方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |