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 这一节内容可能会用到的库文件有 ...
随机推荐
- mysql sort 性能优化
http://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html 这段时间mysql 数据库的性能明显降低,iowait达到了30, ...
- IO端口和IO内存的区别 转
目录(?)[-] Linux系统对IO端口和IO内存的管理 一.I/O端口 二.IO内存 三.IO端口和IO内存的区分及联系 四.外设IO端口物理地址的编址方式 统一编址 独立编址 优缺点 五.L ...
- Android组件的通讯——Intent
转载:Android组件的通讯-Intent 1.概述 一个应用程序的三个核心组件——activities.services.broadcast receivers,都是通过叫做intents的消息激 ...
- 去除重复命令uniq
命令uniq经常用于去除一个文本中的重复行.用sort命令也可以去除重复行,但二者有较大区别:用sort去除重复行时,sort将整个文本中的多个重复行去除,仅保留一行,而uniq会将多个连续重复的行去 ...
- css笔记 css用法:
前端框架:AdminLTE https://almsaeedstudio.com/themes/AdminLTE/index2.html CSS学习教程: http://www.divcss5.co ...
- sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件
,,) 这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql语句 string aa="1,2,3"; string sqltxt= ...
- 沈逸老师PHP魔鬼特训笔记(1)
此课程个人开发环境可以考虑使用Ubuntu ,推荐sublime和PhpStorm作为开发环境.一.PHP的一大特性是:脚本语言.不要编译,写完就可以运行? 然而并不是....... PHP代码要想运 ...
- 【阿里云产品公测】阿里云ACE配置全程图解,详细到不行!
作者:阿里云用户sofia 看过阿里云社区的其他技术大姥们的评测教程,感觉还是不够详细,对于一个第一次接触ace.新浪sae这类的应用来说还是比较陌生的.我最喜欢写教程了,不过我有我的风格,那就是简单 ...
- WebStrom9 体验nodejs
之前就有体验过 WebStrom8.0.3 版本,确实不错. 最喜欢的是集成了Terminal 很方便的使用NPM,今天装上发现 Terminal 死活打不上字.什么原因! WebStrom9 在wi ...
- IE浏览器部分版本不支持opacity透明度属性问题
半透明部分设置样式:opacity:0.7在ie9/ie10/ff/chrome/opera/safari显示正常. 但是这样在ie6-ie8中是不支持的,需要加上下面这句话: filter: pro ...