|
|
Visualisierung einer Blickwinkeländerung im 3D-Plot |
|
AgentZero |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 06.06.2012, 22:28
Titel: Visualisierung einer Blickwinkeländerung im 3D-Plot
|
 |
|
 |
|
Hallo zusammen,
ich bin ein blutiger MATLAB Anfänger und habe folgendes Problem: Ich möchte die Funktion U=XY zunächst graphisch darstellen und danach den Blickwinkel ändern. Ausgangspunkt soll die Draufsicht von oben sein, sprich az=0 und el=90. Am Ende soll der Blickwinkel bei az=25 und el=15 liegen. Den Übergang möchte ich nun gerne in einem Video zeigen. Hier beginnen nun leider meine Probleme. Die Funktion mit 'surf' darzustellen und über 'view' den Blickwinkel zu ändern bekomme ich noch hin. Zum Erstellen des Videos hab ich dann 'getframe' verwendet und wollte mit einer Schleife den Winkel in 1° Schritten ändern - funktioniert aber leider nicht. Hier mal mein Code (ich habe zum Ausprobieren zunächst nur EINEN Winkel geändert, scheitere aber schon daran):
Die Fehlermeldung kommt immer bei der Zeile mit 'getframe'. Ich habe schon danach gegoogelt und den help Befehl in MATLAB zu Rate gezogen, komme aber nicht weiter, da dann in diesen Hilfen meistens wieder andere Befehle auftauchen, die ich nicht verstehe. In einem pdf Intro zu MATLAB habe ich gelesen, ich solle doch mit get(gca,View) arbeiten, was mich aber auch nicht weiterbringt.
Über Hilfestellungen wäre ich also wirklich sehr, sehr dankbar!
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 07.06.2012, 12:08
Titel: Re: Visualisierung einer Blickwinkeländerung im 3D-Plot
|
 |
Hallo AgentZero,
Herzlich willkommen im Forum und bei Matlab.
Es ist immer hilfreich, wenn Du die Fehlermeldung ebenfalls postest. Bisher wissen wir nur, dass Du eine bekommst, aber nicht welche. Dank des geposteten Codes kann man das aber zumindest nach-produzieren - sehr gut.
Der Code enthält gar keinen VIEW Befehl.
Das Erzeugen des SURF-Objektes macht man am besten ausserhalb der Schleife. Dann ändere ich mal den einen Winkel, da ich nicht genau verstanden habe, was Du erreichen möchtest:
Das Ergebnis ist noch nicht ganz zufriedenstellend, weil MOVIE die AXES an der oberen rechten Ecke darstellt. Aber es ist schon mal ein Schritt weiter.
Gruß, Jan
|
|
|
AgentZero |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 07.06.2012, 18:05
Titel:
|
 |
Hallo Jan,
erstmal vielen, vielen Dank für deine Hilfe! Damit bin ich schon einen großen Schritt weiter! Um zu verstehen, was du genau an dem Code verändert hast, habe ich noch 2 Fragen:
1. Was genau bewirkt die Zeile FigH=gcf? Habe den Code mal ohne diese Zeile laufen lassen und merke aber keinen Unterschied.
2. Warum schreibst du in der Zeile mit getframe F(j+1) und nicht lediglich F(j)?
Allerdings muss ich nun noch beide Achsen gleichzeitig ändern. Wie gesagt, Ausgangspunkt ist die Sicht von oben auf die X,Y-Ebene, also view(0,90) und Endpunkt soll view(25,15) sein. Ich würde nun einfach zwei Schleifen schreiben. Einmal eben i=0:1:25 und einmal j=90:-1:25. Allerdings weiß ich nicht, in wie weit ich die Zeile F(j+1)=getframe(FigH) nun abändern muss. Wäre super, wenn du mir nochmals helfen könntest! Vielen Dank und beste Grüße,
Alex
|
|
|
AgentZero |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 16.06.2012, 12:22
Titel:
|
 |
Falls jemand ein ähnliches Problem haben sollte: Hab es nun hinbekommen, dass sich beide Achsen gleichzeitig drehen. Die Idee mit den beiden Schleifen war natürlich Schwachsinn, da die Schleifen ja nicht gleichzeitig ablaufen. Hier also mal mein Code:
Einziges kleines Problem ist noch, dass das Video 2x abgespielt wird und die Achsen beim 2. Abspielen auf einmal nach rechts oben verschoben werden. Vielleicht hat ja jemand eine Idee woran das liegen könnte!?
|
|
|
AgentZero |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 06.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2015a
|
 |
|
|
 |
|
Verfasst am: 23.07.2012, 17:58
Titel:
|
 |
Mal wieder eine kleine Frage, vielleicht hat ja diesmal jemand eine Lösung parat: Es handelt sich wieder um meine Funktion U=XY. Nachdem ich es nun hinbekommen habe, die Funktionen zu ploten und auch den Blickwinkel zu ändern, möchte ich nun noch Höhenlinien hinzufügen. Z.B. alle X,Y Kombinationen, die zu einem U-Niveau von 50 bzw 100 führen. Mit dem Befehl contour(X,Y,U) sollte es ja eigentlich funktionieren. Allerdings liefert mir MATLAB nur Höhenlinien zu einem U-Niveau von 0 - obwohl die X und Y Werte positiv sind...
Hier mal mein Code: Einfach mal durchlaufen lassen, dann wird schnell klar was ich meine. Während der surf Befehl einwandfrei läuft und mir U als Produkt aus X und Y darstellt, macht contour Probleme.
Ich denke, dass es sich nur um eine Kleinigkeit handeln muss, komme aber selbst nicht drauf und wäre daher wirklich sehr dankbar, wenn jemand mal einen Blick drauf werfen könnte!
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 13:51
Titel:
|
 |
Hallo AgentZero,
Antworten zu Deinen alten Fragen:
Zitat: |
1. Was genau bewirkt die Zeile FigH=gcf? |
GCF ist eine Funktion und benötigt deshalb Zeit. Die Antwort in einer lokalen Variable zu speichern ist effizienter. Zudem ändert sich GCF sobald man in eine ander Figure klickt.
Zitat: |
2. Warum schreibst du in der Zeile mit getframe F(j+1) und nicht lediglich F(j)? |
Weil j bei 0 startet, als Index von F aber größer als 0 sein muss.
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|