📄 air.cpp
字号:
// Air.cpp: implementation of the CAir class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Pollution.h"
#include "Air.h"
#include "math.h"
#include "Condation.h"
#define PI 3.1415926
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCondation condation;
//CAir air;
CAir::CAir()
{
//condation.m_fScale=0.1;
fQ=100;
m_nDisplayment=condation.fWind*condation.m_fScale;
}
CAir::~CAir()
{
}
float CAir::GetDensity(int x,int y,int z)
{
fWideY=condation.GetWideY(2,y);
fWideZ=condation.GetWideZ(5,z);
float fC=fQ/(2*PI*sqrt(2*PI)*fWideY*fWideZ);
//float fC=fQ/10;
fC=-0.5*(x*x+y*y+z*z)/(fWideY*fWideY);
fC=exp(fC);
return fC;
}
void CAir::PrintAir(int nBeginX,int nBeginY,int nBeginZ,CClientDC *pDC)
{
float nColor[500][500],Max,Min,fTemp;
Max=Min=fTemp=0;
for (int i=0;i<500;i++)
for(int j=0;j<500;j++)
{
nColor[i][j]=GetDensity(20,i-m_nDisplayment,j-m_nDisplayment);
if (nColor[i][j]>Max)
Max=nColor[i][j];
if(nColor[i][j]<Min)
Min=nColor[i][j];
//pDC->SetPixel(nBeginY+i,nBeginZ+j,(255,0,0));
}
for (int p=0;p<500;p++)
for(int q=0;q<500;q++)
{
fTemp=250-nColor[p][q]*255/(Max-Min);
if(fTemp<120&&fTemp>0)
pDC->SetPixel(nBeginY+p,nBeginZ+q,((int)fTemp,(int)fTemp,(int)fTemp));
}
}
void CAir::CHyAirMove()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -