How to compute principal components for a curvature found given XYZ points? I have a certain XYZ set of points that make up an object. I chose a random point and make the nearest radius analysis and find the neighbors. From these neighbors, I get the green pointcloud curve which can be seen in the figure.

My goal now is to describe the curvature of those points with respect to the random point chosen (now the one on the top). What I found by searching is this:
The point cloud itself can be parameterized into a covariance matrix which will describe the data well. Then I know I need to find the principal components which can be done by taking an evd or svd. However, I have some questions.
The evd and svd will give 3 orthonomal vectors and 3 values each. To describe curvature I need k1,k2. Will these be the first two eigenvalues or the two first singular values? What does the third eigenvalue represent then?
Taking the svd will give only positive singular values and I found online that the evd of a covariance matrix gives only positive values. How can I classify my curvature into surface point classes as specified in the wiki article on principal curvature if these methods return positive values only?
Is this method rotation invariant? When passing the subsample of XYZ it can be saddle formed but if it were rotated 180 degrees it would have a "taco" form? The question could be irrelevant because XYZ is still represented within the local frame.
Or should I take another approach?
 A: I haven't heard of PCA being used to define curvature. I know, though, that PCA is a useful tool to reduce dimensionality of multivariate data, where most of the data that you have may only be relevant across certain dimensions and not others. In this situation, PCA helps you reducing the size of the problem at the cost of losing some explanatory power by telling you how you can rearrange your orthogonal axis in a completely different way that happens to order those dimensions from most relevant to least.
Effectively, that allows you, often times, reduce your dimensionality to - let's say- half of what it was in the first place, losing - say- 5% of the explanatory power.
In your case, and the point cloud you show, those local patches are 3 dimensional. If they are "flat" enough, PCA will give you some 3 new orthogonal axis where the first two will be good enough to describe your local patch, and the third one you can toss it.
And I imagine, that dimensionality reduction may ease the calculation of the curvature since your are down to a 2D space instead of a 3D one.
