Splines / Interpolation

Skid

Erfahrenes Mitglied
Hallo zusammen,

ich habe derzeit ein Problem welches ich mit Spline und Interpolation lösen kann, ich jedoch nicht so recht zurecht komme.

Zuerst einmal zum Problem selbst:
Ich habe ein Programm welches eine Kamerafahrt im dreidimensionalen Raum möglich macht.
Derzeit verlaufen die Wege von Punkt zu Punkt linear, jedoch möchte ich eine bestimmte Weichheit (evtl. durch Stufen einstellbar), was die Kurven angeht, einfügen.

Hierbei bin ich über Interpolation, Polynominterpolation, Hermiteinterpolation, Bezier-Kurven und Splines gestoßen, konnte jedoch nur wirklich Polynominterpolation anwenden, was heißt, dass Interpolation und Hermiteinterpolation für mich _jetzt_ nicht mehr notwenig ist.

Problem bei der Polynom-Interpolation selbst ist folgender:
Ich habe bespw. eine Menge von Punkten, sagen wir mal 5,die ich interpolieren möchte, was ohne Probleme klappt, jedoch sieht man bei der Interpolationsformel, schon bei 5 Punkten, dass diese ungeahnte Ausmaße annimmt.
Mein Programm ist bei der doppelten Anzahl von Punkten schon überfordert.

Sagen wir aber mal, ich teile bspw. 12 Punkte in Intervalle (4 Punkte am Stück) und aktualisiere die Interpolationsgleichung immer beim 3 Punkt.
Dürfte eigentlich ohne Probleme funktionieren...

Problem ist hier jedoch, dass ich nicht abfangen kann, wann die Kamera beim dritten Punkt ist oder darüber.
Im dreidimensionalen Raum zu berechnen, wann der dirtte Punkt erreicht ist, ist für mich zu aufwendig.
Ich dachte mir dass ich die Zeit zu Hilfe nehme, da ich sowieso die Variable t gegeben habe, welche einen maximalen Intervall von t = [0|1] enthält (somit die Position) und ich somit den Fortschirtt beobachten/bestimmen kann.

Jedoch kann ich aus meiner Formal, bspw. 5ten oder 4ten Grades, den t-Wert nicht mehr bestimmten, da allgemein gilt:

Code:
I = t^n * F(n) + t^(n-1) * F(n-1) + ... + t * F(1) + F(0)

Meine Frage:
Ist es möglich den t-Wert zu bestimmten, wenn man einen Punkt gegeben hat und die dazugehörige Formel ?

Zu Splines:
Splines scheinen in ihrer Dynamik wesentlich mehr attrkativ zu sein, als wie Interpolationskurven, da Interpolationskurven das Problem beinhalten, dass die Kurve ,von einem zu einem anderen Punkten, eine zu große Frequenz annimmt.

Ich habe mich hier etwas damit auseinander gesetzt, finde jedoch keinen Anschluss.

Kann mir evtl. jemand die Berechnung von Splines an einen Beispiel erklären ?
(Muss nich unbedingt der dreidimensionale Raum sein)

Das würde mir sehr helfen und so könnte ich denke ich auch durch das Formelgewirr durchblicken.

Liebe Grüße und Danke für eure Zeit,
SkiD.

Code:
Zu meiner Berechnung ein Beispiel für die Interpolation:

P0 [5|3]
P1 [1|4]
P2 [4|2]
P3 [1|2]

T-Werte:
P0   t = 0
P1   t = 1/3
P2   t = 2/3
P3   t = 3/3 = 1
(Wenn ich die t-Werte von P1 und P2 in meine Formel [unten] eintrage, 
dann komme ich nicht auf den Punkt P1, P2)

Berechnung Matrix M der t-Werte:

M = [0,0,0,1; (1/3)^3,(1/3)^2,(1/3)^1,1; (2/3)^3,(2/3)^2,(2/3)^1,1; 1,1,1,1]
M^(-1) = -möchte ich hier jetzt nicht alles eintragen-

P-Vektor der Dimensionen:
Px = [5,1,4,1]
Py = [3,4,2,2]

Multiplikation mit der inversen Matrix:
Fx = M^(-1) * Px = [-58.5, 90, 35.5, 5] 
Fx = M^(-1) * Py = [22.5, -36, 12.5, 3]

Endgültige Interpolationsformeln:
Ix = -58.5 * t^3 + 90 * t^2 + 35.5 * t + 5
Iy = 22.5 * t^3 - 36 * t^2 + 12.5 * t + 3
 
Hallo,
was du erläuterst und vorhast, ist ganz schön komplex. Antworten auf all deine Fragestellungen könnte ein Buch über numerische Mathematik bieten.
Ich habe z.B. "Numerische Mathematik, Eine beispielorientierte Einführung" von Michael Knorrenschild hier liegen.
Dort wird konkret behandelt (Auszug): Polynom-Interpolationen und deren Nachteile, Spline-Interpolation, Bestimmung der Lösung von nichtlinearen Gleichungen (wie du sie mit der Variablen t hast).
Das Schöne an dem Buch sind Aufgaben und deren Lösungen hinten im Anhang.
Und teuer war es auch nicht. Alles über ein Forum zu lösen, wird bestimmt aufwändig.
Sicher hast du zur Formulierung der Aufgabe auch schon "geräumige" Zeit benötigt. :- )
 
Zuletzt bearbeitet:
Hallo,
was du erläuterst und vorhast, ist ganz schön komplex. Antworten auf all deine Fragestellungen könnte ein Buch über numerische Mathematik bieten.
Ich habe z.B. "Numerische Mathematik, Eine beispielorientierte Einführung" von Michael Knorrenschild hier liegen.
Dort wird konkret behandelt (Auszug): Polynom-Interpolationen und deren Nachteile, Spline-Interpolation, Bestimmung der Lösung von nichtlinearen Gleichungen (wie du sie mit der Variablen t hast).
Das Schöne an dem Buch sind Aufgaben und deren Lösungen hinten im Anhang.
Und teuer war es auch nicht. Alles über ein Forum zu lösen, wird bestimmt aufwändig.
Sicher hast du zur Formulierung der Aufgabe auch schon "geräumige" Zeit benötigt. :- )

Hmm, okay, dass ist natürlich etwas unschön dass das Problem etwas zu komplex ist, da ich jetzt nicht unbedingt die Mittel für ein neues Buch habe.
Zudem kommt dass ich nicht unbedingt ein Buch für jedes Problem kaufen möchte ^^ *GG*

Naja, wenn das für ein Forum zu viel ist, dann muss ich es wohl oder übel irgendwie über die Netz-Ressourcen versuchen, wobei ich da auch nicht gerade hilfreiche und verständliche Seiten gefunden habe ;)

Dennoch danke für deine Hilfe!

Liebe Grüße,
SkiD.
 
..., dann muss ich es wohl oder übel irgendwie über die Netz-Ressourcen versuchen, wobei ich da auch nicht gerade hilfreiche und verständliche Seiten gefunden habe.
Genau das war damals der Grund, dass ich lieber 14 € ausgegeben habe. War im Endeffekt schneller und gründlicher. Im Netz der Netze fand ich meist nur Fragmente.
 
Zurück