Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Equidistant points across Bezier curves

Currently, I'm attempting to make multiple beziers have equidistant points. I'm currently using cubic interpolation to find the points, but because the way beziers work some areas are more dense than others and proving gross for texture mapping because of the variable distance. Is there a way to find points on a bezier by distance rather than by percentage? Furthermore, is it possible to extend this to multiple connected curves?

like image 790
Cristián Romo Avatar asked Aug 13 '08 23:08

Cristián Romo


People also ask

How do you generate equidistant points?

You can make n-1 equidistant points by using the unit vectors along each of the axis aka. (1, 0, 0, 0, ..., 0); (0, 1, 0, 0, ..., 0); (0, 0, 1, 0, ..., 0); etc., The last nth point will be along the 1, 1, 1, ..., 1 direction.

How many control points can a Bézier curve have?

A bezier curve is defined by control points. There may be 2, 3, 4 or more.

Does Bézier curve pass through all control points?

k=0: The Bezier curve starts at the first control point and stops at the last control point. (In general, it will not pass through any other control point.) k=1: The vector tangent to the Bezier curve at the start (stop) is parallel to the line connecting the first two (last two) control points.


1 Answers

This is called "arc length" parameterization. I wrote a paper about this several years ago:

http://www.saccade.com/writing/graphics/RE-PARAM.PDF

The idea is to pre-compute a "parameterization" curve, and evaluate the curve through that.

like image 65
J. Peterson Avatar answered Oct 19 '22 16:10

J. Peterson