gpt4 book ai didi

javascript - 在循环集合中寻找最短路径

转载 作者:行者123 更新时间:2023-11-30 17:43:08 24 4
gpt4 key购买 nike

我不知道我的问题是否完全可以理解。一般来说,事情看起来像这样:

我有一个交互式演示文稿,它绘制静态图像,创建动画。当您单击“播放”按钮时 - 动画逐帧播放 - 1 - 72,当达到 72 时,第 n + 1 帧将为 - 1。现在客户希望有 4 个额外的按钮,它们将播放动画到某些帧最短路径 - 具体到第 1、18、36、54 帧(总共 72 帧)。

诀窍是找到动画的最短路径 - 应该向右 (delta == 1) 还是向左 (delta == -1)。

我做了一个 fiddle 来说明问题 - 函数 PlayShortest 是关键。 =Fiddle=

我尝试了很多东西 - 开关、路线比较(目标 - 当前 VS 最大帧 - 目标 + 当前),但似乎没有什么能完全正常工作(至少有一条路径无法计算出最佳路线)。

该函数的当前版本如下所示(我知道 - 这很糟糕,但我很绝望):

function PlayShortest(toFrame){
var delta = 1;
var diff = Math.abs(toFrame - currentFrame);

switch(toFrame){
case 1:
case 18:
case 36:
if(diff < 36)
delta = -1;
break;

case 54:
if(diff >= 36)
delta = -1;
break;
}

Play(toFrame, delta);
}

如果你们中的任何一个人能够解决这个问题,你就是我的英雄:)

最佳答案

function PlayShortest(toFrame){
var delta = 1;
var diff = currentFrame - toFrame;

if (diff < -36)
delta = -1;
if (diff > 0 && diff < 36)
delta = -1;

Play(toFrame, delta);
}

虽然最好使用 maxFrames/2 而不是 36,以防帧数发生变化。

关于javascript - 在循环集合中寻找最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20659371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com