algorithm - 在时间轴上跳过一定数量的帧

标签 algorithm math

我有一个数学问题有点难以描述,但我还是会试一试。

在时间轴上,我有一些帧,我想跳过一定数量的帧,这些帧应该沿着时间轴均匀分布。

例如我有 10 帧,我想跳过 5 帧,那么解决方案很简单:我们每隔一帧跳过一次。 10/5 = 2

if (frame%2 == 0)
    skip();

但是如果上面的除法结果是一个 float 呢?

例如在 44 帧中我想跳过 15 次。我如何确定应跳过的 15 帧?

基本上,我正在寻找一种算法,它可以将这 15 帧尽可能均匀地分布在 44 帧中。 它可能看起来像是交替跳过 2 帧和 3 帧之后。

谢谢!

最佳答案

您可以保留一个额外的浮点值 t,它对应于要跳过的下一帧,并在每次跳过时更新它。像这样:

int frame_num = 44; 
int skips_num = 15; 
double dt =((double)(frame_num))/skips_num;
double t = 0.0;
...
// then, in your loop
if (frame == (int)t) {  
  skip();   
  t += dt; 
}

关于algorithm - 在时间轴上跳过一定数量的帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2801669/

相关文章:

algorithm - 购物车和各种折扣。在数据库中存储折扣并将其应用于订单计算

java - 更快的算法来找到两个数组之间的唯一元素?

c - 使用C标准数学库精确计算标准正态分布的PDF

javascript - 简单的 javascript 日期数学......不是真的

typescript :可变函数参数取决于前面的参数

windows - 命令提示随机数是如何生成的?

php - 如何将列数据转换为行数据

c++ - 我如何将经/纬度坐标转换为地球表面的一些 N-E 米距离?

c# - 数学计算来检索两点之间的角度?

math - 如何计算数学函数的曲线长度?