在MATLAB中创建无缝循环动画

1.实践描述

这是Vasileios Bellos的客座文章,他最初是在MathWorks中央讨论频道上写的。Vasileios是伦敦帝国理工学院流体力学博士生,从事物理和数值波浪建模研究。

图片

当他不在流体力学实验室的巨浪舱内玩耍时,他喜欢为科学应用开发交互式可视化工具,并展示创意动画。今年的MATLAB Shorts Mini Hack比赛已经拉开帷幕,已经有很多有趣的参赛作品。比赛的特点是制作一个96帧、4秒的动画,循环3次,组成一部12秒的短片。有一个选项可以添加音频来增强动画,并且限制为2000个字符的上限,以促进高效编码。

许多参赛者已经意识到创建无缝循环的潜力,这提供了一个平滑的过渡,并避免了动画重复时的任何不连续性。有几种方法可以实现这一点。例如,一种有效的方法是利用周期性的正弦函数,这意味着它们会随着时间的推移而重复:

图片

无缝循环的一个直观例子是@Edgar Guevara的心电图脉冲输入,它在示波器上显示心电图信号。正如他们在帖子中所解释的那样,动画与音频完美匹配。

另一种相当复杂的方法出现在去年比赛中@Tim的Moonrun动画中。这种无缝循环是通过在周期性空间域上巧妙地操纵相机位置和目标来实现的,从而产生了令人惊叹的结果:

这本质上告诉我们,对于空间域中的无缝循环,第一帧必须与最后一帧匹配(更准确地说,只有一个时间步长差,稍后会有更多)。

图片

实现这一点的一种方法是放大包含动画第一帧的部分。这激发了将包含动画第一帧的矩形照片框放大以方便重新启动循环的想法。有人可能会说,一个疯子可能会把自己房子的照片装裱在自己的房子里。在2-D中实现这一点相当简单。本质上,第二个轴被用作照片。这是一种在放大时整齐更新图形的有效方法。

图片

2.结语

分享给大家好玩的,觉得不错可以点赞!阅读原文也可以查看源代码哦!

3775398503@qq.com靑年杂说投稿交流账号https://mp.weixin.qq.com/s/FfwxKmqGORhj4LM6tp-SpAicon-default.png?t=O83Ahttps://mp.weixin.qq.com/s/FfwxKmqGORhj4LM6tp-SpA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

靑年杂说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值