交互媒体专题设计大作业

交互媒体专题设计大作业

最近交互媒体专题设计课结课,然后我们就顺势做了大作业,就简单描述一下我的大作业吧,虽然它及其简单和简陋。

1.背景
2.创意
3.功能
4.难点
5.技术
6.参考资料
7.资源
8.作业推荐

背景

自己一个人闲暇的时候经常会想,浩瀚的宇宙是多么神奇,这些大大小小的星球汇聚在一起就有了各个星系,各个星系汇聚在一起又组成了更大的星系,而这些星系之间又存在着各种相互作用,来让每个星系又相互关联起来,进而使整个宇宙不断地在运动。进一步想想,就会思考,这第一推动力到底来自于谁呢,然后就会认为原来牛顿晚年研究神学也不是并无道理,因为这些力量是在让人着迷,着迷到相信是神带来的旨意。

创意

所以,想到上面这些,就不自觉觉得要是我能成为那么一个“神”,该多好,可以指定宇宙的规则,可以作为第一推动力,让万物运转,让生灵由此而诞生,由此,我就想到写出一个简单的星系系统。考虑到水平有限和时间问题,所以我也并没有想着做多大的星系,简简单单写一个太阳系吧,就是那种最简单的有着八大行星即可的一个简单太阳系,尝试一下作为上帝的感觉。HHH!!!

功能

我所写的小星系,说实在其实并没有啥功能,因为我只是为了简单制作一个星系,尝试着作为上帝的感觉,但是作为作业来说,还是得具备一些功能的,于是乎,我就添加了一点点的控制功能,就是简单更改行星的运转周期,因为,通过计算,如果讲某一个行星运转的周期设为1的话,那么相对而言其它几个行星的速度不是太快,就是太慢,太快就没办法看清他们的运动是否符合,太慢就没办法看完整他们的一个运动周期。所以简单的控制,还是可以看到这八个星系的完整运动。因为考虑到功能其实并不多,也就一个所以用法也就不需要单独讲述了,就键盘上下和左右键控制运转的周期,调整即可。

难点

实现这一个简单的星系,最基本的是画出这个几个星球,当然这肯定不是难点,难点就在于其运动。
1.行星的运动方式:我这里采用的角速度,但是每个行星的运动轨迹又不是完全在同一个平面,需要将他们的运动面进行偏移,所以在运动这里,第一步首先采用的rotate(),来随机改变每一个行星偏移面的角度。然后对于他们本身的周期性运动,采用的是translate()函数,利用这其中我将因变量设为角度theta,利用update()函数,每次更新该角度,因为先设定了每个行星相对应的半径不变,只需要利用Rcos(theta),Rsin(theta)就能改变行星的位置。
2.行星的运动轨迹:因为之前我想尽量还原太阳系,使其参数尽量按照一定的比例,所以按照之前的想法,那么行星的运动轨迹就不是一个完整的圆了,也不是那么简单的一个的椭圆,因为根据开普勒第二定律,行星的运动速度是和太阳相关的(在单位时间内,行星与太阳连线的地方运动划过的面积是相等的)。那么这个时候就需要计算得到其半径和和其它变量的关系。而这一复杂过程又不能完全在程序中实现,所以,就需要通过计算出来。
设太阳中心所在位置复平面的原点为O,在t时刻,行星位于
Z(t)=re^(itheta);
于是行星的速度就可以表示为dZ/dt=e^(i
theta)(dr/dt+irdtheta/dt);
其加速度也可以求出来。
而太阳对行星的引力依据万有引力,大小为mMG/r
r;
其中M为常数,G为常数,m为行星质量,然后在经过化简,将行星速度表示带入,就可以行星绕太阳运行的轨迹的数学模型。最后再带入行星的质量,那么可以求得其轨迹的方程为:
r=p/1-e*cos(theta);
有了这个式子,我就可以相对精确的模拟处其时刻变化的半径了,这样所得到的模型也会比之前固定的半径要稍微接近真实一点。

技术

主要应用到的技术是代码本色中的向量,振荡和粒子系统(我简单的做了小行星带,因为没有什么技术含量,所以不介绍了)。

最后

其实,我想把这个做得更好更有趣,但是,貌似实现起来也并不是那么容易,所以。。。。放弃了,不过,以后有时间还是自己会将之做得尽善尽美的。

参考资料

行星远近数据点
行星轨迹模型
行星远近点数据计算

资源

程序资源

作业推荐

1.第一个推荐的是两个小游戏程序,我觉得比较有特点的是,他的第二个小游戏可以自己设计游戏的形象,这让我觉得很有趣,因为大部分的游戏觉得角色都是固定好的,然后进行选择即可,而自己创建形象还是比较好玩的。
博文链接
在这里插入图片描述
在这里插入图片描述
2.第二个推荐的是一个《鲤》的游戏,推荐这个主要是觉得操作方式比较新颖,不像大多小游戏是键盘的方向键控制,而且用鼠标的点击来控制鱼的速度也是蛮好玩的,再者,游戏的细节做的挺不错的,感觉很细腻。
链接
在这里插入图片描述

3.第三个推荐的是名叫《Flowing paint》的应用。一眼看上去这个应用感觉很神秘,展现出来的效果有一种不一样的绘画的感觉,比较抽象,但是它是能够动的,这就比传统的抽象画显得有趣,而且对文字展现的破碎效果也显得挺有趣的。
链接
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值