www.pudn.com > RADAR-ALARM.rar > RadarGraph.h, change:2011-08-08,size:2266b


#pragma once 
#include "afxwin.h" 
#include "atltypes.h" 
 
#define COLORNUM 15 
typedef struct tagRGBST 
{ 
	unsigned char r; 
	unsigned char g; 
	unsigned char b; 
}RGBST; 
 
 
class CRadarGraph : 
	public CStatic 
{ 
public: 
	CRadarGraph(void); 
	~CRadarGraph(void); 
	float* RData; 
    float* VData; 
	float* WData; 
	DECLARE_MESSAGE_MAP() 
	afx_msg void OnPaint(); 
public: 
	CRect m_FrameRect; 
	void GetStaticInitInfo(void); 
	void DrawBaseLine(CDC* pDC); 
	CRect m_GraphRect; 
	int m_RangeBinNum; 
	// 数据画点 
	void DrawData(CDC* pDC); 
	// 单线性插值 
	float SingleLinear(float StartV, float EndV, float StartAzi, float EndAzi, float Azi, float DefaultV); 
	// 双线性插值 
	float DoubleLinear(float NearStartV, float FarStartV, float NearEndV, float FarEndV, float StartAzi, float EndAzi, float StartBin, float EndBin, float Azi, float Bin,float DefaultV); 
	// 方位角计算 
	float GetAngle(float x, float y); 
	CPoint m_CenterPoint; 
	//  计算点到中心的距离 
	float CalRadius(int x, int y); 
	int m_TotalXPoint; 
	int m_TotalYPoint; 
	int m_Radius; 
	void InitPar(void); 
	RGBST DataClrNum[15];		//色标 
	float Datathreshold[15];	//阈值 
	RGBST DataClrNumV[14];		//色标 
	float DatathresholdV[14];	//阈值 
	// 根据强度值计算RGB值 
	RGBST GetRGB(float data); 
	void DrawBackGround(CDC* pDC); 
	float GetValue(float Radius,float Angle,int LayerNum,int CalType); 
	int m_GraphMode; 
	// 设置基数据层数和一根径向上库数 
	void SetBinNumCutNum(int BinNum, int CutNum,int DataMaxRadius); 
	// 数据最大层数 
	int m_MaxLayerNum; 
	// 径向上最大库数 
	int m_MaxBinNum; 
	// 显示的最大半径 
	int m_ShowMaxRadius; 
	// 显示的层序号 
	int m_LayerIndex; 
	int m_ShowMaxRadiusBin; 
	// 数据最大距离范围 
	int m_DataMaxRadius; 
	void Draw(CDC* pDC); 
	// 数据准备标志位 
	bool m_DataReadyFlag; 
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); 
	bool m_ZoomFlag; 
	void AlertZone(CDC* pDC,int azi,int startbin, int endbin,bool flag); 
	// 画预警区域 
	void DrawAlertArea(CDC* pDC,CString filename,bool flag); 
	void coverse(int azi, int bin, int* x, int* y); 
	// 闪光标志位 
	bool m_lightflag; 
	void GraphLightAlert(); 
	afx_msg void OnTimer(UINT_PTR nIDEvent); 
	// 雷达图报警标志位 
	int m_GraphAlertFlag; 
	// 报警文件名称 
	CString m_alertfilename; 
};