|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include <list>
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS RoseBar
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
RoseBar(void);
|
|
|
|
|
|
float agl[2]; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>[agl0,agl1)
|
|
|
|
|
|
int count; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CFaultRosesCreator
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CFaultRosesCreator();
|
|
|
|
|
|
~CFaultRosesCreator();
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ͼ
|
|
|
|
|
|
void Clear();
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD>ϲ<EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>TargetColumn = <20><><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD> iRowStart = <20>ڼ<EFBFBD><DABC>п<EFBFBD>ʼ
|
|
|
|
|
|
bool ReadFile(CString strInput, int TargetColumn,int iRowStart);
|
|
|
|
|
|
void CreateRoseBars(void);
|
|
|
|
|
|
//<2F><>õ<EFBFBD><C3B5>ͼд<CDBC><D0B4>dfd<66>ļ<EFBFBD>
|
|
|
|
|
|
void WriteDFD(CString strOutput);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
public:
|
|
|
|
|
|
float m_fBarInterval; //õ<><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int m_nBarMaxNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int m_nCircleTickInterval; //<2F><><EFBFBD><EFBFBD><EFBFBD>̱<EFBFBD><CCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL m_bAutoCalc; //<2F>Ƿ<EFBFBD><C7B7>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_dCX; //<2F><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>x
|
|
|
|
|
|
double m_dCY; //<2F><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>y
|
|
|
|
|
|
double m_dR; //õ<><C3B5>ͼ<EFBFBD>뾶
|
|
|
|
|
|
COLORREF m_barColor; //õ<><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
int m_iRotateAngle; //<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>ת<EFBFBD>Ƕ<EFBFBD>
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
void WriteDfdHead(FILE* fw);
|
|
|
|
|
|
void WriteLayers(FILE* fw);
|
|
|
|
|
|
void WriteBorder(FILE* fw); //<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>
|
|
|
|
|
|
void WriteTicks(FILE* fw); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteText(FILE* fw); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteBars(FILE* fw); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteColor(FILE* fw,COLORREF clr);
|
|
|
|
|
|
void WriteOneBar(FILE* fw,RoseBar rb,COLORREF clr);
|
|
|
|
|
|
//д<><D0B4>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>angle<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕȣ<C7B6>factorΪ<72><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뾶<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|
|
|
|
|
void WriteOneTick(FILE* fw, double angle, double fs, double fe);
|
|
|
|
|
|
//д<><D0B4>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x0,y0Ϊ<30><CEAA><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD>꣬width,heightΪ<74><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteOneText(FILE* fw, CString str,double x0, double y0, double width, double height);
|
|
|
|
|
|
//ָ<><D6B8><EFBFBD>Ƕ<EFBFBD>(˳ʱ<CBB3>뷽<EFBFBD><EBB7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30><EFBFBD>Ͱ뾶<CDB0>ٷֱȻ<D6B1>ȡ<C8A1>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool GetCoordiante(double degree, double factor, double& x, double& y);
|
|
|
|
|
|
//<2F>ɽǶȺ<C7B6><C8BA><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>߶<EFBFBD>
|
|
|
|
|
|
bool GetSegment(double angle, double fstart, double fend, double*x, double* y);
|
|
|
|
|
|
|
|
|
|
|
|
double ConvertAngle(double angle); //<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double GetRealAngle(double angle); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ѿ<EFBFBD><D1BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int AutoCalcMapBarMaxNum(void);//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
list<double> m_data;
|
|
|
|
|
|
|
|
|
|
|
|
vector<RoseBar> m_rosebars;
|
|
|
|
|
|
int m_nRealBarMax; //ʵ<>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
CString m_strLayerCircle;
|
|
|
|
|
|
CString m_strLayerTicks;
|
|
|
|
|
|
CString m_strLayerText;
|
|
|
|
|
|
CString m_strLayerBars; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|