Interpolate with tangents

Grasshopper for Rhino 6 appears to have a problem with Interpolate with Tangents. For a start, the length of the tangency doesn’t affect the curve as it did in Rhino 5. Secondly, there is the new and old component in the grasshopper and neither seems to perform any differently. This has affected my geometry from 5 to 6.

1 Like

I have exactly the same problem, if you put a single vector (x, y or z) into the tangent input, it’s just on or off.

I did find that if you do it with a xyz vector, it actually seems to work, but you also need to put a small value in y and z. This makes your curve non planar, so it’s not the solution if you ask me.

If somebody knows a solution for this, it would be very appreciated!

Turns out this was a mistake in R5. The curve tangent interpolator doesn’t know how to handle non-unit tangents and will generate bunk geometry in some conditions. I was told to always unitize the vectors before calling the Rhino interpolate method.

Can you upload a file which shows this? My own test with pure unit x vectors yields a correct result as far as I can tell:

Hi,

I’ve added part of my script and the end result of rhino 5 and 6. I had baked the grasshopper rhino 5 version, but opened the exact same script in grasshopper Rhino 6 and you can see the difference.

Is there another way to reach the same result?

Is there another way in Rhino 6 to then have this ‘wrong’ calculations from Rhino 5 done?

That unitzing vectors method is the solution apparently. Sorry to be a nob here, but how to do that?

Not any more it seems, the core function now itself unitizes the tangent vectors, so no matter what you specify it always gets scaled down to length=1.

I found the original report + discussion about this here.

Ok so what to do with my script that now messes up all my tangent curves? The only difference between the interpolate and interpolate (t) command is now the direction of the start and end tangent that can be changed, not how strong these are, if I understand it correctly?

Any ideas on how to get the same end result with rhino 6? It seems hard to believe that what I created in Rhino 5 is not possible anymore in Rhino 6 right?

This does seem to be the case. Rhino5 did something incorrect and you were relying on this fluke.

So assuming we introduce a new method for creating interpolated curves with weighted end-tangents, what does the length of the tangent vector specify? Should the first control point be located at the tip of the vector? Is the meaning of the length of the vector relative to the distance between interpolation points? Is the meaning of the length of the vector relative to the unit vector?

How did you pick the length of the tangents in Rhino5? Just by feel or was there some maths involved?

Sometimes just by feel, sometimes by taking a tangent from another curve for example. I find it a bit hard to identify where math was involved since I don’t see the result I was aiming for anymore in Rhino 6. I will need some more time to answer your questions completely, but I appreciate the efforts of looking into this problem already. Looking forward to find a solution!

Has there been a solution for this yet? I have used Rhino 5 for a year now because this functionality wasn’t possible in Rhino 6. I’m curious if it now is possible, because then I would like to switch to Rhino 6.

We’ll need some answers to the questions above before we can add the feature you want. What does the length mean for the final result?

Hi hi,

Same person (LVA), different account (switched jobs). This problem still exists in Rhino 7. I’ve also tried the tangent curve but the tangents there are either on or off so it seems. The blend factor isn’t giving enough nuance to create a curve I want.

I can make a workaround with bezier span for every two points in a curve and connect several bezier spans to create the complete curve. With bezier span the tangents are affected by the value you will give it. Is there a way to use the same methods for handeling tangents for the interpolate (t) curve and tangent curve command as for the bezier span? Basically you want to give the vectors a value, so besides direction, the length of the tangents are affected as well. Hope there is or will be a feature that makes this possible because the bezier span workaround is quite devious.

Looking forward to the answer.

Me too looking forward to add this function
In my case I want to change the tangent length by the angle between the tangent vector and (first and second point) of the interpolate curve, but looks like there is no way to achieve this…