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.

114 lines
4.0 KiB
C

1 month ago
#pragma once
#include "DrawModel/BaseFunction.h"
#include "DrawOperator/PublicFunction.h"
#include "DrawOperator/Xy.h"
#include "DrawOperator/One.h"
#include "DrawOperator/TypeDefine.h"
class AFX_EXT_CLASS GridCalculate
{
public:
GridCalculate();
~GridCalculate();
/************************************************************************/
/* ִ<>м<EFBFBD><D0BC><EFBFBD> */
/* <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>0,<2C><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>1,<2C><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD> */
/* functionMode: */
/* 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A + <20><><EFBFBD><EFBFBD>B;1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A - <20><><EFBFBD><EFBFBD>B;2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B - <20><><EFBFBD><EFBFBD>A; */
/* 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A * <20><><EFBFBD><EFBFBD>B;4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A / <20><><EFBFBD><EFBFBD>B;5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B / <20><><EFBFBD><EFBFBD>A; */
/* 6<><36>C=MIN(A,B)<29><>A<EFBFBD><41>B<EFBFBD>ǿգ<C7BF><D5A3><EFBFBD><43><CEAA>; */
/* 7<><37>C=MIN(A,B)<29><>A<EFBFBD><41>B<EFBFBD><42>һ<EFBFBD><D2BB><EFBFBD>ǿգ<C7BF><D5A3><EFBFBD><43><CEAA>Ч<EFBFBD><D0A7>ֵ<EFBFBD><D6B5>A<EFBFBD><41><42>ǿգ<C7BF><D5A3><EFBFBD><43><CEAA>; */
/* 8<><38>C=MAX(A,B)<29><>A<EFBFBD><41>B<EFBFBD>ǿգ<C7BF><D5A3><EFBFBD><43><CEAA>; */
/* 9<><39>C=MAX(A,B)<29><>A<EFBFBD><41>B<EFBFBD><42>һ<EFBFBD><D2BB><EFBFBD>ǿգ<C7BF><D5A3><EFBFBD><43><CEAA>Ч<EFBFBD><D0A7>ֵ<EFBFBD><D6B5>A<EFBFBD><41><42>ǿգ<C7BF><D5A3><EFBFBD><43><CEAA>; */
/* 10<31><30>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<B<><42><EFBFBD><EFBFBD>CΪA<CEAA><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><43><CEAA>; */
/* 11<31><31>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<B<><42><41><CEAA>ЧֵBΪ<42><CEAA>ʱ<EFBFBD><CAB1>CΪA<CEAA><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><43><CEAA>; */
/* 12<31><32>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A>B<><42><EFBFBD><EFBFBD>CΪA<CEAA><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><43><CEAA>; */
/* 13<31><33>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A>B<><42><41><CEAA>ЧֵBΪ<42><CEAA>ʱ<EFBFBD><CAB1>CΪA<CEAA><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><43><CEAA>; */
/* 14<31><34>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><42><CEAA>Чֵʱ,CΪA,<2C><><EFBFBD><EFBFBD><43><CEAA>; */
/* 15<31><35>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><41><CEAA>ЧֵʱCΪA<CEAA><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><42><CEAA>ЧֵʱCΪB<CEAA><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><43><CEAA>; */
/* 16<31><36>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵʱ,CΪA<CEAA><41>ͬ<EFBFBD><CDAC>B<EFBFBD><42>ֵ,<2C><><EFBFBD><EFBFBD><43><CEAA>; */
/* 17<31><37>C=A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵʱ,CΪA<CEAA><41>ͬ<EFBFBD><CDAC>B<EFBFBD><42>ֵ,<2C><><EFBFBD><EFBFBD>A<EFBFBD><41><42><CEAA>Чֵʱ,CΪ<43><CEAA>Ч<EFBFBD><D0A7>ֵ,<2C><><EFBFBD><EFBFBD><43><CEAA>; */
/* 18<31><38>C=SUM(A,B)<29><>C=A+B<><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ<EFBFBD><CEAA>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD><43><CEAA>Чֵ; */
/* 19<31><39>C=DEC(A,B)<29><>C=A-B<><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ϊ<EFBFBD><CEAA>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD><43><CEAA>Чֵ; */
/* gridMode: */
/* 1<><31><EFBFBD><EFBFBD><EBA1B0><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>ͬ; */
/* 2<><32><EFBFBD><EFBFBD><EBA1B0><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>ͬ; */
/* 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42>; */
/* 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EBA1B0><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>; */
/************************************************************************/
int Caculate(LPCTSTR fileA, LPCTSTR fileB, LPCTSTR fileOut,int outFormat,
double& x0, double& y0, double& dx, double& dy, int& numX, int& numY,
int functionMode, int gridMode=1);
int Play(double& x0, double& y0, double& dx, double& dy, int& numX, int& numY);
int CaculateMesh(CMesh* pMeshA, CMesh* pMeshB, CMesh* pMeshOut, int outFormat,
int functionMode, int gridMode);
//int PlayMesh(CMesh* pMeshOut);
void SetFile(CString fileA, CString fileB, CString fileOut, int outFormat);
void SetFunction(int functionMode, int gridMode);
void GetGridInfor(CString fileA, double& x0, double& y0, double& dx, double& dy, int& numX, int& numY);
protected:
int Play1(CDimension2D* pDfg1, CDimension2D* pDfg2, CDimension2D* pOutDfg);
int Play2(CDimension2D* pDfg1, CDimension2D* pDfg2, CDimension2D* pOutDfg);
double ValueZ(double z1, double z2, int nIdea);
BOOL IsPointInFault(CPositionList& lstPos1, CXy& xy1, CPositionList& lstPos2, CXy& xy2, double x, double y);
private:
// <20><><EFBFBD><EFBFBD>A<EFBFBD>ļ<EFBFBD>
CString m_strFile1;
// <20><><EFBFBD><EFBFBD>B<EFBFBD>ļ<EFBFBD>
CString m_strFile2;
//// <20><><EFBFBD><EFBFBD>A<EFBFBD>Ķϲ<C4B6>
//CString m_strFaultA;
//// <20><><EFBFBD><EFBFBD>B<EFBFBD>Ķϲ<C4B6>
//CString m_strFaultB;
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
CString m_strOutput;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
int m_nOutFormat;
//// <20><><EFBFBD><EFBFBD>A<EFBFBD><41>X0
//double m_dFile1X0;
//// <20><><EFBFBD><EFBFBD>A<EFBFBD><41>Y0
//double m_dFile1Y0;
//// <20><><EFBFBD><EFBFBD>A<EFBFBD><41>dx
//double m_dFile1Dx;
//// <20><><EFBFBD><EFBFBD>1Dy
//double m_dFile1Dy;
//// <20><><EFBFBD><EFBFBD>A<EFBFBD><41>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//int m_nFile1Numx;
//// <20><><EFBFBD><EFBFBD>A<EFBFBD><41>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//int m_nFile1Numy;
//// <20><><EFBFBD><EFBFBD>B<EFBFBD><42>X0
//double m_dFile2X0;
//// <20><><EFBFBD><EFBFBD>B<EFBFBD><42>Y0
//double m_dFile2Y0;
//// <20><><EFBFBD><EFBFBD>B<EFBFBD><42>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
//double m_dFile2Dx;
//// <20><><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СY
//double m_dFile2Dy;
//// <20><><EFBFBD><EFBFBD>B<EFBFBD><42>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//int m_nFile2Numx;
//// <20><><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y
//int m_nFile2Numy;
// <20><><EFBFBD>ʽ
int m_nModeSel = -1;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7>ʽ
int m_nGridNumSel = -1;
double valueNull = -1E301;
};