📄 graph.h
字号:
#ifndef __GRAPHWAVE_H_
#define __GRAPHWAVE_H_
#define GRAPH_DOT_CIRCLE 0
#define GRAPH_DOT_RECTANGLE 1
#define GRAPH_DOT_ANGLE45 2
#define GRAPH_DOT_ANGLE90 3
#define GRAPH_DOT_DOT 4
#define TORQUEGRAPH_CHANNEL_COUNT 6
#define TORQUEGRAPH_NULL 0
#define TORQUEGRAPH_LINEFITTING 1
#define TORQUEGRAPH_CURVEFITTING 2
class CGraphWave
{
protected://rivate:
RECT m_Rect;
RECT m_WaveRect;
char m_strCaption[40];
char m_strUnitV[20];
char m_strUnitH[20];
float m_fsRangeX[2];
float m_fsRangeY[2];
int m_nGraphForeColor;
int m_nGraphBackColor;
int m_nGraphLineColor;
int m_nTextColor;
private:
BOOL m_bGrid;
int m_nInternalX;
int m_nInternalY;
BOOL m_bVertMark;
BOOL m_bHorzMark;
//float m_fStartX;
//float m_fInternalX;
long m_lgWaveCount;
int m_nDotX;
int m_nDotY;
public:
void SetRect(RECT* pRc);
void SetRect(int nLeft,int nTop,int nRight,int nBottom);
void SetRectEx(int nX,int nY,int nWidth,int nHeight);
void ModifyCoordinate();
public:
void SetRangeX(float fLow,float fHigh);
void GetRangeX(float* pfLow,float* pfHigh){*pfLow = m_fsRangeX[0];*pfHigh = m_fsRangeX[1];}
void SetRangeY(float fLow,float fHigh);
void GetRangeY(float* pfLow,float* pfHigh){*pfLow = m_fsRangeY[0];*pfHigh = m_fsRangeY[1];}
//void SetLimits(float fLow,float fHigh);
//void GetLimits(float* pfLow,float* pfHigh);
void SetGrid(int bGrid){m_bGrid = bGrid;}
BOOL GetGrid(){return(m_bGrid);}
//void SetInternalX(float fInternalX){m_fInternalX = fInternalX;}
//BOOL GetInternalX(){return(m_fInternalX);}
void SetUnitH(char *pStr){_fstrcpy(m_strUnitH,pStr);}
void SetUnitV(char *pStr){_fstrcpy(m_strUnitV,pStr);}
char* GetUnitH(){return(m_strUnitH);}
char* GetUnitV(){return(m_strUnitV);}
void SetCaption(char *pStrCaption);
RECT* GetRect(){return(&m_Rect);};
RECT* GetWaveRect(){return(&m_WaveRect);}
RECT GetDataRect();
public:
void SetGraphForeColor(int nColor) {m_nGraphForeColor = nColor;}
void SetGraphBackColor(int nColor) {m_nGraphBackColor = nColor;}
void SetGraphLineColor(int nColor) {m_nGraphLineColor = nColor;}
void SetTextColor(int nColor){m_nTextColor = nColor;}
int GetGraphForeColor() {return(m_nGraphForeColor);}
int GetGraphBackColor() {return(m_nGraphBackColor);}
int GetGraphLineColor() {return(m_nGraphLineColor);}
int GetTextColor(){return(m_nTextColor);}
float GetCoordinateXY(float fX1,float fY1,float fX2,float fY2,float fX);
void DisplayDeltaXY(int nWidth, int nHeight);
void ShowGrid();
void ShowFrame(BOOL bFrame = TRUE, BOOL bGraph = TRUE);
void DrawWave(float*pfData,int nCount,int nMode,int nColor);
void DrawWave(WORD *pwData,int nCount,int nMode,int nColor);
void DrawWave(CXmsMemory *pXmsMemory, long lgStart, long lgCount,int nMode,int nColor);
public:
void SetHorzMark(BOOL bMark){m_bHorzMark = bMark;}
void SetVertMark(BOOL bMark){m_bVertMark = bMark;}
public:
//void SetStartX(float fX) {m_fStartX = fX;}
//float GetStartX(){return(m_fStartX);}
void SetWaveCount(long lgCount){m_lgWaveCount = lgCount;}
long GetWaveCount(){return(m_lgWaveCount);}
void SetInternalCountX(int nCount){m_nInternalX = nCount;}
int GetInternalCountX(){return(m_nInternalX);}
void SetInternalCountY(int nCount){m_nInternalY = nCount;}
int GetInternalCountY(){return(m_nInternalY);}
public:
void SetDotX(int nDot){m_nDotX = nDot;}
void SetDotY(int nDot){m_nDotY = nDot;}
int GetDotX(){return(m_nDotX);}
int GetDotY(){return(m_nDotY);}
public:
void DisplayHAndV(BOOL bCaption=TRUE);
void DrawDot(float fX, float fY, int nHalfSize, int nColor, int nStyle);
void CalcXY(int nScreenX, int nScreenY, float* pfX, float* pfY);
void CalcXY2(float fX, float fY, int* pnScreenX, int* pnScreenY);
void NewMoveTo(float fX, float fY);
void NewLineTo(float fX, float fY);
public:
CGraphWave();
~CGraphWave();
};
struct TOQUEGRAPH_ATTRIB
{
int nStyle;
int nRank;
};
class CTorqueGraph:public CGraphWave
{
private:
TOQUEGRAPH_ATTRIB m_TorquegraphAttrib;
int m_nChannels;
float m_fsChannelY[TORQUEGRAPH_CHANNEL_COUNT][2];
char m_strChannelCaption[TORQUEGRAPH_CHANNEL_COUNT][40];
public:
void SetChannelCount(int nCount);
void SetChannelY(int nChannel, float fMin, float fMaxY);
void GetChannelY(int nChannel, float* pfMin, float* pfMax)
{
*pfMin = m_fsChannelY[nChannel][0];
*pfMax = m_fsChannelY[nChannel][1];
}
void SetChannelCaption(int nChannel , char* pStrCaption);
RECT InitChannelWave(int nChannel);
public:
void SetTorquegraphAttrib(int nStyle, int nRank);
void DrawDot(int nChannel, float fDataX, float fDataY, int nHalfSize, int nColor, int nStyle);
void CalcXY(int nChannel, int nScreenX, int nScreenY, float* pfX, float* pfY);
void CalcXY2(int nChannel, float fX, float fY, int* pnScreenX, int* pnScreenY);
void NewMoveTo(int nChannel, float fX, float fY);
void NewLineTo(int nChannel, float fX, float fY);
void DrawWave(float*pfData,int nCount,int nMode,int nColor)
{
CGraphWave::DrawWave(pfData, nCount ,nMode, nColor);
}
void DrawWave(WORD *pwData,int nCount,int nMode,int nColor)
{
CGraphWave::DrawWave(pwData, nCount ,nMode, nColor);
}
void DrawWave(int nChannel, float* pfDataX, float* pfDataY, int nCount,int nMode,int nColor);
void DrawWave(int nChannel, float*pfData,int nCount,int nMode,int nColor);
void DrawWave(int nChannel, WORD *pwData,int nCount,int nMode,int nColor);
void ShowFrame(BOOL bAll = TRUE);
void DisplayHAndV(BOOL bCaption=TRUE);
public:
CTorqueGraph();
~CTorqueGraph();
};
double GetZhengTai_Right(double dbK);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -