Verfasst am: 13.06.2019, 10:37
Titel: Kurve durch Raum
Ich habe einen Raum, der sich aus mehreren 3-D Körpern (4 Quadern) zusammen setzt und möchte durch diesen eine Kurve legen, die immer durch die Mittelpunkte des jewiligen Quaders geht. Habe mir gedacht ich probiere es mit einem Spline und setze die Mittelpunkte als Stützpunkte. Kann mir jemand sagen wie ich das umgesetzt bekomme?
Zusätzliche Schwierigkeit ist, dass der Spline an einer Fläche des 1. Quaders senkrecht starten soll und bei einer Fläche des letzten Quaders senkrecht enden soll.
Verfasst am: 13.06.2019, 17:10
Titel: Re: Kurve durch Raum
Hallo TB16,
Bitte poste, wie deine Inputs definiert sind. Wenn man sich da erst mal etwas ausdenken muss, dass dann vielleicht gar nicht zu deiner Datenstruktur passt, wäre das vergeudete Zeit.
Was hast du bisher versucht und was genau klappt noch nicht?
Dabei treten die Fehler: Error using griddedInterpolant
The grid vectors do not define a grid of points that match the given values.
und:
Error in interp3
F=griddedInterpolant({X,Y,Z},V,method,extrap);
Liegt der Fehler bei der Definition von V? Dieses habe ich nämlich aufgrund eines fehlenden Wertes für interp3 so definiert und keine Ahnung was es darstellen soll.
Wenn ich bei interp3 das x,y,z in {} schreibe folgt der Fehler: Error using interp3 wrong number of input arguments.
bei den Tests setze ich für die x-, y-, z-werte beliebige Zahlen ein. Später wird der m-file in einer anderen Software genutzt und die Punkte werden von dieser gesetzt.
Bei der Interpolation gibst du ein Gitter vor, auf dem die Daten vorliegen, und die Daten selbst. Das Gitter bestimmst du mit den 3 Vektoren, aber als Daten hast du nur ein skalares V=1 gesetzt. Sinnig ist das nicht: Wenn das 3D-Array überall den Wert 1 hat, werden er das auch sämtlichen interpolierten Punkten haben. Dann ist die Interpolation überflüssig.
So weit ich verstanden habe, möchtest du doch gar nichts interpolieren, sondern einen Spline durch Punkte legen. Man kann zwar auch mit Splines interpolieren, aber das ist eine ganz andere Aufgabe.
Zitat:
Liegt der Fehler bei der Definition von V? Dieses habe ich nämlich aufgrund eines fehlenden Wertes für interp3 so definiert und keine Ahnung was es darstellen soll.
Raten ist keine effiziente Programmier-Strategie.
Zitat:
Wenn ich bei interp3 das x,y,z in {} schreibe folgt der Fehler: Error using interp3 wrong number of input arguments.
Hierzu gibt es allerdings auch überhaupt keinen Grund. Die Inputs einfach mal als Cell-Array zusammen zu fassen, ist Herumstochern im Nebel. Lies lieber die Anleitung von
interp3
um zu verstehen, was man hier wie eingibt. Und dann wirst du vermutlich herausfinden, dass du mit dem
spline
Befehl wohl besser aufgehoben bist.
Der
spline
Befehl gibt ja die Koeffizienten der Polynome zurück. Was meinst du nun genau mit "als Gleichung"?
Zitat:
2. Kann ich den Spline an bestimmten Stellen tangential zu einer Ebene machen?
Wenn du die Spline-Polynome selbst erstellst, kannst du auch beliebige Steigungen vorgeben. Suche doch mal nach Code, um Splines selbst zu berechnen. Das gehört zur Anfängervorlesung in Numerik, dann hat das bestimmt auch jemand als Matlab-Code gepostet.
Gruß, Jan
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.