Sign in to follow this  
Catmull Dog

Modifying Catmull Rom to Add Centripetal Parameterization

Recommended Posts

Greetings.

While Catmull Rom splines have the nice property of going through the control points and are "continuous enough" for most applications, they sometimes behave unpredictably. Namely, the points of highest curvature on the resulting curve are not always where the control points lie.

A solution for this is to use what is called Centripetal Parameterization which focuses more sampled points on the highest areas of curvature (the term derives from the way a car would slow down when navigating sharp turns, unless driven by [url="http://www.dcshoes.com/us/en/auto/gymkhana-five"]this guy[/url]).

The general idea is:

t i+1 = t i + |P i +1 - P i] ^ a // Where (0<= a <=1) (0 is Uniform,.5 is Centripetal and 1 is Chordal).

[b]Note:[/b] This is a different type of parameterization than Chord length reparameterization (see attached slide showing adjusting the number of points between spans without altering the curve itself). Centripetal alters the trajectory of the curve, similar to the way a Kochanek Bartels spline applies Tension, but unique.

There are many articles on this subject. Two of the best I found are [url="http://www.cemyuksel.com/research/catmullrom_param/catmullrom_cad.pdf"]Parameterization and Applications of Catmull-Rom Curves[/url]and the original E T Y Lee article [url="http://www.cs.bgu.ac.il/~leonid/na105/Splines/Lee.pdf"]Choosing nodes in parametric curve interpolation[/url], but they don't seem to explain in layman terms how to go about modifying an existing CR algorithm to make the required changes (ideally there would be an adjustable alpha to blend from Uniform (a=0) to Centripetal (a=.5) to Chordal (a=1.0), but I'm not sure if that refers to blending the results of two functions or if the alpha value really plugs in (it is raised to the power of a so it's square root for Centripetal).

[b]Question:[/b]

Does anyone have the actual CR algorithm that implements Centripetal Parameterization? How different from the original CR algorithm is it and how much does it cost?

With KB splines it's only a few lines difference, but not something you could improvise without a math Ph. D.

Thanks in advance!

CRD Edited by Catmull Dog

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this