关于winform程序接受大量数据,并将数据进行二维平面直角坐标系曲线显示的问题

rijiwook 2014-12-11 01:40:20
公司自己制作的行业软件当中有一个任务评估的功能需求,自己毫无思路(并且从未接触过GDI编程),不知如何下手,还请论坛中的各位大大,帮帮我

现在,我们自己的这款软件需要接收其他程序传进来的数据,大概有8类,需要显示,每一类的数据,大概的数据量在10000+,外部传进来

的数据,大概是0.1s向我们的软件发送一次数据,datagridview控件,会每0.1s就更新一次数据

然后,现在的问题是:

自己定义一些数组来保存这些数据,并且这些数据写入到txt文件之后,当程序运行结束之后,需要画一个 X,Y轴的一个曲线,来对这次任务进行一个评估, X轴是时间轴(单位:0.1s) Y轴是接收的数据(单位 暂无)

那么,我需要画这10000+个点的数据,我需要怎么处理,因为屏幕的分辨率本身就很有限,我如何才能将这些数据点做成曲线,需要用什么控件

谢谢各位在百忙之中,抽空回答我的问题
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2014-12-12
  • 打赏
  • 举报
回复
引用 5 楼 rijiwook 的回复:
[quote=引用 3 楼 xian_wwq 的回复:] 曲线显示可以直接调用开源zedgraph zedgraph使用也有限制,单页面加载超过2000点后效率下降很明显。 lz要显示的数据这么多,就需要再做点处理: 一种是通过将数据分时间段,获取每段最大值、最小值等特征值,显示总体数据的趋势。 在框选放大时,再加载真实的点。 另一种是按照版主的建议,分页显示数据
你好,对于分页显示数据,我从来没有做过这方面的东西,包括这次的曲线显示,我都是第一次做,都不知道如何下手,昨天我刚刚下了zedgraph,控件直接运行的话,是有坐标系的,这个我很满意,也就是说自己只需要处理数据就好了 那么我有一个问题,所谓的分页是什么意思?第一页显示0-2000个点,第二页显示2001-4000个点,这样? 那么,如果想要做成这样,这要怎么做呢?有博客可以学习下么?我还从来没有做过这种翻页的效果...[/quote] 其实分页不复杂,就是按照一定规则,把数据分批显示。 对于用户来说,他会看到有N多页数据,对于程序员来说,就是N多组数据,根据UI选择显示而已。
rijiwook 2014-12-12
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
分辨率不够,有些点会重合在一起,你只要算法没问题就可以,计算好坐标就行了,当然为了效率,你可以只画一部分到界面,然后支持向后翻页,这样画出来的就会清晰很多
昨天,问了一下,我们这个软件是每0.1s传回来一个数据 有时候会连续仿真一天到2天... 那么,这数据量就是 36000*24-----36000*48 这样的话,这数据量就实在是太大了...这分页显示,是不是也不合适? 而且,如果说要做分页显示的话,需要了解些什么东西呢?之前从来没有做过这个东西,有推荐的博客,可以学习下么?
rijiwook 2014-12-12
  • 打赏
  • 举报
回复
引用 3 楼 xian_wwq 的回复:
曲线显示可以直接调用开源zedgraph zedgraph使用也有限制,单页面加载超过2000点后效率下降很明显。 lz要显示的数据这么多,就需要再做点处理: 一种是通过将数据分时间段,获取每段最大值、最小值等特征值,显示总体数据的趋势。 在框选放大时,再加载真实的点。 另一种是按照版主的建议,分页显示数据
你好,对于分页显示数据,我从来没有做过这方面的东西,包括这次的曲线显示,我都是第一次做,都不知道如何下手,昨天我刚刚下了zedgraph,控件直接运行的话,是有坐标系的,这个我很满意,也就是说自己只需要处理数据就好了 那么我有一个问题,所谓的分页是什么意思?第一页显示0-2000个点,第二页显示2001-4000个点,这样? 那么,如果想要做成这样,这要怎么做呢?有博客可以学习下么?我还从来没有做过这种翻页的效果...
rijiwook 2014-12-12
  • 打赏
  • 举报
回复
引用 2 楼 hefeng_aspnet 的回复:
http://blog.csdn.net/zhoufoxcn/article/details/2682027
谢谢,我需要的不是实时显示数据,而是仿真结束之后,将仿真时间和传回来的数据,进行统一的显示和分析
xian_wwq 2014-12-11
  • 打赏
  • 举报
回复
曲线显示可以直接调用开源zedgraph zedgraph使用也有限制,单页面加载超过2000点后效率下降很明显。 lz要显示的数据这么多,就需要再做点处理: 一种是通过将数据分时间段,获取每段最大值、最小值等特征值,显示总体数据的趋势。 在框选放大时,再加载真实的点。 另一种是按照版主的建议,分页显示数据
bdmh 2014-12-11
  • 打赏
  • 举报
回复
分辨率不够,有些点会重合在一起,你只要算法没问题就可以,计算好坐标就行了,当然为了效率,你可以只画一部分到界面,然后支持向后翻页,这样画出来的就会清晰很多

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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