如题:通过232串口与仪器连接(115200 bps),仪器工作的时候每秒发送300帧数据过来(每帧16个字节,需转换为浮点数),由程序绘制实时曲线以反映数据变化情况。若在内存中跑,所有运算顶多一毫秒就可完成,但画线刷新很浪费时间,导致数据严重丢失,每秒只能接收并处理<100帧数据。    不知在C#中何种方法绘制曲线图最快,望高手赐教。不甚感激!

解决方案 »

  1.   

    人眼睛没有那么快的,你只要保持每秒20多就最好了——实际上1秒刷新就差不多的,没必要时时的~~==================================================================
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
    联系方式:Q64180940(请清楚注明业务还是技术咨询)  全天在线
    ==================================================================
      

  2.   

    用zedgraph吧,很好用.按照你的说法串口上的数据流量应该是4.8k/s,这个速度不算很快,现在的机器处理这样的数据速度应该不会有任何问题的.建议你仔细看一下设备的编程手册,这种在串口上连续发送数据的方式还真是不多见,一般都会有响应位的.
      

  3.   

    楼上诸兄:
        所谓“设备”乃是我们公司自行开发的仪器,单片机的采样频率高达上千赫。仅需发送部分数据过来上位机即可模拟出大致趋势变化情况。
        redebug、lovingkiss等老兄说得没错,每秒刷新300次肯定是没必要的。一两次足够,但为了能尽可能多地接收数据,俺希望能找出一个最快的画曲线的方法。用第三方空间肯定很慢,因为他为了满足曲线分析查看,会将每个点放在内存中。这完全没必要,协同仪器工作时我完全可以随便画出曲线了事。等工作完成后再保存数据并使用专门的图标控件供用户查看。    还是谢谢各位,请惠赐高速画曲线的方法,小弟所学有限,可能某些众所周知的办法都不了解。
      

  4.   

    最好用个DLL,别指望C#的GDI+了。不过 300条数据,人是看不过来的,靠,你们搞设计的是谁啊,是不是脑子不好,300条数据!
      

  5.   

    可以试试DrawLines方法一次性绘制多点曲线,这样绘制的曲线的速度会快很多
      

  6.   

    BTW:不管用何种方式实现,俺不避讳“Unsafe Code”,也不会嫌VC dll麻烦,虽然没怎么用过它。
    请说明白点,最好不吝写两句代码。OK?
      

  7.   

    delphi下我用过iPlot的控件,速度很快。能够满足你的需要应该有.net版本的。你可以到网站上看看。我也是做工业上显示才用到iplot的。
      

  8.   

    我觉得线程再多CPU和显卡还是只有一个,不过还是打算写个程序比较一下,hbcbsxw兄可试过?控件的速度很快吗?可能用GDI+写个函数直接画在PictureBox里面还快点。
    我想知道用何种(编程)方式画曲线最快。如果知道某个控件快的话,还不如告诉我该控件画图的方式和程序代码。
      

  9.   

    顺便求教:
        在VB中可以用“GetTickCount”这个API函数来实现毫秒级的计时,在C#中可否使用管理代码直接来实现?
      

  10.   

    你的需求我还是觉得有点奇怪,不知是不是想看到300个点绘制的过程呢?难道一秒钟绘制一次,一次绘制300个点不行吗?Zedgraph完全可以,不知道兄弟试过没有?
      

  11.   

    按楼主的需求,用GDI+的确很难满足,可以考虑用DirectX.
      

  12.   

    曲线是用来跟踪仪器工作状态的,必须能反应整个过程的趋势变化,根据视觉反应速度,每秒刷新一次图像是可以反应动态效果的,但下位机采样速度太快(此速度乃是仪器要求),所以必须使用最快的画图方式以提高系统的整体性能。    这个问题本身只是一个“什么方式画图最快”的问题,无须过多解释。
        俺还是先试试管理代码(GDI+)的速度能否达到要求。
      

  13.   

    http://bbs.msproject.cn/default.aspx?g=posts&t=242