matlab极坐标轨迹动画,曲线轨迹动画原理

本文详细介绍了如何使用matlab实现极坐标轨迹动画,涵盖了动画函数、匀变速运动、曲线运动以及easing函数的原理。通过解析匀速、匀加速、匀减速运动的位移函数,讨论了如何在不同运动类型中调整动画效果,并提供了在线Demo来展示自定义缓动函数的效果。文章还指出在实现某些动画效果时需要注意的细节问题。
摘要由CSDN通过智能技术生成

一.动画函数

动画,是位移关于时间的函数:s = f(t)

自变量是t,因变量是s,物体的位移随着时间变化,看起来就是动画,例如:

// 已知

var property = 'marginLeft';

var s0 = 100; // 起点

var s1 = 200; // 终点

var duration = 1000;

// 由题意得

var S = s1 - s0; // 总位移

var T = duration; // 总时间

// 求任意时刻t对应的位移

var t0 = +new Date();

var tick, interval = 1000 / 60;

setTimeout(tick = function() {

var t = +new Date() - t0;

// 完成度

var p = Math.min(t / T, 1);

// t时刻相对起点的位移s

var s = S * p;

document.body.style[property] = s0 + s + 'px';

if (p !== 1) setTimeout(tick, interval);

}, interval);

marginLeft从100px到200px均匀改变,body先向右跳100px,然后在1秒内匀速向右移动100px

要实现这样的动画,面临的唯一问题是:已知总位移S和总时间T,求任意时刻t相对起点的位移s

我们实现了匀速直线运动,看起来好像没有用到s = vt,其实是有的:

s = v * t

= (S / T) * t

= S * (t / T)

= S * p

因为动画函数是s = f(t),里面没有v,需要把v换成已知量,因为完成度p = t / T,所以动画也是位移关于完成度的函数

二.匀变速运动

同样的道理,换掉匀变速运动位移公式中的v和a,得到位移s关于时间t的函数

匀加速

位移公式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值