模拟星云

课程要求

参考《代码本色》教程,运用不少于3个章节的动画技术,实现一个交互应用,将动画技术充分运用于交互过程中,最好能充分融入其他课程的知识。

简介

本次作业实现了一个类似星云的粒子系统,通过鼠标和键盘控制可以变换大小与观看视角和动静状态,主要用到技术:粒子系统,力,震荡中的三角函数等。

设计思路

不久前曝光了首张黑洞照片引起热议,由此引发了我对天体的好奇,做了一个简单的尝试,但是由于能力不佳,并没有达成想要呈现出的那种朦胧感,个人更喜欢侧面的图片,更加具有想象空间。

主要技术和代码

整个代码最主要的是对于每个粒子运动的设定,

float theta[] = new float[num];用来设定每个粒子初始运动角度

float mtheta[] = new float[num];将角度转化为数字

float dtheta[] = new float[num];设定初始速度

int rdt[] = new int[num];对运动的半径进行刷新

几种运动形态的设定:

运动和静止:

侧面:

 

 鼠标的控制:

 

键盘:

 

总结 

通过此次作业对于编程对于自然生活现象的模拟有了新的认识,无论是自己做作业的过程中还是看其他同学的作业展示都给了我一种奇妙感,编程不仅仅是一堆字母的排列组合,他所创造出的东西也可以是有生命力的。

展示

 

 

 

参考 

https://blog.csdn.net/ant_look/article/details/50866807

《代码本色》第二章1.7,1.8,第三章3.3,3.4,第四章

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值