绘制多条实时曲线,有什么好的方法或者例子?

damonking 2020-10-10 11:51:53
我想做实时曲线,一个画面10条,能够方便的选择显示,隐藏,每条曲线有超过一万个点。我用drawline来画,速度太慢了,请问高手们有什么好的方法或者实例,赐教一下,谢谢!那些工控软件们,使用的是什么方法呢,速度那么快?
...全文
6886 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
highreport 2020-10-13
  • 打赏
  • 举报
回复
引用 11 楼 damonking 的回复:
[quote=引用 10 楼 shangxinyu123的回复:]创建一个image,在上面每隔1秒,绘制一个点线,再把image绘制graphics到显示
这种方法能避免闪烁?[/quote] 可以的
damonking 2020-10-13
  • 打赏
  • 举报
回复
引用 10 楼 shangxinyu123的回复:
创建一个image,在上面每隔1秒,绘制一个点线,再把image绘制graphics到显示
这种方法能避免闪烁?
highreport 2020-10-12
  • 打赏
  • 举报
回复
创建一个image,在上面每隔1秒,绘制一个点线,再把image绘制graphics到显示
damonking 2020-10-12
  • 打赏
  • 举报
回复
谢谢各位的回复,我就是个业余的爱好者,没有专业基础,水平不高,希望各位谅解!还有个问题请教一下,我用GDI画线,1秒刷新一次,但是画面闪烁,请问有什么好方法避免闪烁吗?
  • 打赏
  • 举报
回复
前端编程的最基本分层概念,View 层用于以配置、绑定的形式直接使用 ViewModel,而 ViewModel 是为了隔离 View 和 Model、不让无聊的“一条线要显示1万点”这种吵闹干扰到 View 所以才设计的,而 Model 是最低级的。

开发中,许多初学者就是纠结最低级的东西来吵闹,甚至把服务器端、或者数据库端的“增删改查”也来拿来纠结 API 和 Model 的设计,不断地干扰项目需求和开发进程。有些人工作了10年,还是初学者,还搞不明白“增删改查”决定不了API设计,API设计中的Model决定不了前端ViewModel层设计,前端ViewModel设计决定不了前端 UI、UX,一个产品能验收说到底只要看用户体验,只要看“这10条线”能不能在毫秒级流畅刷新。
  • 打赏
  • 举报
回复
除了许多程序员对 .net 的知识还比较匮乏以外,其实之所以学不了多少知识,可能还有一个更重要的原因就是没有学过正确的程序设计理念。因为理念学不进去,所以知识也学不好。
  • 打赏
  • 举报
回复
谁关心“一万点还是500点”?

我看只不过是你比较懒惰,不想设计开发一个 ViewModel 来减少界面层的点数,而只想用最底层的数据结构来套 VM。实际上懒会造成原本5分钟干完的事儿,“吵”好几天还不动手去做。这样习惯对任何团队都是损失。
highreport 2020-10-11
  • 打赏
  • 举报
回复
其实绘制这种实时曲线,用GDI(Graphics)绘制曲线就可以了,10个点10万点,以现在的机器性能,应该问题不大,10几年前,我经过用java Applet做这种曲线绘制,这种历史曲线,数据量不算少了,不应该卡死
八爻老骥 2020-10-11
  • 打赏
  • 举报
回复
没必要全画出来,一个屏幕才多少像素,10万个点犯不着啊,抽选几个关键点,能平滑展示就行了。
wanghui0380 2020-10-11
  • 打赏
  • 举报
回复
如果你知道是怎么回事了 自己做,其实也行。比如我们知道python有个pandas库 利用这个库进行一些数据操作也是常态,比如 https://blog.csdn.net/tutu96177/article/details/96473219 如果你不想用Accord.NET也行,毕竟Accord.NET的资料比较难找,那么找资料比较多的pandas库也行 https://www.nuget.org/packages?q=pandas (或者先google查询net下有没有和pandas类似的数据帧处理库)
wanghui0380 2020-10-11
  • 打赏
  • 举报
回复
这个得分着说 1.从纯计算上说,这个是“重采样”,可以使用得工具“Accord.NET”库的Accord.Audio下的Signal类和Sample进行下采样进行 《重采样、下采样、上采样三者之间的关系》 https://blog.csdn.net/qq_33590958/article/details/102600180 2.从工程设计上,目前是直接采用时序数据库进行设计,单纯计算重采样只是个数学问题,不过我们是程序员,虽然可以如此,但工程上能解决还是用工程解决,所以工程设计上我们采用采用时序数据库进行设计,至于上采样,下采样是时序数据库的基本功能,这个我们本身就不用太操心了,只需发送个指令,让数据库自己进行“时间段的下采样”工作就好
damonking 2020-10-11
  • 打赏
  • 举报
回复
请指引我一条思路呗,哪种方法比较好?太专业的我不了解

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧