2012-02-21 24 views
0

私はこの関数に小さな問題があります。MathHelper.Lerp(float f1, float f2, float amount)です。私が達成しようとしているのはこれです:私は、この角度値に対応する角度と値を持つ私のプログラムにDataTableを持っています。テーブルにない角度を選択すると、これを管理するために線形補間を使用したいと考えています。MathHelper.Lerp C#(線形補間)

else if(angle >= 50 && marklast < 65) 
     { 
      DataRow row1 = table.Rows.Find(50); 
      DataRow row2 = table.Rows.Find(65); 
      someVariable = SomeMethod(row1, row2); 
     } 

だから今、私はたstatments場合はこれらの多くを持っていると​​でこれを行うための他の方法をしたいと思い、問題は、私は次のとおりです。私はこのように見えたこの私の最初の実装を置き換えるために何かがしたいです機能を得るのに苦労している、量は何ですか?そして、これを私の実装に適した方法で修正しますか?

+0

、私はあなたの質問を編集しました:) – phoog

答えて

0

金額は0..1の範囲の値です。

if it is 0 lerp return source value, 
if it is 1 lerp return target value, 
if it is a value between 0..1 lerp will return a linear interpolated value between the source and the target values. 

私はあなたが何をしたいかわからない...私はこのようなものだと思う:あなたのテーブルには超自然の生き物が存在しないと仮定すると

Amount = (angle - 50)/(65-50); 
InterpolatedValue = MathHelper.Lerp(row1.Value, row2.Value, Amount);