Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|cite|improve this question
Do you have any progress you would like to share as an answer? – Merbs Nov 29 '12 at 8:07

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.