On Wed, 28 Feb 2007 12:08:04 -0500, Bruce Fischl
<[log in to unmask]> wrote:
>for Gaussian curvature using the discrete methods is the way to go (it's
>essentially how much less than 180 deg the angles of the triangle add up
>to). I don't think you can get principal directions or curvatures this way.
Hi Bruce,
I've had a chat to Philip, and it sounds like it is possible to get the
complete curvature tensor with discrete methods; he provided the following
information:
"[...] refers to some subtle issues:
From a Discrete Geometry point of view: the Gauss Curvature is naturally
defined at VERTICES: it's the angle defect (proportional to 2 pi - sum of
angles there) but, the Mean curvature is naturally defined on EDGES: (it's
proportional to the dihedral angle = angle between normals of facets
containing that edge).
Thus, in my code, I 'interpolated' the mean curvature from edges to
vertices, i.e. attribute some mean curvature of the edge to its vertices.
(check vtkCurvatures.cxx for details).
The Gauss curvature is analytically: K = k_1 * k_2, the mean H = (k_1 +
k_2)/2 thus you can solve for k_1, and k_2 (the principal curvatures), but
it's not always good. At first I didn't know of another geometric (angle
based) way to define the principal curvatures but I found a report by
Taubin, who computed discretely the 'curvature tensor' at every vertex: from
it you can compute eigenvectors/eigenvalues, which are principal
directions/curvatures. [...]"
I've found the Taubin reference here:
http://citeseer.ist.psu.edu/taubin95estimating.html
And a more recent related paper (which PB also recommends):
http://citeseer.ist.psu.edu/meyer02discrete.html
Philip's website has some more details, references, and code:
http://www.cs.ucl.ac.uk/staff/p.batchelor/curvatures/curvatures.html
Best,
Ged
|