Mar*_*rty 10 math actionscript-3
使用以下AS3绘制曲线curveTo():
var line:Shape = new Shape();
line.x = line.y = 20;
line.graphics.lineStyle(2, 0xFF0000);
line.graphics.curveTo(200, 200, 200, 0);
addChild(line);
Run Code Online (Sandbox Code Playgroud)
由此产生的视觉效果是

现在我想要一些能够遵循这条道路的东西; 如何将此视觉转换为坐标列表?我努力学习任何高级数学,但我假设有一个明显的(某些)公式curveTo()用于创建上面的我可以复制和修改以创建我想要的列表.
结果可能看起来像这样(假设点之间的偏移约为5px).
Vector.<Point> = [
new Point(20, 20),
new Point(23, 23),
new Point(27, 28),
new Point(33, 32),
new Point(40, 37)
/* ...etc... */
];
Run Code Online (Sandbox Code Playgroud)
结果将用于诸如创建遵循以下路径的射弹雨的事物,例如:

kap*_*aki 14
通过阅读actionscript文档,我了解到动作脚本中的curveTo方法会生成二次贝塞尔曲线.
曲线由您在代码中指定的三个"控制点"组成:
control point 1 (p1) = (20,20)
control point 2 (p2) = (200,200)
control point 3 (p3) = (200,0)
Run Code Online (Sandbox Code Playgroud)
要沿着曲线在0到1范围内的值u内插值(0为起点,1为终点),可以使用所谓的Bernstein多项式.对于二次曲线(您的情况),多项式是:
B1 = (1 - u) * (1 - u)
B2 = 2 * u * (1 - u)
B3 = u * u
Run Code Online (Sandbox Code Playgroud)
只需计算参数值u的这些数字,并将控制点加上相应的Bernstein多项式.
point on curve at parameter *u* = p1 * B1 + p2 * b2 + p3 * B3
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果要沿曲线获得5个点,则可以在参数值0,0.25,0.5,0.75和1.0处计算曲线上的点