⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 air.cpp

📁 海洋油污扩散模型的计算机实现。简单了点
💻 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 + -