Grasshopper

generative modeling for Rhino

# curvature metaball

What is a good way to find the curvature at a specific point on a metaball?

I'm looking for a mean curvature value as can be obtained from a surface by the surface curvature component.

I know metaballs created by grasshopper aren't surfaces but a collection of lines. Maybe combining the curvature of lines intersecting at one point can result in the curvature of the metaball at that point?

Tags: curvature, metaball

Views: 1589

### Replies to This Discussion

Seems like an interesting problem. I think the place to start would be to somehow find the normal vector at that given point (P). My guess is it can be derived from vectors AP, BP, CP ... where A,B,C ... are base input points which influence the metaball's surface at P.

The next step would be to find intersections of the mtb surf with a number of planes going through the normal vector and check the curvatures of the resulting curves. The min and max values would give you an approximation of the principal curvatures of the mtb surface.
What exactly is the mean curvature?

h=1/2*(k1+k2)

or

h=1/n*sum(from i=1 to i=n)(ki)

so, is it the mean of the minimal and the maximal curvature at that point

or

is it the mean of all the curvatures at that point
Could this be correct?
Bigger ball is bigger mean curvature.

I used h=1/2*(k1+k2). It's an aprox, not exact.
I'm afraid it's not since the pattern isn't symmetrical... From the images it looks as if you measured the curvatures of the section curves and used them as k1 and k2.

So the result is highly dependant on the orientation of the metaball - rotate it a bit and you'll see the pattern change.
Thanks, I'll have another go.
Ok, I've got something:

1. normal vectors

2. curve sections at given point

3. curvatures of the curves

Step 4 is just identyfing the min and max of these and computing the mean curvature.

The definition has some errors and is so messy I won't post it here just yet... it would only generate confusion.
I think this should be it.

It needed a little more tweaking, but I think it's finished now.

It wasn't finished. :)
Now it is..... I think.

Hi,

Can you post the definition? I'd like to take a look at it.

My method turns out to be quite inefficient, since you'd have to calculate millions of curvatures to get the min and max values even remotely accurate.

So it seems I've hit the wall at calculating the normal vector.
I've uploaded the definition if anyone is interested.

Attachments:

Hey I am trying to create lines or normal vectors with their lengths varying due to the curvature of the surface.. is this something you might be able to help with?

Thanks megan

hi Megan

first of all a couple of questions:

1. I assume you're talking about a metaball surface since you post this question here, but just in case - are you?
2. If yes, do you absolutely need to use metaballs? (a standard NURBS surface is much easier to handle)
3. What type of curvature do you want to sample? (Min, Max, Mean, Gaussian? - If you're not familiar with those names maybe you can check out Rhino's help file, you'll find brief explainations there, note that surface curvature is a subject a bit more complicated than curve curvature)

also, do you have an example file that you're working on? what problems have you encountered? the more specific a question the more helpful the answer.

by 雷锋

by 雷锋

by 雷锋

• View All