Verfasst am: 30.10.2013, 17:25
Titel: Kreis interpolieren mit Spline
Hallo Leute,
ich hab ein kleines Problem und hoffe ihr könnt mir helfen. Bisher bin ich im Forum leider nicht fündig geworden.
Ich habe verschiedene Koordinatenpunkte die ich verbinden möchte. Genau genommen sind es Punkte auf einen Kreis die dann eben verbunden auch einen Kreis ergeben sollen. Soweit hab ich das mit nem Spline auch hinbekommen.
Mein Problem ist, dass ich nicht genau weiß ich da eigentlich mache.
Hier ist mal mein Code:
Code:
ra = 2.5; % radius a
rb = 1.5; % radius b
z = pi*[0:0.5:6];
x = [0, ra/2, sqrt(ra^2-(ra^2*(rb/2)^2)/rb^2), ra, sqrt(ra^2-(ra^2*(rb/2)^2)/rb^2),ra/2, 0, -ra/2, -sqrt(ra^2-(ra^2*(rb/2)^2)/rb^2),-ra, -sqrt(ra^2-(ra^2*(rb/2)^2)/rb^2),-ra/2, 0];
y = [rb, sqrt(rb^2-(rb^2*(ra/2)^2)/ra^2),rb/2, 0, -rb/2, -sqrt(rb^2-(rb^2*(ra/2)^2)/ra^2), -rb, -sqrt(rb^2-(rb^2*(ra/2)^2)/ra^2), -rb/2, 0, rb/2, sqrt(rb^2-(rb^2*(ra/2)^2)/ra^2), rb];
Im Moment hab ich ne Ellipse, aber das ist ja egal. Ich wüsste gerne, warum ich z brauche. Wenn ich es nur mit x und y sprich spline(x,y) versuche dann kommt immer ne Fehlermeldung. Also hab ichs jetzt so gelöst. Nur versteh ich nicht was mein z macht. Nur durch rumprobieren ist irgendwann mal ein Kreis/Ellipse entstanden. Kann mir jemand erklären warum ich von 0 bis 6pi den Vektor z haben muss um nen vollständigen Kreis zu bekommen? Hängt das von der Anzahl meiner Punkte ab?
Wär super wenn mir jemand weiterhelfen könnte.
Danke schonmal im Voraus
Grüße Helpi
Das Problem dürfte sein, dass ein Spline eine Funktion (d.h. für jeden x-Wert gibt es genau einen y-Wert) beschreibt. Du könntest also die untere oder obere Hälfte einer Ellipse beschreiben, aber eben nicht die ganze.
Der Bereich von tt sollte dem Bereich von z entsprechen. Wie groß du die Bereiche jeweils wählst sollte egal sein, solange sie gleich sind. Sie sind quasi ein Maß dafür, wie "schnell" die Ellipse durchlaufen wird, wenn du dir das als zeitlichen Verlauf vorstellst.
Grüße,
Harald
Helpi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 06.11.2013, 14:49
Titel:
Hallo Harald,
danke für deine Antwort!
Also wenn ich es ganz normal über spline(x,y) mache dann kommt die Fehlermeldung:
"??? Error using ==> chckxy at 51
The data sites should be distinct.
Error in ==> spline at 55
[x,y,sizey,endslopes] = chckxy(x,y);"
Das pro y-Wert nur ein x-Wert existiert beim spline, hab ich nicht mehr bedacht ... danke für den Hinweis
Weißt du vielleicht auch, warum in sp unter dim eine 2 steht? hängt das damit zusammen, dass man mit spline eigentlich nur die obere oder die untere hälfte beschreiben lassen kann?
Grüße
Helpi
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.