/**
* 计算塞贝儿曲线
*
* @param t 时间,范围0-1
* @param s 起始点
* @param c1 拐点1
* @param c2 拐点2
* @param e 终点
* @return 塞贝儿曲线在当前时间下的点
*/
private Point CalculateBezierPoint( float t, Point s, Point c1, Point c2, Point e )
{
float u = 1 - t;
float tt = t * t;
float uu = u * u;
float uuu = uu * u;
float ttt = tt * t;
Point p = new Point((int) (s.x * uuu), (int) (s.y * uuu));
p.x += 3 * uu * t * c1.x;
p.y += 3 * uu * t * c1.y;
p.x += 3 * u * tt * c2.x;
p.y += 3 * u * tt * c2.y;
p.x += ttt * e.x;
p.y += ttt * e.y;
return p;
}
附件:http://down.51cto.com/data/2365492
本文转自 zl1030 51CTO博客,原文链接:http://blog.51cto.com/zl1030/1619762