gpt4 book ai didi

Javascript lerp 函数没有给出准确的答案

转载 作者:行者123 更新时间:2023-12-04 10:46:31 25 4
gpt4 key购买 nike

我需要在三个不同的范围之间进行插值, (1,1.3),(.72,1) ,
(1.4,1.9)->(1,1.05) 和 (2,3)->(1.05,1.1) 其中前两项是 x 值,后两项是 y 值,但函数似乎没有返回正确的值,即使对于给定的点,

任何帮助表示赞赏。

function lerp(x1, x2, y1, y2, x) {
return y1 + (x2 - x1) * (y2 - y1) / (x2 - x1);
}

function savings(t) {
let res;
let m;
if (t >= 1 || t <= 1.3) {
res = lerp(1, 1.3, .72, 1, t);
console.log(res)
}
if (t >= 1.4 || t <= 1.9) {
res = lerp(1.4, 1.9, 1, 1.05, t);
console.log(res)
}
if (t >= 2 || t <= 3) {
res = lerp(2, 3, 1.05, 1.1, t);
console.log(res)
}

return res;
}

savings(1.3)

最佳答案

您需要使用 logical AND && 检查范围运算符而不是 logical OR || ,它只检查一个比较。

这意味着 t 的所有值采用第一个条件,直到所有值都大于或等于 1。

function lerp(x1, x2, y1, y2, x) {
return y1 + (x2 - x1) * (y2 - y1) / (x2 - x1);
}

function savings(t) {
if (t >= 1 && t <= 1.3) return lerp(1, 1.3, .72, 1, t);
if (t >= 1.4 && t <= 1.9) return lerp(1.4, 1.9, 1, 1.05, t);
if (t >= 2 && t <= 3) return lerp(2, 3, 1.05, 1.1, t);
}

console.log(savings(1.3));

关于Javascript lerp 函数没有给出准确的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59680740/

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