欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WPF實(shí)時(shí)繪制心率曲線的示例詳解

 更新時(shí)間:2024年04月17日 11:10:04   作者:流浪g  
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)時(shí)繪制心率曲線的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

前言

在自己的項(xiàng)目中,涉及到實(shí)時(shí)心率曲線的繪制,項(xiàng)目上的曲線繪制,一般很難找到能直接用的第三方庫(kù),而且有些還是定制化的功能,所以還是自己繪制比較方便。很多人一聽(tīng)到自己畫(huà)就害怕,感覺(jué)很難,今天就分享一個(gè)完整的實(shí)時(shí)心率數(shù)據(jù)繪制心率曲線圖的例子;之前的博客也分享給DrawingVisual繪制曲線的方法,這個(gè)例子也是通過(guò)同樣的方式;

正文

1、實(shí)時(shí)心率監(jiān)護(hù)這種項(xiàng)目,場(chǎng)景一般是硬件設(shè)備采集到心率數(shù)據(jù),然后推送給后臺(tái)匯總,然后后臺(tái)通過(guò)網(wǎng)絡(luò)再推送給客戶端,客戶端再進(jìn)行展示。

2、這里通過(guò)加載準(zhǔn)備好的模擬心率數(shù)據(jù),然后結(jié)合使用定時(shí)器定時(shí)推送數(shù)據(jù),來(lái)模擬后端給客戶端推送數(shù)據(jù)的場(chǎng)景。數(shù)據(jù)包里包含了三個(gè)心率數(shù)據(jù),和一個(gè)時(shí)長(zhǎng)的Index,一秒鐘推送4個(gè)數(shù)據(jù)。

private void Init()
{
    //加載心率模擬數(shù)據(jù)
    using StreamReader reader = new("fhrdata.txt");
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        fhrDatas.Add(int.Parse(line));
    }

    //定時(shí)器模擬后臺(tái)定時(shí)推送心率數(shù)據(jù)
    pushFhrDataTimer = new DispatcherTimer
    {
        Interval = TimeSpan.FromSeconds(1),
    };
    pushFhrDataTimer.Tick += PushFhrDataTimer_Tick;
    pushFhrDataTimer.Start();
}

private void PushFhrDataTimer_Tick(object sender, EventArgs e)
{
    //一秒鐘推送4個(gè)數(shù)據(jù)
    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;
    }

    //推送數(shù)據(jù)到心率曲線控件
    chart.AddFhrData(fhrs);
}

3、自定義的心率曲線控件,這里對(duì)實(shí)際項(xiàng)目中的進(jìn)行了簡(jiǎn)化,界面如下圖所示,這里的參考線通過(guò)網(wǎng)格的形式繪制,縱坐標(biāo)也直接繪制在網(wǎng)格中,橫坐標(biāo)是時(shí)間,繪制在底下,左上角也實(shí)時(shí)顯示當(dāng)前最新心率值;

 4、實(shí)時(shí)心率繪制,就會(huì)涉及到曲線的一直更新繪制和移動(dòng),這里是通過(guò)每次收到一次后端推送的數(shù)據(jù),就重新觸發(fā)滑動(dòng)條滾動(dòng)到最新位置的事件,然后通過(guò)滑動(dòng)條的滑動(dòng)變化事件里面觸發(fā)曲線的重新繪制。這里的繪制還分為從左邊開(kāi)始和右邊開(kāi)始,稱之為走紙方向,如下圖。

5、曲線繪制的具體細(xì)節(jié)還有自定義曲線控件里涉及到的邏輯這里就不具體描述,后面會(huì)分享出代碼的地址,并且盡量附上一些注釋,最終實(shí)現(xiàn)的效果如下,曲線圖會(huì)自動(dòng)走紙繪制,支持拖動(dòng),支持拖動(dòng)結(jié)束后,一段時(shí)間后自動(dòng)恢復(fù)走紙。百萬(wàn)級(jí)別數(shù)據(jù)也不會(huì)卡,因?yàn)槔L制的部分始終只有可見(jiàn)區(qū)域;

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

到此這篇關(guān)于WPF實(shí)時(shí)繪制心率曲線的示例詳解的文章就介紹到這了,更多相關(guān)WPF繪制心率曲線內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#基礎(chǔ)之匿名方法實(shí)例教程

    C#基礎(chǔ)之匿名方法實(shí)例教程

    這篇文章主要介紹了C#的匿名方法,包括匿名方法的定義以及常用方法,并以示例形式說(shuō)明其用法,需要的朋友可以參考下
    2014-09-09
  • C#中實(shí)現(xiàn)屏蔽Ctrl+C的方法

    C#中實(shí)現(xiàn)屏蔽Ctrl+C的方法

    這篇文章主要介紹了C#中實(shí)現(xiàn)屏蔽Ctrl+C的方法,在C#應(yīng)用程序開(kāi)發(fā)中有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-08-08
  • c#創(chuàng)建windows服務(wù)(Windows Services)詳細(xì)步驟

    c#創(chuàng)建windows服務(wù)(Windows Services)詳細(xì)步驟

    這篇文章主要介紹了c#創(chuàng)建windows服務(wù)(Windows Services)詳細(xì)步驟,大家參考使用吧
    2013-12-12
  • winform多線程組件BackgroundWorker使用

    winform多線程組件BackgroundWorker使用

    這篇文章介紹了winform多線程組件BackgroundWorker的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#去除字符串中的反斜杠實(shí)例(推薦)

    C#去除字符串中的反斜杠實(shí)例(推薦)

    下面小編就為大家分享一篇C#去除字符串中的反斜杠實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • c#高效比對(duì)大量圖片的實(shí)例代碼

    c#高效比對(duì)大量圖片的實(shí)例代碼

    以前傳統(tǒng)的比較方式是遍歷圖片中的每一個(gè)像素,然后進(jìn)行比對(duì)。這樣的比對(duì)在少量圖片的比對(duì)上雖然效率低一點(diǎn),但是也沒(méi)有什么不好。但是在大量圖片比對(duì)的時(shí)候,過(guò)長(zhǎng)的反應(yīng)時(shí)間和對(duì)服務(wù)器比較高的消耗肯定是不行的,下面介紹下新的方法
    2013-10-10
  • Unity實(shí)現(xiàn)俄羅斯方塊(二)

    Unity實(shí)現(xiàn)俄羅斯方塊(二)

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)俄羅斯方塊的第一部分代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • c#中executereader執(zhí)行查詢示例分享

    c#中executereader執(zhí)行查詢示例分享

    這篇文章主要介紹了c#中executereader執(zhí)行查詢示例,需要的朋友可以參考下
    2014-04-04
  • 使用VS2005自帶的混淆器防止你的程序被反編譯的方法

    使用VS2005自帶的混淆器防止你的程序被反編譯的方法

    使用VS2005自帶的混淆器防止你的程序被反編譯的方法...
    2007-07-07
  • C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法

    C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法

    這篇文章主要介紹了C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法,通過(guò)對(duì)窗體參數(shù)的簡(jiǎn)單設(shè)置實(shí)現(xiàn)C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-08-08

最新評(píng)論