0

我对这个功能有一个小问题,MathHelper.Lerp(float f1, float f2, float amount). 我想要完成的是:我的程序中有一个带有角度的 DataTable 和一个与该角度值相对应的值。当您选择表中不存在的角度时,我想使用线性插值来管理它。我想要一些东西来代替我的第一个实现,它看起来像这样:

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

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

4

1 回答 1

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);
于 2012-02-21T14:41:56.453 回答