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 Plot

 

Lucifer
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2018, 20:19     Titel: Kreis Plot
  Antworten mit Zitat      
Liebes Matlab Forum und Programmier Profis,
momentan schreibe ich für die Uni ein Programm mit der Aufgabenstellung:
"Interpolieren Sie geeignete Wertepaare so dass ein Kreis entsteht."
Zur Lösung meines Problems habe ich bereits ein passendes Programm gefunden das mir als Inspiration dient, denn ich möchte etwas eigenes erschaffen.
Leider hapert es immer noch am Verständnis des Plot meiner Funktion.
Denn ich verstehe nicht, warum man zwei Felder für die Position ("y") des Kreises anlegen muss und die beiden daraus enstehenden trigonometrischen Funktion im anschließenden Plot überlagert . Crying or Very sad
Über gute Ratschläge und Tipps würde ich mich sehr freuen.

Code:

x = pi*[0:.5:2];
y = [0  1  0 -1  0  1  0;
     1  0  1  0 -1  0  1];
pp = spline(x,y);
yy = ppval(pp, linspace(0,2*pi,101));
plot(yy(1,:),yy(2,:),'-b',y(1,2:5),y(2,2:5),'or')
axis equal


Liebe Grüße
Lucifer
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.06.2018, 10:07     Titel: Re: Kreis Plot
  Antworten mit Zitat      
Hallo Lucifer,

Im Code tauchen keine trigonometrischen Funktionen auf.

Zitat:
zwei Felder für die Position ("y") des Kreises anlegen muss

Umgenau zu sein ist es ein Array, nit "zwei Felder". Es sind die X und Y-Koordinaten, die auf einem Kreis liegen.
Code:
y = [0  1  0 -1  0  1  0;
     1  0  1  0 -1  0  1];
plot(y(1, :), y(2, :))

Aus diesen Punkten einen Spline zu fitten sorgt dafür, dass die Ausgabe in etwa kreisförmig aussieht.
Ich weiß nicht, was mit "im Plot überlagern" gemeint ist.

Was genau ist Deine Frage?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucifer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2018, 17:29     Titel: y-Wert [1 0]
  Antworten mit Zitat      
Moin Jan,
entschuldige meine verspätete Rückmeldung.
Meine Farge ist warum der Punkt [0;1] dreimal im Array eingegeben werden muss und dadurch im dreimal im Plot überlagert wird.
Da der Anfang und Endpunkt der selbe ist und der Kreis geschlossen seien soll, verstehe ich es dass er zweimal eingeben wird.
Aber wenn man Ihn nur zweimal eingibt wird der Kreis stark verzerrt.
Code:

pos=[0 1 0 -1 0 1 0;
         1 0 1 0 -1 0 1]
 

Zudem hat mein Professor gesagt ich solle den Kreis nur mithilfe von 5 Punkten erstellen,
was dazu führt dass der Kreis eher einer zerdrückten Orange ähnelt. Confused
Code:

pos=[1 0 -1 0 1;
     0 -1 0 1 0];
t=pi*[0:.5:2];
pp=spline(t,pos);
yy=ppval(pp,linspace(0,2*pi))
plot(yy(1,:),yy(2,:),pos(1,:),pos(2,:),'o')
axis equal
 

Momentan bin ich am verzweifeln und überlegen ob es eine alternative für mich gibt die Aufgabe doch noch zu schaffen. In manchen Beiträgen habe ich gelesen dass man einen Kreis wohl auch mit einer trigonometrischen Interpolation realisieren kann.
Leider wurde dieser Beitrag nicht zu Ende geführt.
Weißt du wob und wie so etwas möglich ist ?

Liebe Grüße
Lucifer
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.06.2018, 09:50     Titel: Re: y-Wert [1 0]
  Antworten mit Zitat      
Hallo Lucifer,

Hast Du Dir bereits die Dokumentation von spline durchgelesen?
Du hast 7 Koordinaten in "pos" und 5 Punkte in "t". Das bedeutet, dass Du für den Spline (also die Polynome vom Grad 3) auch noch die Anfangs- und End-Steigungen angegeben hast: 5 Stützpunkte sowie 2 Steigungen.

Dein Code-Beispiel stammt doch von dieser Seite. Dann lohnt es sich auch den Abschnitt "Spline Interpolation of Distribution with Specified Endpoint Slopes" durchzulesen.

Zitat:
Meine Farge ist warum der Punkt [0;1] dreimal im Array eingegeben werden muss und dadurch im dreimal im Plot überlagert wird.

Siehe oben: Das wird er nicht.

Zitat:
Zudem hat mein Professor gesagt ich solle den Kreis nur mithilfe von 5 Punkten erstellen,

Korrekt - und das tust Du auch schon. Siehe:
Code:


Zitat:
In manchen Beiträgen habe ich gelesen dass man einen Kreis wohl auch mit einer trigonometrischen Interpolation realisieren kann.

Wenn Du von anderen Threads sprichts, füge immer die Links zu ihnen ein. Die Leser wissen nicht, welche Threads Du meinst.
Nun würde es noch genau darauf ankommen, was Du unter "trigonometrischer Interpolation" verstehst. Aber da der Spline bereits eine perfekte Lösung ist, würde ich hier nicht weiter forschen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucifer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 16.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2018, 14:13     Titel: Verstanden
  Antworten mit Zitat      
Moin Jan,
die von Dir vorgeschlagene Seite habe ich mir damals durchgelesen, aber leider nicht gänzlich verstanden.
Ich werde mir diese noch ein weiters mal zu Gemüte führen um die restlichen Lücken wieder aufzufüllen.
Dies ist der Link zu dem Beitrag bezüglich der trigonometrischen Interpolation:
https://www.gomatlab.de/kreis-interpolation-t8530.html.
Das pos (0;1) die Steigung am End und Anfangspunkt ist habe ich nun verstanden.
Ich werde mit meinem Professor nochmals darüber reden.
Falls im Laufe meiner weiteren Recherche noch Fragen aufkommen sollten werde ich mich bei dir melden.
Ansonsten möchte ich mich ganz herzlich für deine unermüdliche Hilfe bedanken.

Liebe Grüße
Lucifer
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.