Grasshopper

algorithmic modeling for Rhino

Hey all :-) 

I'm looking for a way to find all "inflection-curves" for a given surface.. (where the surface goes from concave to convex.)

I don't want to use a large number of UV-points and use 'evaluate surface'. I would like the exact curve! So how do i evaluate the entire surface and find the curve? 

I'll going to split the surface using the "inflecition-curve"

"inflection-curves" - Does this kind of curve have a name? 

Views: 3073

Replies to This Discussion

You're going to have to settle for some sort of approximation, the exact infection curve would probably have to be a degree=17 curve with a gazillion control-points or something equally ridiculous.

I'm not quite sure how to solve this problem. Hell, I'm not even sure exactly of the mathematics of surface inflection curves. I can ask Dale Lear or Chuck Welsh at McNeel Seattle headquarters to see what they think.

--

David Rutten

david@mcneel.com

Tirol, Austria

I've been messing around with a recursive curvature zero-finder, it's sort of working but still quite a lot of bugs due to fringe cases. Also, the output is an (unsorted) collection of tiny line segments rather than a neat set of nurbs curves:

Surface colour is from the Rhino _CurvatureAnalysis command and the red curves are the output of the component.

--

David Rutten

david@mcneel.com

Tirol, Austria

This incidentally is the old-fashioned way of doing it, you need a very high mesh density though to get a halfway decent accuracy.

--

David Rutten

david@mcneel.com

Tirol, Austria

Attachments:

To explain the logic a bit:

  1. Create a mesh on the surface. The more accurate the mesh, the more accurate the result will be.
  2. Decompose the mesh so you get access to the vertices.
  3. Project the XYZ vertices back onto the surface UV space.
  4. Measure the Mean curvature at every UV vertex.
  5. Create a new mesh, using the X,Y locations from the projected vertices, the Z component from the curvature evaluation (I multiplied by a 100 btw) and the faces from the original.
  6. Intersect this mesh with the World XY plane, you now have polylines in UV space that approximate the inflection curves.
  7. Map the polylines back onto the surface, converting UV into XYZ.

--

David Rutten

david@mcneel.com

Tirol, Austria

DAMN... Thanks for the replies!
One word: AWESOME.!!..!
I Would like to see the first solution in a bugs free version 2.0 in the next GH release ;-) Hehe
I think I have a new way to solve the bigger problem using some of the last solution..

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service