目前位置: VCer资源中心 >>> VCer代码 >>> 其它技术

[本帖已阅读1982次 分值100 回复0次] 张贴资源 发回信箱 控制面板

云朵生成算法

提供者:ISeekYou 张贴时间:2004-05-21 20:41:13.0 出处:vcer.net 作者:不祥

云朵生成算法(2004-05-21 20:41:13.0)


那时


 
级别: VCer排长
头衔: VCer会员

经验: 751
作品: 15
分会: 华中分会
注册: 2004-02-09 19:39:54.0
登录: 2008-05-14 10:14:29.0

函数用来生成黑白色的云朵.该函数生成该图的一个象素的灰度值

参数说明:

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;

}

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/2262.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]
[投票结果]

A: 评分 10 100% (2 票)
B: 评分 5 0% (0 票)
C: 评分 0 0% (0 票)
D: 评分 -5 0% (0 票)
E: 评分 -10 0% (0 票)