计算3D振荡物体渐进调整周期时长的步长增量
线性递增振荡周期的因子计算方法
问题明确
已知三个变量:
- 初始振荡周期时长
s₀(单位:ms) - 目标振荡周期时长
sₙ(单位:ms) - 总时长
T(单位:ms,需统一单位,如秒转毫秒)
要求每次振荡开始时给当前周期加一个固定因子d,使所有振荡的总时长恰好等于T,且最终周期达到sₙ,周期变化严格线性。
数学推导
这是等差数列求和问题:每次的周期构成首项为s₀、末项为sₙ、公差为d的等差数列,所有项的和等于总时长T。
等差数列求和公式:
T = (s₀ + sₙ) * k / 2其中
k是振荡总次数(从初始到最后一次共k次),由此解出总次数:k = 2*T / (s₀ + sₙ)等差数列末项公式:
sₙ = s₀ + (k - 1)*d从第一次到第
k次,共加了k-1次因子d。将k代入后化简,得到因子d的最终计算公式:d = (sₙ² - s₀²) / (2*T - s₀ - sₙ)
示例验证
用你给出的示例数据:s₀=100,sₙ=400,T=1000
代入公式:
d = (400² - 100²) / (2*1000 - 100 - 400) = (160000 - 10000) / (2000 - 500) = 150000 / 1500 = 100
结果与示例中的因子完全一致,验证成立。
实际操作步骤
- 统一所有时间单位(如将总时长秒转换为毫秒)
- 代入公式计算固定因子
d - 运行时,每次振荡开始时给当前周期加上
d,直到周期达到目标值(此时总时长也会恰好耗尽)
内容的提问来源于stack exchange,提问作者Aisaax
相关产品推荐
相关产品推荐

