TeeChart说明docx.docx
- 文档编号:29691500
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:17
- 大小:1.07MB
TeeChart说明docx.docx
《TeeChart说明docx.docx》由会员分享,可在线阅读,更多相关《TeeChart说明docx.docx(17页珍藏版)》请在冰豆网上搜索。
TeeChart说明docx
1.安装teechart控件
安装好控件后就可以在工程里加入teechart控件了
2添加Teechart控件
2.1插入Teechart控件(我们使用的是V8)
新建一个对话框工程,在对话框上点击鼠标右键,弹出的菜单里选择“插入ActiveX控件”
然后弹出的对话框里选择TeeChart控件
这时对话框就有TeeChart控件了
2.2vs2008另外一种插入控件的方法
vs2008对话框设置的工具栏上就有许多控件了,若想把我们常用的控件也加到工具栏上以后使用就很方便了,下面说的这种方法就是把控件加入工具栏里。
方便以后的调用
在工具栏的空白处点击右键,选择添加选项卡
这时vs就会新建一个选项卡,自己可以定义一个名称,这里命名为绘图控件
为选项卡添加项:
在新建的选项卡的空白处点击右键,选择“选择项”
由于控件比较多,会耗费一定的时间打开这个选择项,别以为死机了,耐心等个几十秒吧
在打开的对话框中选择选择com标签,选择teechart控件
这样teechart控件就会在你的工具栏新加的选项里了,以后都会存在(我添加TeeChat的同时还把其他的一些控件添加进去了)
2.3控件属性设置
双击控件进行相关设置
这里添加一个快速线图-FastLine
3.为控件添加类
3.1添加TypeLib的mfc类
(1)在‘解决方案资源管理器’中右击项目名添加类
(2)添加TypeLib的mfc类
(3)在可用的类型库里选择teechart8
(4)在接口里就有TeeChart对应的所有类了,这里TChart是必须的接口,其他的可以根据需要添加
(5)点击完成就把CTChart这个类添加进工程里了
4.把TeeChart控件和对象关联
4.1为控件关联对象
在控件上点击右键,选择添加变量,即可为控件关联对象
4.2去掉vs默认的初始化
不知为何vs会默认给添加的变量初始化0,这个初始化一定要去掉否则无法使用
至此,该控件已添加完成可以使用,使用时还需根据需要添加teechart中必要的类,引用必要的头文件。
teechart画图-折线图
TeeChart画图步骤一般是先获得图线序列CSeries,再给Series添加点;添加点可以用函数AddXY,或者AddArray。
AddArray要比AddXY的效率高出很多。
添加头文件:
1.清除图形
在画线之前把图形清除一下,否则会覆盖,清除可用CSeries的函数Clear();
但是当添加多个Series后要对所有Series都clear,这样可以先获得Series的总数在clear
代码如下
for(longi=0;i { ((CSeries)m_TeeChart.Series(i)).Clear(); } 通过CTchart的get_SeriesCount函数获得所有图像序列,再全部清除,这个函数经常用到,可用定义为类成员函数,这里是个对话框CTChartDlg voidCTChartDlg: : ClearAllSeries(void) { for(longi=0;i { ((CSeries)m_TeeChart.Series(i)).Clear(); } } 2.普通连线图 就是把点连接起来,选择fastline的Normal,就是普通连线图 在需要画图的地方先要获得曲线序列Series,然后通过画图函数AddXY,或者AddArray作图。 2.1普通线图-AddXY 下面演示AddXY的方法 AddXY就是一个一个加入点,在点数不多,且需要动态显示的时候是不错的选择。 点数多的情况下嘛,那就还是用AddArray了 AddXY: constUINTnDATALENGTH=100; doubledData[nDATALENGTH]; for(inti=0;i { dData[i]=100*sin((float)i)*cos((float)4*i); } //ClearAllSeries(); CSerieslineSeries=(CSeries)m_TeeChart.Series(0); lineSeries.Clear();//在最前面加上ClearAllSeries(ClearAllSeries是自己写的函数)就不用了 for(inti=0;i { lineSeries.AddXY((double)i,dData[i],NULL,0); } 由于在TeeChart里,只加了一个FastLine,所以Series(0)就算FastLine,代码首先获得图像序列m_TeeChart.Series(0); 然后再调用这个序列来作图,作图前先清空图像,用ClearAllSeries()也可以 做出来的效果: 2.1.1替换X坐标的显示 AddXY的第一个参数是x点坐标,第二个是y点坐标,第三个参数是为了使x坐标特殊显示,这是会替换掉x坐标的显示内容,如我想显示“点xx“可以这样 CStringstr; for(inti=0;i { str.Format(_T("点%d"),i); lineSeries.AddXY((double)i,dData[i],str,0); } 2.2普通线图-AddArray 在数据量特别大时,建议使用AddArray函数 AddArray的函数声明如下 voidAddArray(longArraySize,VARIANT&YArray,VARIANT&XArray); x,y是两个VARIANT的数据类型,VARIANT有个类型是VT_ARRAY 可以给VARIANT赋一个数组进去 具体操作如下: 方法1: constUINTnDATALENGTH=100; doubledData[nDATALENGTH]; for(inti=0;i { dData[i]=100*sin((float)i)*cos((float)4*i); } //声明如下数据: VARIANTvAX,vAY; SAFEARRAY*psax; SAFEARRAY*psay; SAFEARRAYBOUNDrgsabound; //初始化 rgsabound.cElements=nDATALENGTH; rgsabound.lLbound=0; psax=SafeArrayCreate(VT_R8,1,&rgsabound);//分配空间 psay=SafeArrayCreate(VT_R8,1,&rgsabound); vAX.vt=VT_ARRAY|VT_R8;//设置为double型数组,VT_R8就是指double vAX.parray=psax;//把内容加入VARIANT中 vAY.vt=VT_ARRAY|VT_R8; vAY.parray=psay; //这时VARIANT就可以加入数据了 doubledtemp;//用来临时存放x坐标 for(longi=0;i { dtemp=i; SafeArrayPutElement(psax,&i,&dtemp); dtemp=dData[i]; SafeArrayPutElement(psay,&i,&dtemp); //更简单写法 //SafeArrayPutElement(psay,&i,dData+i); } //开始画图 CSerieslineSeries=(CSeries)m_TeeChart.Series(0); lineSeries.Clear(); lineSeries.AddArray(nDATALENGTH,vAY,vAX); 方法2: 这是TeeChart官方实例找到的方法,相对简单点 COleSafeArrayXValues; COleSafeArrayYValues; DWORDnumElements[]={nDATALENGTH}; //创建安全数组 XValues.Create(VT_R8,1,numElements); YValues.Create(VT_R8,1,numElements); //初始化 longi; doubledval; for(i=0;i { dval=i; XValues.PutElement(&i,&dval); dval=dData[i]; YValues.PutElement(&i,&dval); //YValues.PutElement(&i,dData+i); }; CSerieslineSeries=(CSeries)m_TeeChart.Series(0); lineSeries.Clear(); lineSeries.AddArray(nDATALENGTH,YValues,XValues); 3去除/显示legend 如果不想要右边那一栏数据显示,可以通过代码去除 CLegend是用来控制这个显示的 CLegendlegend=(CLegend)m_TeeChart.get_Legend(); legend.put_Visible(FALSE); 可以用一个check控件控制器显示状态 添加单选控件 ,id为IDC_CHECK_ShowLegend, 单击响应 voidCTChartDlg: : OnBnClickedCheck_ShowLegend() { CLegendlegend=(CLegend)m_TeeChart.get_Legend(); if(BST_CHECKED==((CButton*)GetDlgItem(IDC_CHECK_ShowLegend))->GetCheck()) { legend.put_Visible(TRUE); } else { legend.put_Visible(FALSE); } } 效果: 不用代码的话可以通过设置控件属性 明显,这没有代码灵活 4改变线图颜色 默认设置是红,我要设置成其他颜色可以用put_Colour 如上代码的lineSeries最后加一个,就会变成RGB(255,0,255)的颜色了 lineSeries.put_Color(RGB(255,0,255)); 效果: 条带图 1.原理 向TeeChart添加点,根据二维数组数值,给每个点赋予不同的颜色,根据数组的行和列设置TeeChart的高和宽。 2.添加必要头文件 3.对添加的series(Fastline—normal)进行一系列设置 (1)去除线的可见性: Visible去掉 (2)设置点: Visible打钩;Style设置为Cross(长宽根据图幅横宽需要可在代码中调整,但目前还不会在代码中调整,此次试验根据10000*80设置长: 宽为20: 1) 4.添加代码 5.成果图 三维图 1.三维点图 1.1首先添加series 选择3D—Point3D—NoLine 2.2添加必要文件头
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TeeChart 说明 docx