Javascript 如何在规范化输出中返回两个规范化值之和

Javascript 如何在规范化输出中返回两个规范化值之和,javascript,game-physics,Javascript,Game Physics,我需要一个函数,它在[0..1]范围内取a和b,并将a和b相加,然后返回[0..1]范围内的输出,当总和大于1时,它将像mod函数一样包装为零 我试过这个,但不起作用: function shift(a, b) { return (a + b) % 1; } 例如,对于a=1和b=0,它返回0,但我希望它返回1。我认为最好的方法是: function normalize(a, b) { let r = (a + b); return r === 1 ? 1 : r % 1; }

我需要一个函数,它在[0..1]范围内取a和b,并将a和b相加,然后返回[0..1]范围内的输出,当总和大于1时,它将像
mod
函数一样包装为零

我试过这个,但不起作用:

function shift(a, b) {
  return (a + b) % 1;
}

例如,对于a=1和b=0,它返回0,但我希望它返回1。

我认为最好的方法是:

function normalize(a, b) {
  let r = (a + b);
  return r === 1 ? 1 : r % 1;
}

当总和正好为0时返回0,当总和正好为1时返回1。其他值“包装”回0。。。1范围。

我在这里看到三种情况

1) 当两者都为1时,总和将为2,在这种情况下,必须返回0

2) 当总和大于1而不是2时,在这种情况下,减去1

3) 当总和小于1时,返回总和

function f(a,b){
    s = (a+b)

    if(s == 2)
        return s-2
    else if (s > 1)
        return s-1
    else 
        return s
}
我希望这有帮助