WPF随笔收录-实时绘制心率曲线

打印 上一主题 下一主题

主题 887|帖子 887|积分 2661

一、前言

  在自己的项目中,涉及到实时心率曲线的绘制,项目上的曲线绘制,一样平常很难找到能直接用的第三方库,而且有些还是定制化的功能,以是还是自己绘制比较方便。很多人一听到自己画就害怕,感觉很难,今天就分享一个完整的实时心率数据绘制心率曲线图的例子;之前的博客也分享给DrawingVisual绘制曲线的方法,这个例子也是通过同样的方式;二、正文

1、实时心率监护这种项目,场景一样平常是硬件设备采集到心率数据,然后推送给后台汇总,然后后台通过网络再推送给客户端,客户端再举行展示。
2、这里通过加载准备好的模拟心率数据,然后联合使用定时器定时推送数据,来模拟后端给客户端推送数据的场景。数据包里包含了三个心率数据,和一个时长的Index,一秒钟推送4个数据。
  1. private void Init()
  2. {
  3.     //加载心率模拟数据
  4.     using StreamReader reader = new("fhrdata.txt");
  5.     string line;
  6.     while ((line = reader.ReadLine()) != null)
  7.     {
  8.         fhrDatas.Add(int.Parse(line));
  9.     }
  10.     //定时器模拟后台定时推送心率数据
  11.     pushFhrDataTimer = new DispatcherTimer
  12.     {
  13.         Interval = TimeSpan.FromSeconds(1),
  14.     };
  15.     pushFhrDataTimer.Tick += PushFhrDataTimer_Tick;
  16.     pushFhrDataTimer.Start();
  17. }
  18. private void PushFhrDataTimer_Tick(object sender, EventArgs e)
  19. {
  20.     //一秒钟推送4个数据
  21.     var fhrs = new FhrModel[4];
  22.     for (int i = 0; i < fhrs.Length; i++)
  23.     {
  24.         fhrs[i] = new FhrModel
  25.         {
  26.             Index = timeIndex,
  27.             Fhr1 = fhrDatas[dataIndex],
  28.             Fhr2 = fhrDatas[dataIndex],
  29.             Fhr3 = fhrDatas[dataIndex],
  30.         };
  31.         timeIndex++;
  32.         dataIndex++;
  33.         if (dataIndex >= fhrDatas.Count) dataIndex = 0;
  34.     }
  35.     //推送数据到心率曲线控件
  36.     chart.AddFhrData(fhrs);
  37. }
复制代码
3、自界说的心率曲线控件,这里对现实项目中的举行了简化,界面如下图所示,这里的参考线通过网格的形式绘制,纵坐标也直接绘制在网格中,横坐标是时间,绘制在底下,左上角也实时显示当前最新心率值;

 4、实时心率绘制,就会涉及到曲线的一直更新绘制和移动,这里是通过每次收到一次后端推送的数据,就重新触发滑动条滚动到最新位置的事件,然后通过滑动条的滑动变化事件内里触发曲线的重新绘制。这里的绘制还分为从左边开始和右边开始,称之为走纸方向,如下图。


5、曲线绘制的具体细节还有自界说曲线控件里涉及到的逻辑这里就不具体形貌,背面会分享出代码的地址,并且尽量附上一些注释,终极实现的效果如下,曲线图会自动走纸绘制,支持拖动,支持拖动结束后,一段时间后自动恢复走纸。百万级别数据也不会卡,因为绘制的部分始终只有可见地区;

6、代码地址:https://gitee.com/liulang_g/draw-curve-demo

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表