MFC中利用TeeChart控件完成三维图形绘制
2014-01-18 22:40
253 查看
MFC中利用TeeChart控件完成三维图形绘制
(如需交流,请关注公众号:神马观止)
前一段时间由于帮一个朋友处理一些数据,需要编写一个最简单的界面,实现数据显示。中间遇到一些问题,我在接下来得内容中分别介绍,同时也把我解决这些问题的过程简短地进行叙述。
原始数据存储在TXT文档中,需要读入程序然后进行处理后保存到自己命名的TXT文档中(方便以后用Matlab进行仿真分析),同时在界面中通过TeeChart将各参数变化趋势显示出来。当然,我这里重点不是介绍数据处理算法,而且由于保密原因,不便于涉及具体数据内容,只介绍TeeChart控件的使用。顺便介绍TXT文档读取以及写入保存的相关内容。
1.TXT文档读取
找到hefei_data.txt 文件并选中打开。
2.处理后数据保存
3.TeeChart三维曲线显示
下面才真正进入今天的主题——利用TeeChart完成曲线显示。首先需要在网上下载TeeChart控件TeeChart8.ocx(注意,我这里用的是vision8),将其复制到C:\WINDOWS\system32文件夹下,然后在“开始”中选择“运行”,输入“regsvr32 TeeChart8.ocx”确定,即完成了TeeChart控件的注册。
接下来在VC中“Project”→“Add to Project”→“Components and Controls”,选择Registered ActiveX Controls,找到TeeChart Pro Activex control v8,点击“Insert”,Close即可,这样在控件工具栏中就会出现
![](https://img-blog.csdn.net/20140118224426000?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVqaW5ncWlhbnNoZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
,拖入对话框即可。这样就完成了TeeChart的插入工作。
下一步需要对TeeChart进行编辑。我当时就是因为没有添加Series导致程序始终出现问题(当然,如果,没有没有添加,可以用另外一种方法在程序中添加,不过麻烦一点)。点击“Edit Chart”进入编辑对话框。其中最为重要的是点击Add按钮,进入如下图所示界面:
![](https://img-blog.csdn.net/20140118224449453?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVqaW5ncWlhbnNoZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如果没有出现这样的界面,可能是因为没有选中“3D”的原因。在这里面需要选择Point 3D,然后OK即可。如果希望改变点型或是颜色等属性,可以自己试一试进行修改,这并不难。编辑完成后的TeeChart控件如下图所示:
![](https://img-blog.csdn.net/20140118224516609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVqaW5ncWlhbnNoZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
最后进入代码编写部分。先要将TeeChart控件关联到Dialog类的对象的成员变量,然后在OnInitDialog()函数中添加一行代码:
需要在while循环最后添加添加如下代码:
这样就完成了最后界面的设计,并能够显示出三维曲线图形!效果如下图:由于数据是某初始数据,因为基本处于静止,而三维曲线图也反映出这种情况。如果需要无点图,可以编辑控件使其不显示点。
(如需交流,请关注公众号:神马观止)
前一段时间由于帮一个朋友处理一些数据,需要编写一个最简单的界面,实现数据显示。中间遇到一些问题,我在接下来得内容中分别介绍,同时也把我解决这些问题的过程简短地进行叙述。
原始数据存储在TXT文档中,需要读入程序然后进行处理后保存到自己命名的TXT文档中(方便以后用Matlab进行仿真分析),同时在界面中通过TeeChart将各参数变化趋势显示出来。当然,我这里重点不是介绍数据处理算法,而且由于保密原因,不便于涉及具体数据内容,只介绍TeeChart控件的使用。顺便介绍TXT文档读取以及写入保存的相关内容。
1.TXT文档读取
void CHefeiData_MJDlg::OnReadfile() { //选择所要读取的txt文件 CString filename; CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,(LPCTSTR)_TEXT("TXT Files(*.txt)|*.txt|All Files (*.*)|*.*||"),NULL); if (IDOK==hFileDlg.DoModal()) { filename=hFileDlg.GetFileName(); //判断读取的文件是否为原文件 if ("hefei_data.txt"!=filename) { MessageBox("选择文件错误!"); } else { fp_read=fopen(filename,"r"); if (NULL==fp_read) { MessageBox("文件读取错误!");//异常处理 } } } }
找到hefei_data.txt 文件并选中打开。
2.处理后数据保存
void CHefeiData_MJDlg::OnTransfer() { //将转换后的数据保存在txt文件 CString filename; CFileDialog hFileDlg(FALSE,_T("txt"),NULL,OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST |OFN_READONLY,(LPCTSTR)_TEXT("转换后数据保存文件(*.txt)"),NULL);//False:保存文件对话框 if(hFileDlg.DoModal()) { filename=hFileDlg.GetFileName(); } fp_write=fopen(filename,"w"); if (NULL==fp_write) { MessageBox("所要写入的文件创建失败!");//异常处理 } fprintf(fp_write, "%-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s %-8s\n", "P1","P2","P3","P4","P5","P6","P7","P8","P9","P10","P11","P12","P13","P14","P15"); while (1) { if (feof(fp_read)) { MessageBox("数据转换结束!"); break; } /*********************************************************************** ***** Data Processing ***** **********************************************************************/ fprintf(fp_write,"%-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f %-8.4f \n",……); } fclose(fp_write); }
3.TeeChart三维曲线显示
下面才真正进入今天的主题——利用TeeChart完成曲线显示。首先需要在网上下载TeeChart控件TeeChart8.ocx(注意,我这里用的是vision8),将其复制到C:\WINDOWS\system32文件夹下,然后在“开始”中选择“运行”,输入“regsvr32 TeeChart8.ocx”确定,即完成了TeeChart控件的注册。
接下来在VC中“Project”→“Add to Project”→“Components and Controls”,选择Registered ActiveX Controls,找到TeeChart Pro Activex control v8,点击“Insert”,Close即可,这样在控件工具栏中就会出现
,拖入对话框即可。这样就完成了TeeChart的插入工作。
下一步需要对TeeChart进行编辑。我当时就是因为没有添加Series导致程序始终出现问题(当然,如果,没有没有添加,可以用另外一种方法在程序中添加,不过麻烦一点)。点击“Edit Chart”进入编辑对话框。其中最为重要的是点击Add按钮,进入如下图所示界面:
如果没有出现这样的界面,可能是因为没有选中“3D”的原因。在这里面需要选择Point 3D,然后OK即可。如果希望改变点型或是颜色等属性,可以自己试一试进行修改,这并不难。编辑完成后的TeeChart控件如下图所示:
最后进入代码编写部分。先要将TeeChart控件关联到Dialog类的对象的成员变量,然后在OnInitDialog()函数中添加一行代码:
//显示3D效果 m_ctrChart1.GetAspect().SetView3D(TRUE);
需要在while循环最后添加添加如下代码:
//value[0]、value[1]、value[2]分别是三维方向上的X、Y、Z值 m_ctrChart1.Series(0).GetAsPoint3D().AddXYZ(value[0],value[1],value[2], NULL, RGB(255,0,0)); 然后在fclose(fp_write)后面添加如下代码: m_ctrChart1.GetLegend().SetVisible(FALSE); //隐藏图例 m_ctrChart1.GetAxis().GetDepth().SetVisible(TRUE); //显示Z轴 m_ctrChart1.GetAxis().GetDepth().GetLabels().SetVisible(TRUE); //显示Z轴上的坐标 m_ctrChart1.GetAxis().GetDepth().GetLabels().SetStyle(0); //设置显示坐标的风格
这样就完成了最后界面的设计,并能够显示出三维曲线图形!效果如下图:由于数据是某初始数据,因为基本处于静止,而三维曲线图也反映出这种情况。如果需要无点图,可以编辑控件使其不显示点。
相关文章推荐
- VS2010中MFC利用TeeChart控件实现画图
- 利用MFC进行IP地址控件的绘制
- MFC中使用teechart控件绘制二维及三维图的方法
- 基于MFC串口编程和曲线图绘制(visual studio2008,Teechart绘图控件)的程序总结
- VS2010 MFC使用TeeChart绘图控件之二:绘制图形(折线图,柱状图)
- 【MFC控件自绘】VC控件自绘制
- VS2013 MFC中TeeChart控件画波形使用总结
- 利用MFC中的picture control 控件显示图像
- 利用CImage完成图片的显示、拷贝、绘制及转换图片格式
- TeeChart在MFC中实时曲线绘制的应用
- VS2010 MFC使用TeeChart绘图控件之三:提高绘图的效率
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- MFC控件篇之利用AppWizard创建并使用ToolBar StatusBar Dialog Bar
- MFC中将控件保存成图片 && MFC中利用GDI+在控件上绘图,把图像保存成图片
- MFC+OpenCV 利用Show方法使图像不拉伸显示在Picture控件上
- Android控件绘制完成原来是这样的
- OpenCV学习笔记(9)利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面
- VS2010 使用TeeChart绘图控件 - 之二 - 绘制图形(折线图,柱状图)
- 利用CImage完成图片的显示、拷贝、绘制及转换图片格式