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

3-D Grafik in GUI einbinden?

 

PiBi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2011, 16:17     Titel: 3-D Grafik in GUI einbinden?
  Antworten mit Zitat      
Hallo!

Ich möchte gerne eine 3D-Grafik (in Form einer Matrix) in meine GUI einbinden.
Ich habe aber das Problem, dass wenn ich meine Grafik in der GUI plotten möchte, diese zweidimensional erscheint, also
Code:

eine Fläche ergibt, jedoch

Code:


die gewünschte 3D-Grafik ergibt, allerdings ja in einem neuen Fenster.

Gibt es eine Möglichkeit, meinen 3-D Plot in die GUI einzubinden?

Lg,
PiBi


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.05.2011, 17:43     Titel: Re: 3-D Grafik in GUI einbinden?
  Antworten mit Zitat      
Hallo PiBi,

Aus dem gezeigten Code ist nicht ersichtlich, wieso einmal eine Fläche und einmal ein 3D-Objekt erzeugt wird. Um genau zu sein sehen beide Befehle ziemlich gleich aus. Deswegen rate ich: Das Problem liegt irgendwo anders.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
PiBi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2011, 18:08     Titel:
  Antworten mit Zitat      
Naja, da in der GUI die "axis"-Plots ja zweidimensional vorgefertigt sind, nehme ich an, dass praktisch einfach eine 2D-"Draufsicht" auf die (hier) Kugel besteht, und somit eine Art Kreis zu sehen ist.
Dass das Problem woanders liegt, glaube ich nicht. Ich habe eine Datei, die will ich plotten. Mehr existiert nicht, also auch nichts, wo ein Fehler entstehen könnte.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.05.2011, 19:58     Titel:
  Antworten mit Zitat      
Hallo PiBi,

Die AXES-Objekte unterscheiden nicht zwischen 2D und 3D. Ein Kugel bleibt zudem auch in der Aufsicht eine Kugel und wird nicht zu einem Kreis.

Ohne Deinen Code zu sehen kann ich natürlich nur raten. Vielleicht solltest Du noch zeigen, wie Du den das AXES-Objekt erstellst. Daran könnte es durchaus liegen: Bei "figure; isosurface(spec);" wird nämlich von Matlab automatisch ein "axes()"-Befehl eingefügt, während Du beim Zeichnen in Dein GUI vielleicht in ein bereits bestehendes AXES-Objekt plottest.

Also könntest Du entweder ein neues AXES-Objekt erstellen, oder auch den Blickwinkel auf das bestehende ändern, siehe z.B. "view(3)".

Wenn Du genauere Ratschläge haben möchtest, müsstest Du einfach mal den relevanten Teil des Programms zeigen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
PiBi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2011, 20:40     Titel:
  Antworten mit Zitat      
Dass das alles Code und Kristallkugel schwierig ist, seh ich natürlich ein Wink Deshalb hier der betreffende Codeteil:

Code:

function plot_Callback(hObject, eventdata, handles)
% hObject    handle to openfile (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

load('spec.mat');

%Plot auswählen
axes(handles.iso1)

isosurface(spec);
 

Wie schon gesagt ist es wirklich nicht viel.
Erstellt habe ich das über GUIDE, d.h. über den "axes"-Button des Menüs auf der linken Seite. Soll heißen mein Programm soll beim Drücken des Buttons die Datei plotten, die übergeben wird.
Wie schon gesagt, wird sie extern geplottet (mit figure), sieht sie so aus, wie sie soll. Nur so, wie es in meiner Datei steht, funktioniert es nicht.

Hoffe, das hilft weiter, auf jeden Fall vielen Dank für die bisherige Hilfe! Allein komm ich einfach nicht weiter...
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.05.2011, 22:58     Titel:
  Antworten mit Zitat      
Hallo PiBi,

Der Code-Ausschnitt hilft noch nicht weiter. Suche die Stelle, an der das AXES-Objekt erstellt wird.
Hast Du versucht "view(3)" einzufügen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
PiBi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2011, 09:07     Titel:
  Antworten mit Zitat      
Guten Morgen Jan,

auf diese simple Idee bin ich natürlich nicht gekommen. Ich habs jetzt eingefügt und habe zumindest mein 3-D Koordinatensystem.
Die Grafik sieht zwar noch immer sehr unplastisch aus, aber ich versuche, damit weiterzukommen. Vielen Dank für deine Hilfe, jetzt sieht das alles zumindest so aus, wie es soll!!
 
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.