Smarter rebuild nurbs curves (and surfaces)

I wasn’t sure if I should (or wanted to) be jealous and keep for myself this… oh well…

Basically the idea was to pull a “portion” of the fitting-curve to the reciprocal “portion” of the original curve.
Like, the start point with the other start point, end with end, mid with mid… and so on.

I randomly discovered Greville points… (didn’t know the name).

For every iteration it:
-make a list of vectors from fitting curve to original, as said above (by equally lenght-subdividing both curves)
-for every Greville point making a sub-list of the vector list, picking only the near ones (near by curve parameter)
-for every Greville point, moving the corrispective control-point by the average of the vector sub-list

The Greville points “know” where to go by looking at the local vectors… so if a part of a curve is “shifted” behind of where it should be the vectors clearly tells it out.

Probably gifs tell more than all the words…
(vectors scaled down for the sake of human view; vectors 1x give decent results in few iterations)

refit_curve_2


Note how red (that is the summit of the bulge) vectors sub-list average is directly pointed so it pull red Greville to the relative original summit.

Iteresting that, I haven’t fixed start/end points as in the script (theese gifs are made with anemone), but still them get to their place.

refit_curve_3

(Do someone ever have made stuff like this into a living? :roll_eyes: )

Anyway… do Greville points equivalent for surface exists?
If no, how can I calculate it?
(Or better, what are Greville points?)

13 Likes