问题
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.
回答1:
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:
Approximate Arc Length Parametrization, in SIBGRAPI 1996.
Adaptive sampling of parametric curves, in Graphics Gems V, 1995.
Computing the arc length of parametric curves, in IEEE Computer Graphics and Applications, 1990.
Point-based methods for estimating the length of a parametric curve, in Journal of Computational and Applied Mathematics, 2006.
来源:https://stackoverflow.com/questions/28761357/how-to-get-t-for-average-distance-of-b%c3%a9zier-curve