1

タイトなループで、2 つの浮動小数点値の間で線形補間を行っています。ただし、結果の唯一の必要な部分は符号 (結果が負か正か) です。私は今、a と b の間の典型的な lerp 操作を行っています。

a + f * (b - a);

実際のlerped値ではなく、結果の符号を知る必要があることを考えると、より効率的なものはありますか?

編集:「f」は補間に沿った一連の固定距離であり、事前にわかっています。

4

1 に答える 1

2

補間値が特定の範囲で符号を変更するかどうかを計算できます。

if Sign(a) <> Sign(b) then  //don't forget about zero sign
  change occurs

この場合、fパラメータを見つけます。lerp = 0

a + f0 * (b - a) = 0
f0 = a / (a+b)

小さい値lerpの場合は と同じ符号a、大きい場合は と同じ符号bなので、値を計算する必要はありませんlerp- と比較fするだけですf0

于 2016-04-11T08:01:39.090 に答える