emolingzhu 2016-05-05 18:47 采纳率: 87.5%
浏览 1548
已结题

如何使用两个Teechart画图,急

现在小弟设了两个Teechart,想要同时显示波形和做完FFT后的图像,我只是将做FFT的程序中的m_chart改成m_chart1,我想设置成第一个Teechart看波形,第二个看FFT, 但是现在只有第一个Teechart工作,而且是显示的FFT,两个Teechart设置不同就只有开始的时候,第一个Teechart变量名是m_chart,而且自动生成了tchart1.h和tchart1.cpp文件,第二个Teechart变量名是m_chart1,没有自动生成。h和.cpp的文件,
到底程序应该怎么改呢?求大神指点!
显示波形的程序:
void CtestDlg::OnTimer(UINT_PTR nIDEvent)
{
int nCount = m_Chart.get_SeriesCount();
int chan;
CSeries Chart;
int nSeriesCount;
int i;
int k;

if(nCount != 0){



    switch(chan_show){

        case 1:
            chan = 0;
            for(i=0;i<8;i++){
                if(i != chan){
                    Chart = (CSeries)m_Chart.Series(i);
                    Chart.Clear();
                }
            }
            Chart = (CSeries)m_Chart.Series(chan);
            nSeriesCount = Chart.get_Count();
            if(0 == nSeriesCount){
                DrawLine(m_Time, m_Voltage, XAXISCOUNT, chan);
            }else{
                for(i=0;i<XAXISCOUNT-1;i++){
                    m_Current[i] = m_Current[i+1];
                }
                m_Current[XAXISCOUNT-1] = rand() % 30;
                DrawLine(m_Time, m_Current, XAXISCOUNT, chan);
            }
        break;

我后面紧跟着做FFT的程序
fftw_complex * in, * out;
fftw_plan p;
in = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * N);
out = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * N);
if((in==NULL)||(out==NULL)){

}else{
    for(i=0;i<N;i++){
        in[i][0] = i+1;
        in[i][1] = 0;
    }
}

p = fftw_plan_dft_1d(N,in,out,FFTW_FORWARD,FFTW_ESTIMATE);
fftw_execute(p);
fftw_destroy_plan(p);
fftw_cleanup();

if(nCount != 0){

    switch(chan_show){

        case 1:
            chan = 0;
            for(i=0;i<8;i++){
                if(i != chan){
                    Chart = (CSeries)m_Chart1.Series(i);
                    Chart.Clear();
                }
            }
            Chart = (CSeries)m_Chart1.Series(chan);
            nSeriesCount = Chart.get_Count();
            if(0 == nSeriesCount){


                DrawLine(m_Time, m_Voltage, XAXISCOUNT, chan);
            }else{
                for(i=0;i<XAXISCOUNT-1;i++){
                    m_Current[i] = m_Current[i+1];
                }
                m_Current[XAXISCOUNT-1] = rand() % 30;

                for(i=0;i<N/2;i++){
                    m_Current[i] = log10(fabs(sqrt(out[N/2+i][0]*out[N/2+i][0] + out[N/2+i][1]*out[N/2+i][1])));
                }
                for(i=N/2;i<N;i++){
                    m_Current[i] = log10(fabs(sqrt(out[i-N/2][0]*out[i-N/2][0] + out[i-N/2][1]*out[i-N/2][1])));
                }
                DrawLine(m_Time, m_Current, XAXISCOUNT, chan);
            }
        break;
  • 写回答

1条回答

  • devmiao 2016-05-05 23:07
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?