# Divide a surface by curvature values

I am trying to divide a surface depending on the curvature value of the surface. I need to divide a surface into 2 different groups. curvature value <7.00m and another one will be curvature value >= 7.00 m…I have tried 3 different approximations to the problem i attached the image file and the grasshopper

test_01.gh (15.9 KB)

Does anyone figure it out wich one will be the best one? or how can i continue the definition?

Javier

Before I go on my Christmas holiday, here’s how I would start:

1. Normalise the surface uv domain, so you’re always working in (0.0 \mapsto 1.0).
2. Create a mesh plane from world coorinate (0,0,0) to (1,1,0) with a largish number of faces. The more faces, the more accurate your result.
3. Deconstruct the mesh to get all vertices.
4. Evaluate the curvature of your surface at all vertex coordinates. Since your mesh was between zero and one and your surface uv domain too, you should get full coverage.
5. Convert each curvature scalar value into a z-axis vector with that length.
6. Move all the vertex points straight up using those vectors.
7. Construct a new mesh using the new vertices and the old faces. You now have a 2d graph of your surface curvature with u mapped along x and v mapped along y and curvature mapped along z.
8. Intersect this new mesh with a horizontal plane whose elevation is 7.0, or whatever your threshold value should be.
9. Project the resulting polylines back onto the world xy plane.
10. Optional, replace your polylines with smooth curves by interpolating a curve through the control points or by some other method.
11. Transform your curves from the world xy plane onto your surface. There’s a component or two for this, can’t remember their names now.
12. Split your surface using those mapped curves.

That should be it.

3 Likes

Thx @DavidRutten
I will try and I will upload the improvements