WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Kreis interpolieren mit Spline

 

Helpi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2013, 17:25     Titel: Kreis interpolieren mit Spline
  Antworten mit Zitat      
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];

A = [x;y];

sp = spline(z,A);
tt = linspace(0,pi*6,101);
pp = ppval(sp,tt);

plot(pp(1,:),pp(2,:),'-b',A(1,2:length(A)),A(2,2:length(A)),'or')
 


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


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.11.2013, 22:49     Titel:
  Antworten mit Zitat      
Hallo,

und welche Fehlermeldung kommt?

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Helpi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2013, 14:49     Titel:
  Antworten mit Zitat      
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 Very Happy

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
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.