Comment générer une spline cubique avec une courbure maximale et des tangentes de fin spécifiées?

2020-06-29 python scipy spline bspline cubic-spline
  1. Je veux le faire en Python, et de préférence SciPy.
  2. La tangente au début et à la fin de la spline est spécifiée.

Supposons que j'ai une séquence de points de cheminement que je souhaite que la spline traverse

np.array([
    [-18., -20.],
    [-18.,  18.],
    [-14.,  18.],
    [-14., -18.],
    [-10., -18.],
    [-10.,  18.],
    [ -6.,  18.],
    [ -6., -18.],
    [ -2., -18.],
    [ -2.,  18.],
    [  2.,  18.],
    [  2., -18.],
    [  6., -18.],
    [  6.,  18.],
    [ 10.,  18.],
    [ 10., -18.],
    [ 14., -18.],
    [ 14.,  18.],
    [ 18.,  18.],
    [ 18., -20.]
])

Je veux que la tangente au début passe par [-18, -20] et [-18, -20] , et que la tangente à la fin passe par [18, 18] et [18, -20] .

Enfin, je veux contraindre la courbure de la spline à ne pas dépasser une valeur de cératine.

Answers

Les contraintes de courbure ne sont pas disponibles dans scipy, les routines fitpack pertinentes ne sont pas encapsulées (par exemple https://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack/cocosp.f ).

Tangentes de fin que vous spécifiez, par exemple, via l'argument bc_type vers CubicSpline ou make_interp_spline.

Related