I like to implement an arc-length Parameterization of a cubic bezier curve. So far I have implemented the method of calculating the arc length of the curve and now I'm stuck at calculating the times to divide the original curve into equal arc length segments.

What i have:

  • $m = 5$ The number of segments to create
  • $i = 0,1, ...., m$
  • $s = \text{arc length}$
  • $l = s / m$
  • $t_0,t_1,...,t_n$ The parameter values of the original bezier curve.

The formula I have: $$\int_{t_0}^{\tilde{t_i}} ds/dt = i * \tilde{l}$$

To calculate the value of $\tilde{t_i}$ I would have to go through 2 steps:

  1. Calculate a spline segment indexed by $j$ which satisfies $\sum_{p=0}^{j-1} l_p \le i * \tilde{l} < \sum_{p=0}^{j}l_p$
  2. Compute $\tilde{t_i}$ such that $\int_{t_j}^{\tilde{t_i}}ds/dt * dt = i * \tilde{l} - \sum_{p=0}^{j-1}l_p$

To my questions:

  1. What is $\tilde{l}$? I know it is an approximated value but is it neccesery to be different or could just use $l$?

  2. The first calculation of $j$ makes sense, but how would I solve the second to $\tilde{t_i}$?

Maybe I just don't understand correctly what the integral $\int_a^bds/dt*dt$ is or how I can calculate it programmatically.

I am following this paper.

  • 1
    $\begingroup$ Do you have any progress you would like to share as an answer? $\endgroup$ – Merbs Nov 29 '12 at 8:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.