You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/GVision/FaultRoseLib/FaultRosesCreator.h

73 lines
2.1 KiB
C

1 month ago
#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>
};