How to distribute points on a line with gradience? Would I use Sin/Cos function to get this?
Points in red is what I am trying to achieve.
I don’t think you want sin/cos or any trig function as those are generally cyclical (they come back to a value). Looks more like you want some kind of growth which just goes…
One thought:
- Build a range from 1 to wherever (bigger distance between start and end numbers will have more ‘spacing’).
- Multiply the range by itself or a constant to increase the space between values.
- Math.RemapRange function to set the values from 0 to 1 while maintaining the relative relationships (you can almost think of this node as ‘scale’ but for numbers).
- Curve.PointAtParameter with the target curve and the remapped values.
You could also try doing a mass addition method (List.Count, Range, *-1, List.Drop, Math.Sum) instead of the multiplication / exponential growth.
Thanks Jacob!
Here’s my take at it, the gradience is very linear here, can’t even notice it. It needs to be more exponential.
Gradience.dyn (23.4 KB)
The way you build the range isn’t being scaled up exponentially - you’re just getting a consistent distance and re-mapping the values as a result.
Try something like this where you’re multiplying the item by itself (in this case using a Math.Pow node to do the exponents, but a multiplication function can work just as well). Note that I’m using a 1-10 sequence not a 0-1 sequence.
From the List.DropItems on I was just doing some geometry comparison to show numerically how the scale of the steps changes as the powers change.
I see, whereas I need to see my steps visually.
Thanks again for your help.