李锦俊(mybios)的blog

游戏开发 C++ Cocos2d-x OpenGL DirectX 数学 计算机图形学 SQL Server

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

公告

QQ:30743734
EMain:mybios@qq.com

常用链接

留言簿(16)

我参与的团队

最新随笔

搜索

  •  

积分与排名

  • 积分 - 366593
  • 排名 - 67

最新评论

阅读排行榜

评论排行榜

繁体的間補,也就是我们常说的补间插值,或者线性插值。
//=====================================
/**
等速運動用的間補

@param start [in] 起點
@param end  [in] 終點
@param all  [in] 起點到終點經過的時間
@param now  [in] 現在時間

@return 以now為基礎的間補值
*/

//=====================================
float FlatSpeed( float start, float end, long all, long now )
{
return (start + ((end - start) * now / all));
}


//=============================================
/**
加速運動用的間補

@param start [in] 起點
@param end  [in] 終點
@param all  [in] 起點到終點經過的時間
@param now  [in] 現在時間

@return 以now為基礎的間補值
*/

//===========================================
float AddSpeed( float start, float end, long all, long now )
{
return ( (start)+((end)-(start)) * (((           (now)+1)*(now))>>1/ ((((all)+1)*(all))>>1) );
}


//=============================================
/**
減速運動用的間補

@param start [in] 起點
@param end  [in] 終點
@param all  [in] 起點到終點經過的時間
@param now  [in] 現在時間

@return 以now為基礎的間補值
*/

//============================================
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用的間補計算

@param p1 [in] 起點
@param p2 [in] 中間點
@param p3 [in] 終點
@param t [in] 現在的時間(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用的間補計算

@param p1 [in] 起點
@param p2 [in] 中間點
@param p3 [in] 終點
@param t [in] 現在的時間(01)

@return  在t方面的值
*/

//=========================================
float Neville( float p1, float p2, float p3, float t )
{
*= 2;
p1 
= p2 + ( p2 - p1 ) * ( t - 1 );
p2 
= p3 + ( p3 - p2 ) * ( t - 2 );
return p2 + ( p2 - p1 ) * ( t - 2 ) * 0.5f;
}
posted on 2006-11-17 22:27 李锦俊(mybios) 阅读(677) 评论(0)  编辑 收藏 引用 所属分类: 数学、几何和图形学

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理