I have a 2d array of kink angles and need to interpolate a best-fit surface. I do not need the curves to go through any given point in 3 space (and in fact, cannot specify any of these points), except perhaps an origin point.
For example, if all of the U angles are zero and V angles are 180/degree, the resulting surface should be a cylinder that curves along V and is flat along U.
As an example, let’s say I have an 8x8 grid of kink angles (doubles ranged -1 to 1) and want to return a single network surface made up of 8 curves in U and 8 curves in V that meet at 64 points.
Ultimately, I’ll be writing it as a C# implementation, but would happily settle for a strategy to do it with components.
Once I have it, I’ll be evaluating guassian curvature at each u,v intersection and jittering the kink angles toward a minimal guassian curvature surface using gradient descent (I should have that part under control, I think…).
I like problems, but you lost me! In order to go in space you also need length between “kinks” … Are angles in single direction ?
No drawing, no file ??
All lengths are unit length. The grid is a regular 2d grid that makes a regular square.
The question I’m asking is how to proceed from a 2d array of angles and a single origin, so there’s nothing to show except numbers
If we’re thinking about an 8x8 grid, then I have 64 U angles and 64 V angles, each represented as a double number in radians.
The problem could also be represented with 64 normal vectors in U and 64 normal vectors in V, but it’s important to note that I don’t know their position in space, that’s what I want to solve for. I’m trying to avoid projecting from one point to the next, because early errors will compound (the “tail will wag the dog”). Ideally, there is an integration function that will perform a linear interpolation between curvature values that are evenly spaced.