Gaussian Curvature

Last Updated: May 6, 1996
To understand what the Gaussian curvature of a point on a surface is, you must first know what the curvature of curve is. At any point on a curve in the plane, the line best approximating the curve that passes through this point is the tangent line. We can also find the best approximating circle that passes through this point and is tangent to the curve. The reciprocal of the radius of this circle is the curvature of the curve at this point.

Note that the best approximating circle may lie either to the left of the curve, or to the right of the curve. If we care about this, then we establish a convention, such as giving the curvature positive sign if the circle lies to the left and negative sign if the circle lies to the right of the curve. This is known as signed curvature.

Normal section curvature is one generalization of curvature to surfaces. Given a point on the surface and a direction lying in the tangent plane of the surface at that point, we compute normal section curvature by intersecting the surface with the plane spanned by the point, the normal to the surface at that point, and our direction. The normal section curvature is the signed curvature of this curve at the point of interest.

If we look at all directions in the tangent plane to the surface at our point, and we compute the normal section curvature in all these directions, then there will be a maximum value and a minimum value. Gaussian Curvature is the product of these maximum and minimum values. Mean curvature is the average of these maximum and minimum values.

A positive Gaussian curvature value means the surface is locally either a peak or a valley. A negative value means the surface locally has a saddle points. And a zero value means the surface is flat in at least one direction (ie, both a plane and a cylinder have zero Gaussian curvature).

One way of shading an image with Gaussian curvature (which is a scalar) is to use the curvature to vary the Hue in an HSV color system. In the images you see in the other pages, I assigned Red to a Kmax, a positive value of Gaussian curvature, Green to zero Gaussian curvature, and Blue to Kmin, a particular negative value of Gaussian curvature. Any values greater than Kmax (or less than Kmin) value were truncated to my chosen value. For any value between 0 and Kmax, I interpolated the Hue value from Green to Red. Similarly, I interpolated between Green and blue for values between 0 and Kmin. This resulted in shades of Yellow and Cyan (which lie between Red-Green and Green-Blue respectively).