繁體的間補(bǔ),也就是我們常說(shuō)的補(bǔ)間插值,或者線性插值。
//=====================================

/**//**
等速運(yùn)動(dòng)用的間補(bǔ)

@param?start?[in]?起點(diǎn)
@param?end??[in]?終點(diǎn)
@param?all??[in]?起點(diǎn)到終點(diǎn)經(jīng)過(guò)的時(shí)間
@param?now??[in]?現(xiàn)在時(shí)間

@return?以now為基礎(chǔ)的間補(bǔ)值
*/
//=====================================
float?FlatSpeed(?float?start,?float?end,?long?all,?long?now?)


{
return?(start?+?((end?-?start)?*?now?/?all));
}

//=============================================

/**//**
加速運(yùn)動(dòng)用的間補(bǔ)

@param?start?[in]?起點(diǎn)
@param?end??[in]?終點(diǎn)
@param?all??[in]?起點(diǎn)到終點(diǎn)經(jīng)過(guò)的時(shí)間
@param?now??[in]?現(xiàn)在時(shí)間

@return?以now為基礎(chǔ)的間補(bǔ)值
*/
//===========================================
float?AddSpeed(?float?start,?float?end,?long?all,?long?now?)


{
return?(?(start)+((end)-(start))?*?(((???????????(now)+1)*(now))>>1)?/?((((all)+1)*(all))>>1)?);
}

//=============================================

/**//**
減速運(yùn)動(dòng)用的間補(bǔ)

@param?start?[in]?起點(diǎn)
@param?end??[in]?終點(diǎn)
@param?all??[in]?起點(diǎn)到終點(diǎn)經(jīng)過(guò)的時(shí)間
@param?now??[in]?現(xiàn)在時(shí)間

@return?以now為基礎(chǔ)的間補(bǔ)值
*/
//============================================
float?SubSpeed(?float?start,?float?end,?long?all,?long?now?)


{
return?(?(start)+((end)-(start))?*?(((((all)<?<1)-(now)+1)*(now))>>1)?/?((((all)+1)*(all))>>1)?);
}

//==============================================

/**//**
Bezier用的間補(bǔ)計(jì)算

@param?p1?[in]?起點(diǎn)
@param?p2?[in]?中間點(diǎn)
@param?p3?[in]?終點(diǎn)
@param?t?[in]?現(xiàn)在的時(shí)間(0?1)

@return??在t方面的值
*/
//============================================
float?Bezier(?float?p1,?float?p2,?float?p3,?float?t?)


{
return?(?((1-t)*(1-t)*p1)?+?(2*(1-t)*t*p2)?+?(t*t*p3)?);
}

//===========================================

/**//**
Neville用的間補(bǔ)計(jì)算

@param?p1?[in]?起點(diǎn)
@param?p2?[in]?中間點(diǎn)
@param?p3?[in]?終點(diǎn)
@param?t?[in]?現(xiàn)在的時(shí)間(0?1)

@return??在t方面的值
*/
//=========================================
float?Neville(?float?p1,?float?p2,?float?p3,?float?t?)


{
t?*=?2;
p1?=?p2?+?(?p2?-?p1?)?*?(?t?-?1?);
p2?=?p3?+?(?p3?-?p2?)?*?(?t?-?2?);
return?p2?+?(?p2?-?p1?)?*?(?t?-?2?)?*?0.5f;
}





































































































