在贝塞尔曲线上均匀分布对象

Fla*_*dan 1 math actionscript-3

有人可以告诉我这种疯狂是如何运作的:http: //www.youtube.com/watch?v = KL8QLLmUvbg

具体来说,我有兴趣在路径上平均分配给定数量的方块.我也想知道这是否适用于多个线段 - 这是一个弯曲的线段,我需要一个解决方案,在一条大线上分配对象,其中包含多条曲线.

基本上我正试图制作一个真实地跟随角色的尾巴.

谢谢

Mic*_*son 6

首先,Bezier样条曲线是由参数化的曲线t.但是t沿曲线不是弧长.所以程序就是这样.

  1. 计算贝塞尔曲线的长度.
  2. 找到将曲线分成N个相等长度段的t值.

然而,这两个步骤很棘手.

第一个只有二次贝塞尔曲线的闭合形式解.(你可以在这里找到解决方案)否则你使用细分和近似方法,或数值积分方法(在某种意义上这些是等价的 - 我会采用数值积分方法,因为这有更好的可证明行为,代价是略棘手的实施,但你可能会或可能不会关心.)

第二个基本上是对值的猜测,并改进方法(在步骤1的每个步骤使用相同的计算方式).我使用割线样式搜索来实现这一点,因为我怀疑使用牛顿方法搜索所需的衍生物太昂贵而无法计算.

一旦获得了对象的位置,就需要使用曲线切线和余切来为对象创建局部参考框架.这允许对象很好地坐在曲线的路径中,而不是全部具有相同的方向.请注意,这仅适用于2D - 在3D中,您仍然可以通过面向对象获得一些奇怪的行为.