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.

178 lines
5.4 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD> SeismicDraw.h
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
// ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2007-3-18
/////////////////////////////////////////////////////////////////////////////
// CSeismicDraw.h: interface for the CSeismicDraw class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SEISMICDRAW_H__911C2B83_8C23_4B79_9C4E_453FD9753F18__INCLUDED_)
#define AFX_SEISMICDRAW_H__911C2B83_8C23_4B79_9C4E_453FD9753F18__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/*///////////////////////////////////////////////////////////////////////////
<EFBFBD>ļ<EFBFBD> SeismicDraw.h
<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///////////////////////////////////////////////////////////////////////////*/
#include <vfw.h>
class AFX_EXT_CLASS CSeismicDrawBase
{
public:
CSeismicDrawBase();
virtual ~CSeismicDrawBase();
public:
enum EDrawType
{
typeVDL = 0, //<2F><><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD>ʾ
typeVAL = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
typeVALL = 2, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typeVALR = 3, //<2F>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD><EFBFBD>
typeVDLVAL = 4, //<2F><><EFBFBD>ܶ<EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typeVDLVALL = 5, //<2F><><EFBFBD>ܶ<EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>ܶ<EFBFBD><><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typeVDLVALR = 6 //<2F><><EFBFBD>ܶ<EFBFBD>+<2B>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>ܶ<EFBFBD><><CDB8><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD><EFBFBD>
};
////////////////////////////////////////////////////////////////////////
//<2F><>ɫ<EFBFBD><C9AB>ʹ<EFBFBD><CAB9>256ɫ<36><C9AB>ɫ<EFBFBD><C9AB> ǰ252Ϊ<32><CEAA><EFBFBD>ܶȵ<DCB6><C8B5><EFBFBD>ɫ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
RGBQUAD* m_pQuad; //<2F><>ǰ<EFBFBD><C7B0>ɫ<EFBFBD><C9AB>
void SetVALColor(COLORREF crBkg, COLORREF crFnt, COLORREF crBas);
void GetVALColor(COLORREF& crBkg,COLORREF& crFnt,COLORREF& crBas);
BYTE GetVdlIndex(float sv); //<2F><><EFBFBD>ñ<EFBFBD><C3B1>ܶ<EFBFBD><DCB6><EFBFBD>ʾʱ<CABE><CAB1><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_nNormalizeMode; //<2F><>һ<EFBFBD><D2BB>ģʽ
public:
/*///////////////////////////////////////////////////////////////////////////
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>Ϣ
//rtScreen Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>λ<EFBFBD><CEBB>
//rtDrawΪ<77><CEAA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////rtDraw.left CDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////rtDraw.right CDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////rtDraw.top CDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////rtDraw.bottom CDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////<2F><><EFBFBD>Ƶ<EFBFBD>CDP<44><50><EFBFBD><EFBFBD>Ϊ[left,right] <20>ϼ<EFBFBD>right-left+1 <20><>
//facTimes <09><><EFBFBD>ε<EFBFBD><CEB5>Ӳ<EFBFBD><D3B2><EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD>ȵı<C8B5><C4B1><EFBFBD>
//cdpStep <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//showType <09><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
/////////////////////////////////////////////////////////////////////////////*/
BOOL InitShowParameter(CRect rtScreen, CRect rtDrawIndex, float facTimes, int cdpStep, int showType); //double<6C><65>ʽ<EFBFBD><CABD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڴ<EFBFBD>ͼƬ
void CreateShowMemoryDC();
/*///////////////////////////////////////////////////////////////////////////
<EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD>
///////////////////////////////////////////////////////////////////////////*/
void DrawSec(CDC* pDC, BOOL bStreth);
void DrawSec(CDC* pDC, CPoint ptTopLeft);
//<2F><>ӡԤ<D3A1><D4A4>ģʽ<C4A3><CABD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><>˷<EFBFBD>ֹ<EFBFBD>ڴ治<DAB4><E6B2BB>
int GetMinCanDrawTraceNum(CRect rtScreen, int nTraceNum);
//<2F>ڽ<EFBFBD><DABD>л<EFBFBD><D0BB>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>øýӿ<C3BD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void COM_INIT_EX(CRect& rtScreen,CRect& rtDraw,int nx,int ny);
protected:
virtual float GetData(int cdp,int sam) = 0; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>cdp<64>ĵ<EFBFBD>sam<61><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual int GetNX() = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>
virtual int GetNY() = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual float GetMin(int cdpIndex) = 0; //<2F><><EFBFBD>ù<EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Сֵ
virtual float GetMax(int cdpIndex) = 0; //<2F><><EFBFBD>ù<EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ͬ
protected:
//<2F><>ͼģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EDrawType m_nDrawType; //<2F><>ͼģʽ 0<><30><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<><34><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>+<2B><><EFBFBD><EFBFBD>
// 5<><35><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6<><36><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float m_factorTimes; //<2F><><EFBFBD>ε<EFBFBD><CEB5>Ӳ<EFBFBD><D3B2><EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD><EFBFBD><EFBFBD>ȵı<C8B5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
int m_cdpStep; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ȱʡΪ1
/////////////////////////////////////////////////////////////////////////////////////
BITMAPINFOHEADER* m_pInfoHeader; //<2F><>ͼʱ<CDBC><CAB1>ɫ<EFBFBD><EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_pHeader<65><72>
BYTE* m_pHeader; //<2F><>ͼʱ<CDBC><CAB1>DIB<49><42><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϣ
BYTE* m_pBit; //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
BOOL CreateSeisQuad();
int m_nWide;
int m_nHeight;
int m_nWideD;
int m_nCdpFirstIndex; //<2F><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>CDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_nSamFirstIndex; //<2F><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_nCdpCount; //<2F><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
int m_nSamCount; //<2F><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//double<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>Ӧ<EFBFBD><D3A6>ʾ//////////////////////////////////////////////////////////////////////
double m_dPexilWidth; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD>
double m_dPexilHeight; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹ߶<C6B8>
CRect m_rtScreen; //<2F><>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>Χ
void InitVALBkg();
int FloatToLong(double val);
int CreateBitmap(int nWidth, int nHeight);
int GetCdpPosition(double colIndex);
int GetSamPosition(double rowIndex);
int GetDataIndex(int row,int col);
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
void CreateVDLEx_Old();
void CreateVDLEx();
void CreateVALEx();
void CreateVALFLEx();
void CreateVALFREx();
};
class AFX_EXT_CLASS CSeismicDraw : public CSeismicDrawBase
{
public:
CSeismicDraw();
~CSeismicDraw();
virtual float GetData(int cdp, int sam);
virtual int GetNX() { return numx; }
virtual int GetNY() { return numy; }
virtual float GetMin(int cdpIndex) { return m_pMin[cdpIndex]; } //<2F><><EFBFBD>ù<EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Сֵ
virtual float GetMax(int cdpIndex) { return m_pMax[cdpIndex]; } //<2F><><EFBFBD>ù<EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ͬ
/*///////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڴ<EFBFBD>ͼƬ
//pData <09><><EFBFBD><EFBFBD>ʾ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ݰ<EFBFBD>CDP˳<50><CBB3><EFBFBD><20><><31><CEAC><EFBFBD><EFBFBD>CDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//nx,ny pData<74><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>
///////////////////////////////////////////////////////////////////////////////*/
void CreateShowMemoryDC(float* pData,int nx,int ny);
public:
float* m_pMin;
float* m_pMax;
float* m_pData;
int numx;
int numy;
};
#endif // !defined(AFX_SEISMICDRAW_H__911C2B83_8C23_4B79_9C4E_453FD9753F18__INCLUDED_)