2012-02-21 94 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 2012-02-21 14:39:32

回答

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);