question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

I 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:

Screenshot 2022-03-04 145827

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:closed
  • Created 2 years ago
  • Comments:8 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
jo-muellercommented, Mar 7, 2022

There goes 😃 I’m not so seasoned on visualizing with vedo, though.

1reaction
jo-muellercommented, Mar 4, 2022

Hey @marcomusy ,

thanks for the super-fast reply!

One could be to smooth out your mesh surface to make the neighbor vertices more representative of the average region around them.

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.

There is also the possibility to explicitly fit a sphere to a 3d point cloud

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 👍

Read more comments on GitHub >

github_iconTop Results From Across the Web

Curvature - Wikipedia
In mathematics, curvature is any of several strongly related concepts in geometry. Intuitively, the curvature is the amount by which a curve deviates...
Read more >
Curvature -- from Wolfram MathWorld
The extrinsic curvature of curves in two- and three-space was the first type of curvature to be studied historically, culminating in the Frenet...
Read more >
Range Curvature - an overview | ScienceDirect Topics
Large curvature range: When the curvature is higher than the critical one, the bending stiffness increases deeply. In this phase, the gap between...
Read more >
Monitor Curvature: All the Info You Need About Curved Monitors!
Monitor curvature is a valuable measurement of how deeply a monitor's screen curves. It typically ranges from 1800R to 4000R. Why is this...
Read more >
Curvature (article) | Khan Academy
In formulas, curvature is defined as the magnitude of the derivative of a unit ... circumference of a circle with radius r as...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found