Verfasst am: 27.10.2016, 00:02
Titel: Plot an definierter Position mit definierter Größe in GUI
Servus miteinander,
ich hänge seid geraumer Zeit an einem kleinen Problem, dass ich einfach nicht gelöst bekomme. Habe auch schon mehrere Beiträge in Foren und sonstigen Suchmaschinen durchgekämmt.
Ich versuche mal, das Problem kurz zu beschreiben (ohne Minimalbeispiel, könnte ich aber demnächst gerne zur Verfügung stellen, sofern es benötigt wird).
Folgendes:
Ich habe mir eine GUI erstellt mit einem Achsensystem (Axis). Die GUI habe ich im guide erstellt. Jetzt lasse ich mir in dieses Achsensystem unterschiedliche Daten plotten (plot3). Wenn ich nun mit der Pan bzw. Zoom Funktion mir einzelne Details anschauen möchte, wandert das Achsensystem samt den darin dargestellten Daten hinter die Bedienelemente der GUI, es hat also keinen fest definierten Platz darin. Kann man das in irgendeiner Art und Weise unterbinden? Hat jemand eine Idee?
Verfasst am: 27.10.2016, 10:40
Titel: Re: Plot an definierter Position mit definierter Größe in
Hallo robert91,
Zoom und Pan sollten eigentlich nur die Inhalte des AXES (mit "e", AXIS ist etwas anderes) verschieben. Wenn bei Dir das AXES-Objekt selbst verschoben wird, läuft etwas schief. Ein Minimal-Beispiel wäre nötig, um zu sehen, was da genau passiert.
habe ein kleines Minimalbeispiel geschrieben, ist zwar nicht sehr schön, beschreibt aber sehr gut, welches Problemchen ich habe.
Wenn du die figure öffnest, dann siehst du, dass das Axes-Fenster einen bestimmten Bereich hat. Und genau in diesem soll es sich immer bewegen. das vis3d fand ich auch recht schön, da man keinen Verzug reinbekommt.
Wenn du nun das Minimalbsp.m ausführst und in der GUI auf den Button drückst, werden Random irgendwelche Koordinaten geplottet. Nun kannst du (in der Toolbar der GUI) "Pan" auswählen und das komplette Achsensystem hinter die Buttons ziehen, und das möchte ich verhindern.
Gruß
Robert
Edit:
Jap, meinte auch AXES, rufe in meinem Programm das ganze mit axes(handles.axesname) auf
okay, ich hab jetzt mal ein paar Screenshots gemacht, ich hoffe, ich kann das anhand deren erklären. Den kompletten Code hänge ich mit rein, vielleicht kannst du damit was anfangen.
minimalbsp_guide zeigt das Fenster, wie ich die BeispielGUI erstellt habe. Darin ist ein Static Text, ein Axes und ein Button zu sehen.
Wenn ich das Programm minimalbsp.m starte, siehst du die GUI wie in minimalbsp_gui_1. Dort ist aktuell noch ein zweiachsiges Koordinatensystem zu stehen.
Drücke ich nun auf den Button, werden Punkte eingezeichnet (Vgl. minimalbsp_gui_2).
Möchte ich nun Zoomen oder den inhalt des Graphen verschieben (beides über die Button in der Toolbar) verschiebt sich das komplette Achsensystem (siehe minimalbsp_gui_3).
Was ich nun erreichen möchte ist, dass immer das gesamte Feld (vgl. minimalbsp_guide, axes1) ausgefüllt ist und auch immer an genau dieser Stelle wird. Das heißt, dass ich den kompletten Inhalt einfach nach oben verschieben möchte, ähnlich wie bei einem CAD Programm. Sofern das nicht machbar ist, wäre es sehr hilfreich, dass es sich dennoch nicht aus dem Fenster (minimalbsp_guide, axes1) "herausschieben" lässt, das Achsensystem soll also immer an dieser Stelle bleiben.
Ich hoffe, ich konnte das einigermaßen gut beschreiben.
Möchte ich nun Zoomen oder den inhalt des Graphen verschieben (beides über die Button in der Toolbar) verschiebt sich das komplette Achsensystem (siehe minimalbsp_gui_3).
Das ist die Definition von Zoomen. Bis hier hin ist also alles so, wioe gewünscht, richtig?
Zitat:
Was ich nun erreichen möchte ist, dass immer das gesamte Feld (vgl. minimalbsp_guide, axes1) ausgefüllt ist und auch immer an genau dieser Stelle wird.
Das verstehe ich noch nicht. Welches Feld soll wovon ausgefüllt sein?
Zitat:
Das heißt, dass ich den kompletten Inhalt einfach nach oben verschieben möchte, ähnlich wie bei einem CAD Programm.
Welchen Inhalt? Soll das Koordinaten-Kreuz an der gleichen Stelle bleiben und Du verschiebst nur die Punkte? Dann würden sich nur die Achsen-Beschriftungen ändern?
Das Herausschieben des AXES sieht unpraktisch aus. Dann ist PAN wohl die falsche Methode.
Welchen Inhalt? Soll das Koordinaten-Kreuz an der gleichen Stelle bleiben und Du verschiebst nur die Punkte? Dann würden sich nur die Achsen-Beschriftungen ändern?
genau so.
Zitat:
Das verstehe ich noch nicht. Welches Feld soll wovon ausgefüllt sein?
Das axes welches ich in der GUI erstellt habe.
Gruß
Robert
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.