Divide curve ramp

@DanielK1 I’m switching our discussion from yesterday to here, it’s your turn now :wink:

Hi,
I was wondering if there is a better way to divide a curve in smaller segments with ever increasing steps, so that the last element has a specific length (e.g. 5mm) here is my approach: Sadly after remapping the last element has a slightly bigger value than optimal (<5mm). Also it only works with “symetric” graphs-mappers…

thanks

btw:I highly recommend rich graph mapper


smooth-start-v2.gh (15.2 KB)

1 Like

hi,

maybe someone knows this:
how can one “blend” between those 2 point distributions?
It would be nice if it would behave more like A at the start of the curve and more like B at the end.
there are t parameters for both.

thanks!

A


B


smoothstart_v6.gh (9.4 KB)

Like this?


smoothstart_v6_re.gh (13.5 KB)

Hi Kim,

thanks! sadly no – what I am looking for is that the last segment has a specific length (e.g 5mm) and gets smoothly and continuously smaller until it gets to the start of the curve.

so inputs would be:

  1. the curve
  2. lenght of the last segment
  3. number of items

maybe it’s not even possible?:thinking:

Hi Guys,
This is my first post, where I am advising so patience, please :slight_smile:

So there is my try:

  1. find a parameter of the desired length “A”
  2. equally distribute points (count defines density)
  3. distribute the same amount of points but in series of “A”
  4. blend this two list
  5. apply parameter to curve


com-video-to-gif

Btw: The density of points must always be lower than the desired distance.

best
D.

smooth-start-v7.gh (32.8 KB)

1 Like

You want series where the first number is 5 (5, 4.8, 4.4 , 4.1 … etc) and the sum equal to the length of the curve
i think this is not possible, maybe you can use Genome to solve that and you will not get precise result;
and the series based on what ?

@DanielK1
thanks, I still don’t quite understand how you do it and what I am doing wrong since it doesn’t produce the linesegment with the right lenght.see here:


smooth-start-v7_analysis.gh (34.4 KB)
what am i missing?

also check out my newest version; i think it works (but don’t know why )> its now inside a component > out of sight out of mind.


smooth-start-v8.gh (20.4 KB)
I can’t set the nummer of items though, we will see if it makes any difference – I allway can make the curve longer if the acceleration is to high ( it is a speedramp for a robot )

1 Like

I thought that applying a scale factor geometrically to the initial segment would give you a series of n gradually decreasing pieces. The problem is to determine that factor so that the lengths all add up to the length of the curve. For this (with the help of @dharman,Newton's Method - #3 by akilli ) I used Newton’s Method in a Python component to come up with a number for the scale between 0 and 1 (though, its usually pretty close to 1).

Ramp.gh (12.0 KB)

1 Like

thanks ethan,

really impressive! How do you know those things? – very interesting. I will look into the script and newtons method - Maybe I can modify it so the length distribution has a “s-curve”…

:green_heart: (gh love)

btw: his is what the script does (regulating speed):

Hi Konrad, the problem is that Evaluate and Parameter of curves not reliable, due to the unequal positions of control points. This property makes it inaccurate.

I was inspired by @akilli to use an actual length and remake formula. It seems to me that it’s working quite OK. Let’s have a look.


I created domains from a combination of “the desired length” and “lengths of equally distributed points”. I then selected values from 0 to 1 from each domain to create a smooth transition.

You can as well control the curvature of transition.

smooth-start-v7_analysis_remake.gh (15.4 KB)

D.

Edit: I realized that actually, you need to distribute the points and then create polyline which is going inaccuraty in the case of a lot of curved curves.