如何找到Bezier Spline的平均速度和加速度?

时间:2012-02-08 09:20:30

标签: algorithm bezier

在我的应用程序中,我绘制Bezier样条曲线的屏幕坐标很少,我需要通过该样条曲线找到平均速度和加速度。

我应该怎么做?

我将以像素/秒和像素/平方秒的形式找到它。 然后,一旦用户提供像素计映射,就将其转换为m / sec和m / sec sq。

但是我如何获得速度或速度,因为我不能仅仅采取起点和终点,它必须通过该曲线。

2 个答案:

答案 0 :(得分:1)

您需要根据绘图中的时间维度区分曲线一次(这里我假设x轴/水平轴代表时间; y轴/垂直轴代表行进距离)以获得局部速度零件。相对于相同的时间维度区分两次以获得给定点处的加速度。这基本上是沿着曲线的每个点计算速度的梯度,以及速度的梯度来得到速度的变化率,即加速度。

为此,您可以使用numerical integration根据该点/坐标位置周围的数据,在样条曲线上的每个离散点(或坐标)处获取新的量(速度和加速度)。

答案 1 :(得分:1)

嗯,暂时保留像素/性别和像素/平方秒的方法。

我从你的问题中假设你有一个带有某种Bezier样条的x-y图,某种曲线代表了随着时间的推移。 x轴通常表示时间,而y轴表示方式(长度)s。

速度是长度随时间的推导,加速推导。推导只是(优选地)一对点中的dy / dx的比率。

因此,开始时需要插入并从Bezier样条曲线中收集尽可能多的点。把它留给你。从那里,

dy = y(i+1) - yi
dx = x(i+1) - xi
velocity = dy/dx

因此,速度随时间的曲线图将按时间绘制。同样适用于加速,只需重复这个过程。