MathHelper.Lerp C#(线性插值)

MathHelper.Lerp C#(线性插值),c#,xna,linear-interpolation,C#,Xna,Linear Interpolation,这个函数有一个小问题,MathHelper.Lerp(float f1,float f2,float amount)。我试图做到的是:我的程序中有一个数据表,其中有角度和一个与这个角度值对应的值。当您选择一个表中不存在的角度时,我想使用线性插值来管理它。我想要一些东西来代替我的第一个实现,它看起来是这样的: else if(angle >= 50 && marklast < 65) { DataRow row1 = table.

这个函数有一个小问题,
MathHelper.Lerp(float f1,float f2,float amount)
。我试图做到的是:我的程序中有一个数据表,其中有角度和一个与这个角度值对应的值。当您选择一个表中不存在的角度时,我想使用线性插值来管理它。我想要一些东西来代替我的第一个实现,它看起来是这样的:

else if(angle >= 50 && marklast < 65)
        {
            DataRow row1 = table.Rows.Find(50);
            DataRow row2 = table.Rows.Find(65);
            someVariable = SomeMethod(row1, row2);
        }
else如果(角度>=50&&marklast<65)
{
DataRow1=table.Rows.Find(50);
DataRow2=table.Rows.Find(65);
someVariable=SomeMethod(第1行,第2行);
}

所以现在我有很多这样的If语句,我想用另一种方法来处理
MathHelper.Lerp
,问题是我很难得到函数,数量是多少?你能为我的实现以一种好的方式修改它吗

金额是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);

假设你的桌子上没有超自然生物,我编辑了你的问题:)