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 = *;//数据长度
XX.Create(VT_I4,,&numElements);
YY.Create(VT_I4,,&numElements);
ZZ.Create(VT_I4,,&numElements); int xidx=,yidx=;
long i=;
for (xidx=;xidx<;xidx++)
{
for (yidx=;yidx<;yidx++)
{
double val = rand()%;//二维数组对应的值
YY.PutElement(&i,&val);
XX.PutElement(&i,&xidx);
ZZ.PutElement(&i,&yidx);
i++;
}
}
((CColorGridSeries)((CSeries)m_tchart.Series()).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
((CAspect)m_tchart.get_Aspect()).put_View3D(FALSE);//关闭3D显示 CColorGridSeries series = ((CColorGridSeries)((CSeries)m_tchart.Series()).get_asColorGrid());
series.put_UseColorRange(TRUE);//设置ColorRange
series.put_StartColor(RGB(,,));
series.put_MidColor(RGB(,,));
series.put_EndColor(RGB(,,));
((CLegend)m_tchart.get_Legend()).put_Visible(TRUE);//图例显示数据颜色强度
series.put_IrregularGrid(TRUE);//显示精度问题 COleSafeArray XX;//color grid的横坐标
COleSafeArray ZZ;//color grid的纵坐标,与我们常用的Y一样
COleSafeArray YY;//表示的是颜色的值,不是Y轴
DWORD numElements = hrrp.DataLen * hrrp.FFTLen;
XX.Create(VT_R8,,&numElements);
YY.Create(VT_R8,,&numElements);
ZZ.Create(VT_R8,,&numElements); int xidx=,yidx=;
long i=;
for (xidx=;xidx<hrrp.DataLen;xidx++)
{
for (yidx=;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绘制一维距离像的心得,如有问题,还望指正。
VS2010使用TeeChart5的ColorGrid绘制一维距离像的更多相关文章
- Matlab——图形绘制——二维平面图形
二维平面图形 hold on ————在已画好的图形上添加新的图形 plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y 座标.下例可画出一条正弦曲线: > ...
- 【Cocos2d-X开发学习笔记】第10期:渲染框架之几何图形的绘制
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 一.图形的绘制 有时为了调试游戏,我们常常会需要 ...
- MATLAB入门教程
MATLAB入门教程 1.MATLAB的基本知识 1-1.基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...
- opengl入门学习
OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...
- MATLAB新手教程
MATLAB新手教程 .MATLAB的基本知识 1-1.基本运算与函数 在MATLAB下进行基本数学运算,仅仅需将运算式直接打入提示号(>>)之後,并按入Enter键就可以.比如 ...
- OpenGL入门学习(转)
OpenGL入门学习 http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html 说起编程作图,大概还有很多人想起TC的#includ ...
- (转)MATLAB入门教程
MATLAB入门教程 1.MATLAB的基本知识 1-1.基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...
- OpenGL理解
说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色 ...
- 算法(第四版)C# 习题题解——1.2
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...
随机推荐
- Servlet 3.0 新特性
Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发 ...
- ubuntu搭建LAMP服务器
新手记录下...... 安装apache apt-get install apache2 安装mysql apt-get install mysql-server 安装php apt-get inst ...
- Linux编程之《只运行一个实例》
概述 有些时候,我们要求一个程序在系统中只能启动一个实例.比如,Windows自带的播放软件Windows Medea Player在Windows里就只能启动一个实例.原因很简单,如果同时启动几个实 ...
- DataGridView重绘painting简单实例
private void dataGridViewX1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { & ...
- asp.net mvc 从数据库中读取图片的实现代码
首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: public class ImageResult : ActionResult { publi ...
- TQ210开发板NFS挂载android4.0.4的rootfs的方法
首先声明的是,我使用的u-boot是自己移植的u-boot2013.01.01而非天嵌官方的那个,至于使用官方的u-boot如何去实现nfs挂载rootfs我没怎么研究过,不过原理方法都是一致的. 主 ...
- PHP 中mysql如何实现事务提交?
事务就是指对数据库的多次修改,要么全部成功,要么全部失败,不能出现部分修改成功,部分修改失败的情况. PHP下操作mysql数据库要实现事务提交,需注意以下方面: 1, 数据库表存储引擎类型设置为in ...
- web前端开发(3)
css 类命名使用骆驼命名法,可以与划线法结合使用. 骆驼命名法用于区别单词,划线命名用于表达从属关系. 尽量不要使用子选择器,否则容易引起冲突隐患. css可以分为 base.common.page ...
- CSS中的文本属性
本文总结一下CSS中关于文字的相关属性,最后给出实例. CSS基础文字属性 文字的基础属性主要包括:字体.颜色和文本.除去颜色color的属性外,字体和文本的相关属性可以权威参考: CSS 文本属性( ...
- 使 div 元素看上去像一个按钮
使 div 元素看上去像一个按钮 div { appearance:button; -moz-appearance:button; /* Firefox */ -webkit-appearance:b ...