var a = 0.01; var totalDeg = 360; var steps = []; function countSteps() { var t = Math.sqrt(2 * totalDeg / a); var v = a * t; for (var i = 0; i < t; i++) { steps.push((2 * v * i - a * i * i) / 2) } steps.push(totalDeg) }
在微信大转盘里看到的一个计算转盘每一帧旋转度数的算法,求大神讲解下。(数学是体育老师代的)
匀减速距离公式
$$ s = v i - 1/2 a i^2$$
a:加速度
v:初速度
i:时间/步数
t:总时间/总步数
代码在模拟一个圆周上的匀减速运动,到停止时刚好转过一圈(s=360)。