gpt4 book ai didi

java - 慢慢减少数量

转载 作者:行者123 更新时间:2023-11-29 05:36:36 25 4
gpt4 key购买 nike

我有一个数字,每一步都会增加一个增量。假设起始编号为 0,增量为 100

在步骤 #5 及之后,我想开始减少基本增量 (100)。增量应该平滑地减少,并且在步骤 #10 它等于 0

这是一张图表,基本上解释了我要做什么(y - 增量,x - 步长)。

enter image description here

代码表示:

// x - step
// y - increment

var value = 0;
for(var x = 0; x < 10; x++) {


var y = 100;
if(x > 5) {
// y = ???
}
value += y;

}

所以问题是如何表示这个?如果有一个选项可以修改这个圆弧的平滑度,那就太好了。

谢谢!

最佳答案

这将为您提供一个从 (5|100) 开始到 (10|0) 结束的完美四分之一圆。

if (x > 5) {
y = 100 * Math.sqrt( 1 - Math.pow(((x - 5) / 5), 2) );
}

http://fooplot.com/plot/2i8hy2twl4

解释(可选)

警告!可能包含数学!

让我们从一个更简单的例子开始,一个半径为 1 且圆心为 (0|0) 的四分之一圆。我们知道 x² + y² = r²(勾股定理)。 x 和 r 是已知的,所以我们可以这样计算 y:y = sqrt(r² - x²)。由于我们的半径始终为 1,而 1² 等于 1,因此我们可以将其分解为:

y = sqrt(1 - x²)

y 的值介于 0 到 1 之间。不过我们希望它介于 0 到 100 之间。为此,我们只需将右侧乘以 100。

y = 100 * sqrt(1 - x²)
^^^^^^

要将整个事物向右移动 5,我们需要从 x 中减去 5。

y = 100 * sqrt(1 - (x - 5)²)
^^^^^

此外,我们想将它向右拉伸(stretch),以便我们的四分之一圆范围从 x = 5 到 x = 10 而不是 x = 6,所以我们将 (x - 5) 除以 5。

y = 100 * sqrt(1 - ((x - 5) / 5)^2)
^^^^

现在要做的就是将 sqrt 替换为 Math.sqrt 并将 ^2 替换为 Math.pow 以使其成为有效的 Javascript 代码。

y = 100 * Math.sqrt( 1 - Math.pow(((x - 5) / 5), 2) );

关于java - 慢慢减少数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332073/

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