实现水波纹,请高手指教

peacehacker 2005-10-02 01:45:46
程序启动后,不断地按鼠标左键将不断地出现一圈圈的同心圆,象荡开的涟猗.

请高手给出关键代码,不胜感激,谢谢!
...全文
502 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiujun1 2006-04-30
  • 打赏
  • 举报
回复
关注学习
xing_xing_xing 2006-04-28
  • 打赏
  • 举报
回复
http://dev.gameres.com/Program/Visual/Effects/water1.htm
dzq138 2006-04-28
  • 打赏
  • 举报
回复
http://dev.gameres.com/Program/Visual/Effects/pRipple.htm
dzq138 2006-04-27
  • 打赏
  • 举报
回复
..
beginnow 2005-10-15
  • 打赏
  • 举报
回复
一个时间函数,一个画圆函数(传递半径++)
I_Love_CPP 2005-10-15
  • 打赏
  • 举报
回复
引用
"...只是简单模拟,简单的画圆就可以,关键是那个一圈一圈的扩散怎么写啊?"


以下是方法:
#define COEFFICENT 10//自己修改这儿
/*
** drawCircle:画中心在(x,y),半径为r的圆
*/
void drawCircle(int x,int y, int r);

/*
**drawWave:画t时刻(单位是毫秒)的波形,中心在(x,y):
*/
void drawWave(int x, int y,long t){
int nCircles = t/1000;//每1秒多产生一个新波纹
int r = 0;

updateWindow();//伪代码,执行清屏操作

for(int i = 0;i < nCircles; ++i){
//思路就是用波形函数,你再根据这个修改一下
//我只是表示这个意思而已:
r =COEFFICENT * arcsin(a*i); //arcsin是sin的反函数,a为某个合适的系数

drawCircle(x,y,r);
}
}

然后,你设定一个timer或者线程不断调用drawWave即可,不断变换t就出现动画了。
qiansen 2005-10-15
  • 打赏
  • 举报
回复
产生水纹、火焰及熔岩效果示例:
http://www.code999.com/SoftView/SoftView_6647.html
ModoRang 2005-10-12
  • 打赏
  • 举报
回复
不知 ^-^
DRACULAX05 2005-10-04
  • 打赏
  • 举报
回复
粒子系统
alphapaopao 2005-10-04
  • 打赏
  • 举报
回复
http://www.alphasun.org/alphasun/wave/index.htm
peacehacker 2005-10-02
  • 打赏
  • 举报
回复
楼上的,不用那么复杂,只是简单模拟,简单的画圆就可以,关键是那个一圈一圈的扩散怎么写啊?
syy64 2005-10-02
  • 打赏
  • 举报
回复
用opengl或d3d来实现。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧