我想在AS2中获得一些代码来插值二次贝塞尔曲线.节点意味着彼此之间保持恒定的距离.基本上它是沿着由3点定义的非双曲线二次贝塞尔曲线以恒定速度对球进行动画制作.谢谢!
Bezier曲线数学非常简单,所以我会帮你解决这个问题,你可以把它翻译成ActionScript.
2D二次贝塞尔曲线由三个(x,y)
坐标定义.我将这些称为P0 = (x0,y0)
,P1 = (x1,y1)
和P2 = (x2,y2)
.另外的参数值t
,其范围从0
到1
,用于指示沿曲线的任何位置.所有的x
,y
和t
变量都是实数(浮点).
二次贝塞尔曲线的方程是:
P(t) = P0*(1-t)^2 + P1*2*(1-t)*t + P2*t^2
因此,使用伪代码,我们可以像这样平滑地追踪贝塞尔曲线:
for i = 0 to step_count t = i / step_count u = 1 - t P = P0*u*u + P1*2*u*t + P2*t*t draw_ball_at_position( P )
这假定您已经定义了点P0
,P1
并P2
如上.如果你将控制点均匀分布,那么你应该沿曲线走得很好.只需将step_count定义为您希望看到的曲线上的步数.