📄 datafielddata.cpp
字号:
// DatafieldData.cpp: implementation of the DatafieldData class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SinglePointDataField.h"
#include "DatafieldData.h"
#include "2DMemAllocator.h"
#include "math.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DatafieldData::DatafieldData()
{
m_ppGridData = NULL;
memset(&m_DataInfo,0,sizeof(m_DataInfo));
m_press=10.0;
for(int j=0;j<50;j++)
{
for(int i=0;i<50;i++)
{
Grid[j][i]=0;
}
}
if( !C2DMemAllocator::AllocMemory2D(m_ppGridData, 50, 50) )
{
AfxMessageBox("内存分配失败,数据读取没有成功!");
}
}
DatafieldData::~DatafieldData()
{
if( m_ppGridData!=NULL)
{
C2DMemAllocator::FreeMemory2D(m_ppGridData);
m_ppGridData = NULL;
}
}
void DatafieldData::GenerateDatafield()
{
int i=0;
int j=0;
for(i=0;i<50-0;i++)
{
for(j=0;j<50-0;j++)
{
int a=0;
int b=50-0;
int c=0;
int d=50-0;
double V=0;
int x=0;
int y=0;
for(x=a;x<b;x++)
{
for(y=c;y<d;y++)
{
double d=sqrt((abs(x-i))*(abs(x-i))+(abs(y-j))*(abs(y-j)));
V=V+Grid[x][y]*(exp(-(d/m_press)*(d/m_press)));
}
}
m_ppGridData[i][j]=V;
}
}
}
void DatafieldData::ModifyGridData(int x, int y, float z)
{
Grid[50-x][y-1]=z;
}
void DatafieldData::SetDataInfo()
{
m_DataInfo.cols=50;
m_DataInfo.rows=50;
m_DataInfo.xMax=49;
m_DataInfo.xMin=0;
m_DataInfo.yMax=49;
m_DataInfo.yMin=0;
m_DataInfo.zMax=m_ppGridData[0][0];
m_DataInfo.zMin=m_ppGridData[0][0];
for(int i=0;i<50;i++)
{
for(int j=0;j<50;j++)
{
if (m_ppGridData[i][j]<m_DataInfo.zMin)
{
m_DataInfo.zMin=m_ppGridData[i][j];
}
if (m_ppGridData[i][j]>m_DataInfo.zMax)
{
m_DataInfo.zMax=m_ppGridData[i][j];
}
}
}
if (m_DataInfo.zMax<=1)
{
m_DataInfo.zMax=1;
}
}
void DatafieldData::init()
{
for(int j=0;j<50;j++)
{
for(int i=0;i<50;i++)
{
Grid[j][i]=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -