如何 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
}

希望对您有所帮助。