VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

根据网络资源整合了一份, 并开发了自己的demo

http://download.****.net/detail/zdw86/9833470

 

一、添加控件

(一)创建工程

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

 

(二)插入控件

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

 

 

 

(三)添加类

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

 

 

点完确认之后,要等很长一段时间.期间不要触碰VC++6.0否则程序可能崩溃.

 

之后弹出下面窗口 ,输入变量名.

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

 

二、代码部分

 

 

 

在相应的源文件中添加TeeChart的头文件 (有需要的自己再添加)

#include "tchart.h"

#include "series.h"

#include "valuelist.h"

#include "axes.h"

#include "axis.h"

#include "pen.h"

#include "axislabels.h"

#include "teefont.h"

#include "axistitle.h"

#include "aspect.h"

#include "fastlineseries.h"

#include "titles.h"

#include "fastlineseries.h"

#include "panel.h"

#include "legend.h"

#include "annotationtool.h"

#include "page.h"

#include "strings.h"

#include "gradient.h"

#include "IsoSurfaceSeries.h"

 

 

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

三、初始化部分

 

 

 

  //清空chart -----------------------------------

m_chart.ClearChart();

m_chart.RemoveAllSeries();

//CHART框架

m_chart.GetFrame().SetVisible(TRUE);

m_chart.GetFrame().SetColor(RGB(255,255,255));

/*根据自定义背景色来设置,我这里设定背景色为白色,所以也设定为边框为白色,这样就看不到的,如果不加入,该颜色就默认为黑色的

//重要,否则出现边框为默认黑色的.如果要改变背景颜色,那么对应的此处颜色要进行更改的

*/

m_chart.GetPanel().SetColor(RGB(255,255,255));

m_chart.GetLegend().SetVisible(FALSE);

 

 

//设置x轴的取值范围  

m_chart.GetAxis().GetBottom().SetMinMax(0,100);  

//设置x轴上值的格式  

m_chart.GetAxis().GetBottom().GetLabels().SetValueFormat("0.0");  

 

//设置取消3D显示

m_chart.GetAspect().SetView3D(FALSE);

// 添加3条曲线 ---------------------------------

int nLine1 = m_chart.AddSeries(0);

int nLine2 = m_chart.AddSeries(0);

int nLine3 = m_chart.AddSeries(0);

 

// 设置3条曲线的坐标轴 -------------------------

m_chart.Series(nLine1).SetVerticalAxis(0);

m_chart.Series(nLine2).SetVerticalAxis(0);

m_chart.Series(nLine3).SetVerticalAxis(0);

m_chart.Series(nLine1).SetHorizontalAxis(1);

m_chart.Series(nLine2).SetHorizontalAxis(1);

m_chart.Series(nLine3).SetHorizontalAxis(1);

//m_chart.Series(nLine1).GetXValues().SetDateTime(true);

//m_chart.Series(nLine2).GetXValues().SetDateTime(true);

//m_chart.Series(nLine3).GetXValues().SetDateTime(true);

 

 

 

 

// 设置3条曲线的颜色 ---------------------------

m_chart.Series(nLine1).SetColor(RGB(255,0,0));

m_chart.Series(nLine2).SetColor(RGB(0,255,0));

m_chart.Series(nLine3).SetColor(RGB(0,0,255));

 

 

 

 

 

 

 

 

四、绘制部分

(一)添加定时器

 

 

 

 

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

 

 

(一)在定时器绘制曲线

 

COleDateTime CurTime = COleDateTime::GetCurrentTime();  

COleDateTimeSpan tmSpan = COleDateTimeSpan(0,0,1,0); //1s  

CString csTime ;  

csTime= CurTime.Format("%H:%M:%S"); //获取当前时间  

//在CMyView中画曲线

static int nIndex = 0;

nIndex++;

double yVal1 = sin(nIndex+2);

double yVal2 = sin(nIndex+3);

double yVal3 = sin(nIndex);

m_chart.Series(0).Add(yVal1, csTime,RGB(255,0,0)); //第一个参数是y轴值,第二个参数是对应的x轴的标签值(此为当前时间字符串),第三个参数是所绘点的颜色。  

m_chart.Series(1).Add(yVal2, csTime,RGB(0,255,0));

m_chart.Series(2).Add(yVal3, csTime,RGB(0,0,255));

CurTime+= tmSpan;  

if(m_chart.Series(0).GetCount() > 100)  

{  

m_chart.GetAxis().GetBottom().Scroll(1.0,true); //x坐标轴一次移动1格  

}  

 

 

 

(二)启动定时器

 

SetTimer(1,1000,NULL);

 

 

(三)关闭定时器

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

 

 

 

五 平滑处理

使用算法实现,更改各点的来实现平滑,

boxFIR类

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.

 

 

六 程序运行效果

 

 

VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.VC++6.0 使用TeeChart v8.0 绘制多条曲线及圆滑处理.