在自己的项目中,涉及到实时心率曲线的绘制,项目上的曲线绘制,一般很难找到能直接用的第三方库,而且有些还是定制化的功能,所以还是自己绘制比较方便。很多人一听到自己画就害怕,感觉很难,今天就分享一个完整的实时心率数据绘制心率曲线图的例子;之前的博客也分享给DrawingVisual绘制曲线的方法,这个例子也是通过同样的方式。
private void Init() { //加载心率模拟数据 using StreamReader reader = new("fhrdata.txt"); string line; while ((line = reader.ReadLine()) != null) { fhrDatas.Add(int.Parse(line)); } //定时器模拟后台定时推送心率数据 pushFhrDataTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1), }; pushFhrDataTimer.Tick += PushFhrDataTimer_Tick; pushFhrDataTimer.Start(); } private void PushFhrDataTimer_Tick(object sender, EventArgs e) { //一秒钟推送4个数据 var fhrs = new FhrModel[4]; for (int i = 0; i < fhrs.Length; i++) { fhrs[i] = new FhrModel { Index = timeIndex, Fhr1 = fhrDatas[dataIndex], Fhr2 = fhrDatas[dataIndex], Fhr3 = fhrDatas[dataIndex], }; timeIndex++; dataIndex++; if (dataIndex >= fhrDatas.Count) dataIndex = 0; } // 堆代码 duidaima.com //推送数据到心率曲线控件 chart.AddFhrData(fhrs); }3、自定义的心率曲线控件,这里对实际项目中的进行了简化,界面如下图所示,这里的参考线通过网格的形式绘制,纵坐标也直接绘制在网格中,横坐标是时间,绘制在底下,左上角也实时显示当前最新心率值;