VS2010使用TeeChart5的ColorGrid绘制一维距离像

绘制一维距离像原理:使用TeeChart控件中的ColorGrid显示(X,Y,Z)三维数据,X和Z分别代表一维距离像的x轴和y轴数据,Y代表对应的数值,以不同颜色显示。

1.注册TeeChart5

对于win xp 和 32系统,复制TeeChart5.ocx到C:\Windows\System32,WIN+R, 输入cmd,打开命令提示框,输入regsvr32.exe C:\Windows\System32\TeeChart5.ocx 即可;

对于win7 64位系统,复制TeeChart5.ocx到C:\Windows\SysWOW64,以管理员身份运行命令提示框,输入regsvr32.exe C:\Windows\SysWOW64\TeeChart5.ocx 即可;

2.VS添加TeeChart控件

2.1创建MFC工程,在vs资源视图,选中一个dialog,在该dialog中右键,选择“插入ActiveX控件”,在弹出的对话框中选择 TeeChart Pro ActiveX contorl v5,确定。

2.2设置已插入的teechart控件,双击,在弹出的对话框中添加series,选择ColorGrid,设置series属性,设置Grid中的ColorRange,起始为红色,终止为蓝色,中间色为绿色,确定;

2.3右键,选中teechart控件,选择“添加变量”,如m_tchart,确定

2.4添加teechart中的其他类,如CSeries,CColorGridSeries等,在解决方案选择工程,右键“添加”->"TypeLib的MFC类",在弹出的对话框选择“注册表”,在可用的类型库选择“TeeChart Pro ActiveX contorl v5<1.0>”,在接口选择要添加的类。常用的类有IAix,IAxe,ISeries(和其他类型的series,图表中的数据系列),IExport(导出,xxxExport),ILegend(数据序列的图例),IZoom(缩放)等。

2.5 删除mfc类构造函数中的“m_tchart(0)”。

3.使用ColorGrid

3.1使用AddArrayXYZ,快速添加数据,使用ColorGrid例子:

void CMFCDemoDlg::CreateColorGrid()
{
    //image colorgrid
    COleSafeArray XX;//color grid的横坐标
    COleSafeArray ZZ;//color grid的纵坐标,与我们常用的Y一样
    COleSafeArray YY;//表示的是颜色的值,不是Y轴
    DWORD numElements = 256*2;//数据长度
    XX.Create(VT_I4,1,&numElements);
    YY.Create(VT_I4,1,&numElements);
    ZZ.Create(VT_I4,1,&numElements);

    int xidx=0,yidx=0;
    long i=0;
    for (xidx=0;xidx<2;xidx++)
    {
        for (yidx=0;yidx<256;yidx++)
        {
            double val = rand()%128;//二维数组对应的值
            YY.PutElement(&i,&val);
            XX.PutElement(&i,&xidx);
            ZZ.PutElement(&i,&yidx);
            i++;
        }
    }
    ((CColorGridSeries)((CSeries)m_tchart.Series(0)).get_asColorGrid()).AddArrayXYZ(XX,YY,ZZ);//类型转换
}

3.2实现一维距离像例子

首先定义一维距离像结构体:

typedef struct stru_HRRP{
    int FFTLen;//FFT length
    int DataLen;// data array length
    double *Time;//Time[DataLen],一维距离像时间数组
    double *LC;// LC[FFTLen], 一维距离像标尺数组
    double **HRRP;//HRRP[DataLen][FFTLen] hrrp数据,二维数组
}stru_HRRP;

绘图代码(添加TeeChart参见2.1-2.5,以下由代码创建ColorGrid,可忽略步骤2.2):

void CreateHRRPGraph(stru_HRRP& hrrp){
    m_tchart.ClearChart();
    m_tchart.AddSeries(scColorGrid);//创建colorgrid

    CColorGridSeries series = ((CColorGridSeries)((CSeries)m_tchart.Series(0)).get_asColorGrid());
    series.put_UseColorRange(TRUE);//设置ColorRange
    series.put_StartColor(RGB(255,0,0));
    series.put_MidColor(RGB(0,255,0));
    series.put_EndColor(RGB(0,0,255));
    ((CLegend)m_tchart.get_Legend()).put_Visible(TRUE);//图例显示数据颜色强度

    COleSafeArray XX;//color grid的横坐标
    COleSafeArray ZZ;//color grid的纵坐标,与我们常用的Y一样
    COleSafeArray YY;//表示的是颜色的值,不是Y轴
    DWORD numElements = hrrp.DataLen * hrrp.FFTLen;
    XX.Create(VT_R8,1,&numElements);
    YY.Create(VT_R8,1,&numElements);
    ZZ.Create(VT_R8,1,&numElements);

    int xidx=0,yidx=0;
    long i=0;
    for (xidx=0;xidx<hrrp.DataLen;xidx++)
    {
        for (yidx=0;yidx<hrrp.FFTLen;yidx++)
        {
            double xval = hrrp.LC[yidx];
            double yval = hrrp.HRRP[xidx][yidx];
            double zval = hrrp.Time[xidx];
            XX.PutElement(&i,&xval);
            YY.PutElement(&i,&yval);
            ZZ.PutElement(&i,&zval);
            i++;
        }
    }
    series.AddArrayXYZ(XX,YY,ZZ);
}

done!

本文仅简单介绍了TeeChart使用ColorGrid绘制一维距离像的心得,如有问题,还望指正。

时间: 2024-10-22 08:56:59

VS2010使用TeeChart5的ColorGrid绘制一维距离像的相关文章

Matlab——图形绘制——二维平面图形

二维平面图形 hold on ————在已画好的图形上添加新的图形 plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y 座标.下例可画出一条正弦曲线: >> x=0:0.001:10; % 0 到10 的1000 个点的x 座标 y=sin(x); % 对应的y 座标 plot(x,y); % 绘图 改变颜色 >> plot(x,y,'k') 改变颜色的同时改变图线形态 >> plot(x,y,'k*')  同时画两个函数[淡粉色

android中自定义view涉及到的绘制知识

android中自定义view的过程中,需要了解的绘制知识. 1.画笔paint: 画笔设置: <span style="font-size:14px;"> paint.setAntiAlias(true);//抗锯齿功能 paint.setColor(Color.RED); //设置画笔颜色 paint.setStyle(Style.FILL);//设置填充样式 paint.setStrokeWidth(30);//设置画笔宽度 paint.setShadowLayer(

MATLAB新手教程

MATLAB新手教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,仅仅需将运算式直接打入提示号(>>)之後,并按入Enter键就可以.比如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上. 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗

OpenGL入门学习

说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的

Matlab随笔(1)之画图函数总结

MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制.列印及存档. 基本XY平面绘图命令 Plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标.下例可画出一条正弦曲线: close all; %linspace(5,100,20)和5:5:100的区别在于前者已知元素总个数而不

算法(第四版)C#题解&mdash;&mdash;1.2

写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 Geometry 和 Commercial,同样在 Github 上可以找到. 善用 Ctrl + F 查找题目. 习题 & 题解 练习(1.2.1~1.2.14) 1.2.1 题目 编写一个 Point2D 的用例,从命令行接受一个整数 N.在单位正方形中生成 N 个随机点,然后计算两点之间的最

Matlab基础

MATLAB入门教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上. 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统

(转)MATLAB入门教程

MATLAB入门教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上. 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统

MATLAB新手入门教程

MATLAB入门教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上. 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统