如何 return 标准化输出中两个标准化值的总和
How to return sum of two normalized values in a normalized output
我需要一个函数,它接受 [0..1] 范围内的 a 和 b,并将 a 和 b 和 returns 添加到 [0..1] 范围内的输出,当总和高于 1 它像 mod
函数一样返回到零。
我试过了,但没用:
function shift(a, b) {
return (a + b) % 1;
}
例如,对于 a = 1 和 b = 0,它 returns 0 但我希望它为 return 1.
我认为你能做的最好的事情是:
function normalize(a, b) {
let r = (a + b);
return r === 1 ? 1 : r % 1;
}
这将 return 当总和正好为 0 时为 0,当总和正好为 1 时为 1。其他值 "wrap" 回到 0 ... 1 范围。
我在这里看到三个条件
1) 当两者都为1时,和为2,此时就得return 0
2) 当总和大于1,但不大于2,则减1
3) 当总和小于1时,return总和
function f(a,b){
s = (a+b)
if(s == 2)
return s-2
else if (s > 1)
return s-1
else
return s
}
希望对您有所帮助。
我需要一个函数,它接受 [0..1] 范围内的 a 和 b,并将 a 和 b 和 returns 添加到 [0..1] 范围内的输出,当总和高于 1 它像 mod
函数一样返回到零。
我试过了,但没用:
function shift(a, b) {
return (a + b) % 1;
}
例如,对于 a = 1 和 b = 0,它 returns 0 但我希望它为 return 1.
我认为你能做的最好的事情是:
function normalize(a, b) {
let r = (a + b);
return r === 1 ? 1 : r % 1;
}
这将 return 当总和正好为 0 时为 0,当总和正好为 1 时为 1。其他值 "wrap" 回到 0 ... 1 范围。
我在这里看到三个条件
1) 当两者都为1时,和为2,此时就得return 0
2) 当总和大于1,但不大于2,则减1
3) 当总和小于1时,return总和
function f(a,b){
s = (a+b)
if(s == 2)
return s-2
else if (s > 1)
return s-1
else
return s
}
希望对您有所帮助。