form1中串口接收两路数据,在form2中根据数据画出曲线图, 串口接收数据已经完成,画图没有什么思路,请各位大侠指一条明路,谢谢
你是打算边接收,边生成动态图,还是等接收完成后再生成图呢,是否需要异步接收呢?
先生成画板Bitmap bitmap=new Bitmap();
然后定义画布Graph g=new Graph();
然后是工具,画刷brush,画笔pen
定义完以后用在画布的对象g.XX自己找方法,rectangle是矩形,line是直线
大概思路是先画坐标轴(画直线),然后柱形图其实就是一个一个的矩形,g.drawstring()可以往指定位置写字,
折线图更简单,直接有方法,方法的参数是几个点,执行结果是连接了点的折线
最后,如果保存就用g.save();
直接显示就用个pannel,用g.image(bitmap转成image,显示再pannel的背景里pannel.backgroundimage=g.image(bitmap);
先生成画板Bitmap bitmap=new Bitmap();
然后定义画布Graph g=new Graph();
然后是工具,画刷brush,画笔pen
定义完以后用在画布的对象g.XX自己找方法,rectangle是矩形,line是直线
大概思路是先画坐标轴(画直线),然后柱形图其实就是一个一个的矩形,g.drawstring()可以往指定位置写字,
折线图更简单,直接有方法,方法的参数是几个点,执行结果是连接了点的折线
最后,如果保存就用g.save();
直接显示就用个pannel,用g.image(bitmap转成image,显示再pannel的背景里pannel.backgroundimage=g.image(bitmap);
不用Graphic,太麻烦,直接你得到的数据是数组的话,绑定到chart控件就可以画图了。
参考:http://blog.csdn.net/dream2050csdn/article/details/53510340
另,两个窗体传数据:http://bbs.csdn.net/topics/360140208/
这个很简单啊,winform的话肯定是要用Graphics画的,你可以Ooverride你form2的OnPaint事件,然后根据串口返回的每个字节的数据描点,
描点之后依次用直线连接相邻的两个点就可以了
如果你得到的数据是数组的话,用Chart控件就可以,可以用委托,把form1中接收的数据传给form2,然后在form2中对数组进行解析,把值和曲线进行绑定
chart控件最简单,定义2个公共数组,串口数据实时写入,chart控件绑定这2个数组,实时刷新。