Search code examples
iosmathcurvebezierlinear-interpolation

How to get t for average distance of Bézier curve


I am calculating the interpolation position of Bézier curve by using the formula:

pow(1 - t, 2) * start + 2.0 * (1 - t) * t * control + t * t * end

The problem is that if I linear step the t by for example 0.1 per segment, the length of segment on the Bézier curve is not average.

Is there any way to get the corresponding array of t for getting average or approximately average length of the segment on the curve.


Solution

  • It seems you want an approximate parametrization by arc length.

    For the quadratic case, there is a closed-form expression for the arc length of a Bézier curve, but it is complicated and you still need table lookup. These papers discuss general techniques: