Seite 1 von 1

Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

Verfasst: Dienstag 27. September 2016, 11:33
von Kniffte
Hallo Zusammen,

Ich bin der Seb, ganz frisch angemeldet hier im Forum und auch noch ein Neuling was Python betrifft...habe aber bereits Programmiererfahrung in anderen Sprachen.

Momentan bin ich auf der Suche nach einer geeigneten Bibliothek mit der ich einen kubsichen Spline durch ggb. Punkte im 3D-Raum legen kann, um dann in jedem Punkt die Tangent als Vektor berechnen zu können.
Bsp für ggb. Punkt wären:

Code: Alles auswählen

Nr.	XF		YF		ZF
1	-1.1663	4.3677	13.7876
2	-0.7818	4.5117	13.2064
3	-0.3846	4.6211	12.6252
4	0.0092	4.6986	12.0444
5	0.3856	4.7590	11.4652
6	0.7421	4.8149	10.8893
Im ersten Anlauf bin ich schon mal bei Scipy fündig geworden: "scipy.interpolate.CubicSpline" jedoch nur für 2D Koordinaten oder überseh ich was in der Dokumentation? Ehrlich gesagt, steige ich auch noch nicht ganz durch im Detail.
Aber bin ich grundsätzlich auf dem richtigen Weg oder gibt es womöglich alternative Bibliotheken?

gruß seb

Re: Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

Verfasst: Dienstag 27. September 2016, 12:26
von Sirius3
@Kniffte: für 3D gibt es keine eindeutige Lösung, da keine natürliche Ordnung existiert. Deine Beispieldaten sind wie eine Perlenkette aufgereiht. Willst Du also eine 3D-Kurve interpolieren, dann brauchst Du einfach drei kubische Splines x(t), y(t) und z(t). Oder hast Du in Wirklichkeit eine Fläche z(x,y), dann behilft man sich durch Triangulierung (scipy.interpolate.CloughTocher2DInterpolator).

Re: Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

Verfasst: Mittwoch 28. September 2016, 11:58
von Kniffte
@Sirius3: Erstere Annahme trifft zu: Die Punkte bilden eine 3D-Kurve im Raum.
Also bin ich mit scipy.interpolate.CubicSpline auf dem richtigen Weg? Wie komme ich am Ende von 3 kubischen Splines auf einen?
Vielleicht gibt es leichtverständliche Dokumentationen oder Beispiele zur Splineinerpolation im 3D Raum mit Python?

Re: Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

Verfasst: Mittwoch 28. September 2016, 12:18
von Sirius3
@Kniffte: da gibt es nicht viel zum Beispielen, Deine Inputdaten sind Vektoren und die interpolierten Daten sind auch Vektoren mit 3 Elementen:

Code: Alles auswählen

cs = CubicSpline(data[:,0], data[:,1:])
t = numpy.linspace(data[:,0].min(), data[:,0].max(), 100)
points = cs(t)

Re: Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

Verfasst: Mittwoch 28. September 2016, 13:17
von Kniffte
Ok gut...Danke sirius3 :)
gibt es auch eine Funktion im Scipy mit der ich eine Tangente bzw. deren Richtungsvekor in einem beliebigen Punkt der 3D-Kurve bestimmen kann?

Re: Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

Verfasst: Mittwoch 28. September 2016, 14:00
von Sirius3
@Kniffte: es gibt die Methode derivative.