Curvature range
See original GitHub issueI am playing around with the vedo library a bit and find it super helpful to work with surfaces. In particular, I turn point clouds into surfaces with recoSurface()
and then measure curvatures with the addcurvatureScalar()
function and the Gaussian curvature method.
The visualized surface looks like this:
According to the definition of the curvature method, the algorithm takes into account the edges connecting an individual vertex with its neighbours. I was wondering if it was possible to increase the range within which points will be considered as neighbours and thus calculate the curvature in a bit more global fashion? Because for a sufficiently large amount of points, any surface will appear locally flat (as in the screenshot), but I’m more interested in the larger-scale curvatures.
Do you have a suggestion on how to do this? Any tips are greatly appreciated 😃
Issue Analytics
- State:
- Created 2 years ago
- Comments:8 (7 by maintainers)
Top GitHub Comments
There goes 😃 I’m not so seasoned on visualizing with vedo, though.
Hey @marcomusy ,
thanks for the super-fast reply!
This was my first idea as well, aside from averaging the curvatures of neighboring vertices. But this would lead me a bit to the problem that the curvature would then depend more on the number of remaining points on the surface rather than the “true” curvature. If possible, I would like to keep the surface density of vertices constant; I currently do this with the
densify()
function.This is a brilliant idea! I could then iterate over all the vertices on the surface, extract all neighbors within a defined range and fit a sphere to these. I’ll try this and let you know 👍