📄 wavedraw.cpp
字号:
// WaveDraw.cpp: implementation of the CWaveDraw class.
// 图型类,主要完成图形的初始化、处理、显示
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Wave_Fft.h"
#include "WaveDraw.h"
#include "VcPlot.h"
#include "vcdatagrid.h"
#include "VcColor.h"
#include "VcSeries.h"
#include "VcPen.h"
#include "VcValueScale.h"
#include "VcSeriesCollection.h"
#include "VcCategoryScale.h"
#include "VcAxis.h"
#include "VcAxisTitle.h"
#include "VcBrush.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CWaveDraw::CWaveDraw()
{
}
CWaveDraw::~CWaveDraw()
{
}
/************************************************************************/
/* 功能:图形初始化 ,chart1 为数据图,chart2为FFT频谱图 */
/************************************************************************/
void CWaveDraw::InitDraw(CMSChart &Chart1,CMSChart &Chart2,int RowNum)
{
VARIANT var;
/*数据图初始化*/
Chart1.SetRowCount(RowNum); //X轴数据大小
Chart1.SetColumnCount(1); //曲线总数
// Chart1.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(100); // 每刻度一个标注
// Chart1.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(100); // 每刻度一个刻度线
// Chart1.GetPlot().GetAxis(1,var).GetValueScale().SetMaximum(-100); // Y轴最大刻度
// Chart1.GetPlot().GetAxis(1,var).GetValueScale().SetMinimum(100); // Y轴最小刻度
// Chart1.GetPlot().GetAxis(1,var).GetValueScale().SetMajorDivision(5); // Y轴刻度5等分
// Chart1.GetPlot().GetAxis(1,var).GetValueScale().SetMinorDivision(1); // 每刻度一个刻度线
Chart1.Refresh();
/*FFT频谱图初始化*/
Chart2.SetRowCount(RowNum); //X轴数据大小
Chart2.SetColumnCount(1); //曲线总数
// Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(50); // 每刻度一个标注
// Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(50); // 每刻度一个刻度线
// Chart2.GetPlot().GetAxis(1,var).GetValueScale().SetMaximum(-100); // Y轴最大刻度
// Chart2.GetPlot().GetAxis(1,var).GetValueScale().SetMinimum(100); // Y轴最小刻度
// Chart2.GetPlot().GetAxis(1,var).GetValueScale().SetMajorDivision(5); // Y轴刻度5等分
// Chart2.GetPlot().GetAxis(1,var).GetValueScale().SetMinorDivision(1); // 每刻度一个刻度线
Chart2.Refresh();
}
/************************************************************************/
/* 显示波形图 */
/************************************************************************/
void CWaveDraw::DrawWave(CMSChart &WavemsChart,double Data[],int RowNum)
{
for (int row=1; row <= RowNum; row++)
{
WavemsChart.GetDataGrid().SetData(row,1,Data[row-1],0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -