|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<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><>1ά<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_)
|