如何在基于对话框的程序中对读取的数据进行实时曲线绘制?

ljqstone 2005-10-19 01:49:44
我想在基于对话框的一个程序中根据实验误差实时输出误差曲线f(t)(t为实验样本数),现在是没有一点头绪,希望高手们给点意见!谢谢!
...全文
421 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljqstone 2005-10-26
  • 打赏
  • 举报
回复
向 Mackz(在相互) 大哥致敬!!!
ljqstone 2005-10-20
  • 打赏
  • 举报
回复
为了搞这烦人的数据呈现部分,我已经熬了好几个通宵了。但是进展缓慢啊~~~
真是急死人了~~~
老板催得紧!!!
ljqstone 2005-10-20
  • 打赏
  • 举报
回复
真是万分感谢Mackz(在相互) 大哥了
我的邮箱是ljqstone@21cn.com
是的,tab是没必要的。我原先考虑的是在MFC中用基本的对话框比较简单易懂(这也是一些教科书上讲的),所以就用上了。用文档/视图结构完全没问题。
系统不要求登陆界面或者Splash窗口等花哨的东东,系统启动后直接连接、读取数据就可以了。因为那些数据我都做了归一化处理的(在提取数据的时候)。
强烈恳求Mackz(在相互) 大哥帮我这个忙,编一个例子发给我。万分谢谢!
我主要研究的是神经网络的算法实现,这部分我用win32 console做好。目前做的是算法的优化。但是算法验证需要相应的图形化界面(这个我不懂)。
菜牛 2005-10-20
  • 打赏
  • 举报
回复
说几点

你的程序界面,用Tab页没有必要,直接在对话框上做好了(其实用Doc/View结构也很好)。
如果你从数据库中取数据,不需要专门的界面吧,程序启动直接连接、读取就行了,如果需要登录、选择等操作,还是单独弹出新的对话框进行操作比较好。
绘制上,误差和原始数据完全可以绘制到一起,因为横坐标一样的。可以用两种方法:一是误差和数据单独绘制,纵坐标可以不一样;另一种是数据点上直接绘制误差,用纵向长度代表误差大小,类似K线图了。两种方式都可以用两个复选框选择是否显示两种结果,操作很方便。在鼠标移动到一个点附近,可以显示这个点的数据和误差。

这样的设计,并不复杂。需要的话,我完全可以编出来。
菜牛 2005-10-20
  • 打赏
  • 举报
回复
mackz@sina.com

搞科研的,要支持。我们大老粗有力出力了。
菜牛 2005-10-20
  • 打赏
  • 举报
回复
已经编了个小程序,发往你的邮箱。

该程序基本上实现了你的要求,供参考。

代码是用VC.net 2003简体中文版编制的,程序中“生成测试数据”按钮用于生成随机数据模拟你的数据,结果按照最大值归一化处理。你只要实现“装载数据”按钮的功能,从数据库中取数据(最好是最大值归一化的)填充m_lstData、m_lstMesured链表,并计算误差填充m_lstError链表就应该满足你的需要了。至于坐标、线条的颜色等,自己调整一下就行了。
jijuzheng 2005-10-19
  • 打赏
  • 举报
回复
实时曲线绘制论坛里讨论过很多次的,楼主用全文检索搜索一下就看到了

http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=1461
Featured 2005-10-19
  • 打赏
  • 举报
回复
这怎么会没有一点头绪?
你就隔一定距离取点t,求出其f(t),然后绘制(t,f(t))呗

这里有个绘制曲线的范例
http://www.codeproject.com/miscctrl/histogramctrl.asp
ljqstone 2005-10-19
  • 打赏
  • 举报
回复
有人帮忙吗?????
ljqstone 2005-10-19
  • 打赏
  • 举报
回复
Mackz(在相互)等各位高手,问题是这样
我做的是BP神经网络的一个算法实现,我把经过神经网络的数据输出同提供的目标输出值做比较
神经网络的学习算法我已经用C++实现了,但是要将相应的输出误差值用图形化的方式呈现出来。
而且输入神经网络学习的数据,我也像通过VC中DAO方式或odbc方式直接从数据库中获取。我对C++还知道用,但是由于没有接触MFC,因此这方面实在是很菜啊。但最近催得紧,只好拼命学了……

该误差是均方差,而且是计算的。比如,我有1000个实验数据,简单的一个表结构如下所示:
字段1:f_outputvalue(实际输出值) float类型
字段2:f_targetvalue(目标输出值) float类型
我的想法是这样,建立一个基于对话框的程序,在对话框中放置一个TAB控件,分三个tab页。第一个tab页建立连接、获取数据库中的数据。第二个tab页中主要功能是将输出误差图形化(采用散点图的方式即可),由于有1000个实验样本点,对应的就有1000个误差数据,因此在第二页中就要将这1000个误差以散点图的方式画出(背景为白色,点用黑色,还要有坐标轴,其中x轴为实验点,y轴为点对应误差)。第三个TAB页中则是将输入神经网络的测试数据对应的实际输出值和目标输出值分别用不同的颜色点来表示出来。
恳请各位大哥帮小弟我看看,谢谢!特别谢谢Mackz(在相互)大哥!!!
zhang20084 2005-10-19
  • 打赏
  • 举报
回复
是不是还要和硬件联系呀
菜牛 2005-10-19
  • 打赏
  • 举报
回复
实验误差是均方差吗?是输入的还是计算的?还有啊,只显示误差有什么用呢?一般是数据和误差同时显示的啊。


其实你这个很简单,只要把要求说清楚,或者,在14点前把数据发给我做一下。
ljqstone 2005-10-19
  • 打赏
  • 举报
回复
不好意思我是一个新手
老板要求的紧,催得急,没办法啊!求各位帮忙帮忙!
那个程序,我看过了
不过他是定时采集的,用一个timer实现
我的要求是每输出一个数据误差,就要将该误差数值显示在二维坐标上,不是时间驱动的
对了,我这个程序它要求有一个坐标系(x,y),其中x表示实验次数,y表示每次实验对应的误差输出值。不用要求以曲线方式显示,用散点图就可以了。不知哪位高手能给小弟我一个提示?

19,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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