Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Kniffte
User
Beiträge: 60
Registriert: Dienstag 27. September 2016, 11:05

Tangente - Kubischer Spline - 3D - geeignete Bibliothek gesucht

Beitragvon Kniffte » Dienstag 27. September 2016, 11:33

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
Sirius3
User
Beiträge: 6667
Registriert: Sonntag 21. Oktober 2012, 17:20

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

Beitragvon Sirius3 » Dienstag 27. September 2016, 12:26

@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).
Kniffte
User
Beiträge: 60
Registriert: Dienstag 27. September 2016, 11:05

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

Beitragvon Kniffte » Mittwoch 28. September 2016, 11:58

@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?
Sirius3
User
Beiträge: 6667
Registriert: Sonntag 21. Oktober 2012, 17:20

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

Beitragvon Sirius3 » Mittwoch 28. September 2016, 12:18

@Kniffte: da gibt es nicht viel zum Beispielen, Deine Inputdaten sind Vektoren und die interpolierten Daten sind auch Vektoren mit 3 Elementen:
  1. cs = CubicSpline(data[:,0], data[:,1:])
  2. t = numpy.linspace(data[:,0].min(), data[:,0].max(), 100)
  3. points = cs(t)
Kniffte
User
Beiträge: 60
Registriert: Dienstag 27. September 2016, 11:05

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

Beitragvon Kniffte » Mittwoch 28. September 2016, 13:17

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?
Sirius3
User
Beiträge: 6667
Registriert: Sonntag 21. Oktober 2012, 17:20

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

Beitragvon Sirius3 » Mittwoch 28. September 2016, 14:00

@Kniffte: es gibt die Methode derivative.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder