I've been investigating on the subject of customized (uneven) curve divisions recently. I was especially interested in finding a solution for controlling the "density" of division points on a curve.
What I've come up with is a definition which let's you aply a custom "density function" to a curve and divide it into segments of equal "weigth" rather than length.
The results are satisfactory:
... and quite precise:
However, some parts of the definition are still a bit convoulted.
Any suggestions how to make it simpler?
Has anybody tried other ways to solve similar problems?
I'll be making an attempt to write a VB component which does the same thing and maybe experiment with surfaces, so I'd really apreciate any feedback on this one.
I was helping a student with a very similar question just the other day.
One way is to use JellyFish attractor points :
I guess you could also make it so the attractors worked directly on the curve points, but kept them constrained to the curve, as that would probably be more intuitive to interact with.
A similar approach should also work for surface subdivision.
A similar method I worked on a while ago is Curvature Based Division.. needless to say, its got some very handy implementations in real world architecture. The definition is extremely simple, though it gets a bit complex for surfaces.
There have been times when I have found the Graphs in GH not good enough for my intentions, and so I go ahead and build one in the Rhino viewport itself as a curve object, and then sample its x & y values. For your example above, do you think it would be simpler to make a control curve around the curve to be divided, whose profile determines the density of divisions on the main curve -- also more intuitive I think?
I discovered a very quick and simple method of uneven point distribution along a curve you might find useful. The curve is simply offset and a surface is lofted between them. This surface is then unevenly subdivided with the graph mapper. You simply extract the points on the original curve and hide the surface. The same technique is used in the uneven diagrid source file that with the Grasshopper Primer 2.0.
You just have to make sure the loft created is rebuilt to maintain it as a single surface and not a brep.
Daniel Piker
One way is to use JellyFish attractor points :

I guess you could also make it so the attractors worked directly on the curve points, but kept them constrained to the curve, as that would probably be more intuitive to interact with.A similar approach should also work for surface subdivision.
Here is the definition: density.ghx
Nov 2, 2009
Suryansh Chandra
A similar method I worked on a while ago is Curvature Based Division.. needless to say, its got some very handy implementations in real world architecture. The definition is extremely simple, though it gets a bit complex for surfaces.
There have been times when I have found the Graphs in GH not good enough for my intentions, and so I go ahead and build one in the Rhino viewport itself as a curve object, and then sample its x & y values. For your example above, do you think it would be simpler to make a control curve around the curve to be divided, whose profile determines the density of divisions on the main curve -- also more intuitive I think?
Nov 5, 2009
Nathan Hoofnagle
You just have to make sure the loft created is rebuilt to maintain it as a single surface and not a brep.

Great definition!Nov 5, 2009