This commit is contained in:
coco
2026-07-03 16:05:30 +08:00
commit df489d5640
1101 changed files with 779140 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
// MediumT.cpp: implementation of the CMediumT class.
//
//////////////////////////////////////////////////////////////////////
#include "geomative.h"
#include "MediumT.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern int g_iUILanguage;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMediumT::CMediumT(int iAR): CMedium(iAR)
{
}
CMediumT::~CMediumT()
{
}
bool CMediumT::GenerateSptRecElecVal(int iEAmount, //电极总数---in
int* pMaxLevel, //最大层---out
int* pPtAmount, //测点总数---out
CPtrArray* pSptRecArray //脚本记录集---out
) //函数功能:生成脚本电极记录集合
{
return true;
}
void CMediumT::CalculateSptPtLoc(int iMul, //倍数---in
CSptRecord* pSptRecord //脚本记录指针---out
) //函数功能:计算脚本测点位置
{
return;
}
int CMediumT::GenSptRecLevel(int iA, int iB, int iM, int iN)
{
return (int)VAL_ZERO;
}
int CMediumT::GenSptRecPosInLevel(int iA, int iB, int iM, int iN)
{
return (int)VAL_ZERO;
}
int CMediumT::GetMaxLevelByEAmount(int iEAmount)
{
return (int)VAL_ZERO;
}
float CMediumT::CalculateDepth(float fA, float fFactor)
{
// return (float)(fabs(fB)+fabs(fA))*fFactor;
return (float)((fabs(fA)/0.5)*fFactor);
// return 0.0;
}
float CMediumT::CalculateCESptKVal(float fA, float fB, float fX, float fY)
{
float fK = (float)VAL_ZERO;
// float fAM = (float)VAL_ZERO;
// float fAN = (float)VAL_ZERO;
// float fBM = (float)VAL_ZERO;
// float fBN = (float)VAL_ZERO;
// fAM = sqrtf((fA + fX - fB) * (fA + fX - fB) + fY * fY);
// fAN = sqrtf((fA + fX + fB) * (fA + fX + fB) + fY * fY);
// fBM = sqrtf((fX - fB - fA) * (fX - fB - fA) + fY * fY);
// fBN = sqrtf((fX + fB - fA) * (fX + fB - fA) + fY * fY);
//
// fK = (float)(2.0 * VAL_PI / fabsf((float)(1.0 / fAM - 1.0 / fAN - 1.0 / fBM - 1.0 / fBN)));
if (0 == fB)
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("b的值不能为零!"));
else
MessageBoxEx(NULL, _T("The value of b can not be zero!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return 0;
}
float fAM = sqrt(pow(fA+fX-fB, 2) + pow(fY,2));
float fAN = sqrt(pow(fA+fX+fB, 2) + pow(fY,2));
float fBM = sqrt(pow(fX-fB-fA, 2) + pow(fY,2));
float fBN = sqrt(pow(fX+fB-fA, 2) + pow(fY,2));
fK = 2*VAL_PI/fabsf(1.0/fAM - 1.0/fAN - 1.0/fBM + 1.0/fBN);
//由于采用新的算法,旧的算法注释掉20170316
/*
float fAPlusX = fA + fX;
float fANegativeX = fA - fX;
float fTmp1 = fAPlusX/sqrt(pow(fAPlusX*fAPlusX + fY*fY, 3));
float fTmp2 = fANegativeX/sqrt(pow(fANegativeX*fANegativeX + fY*fY, 3));
fK = VAL_PI/(fB * (fTmp1+fTmp2));
*/
return fK;
}