函数用来生成黑白色的云朵.该函数生成该图的一个象素的灰度值
参数说明:
int x, int y: 云朵图对应的象素位置
int x0,int y0,float FX,float FY,float Ci,float Cj,float T0,float K:用来调整云朵亮度、形状、位置等的参数。初始化一般如下
Ci = 6.0f;
FX = 1.0f / 120;
FY = 1.0f / 240;
fK = 1.0f;
T0 = 0.0f;
Cj = 6.0f;
x0 = 30;
y0 = 10;
float CGenerateCloudDoc::GenerateCloud(int x, int y,int x0,int y0,float FX,float FY,float Ci,float Cj,float T0,float K)
{
float LX = 0,LY = 0,T = 0,T1 = 0,T2 = 0,FX1 = 0,FY1 = 0;
for(int i=1; i<5; i++)
{
if(i==1)
{
FX1 = FX;
FY1 = FY;
}
LX = sqrt(i) * FX1;
LY = sqrt(i) * FY1;
Ci = 0.707 * Ci;
Cj = 0.707 * Cj;
T1 = T1 + Ci * sin( LX * (x-x0) ) + T0;
T2 = T2 + Cj * sin( LY * (y-y0) ) + T0;
}
T = K*T1*T2;
return T;
}