[Math] Curvature of a 2D discrete curve

differential-geometrydiscrete geometry

Suppose one has a discrete plane curve in 2D, such that the curve is composed entirely of connected straight line segments. Clearly, the usual definition of curvature does not apply, as this curve is not smooth.

However, is there a curvature definition one could use, that would converge to the usual definition as more and more line segments were used to describe a smooth curve? That is, for a discrete plane curve, at each vertex point, our discrete curvature should be defined such that at the limit of the smooth curve, the new curvature at the vertex, should be the curvature of the curve at that point.

  1. Is such a definition possible?
  2. If it is, are there standard definitions for this discrete curvature?
  3. Is more than a single definition even possible?

$\qquad\qquad\qquad\qquad$enter image description here

Best Answer

Heuristically what I would do is, for each polygonal approximation:

  1. Decide on a value for both the direction and a curvature at each vertex, by fitting a circle through it and its neighbor vertices on each side.

  2. Along each of the straight segments, assign a curvature as a quadratic function of arc length, such that (a) it agrees with the values a the endpoints that you have already decided on, and (b) its integral over the entire segment is exactly the different in assumed direction between the vertices.

If your vertices always lie on the original smooth curve, as is the case in your illustration, this ought to converge nicely (that is, locally uniformly) towards the true curvature.

For some applications it may work just as well simply to interpolate linearly in step 2. Using a quadratic correction has the advantage that you can integrate it to find a continuously varying direction at each point on the segment, which can be used to simulate shading, bouncing off the curve, and the like.

Related Question