# Gradually undulating points on curve

Dear experts

I’ve got a problem that seems so simple yet it’s stumping me. I’m trying to divide a curve into a series of points, but where the points are closer and then further apart depending on where I need it. I know it’s possible to do this using a graph mapper, but is it possible to do this using a custom graph curve that I’ve drawn myself? I’ve been trying to figure out whether I can extract Y values from my custom graph curve and use those, but I just can’t figure out the next step. Mass Addition and then shifting the next value for ‘t’ a bit further on? At some point, the ‘x’ points are no longer aligning.

I’m attaching the grasshopper definition, but I appreciate it’s a mess - it’s a work in progress. Perhaps more useful is this sketch below:

Try reparameterising the curve and then the EvaluateCurve component.

You could use your curve to create a list of parameters between o and 1 to evaluate the curve to be divided.

Thanks Martyn, that was a good prompt. I’m getting something pretty close now by doing a mass addition of the Z values of the ‘graph’ curve and then using those to split the re-parametrised original curve. Not quite perfect yet, but workable.

This sort of work with 2 2D curves that have same X bounds.

derivative spacing.gh (9.2 KB)

I think something similar can be made but by working with nurbs properties like weights and/or then evaluating with a incremental parameter… incomplete idea for now…

Question:

On the “spacing graph” that you use to determine the density… the vertical axis is the density (or the inverse of density), but what is the horizontal axis?
The proportional length position on target curve?
Or the proportional X position? (like my attached solution)
Try to understand this question properly… the outcome is completely different between those 2 cases.

Not working as well as I’d hoped, in terms of actual control unfortunately. Seems so simple yet I just keep missing the trick!

Nico Cluster.ghcluster (8.5 KB)

Ideally the proportional X position. This means the graph will actually track over the first curve to be edited. Unfortunately, using mass addition, the positions keep shifting.

i am not sure i got the question right… but does this help?

Looks good but I’m not sure, can you upload the file? I’m trying to use a custom curve to define portal spacing on a second curve.

… sure
crvDivisionByMasterCrv.gh (6.9 KB)

Thanks, it seems this is using a slightly similar method to the earlier one, but adjusting the y-values on the graph curve doesn’t seem to do anything. What I’m trying to achieve is to adjust the spacing using a secondary curve. The issue being, that this spacing is dynamic - the wider it gets, the more the domain adjusts of the remaining curve, and then the two no longer line up. Hope that’s a bit more clear.

this works only on y-values no matter what domain or length the crvs have
crvDivisionByMasterCrv.gh (10.7 KB)

What you need looks a bit like this