c#中的实时绘图
发布时间:2020-12-15 21:15:24 所属栏目:百科 来源:网络整理
导读:我试图在使用c#和 windows mobile 5通过蓝牙串口实时收集的PDA上绘制数据.我无法以一种看似平滑的方式绘制数据.我已经尝试从一系列点中绘制一条线,但它只能显示离散的数据块.我在这个论坛上找到了一个类似的解决方案,参考了心电图数据,这也有效,但它再次显示
我试图在使用c#和
windows mobile 5通过蓝牙串口实时收集的PDA上绘制数据.我无法以一种看似平滑的方式绘制数据.我已经尝试从一系列点中绘制一条线,但它只能显示离散的数据块.我在这个论坛上找到了一个类似的解决方案,参考了心电图数据,这也有效,但它再次显示了一些数据,然后非常明显地刷新.我已经尝试将点绘制到位图上然后绘制位图以使其更平滑但是再次它不够快.
我想最终得到的东西就像Windows任务管理器中的CPU使用历史图一样.数据点从绘图的右侧开始,并平滑地向左移动.有这样一个问题的标准方法吗?如果这个问题有点模糊,我很抱歉,但如果这是一个众所周知的一般解决方案的问题,我不想花费多少时间尝试不同的事情. 解决方法
这取决于你希望它如何在视觉上工作.任务管理器中的CPU使用率从右向左滚动整个图表,并且它完全没有平滑.大约每秒刷新一次(对我而言)它是令人耳目一新的,然后整个图表“颠簸”到一边.
我在1.0天作为测试在CF中做了一些事情,我选择让图表保持静止并且数据线从左到右连续绘制,当它到达右边缘时,它会再次开始绘制左边,删除最老的图表数据(如心电图一样). 对于那种情况,你的位图基本保持不变,所以你不应该重绘整个事物.我通过使用一个基本上是“垂直带”或矩形图表高度的剪裁树干来做到这一点,但只有10px宽.我用更新的轴值重新绘制了该带,因此实际重绘的唯一位是小带.一旦我回到图表的开头,它还具有可见的“擦除”最旧数据的额外好处. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |