使用Unity UGUI根据实时数据动态绘制图线(心电图)
【通知】本文的新升级版发布于 https://blog.csdn.net/xxxhhhyxy/article/details/117389897,并且已有新的工程包可供下载,请诸位移架观看。
同志们想我了吗?!我想也没有。
最近因为工程需要,通过UGUI设计了能够根据实时数据更新的动态图线,也就是像心电图那样。我从凯尔八阿哥的博客中得到绘制图线的启发,但添加了自己的实时设计,并且消耗的内存较小。
1.首先创建一个UI ==>RawImage作为呈现图像的窗口。
2.使用代码创建texture,赋给RawImage,作为呈现图线的纹理。
//初始化纹理m_texture = new Texture2D(graphWidth, graphHeight);m_rawImage.texture = m_texture;m_rawImage.SetNativeSize();
3.创建一个一维颜色数组(用于迭代图线)和一个一维列表(用于记录获取的数据)。
pixels = new Color[graphWidth * graphHeight];data = new List<int>();data.Add(0);//0 时刻接受的数据值为0
4.设置图线背景颜色
for (int i = 0; i < pixels.Length; i++){pixels[i] = GraphBackground;}m_texture.SetPixels(pixels);m_texture.Apply();
5.在update中接收数据并绘画图线
data.Add(datapoint);for (int j = data.Count - 1; j >= Mathf.Max(0, data.Count - graphWidth); j--){pixels[data[j] * graphWidth + graphWidth - data.Count + j] = LineColor;}m_texture.SetPixels(pixels);m_texture.Apply();for (int j = data.Count - 1; j >= Mathf.Max(0, data.Count - graphWidth); j--){pixels[data[j] * graphWidth + graphWidth - data.Count + j] = GraphBackground;}
倘若高度200,宽度200,那么整幅图共有40000点。
正常情况渲染时计算出40000个点后对整张图片进行渲染更新。而我在每一帧渲染完图线之后立刻沿着图线点、用背景色重新覆盖了一遍——只是将图线点重新赋值为背景色。也就是说我每一帧只有400次像素赋值——200次划线、200次擦除。
而且同样每帧只调用一次apply()。
这次没办法上传gif,以下三张图片是连贯的变化,是不是可以用来呈现心电图数据呢?
--------
【通知】本文的新升级版发布于 https://blog.csdn.net/xxxhhhyxy/article/details/117389897,并且已有新的工程包可供下载,请诸位移架观看。
Unity工程链接
使用Unity UGUI根据实时数据动态绘制图线(心电图)相关推荐
- python动态图形_利用matplotlib实现根据实时数据动态更新图形
我就废话不多说了,直接上代码吧! from time import sleep from threading importThread import numpy as np import matplo ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,在其中用股票范例讲述Python爬虫.数据分析和机器学习的技术,大家看了我的书,不仅能很快用比较热门的案例学好P ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)(转载)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- Unity UGUI图集打包与动态使用(TexturePacker)
TexturePacker 在用UGUI时,我们需要将一个个小图打包成图集,然后将图集一次性加载以内存换取图片读取效率,即减小Drawcall. UGUI打包并使用图集有两种方法:一种是使用系统自带的 ...
- python爬取新冠状病毒实时数据,绘制各省份疫情地图
想法: 偶然接触爬虫之后,想要试试爬取新冠状病毒的数据,但本人是编程小白,只能从网上寻找代码进行学习,在看过博主Hakuna_Matata_001的代码之后,可以说是将其默写出来了,然后加入了自己的一 ...
- 用Python抓新型冠状病毒肺炎实时数据,绘制市内疫情地图
说明: 本文是Python可视化技术结合时下热点进行进行开发.讲解的案例,也是计算机编程课程思政的一个形式.文章遵守CSDN平台规定和国家法规(非新闻资质的网站不允许发布疫情数据),对运行结果图片中的 ...
- 【转】Python之获取每日涨停板股票数据并绘制K线图!
利用tushare财经数据接口获取股市进行数据分析.并可视化的案例 1.导入所需要的库 import os import pandas as pd import tushare as ts impor ...
- Python之获取每日涨停板股票数据并绘制K线图!
利用tushare财经数据接口获取股市进行数据分析.并可视化的案例 1.导入所需要的库 import os import pandas as pd import tushare as ts impor ...
最新文章
- Python3 之 JSON
- PHP是弱类型语言,自动转换,强制转换
- 拷贝的代码中去除行号的方法
- DevExpress v18.1新版亮点——WinForms篇(四)
- 打开另外一个页面_如何在PDF页面中插入图片?
- dockfile应用(二)
- 在微型计算机中8m,第一部分 计算机基础知识部分习题(答案)
- vue复选框组件自定义对勾_vue2.0中ckeckbox(复选框)的使用心得,及对click事件和change的理解...
- ASP.NET之ScriptManager和ClientScriptManager
- xcodebuild -exportArchive -allowProvisioningUpdates
- linux通过数字权限设置密码,linux--权限管理和用户管理
- 基于Go调用国密SM2算法
- ICCAP2016如何调用ads的仿真器hpeesofsim
- input密码框显示与隐藏
- 计算机专业知识教学,2016计算机专业知识:计算机的分类(一)
- 没用完的手机流量是否清零?讨论+吐槽
- 中国大学 MOOC C语言程序设计----编程部分答案解析
- dB、dBm、dBc等概念的解释
- 梯形求积公式 和 复合梯形求积公式 Matlab 实现
- [转载]你遇见的事都是因你而生,你所遇见的人都是为你而来(自赵星)