Grasshopper

algorithmic modeling for Rhino

# Nonlinear interpolation vectors

Hello everyone,
I need to interpolate two vectors, such that the length of the intermediate vectors not a linear progression, something like this:

Someone knows or is able to figure out the math behind it?
I have not even been able to find references in google, I have seen something like spherical interpolation but not exactly what I'm looking for, so if anyone knows the academic term would also be useful to me.

Views: 1443

### Replies to This Discussion

I raised my problem wrong, I apologize for that. What I needed was not interpolate two vectors, was interpolated four vectors from a dual mesh, and was too complicated (and unnecessary) to relate the topology of the dual mesh, therefore, the smartest thing was to give values of elevation directly, easily and with good results.

I'm really grateful for all the help, thank you all.

Ethan, your circular interpolation method was very surprising to me, really appreciated for your help. Surely I will use it in the future!

I guess it depends on what kind of interpolation we're talking about. The one you drew looks like it could be accomplished by a cubic spline interpolation, which is quite normal to find in FEM (interpolating bending moments between nodes are often discribed by cubic shape functions).

//Emil

now i think the method should be something like Nearest neighbour weighted interpolation, but I'm not sure.

Does it help to move the polygon centre points too?

It looks like you need to move the polygon corner points too if you really want to get a smooth result but won't this always end up spherical?

Geodesic domes project points out from the base icosohedron onto a sphere but, of course, the icosohedron points all lie on a sphere.

Attachments:

Thanks Martyn, but that's irrelevant to my problem, look at this picture, the blue polyline is the dual mesh, and I need to interpolate their points on a nonlinear way, but consistent with the curvature of the original mesh, for that the circular interpolation does not serve me.

If your mesh is convex, then you could draw lines from each vector normal and get the closest points between each pair as an anchor location and also to define a rotation plane (new origin, with the vertices defining the other two points), and then rotate one vector around that point to the other, interpolating their lengths through your subdivisions. If it's concave, then it would fan inward, but perhaps you could just use the absolute distance from the edge to force it to fan out.

by kgm

by kgm

by kgm

by kgm