BoatWave.h
上传用户:henghua
上传日期:2007-11-14
资源大小:7655k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #ifndef _boatwave_h_
  2. #define _boatwave_h_
  3. #include <d3dx9.h>
  4. #define w_size 128    // 尾迹场阵的网格大小
  5. #define h_size 128
  6. #define act_w_size 64   // 尾迹场阵实际的空间作用范围
  7. #define act_h_size 64
  8. #define center_size 32   // 尾迹场阵中心区域的实际空间作用范围
  9. #define dt 0.1
  10. // 尾迹场类
  11. class CBoatWave
  12. {
  13. public:
  14. int width, height;
  15. float actualw, actualh;
  16. float centersz;
  17. D3DXVECTOR2 corner00, corner01, corner10, corner11;    // 尾迹场四个边角点的空间坐标值
  18. D3DXVECTOR2 center00, center01, center10, center11;    // 尾迹场中心作用区域四个边角点的空间坐标值
  19. float waveHeight[3][w_size][h_size];
  20. int pre0, pre1, cur;
  21. float A;  //  扰动参数
  22. float e;  //  衰减系数
  23. float c;  //  波传播速度
  24. public:
  25. CBoatWave(void);
  26. CBoatWave(float boatx, float boatz);
  27. // 激励函数
  28. void Stimulate(float posx, float posz, float v);
  29. // 造波函数
  30. void MakeWave();
  31. // float到int转换函数
  32. void FloatToInt(float &fx, float &fy, int &ix, int &iy);
  33. // 整体平移函数
  34. void GridTranslate(float boatx, float boatz);
  35. // 获取波高函数
  36. float GetHeight(float x, float y);
  37. // 更新函数
  38. void Update(float x, float z, float v);
  39. public:
  40. ~CBoatWave(void);
  41. };
  42. #endif