Exponential Gradience of Points

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.

1 Like

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.

1 Like

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)

1 Like

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.

1 Like

Yes, I’ll try your way. I am a bit confused about 2nd part of your approach.

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. :roll_eyes:
Thanks again for your help.

1 Like