gpt4 book ai didi

javascript - 为什么距离的这种指数衰减会导致 99 [精确] 的一次性误差?

转载 作者:行者123 更新时间:2023-11-28 20:02:45 27 4
gpt4 key购买 nike

我正在 http://classicorthodoxbible.com/new.html 上制作效果主要描述中的 Angular 色,包裹在自己的跨度中,从他们通常的休息地点移动到随机位置,然后通过指数衰减更接近他们的目的地。 JavaScript 内联在页面中。

JavaScript 控制台显示调试输出:许多相同的记录行:

起始_x:833起始_y:275.875目标_x:833目标_y:176.875新.html:74

随后报告最大调用堆栈深度。不知何故,代码使本来应该是指数衰减的东西陷入了精确的 99 差值,并变成了无限递归(当 x 和 y 之间的距离衰减到小于两个像素时,衰减是按法令声明停止的)。

预期的行为是:

  1. 生成标记输出,其中每个呈现的输出字符(即非标签)都在其自己的 SPAN 中。

  2. 将每个 Angular 色移动到自己的位置。

  3. 将它们线性地移向初始和最终的静止位置,使得当前位置和目标位置之间的距离呈指数衰减。

处理所有点移动(并具有无限递归)的函数如下:

            function journey(index, starting_x, starting_y, target_x,
target_y, starting_opacity, target_opacity, delay, radix)
{
if (1 || isNaN(starting_x) || isNaN(starting_y) || isNaN(target_x) || isNaN(target_y))
{
console.log('starting_x: ' + starting_x +
' starting_y: ' + starting_y + ' target_x: ' +
target_x + ' target_y: ' + target_y);
// return;
}
/* console.log(target_x - starting_x + ', ' + (target_y -
starting_y)); */
if (Math.abs(starting_x - target_x) + Math.abs(starting_y -
target_y) < 2)
{
jQuery('#text_' + index).css({'left': target_x, 'top':
target_y, 'opacity': target_opacity, '-ms-filter':
'progid:DXImageTransform.Microsoft.Alpha(Opacity=' +
target_opacity * 100, 'filter': 'alpha(opacity=' +
target_opacity * 100});
}
else
{
if (starting_x - target_x > 0)
{
var new_x = (target_x + Math.floor((starting_x -
target_x) * radix));
}
else
{
var new_x = (target_x + Math.ceil((starting_x -
target_x) * radix));
}
if (starting_x - target_x > 0)
{
var new_y = (target_y + Math.floor((starting_y -
target_y) * radix));
}
else
{
var new_y = (target_y + Math.ceil((starting_y -
target_y) * radix));
}
var new_opacity = target_opacity + (starting_opacity
- target_opacity) * radix;
journey(index, new_x, new_y, target_x, target_y,
new_opacity, target_opacity, delay, radix);
}
}

最佳答案

抱歉,看错代码了。您传入的基数的值是多少?

此外,如果您只有一个,代码会更容易阅读

if (starting_x - target_x > 0)

有条件。

关于javascript - 为什么距离的这种指数衰减会导致 99 [精确] 的一次性误差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371033/

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