With the code below, I use scipy.interpolate.splprep routine to interpolate a set of points using B-splines. Evidently, this curve in the figure on the left is quite "sharp" near the 6th point: it's curvature is too large (see right figure).
I want the curvature to be limited to <10
. I can improve this by increasing the smoothness factor s
, e.g. setting it to s=8
gives:
Which satisfies my curvature bound. However, I currently have to find this smoothness factor s
through trial and error (also, higher s
does not necessarily imply a lower curvature). Is there anyway I can explicitely bound the curvature? I know it is theoretically possible based on this question.