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

Fragen zum Drag&Drop und Erstellung von Objekten(Linie,

 

MatlabErlerner
Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2015, 09:19     Titel: Fragen zum Drag&Drop und Erstellung von Objekten(Linie,
  Antworten mit Zitat      
Hallo zusammen,

da meine Gui-Kenntnisse sehr rudimentär sind, wollte ich mal fragen, ob mir jemand folgendes Problem erklären kann.
Und zwar möchte ich per Drag&Drop Objekte (Kästchen und Dreiecke) auf im Fenster platzieren. Es soll wie folgt funktionieren:
1. Zuerst möchte ich eine Linie (die in der Länge durch den Benutzer variabel einstellbar ist) auf der Zeichenfläche platzieren. Hier meine erste Frage, wie realisiere ich es, dass ich eine einfache horizontale Linie auf der figure platzieren kann? Muss ich dazu eine Gerade zeichnen plassen per plot-Befehl?
2. Als nächstes möchte ich ein viereckiges Kästchen oder ein Dreieck (auch hier die Frage, wie realisiere ich das? Eventuell für das viereckige Kästchen eine Leere Textbox als Beispiel?) auf der figure per Drag and Drop platzieren. Das Element soll allerdings erst absetzbar sein, wenn es sich auf/an der Linie befindet. Dann soll es grün werden um dem Nutzer zu signalisieren, dass er es jetzt 'fallen lassen' kann.

Bisher habe ich es so hinbekommen, dass ich die Linie per line-Funktion erstelle (s = line('XData',[0.1 0.9],'YData',[0.5 0.5],'ZData',[1 1],'Color','r','LineStyle','-') ). Das Rechteck habe ich per Textbox erzeugt. Um die Textbox auf der Line absetzen zu können, habe ich in die Bedingung fürs absetzen geschrieben, dass die y-Werte der Linie und der Textbox übereinstimmen müssen. Das Problem ist allerdings nun, dass die Textbox sich frei auf der ganzen figure bewegen kann in ihrem Koordinatensystem, die Line jedoch in einem Plot erstellt wird auf der Figure, der dann wiederrum sein eigenes Koordinatensystem hat. Sprich, wenn die y-Werte übereinstimmen, dann liegen nicht die Linie und die Textbox aufeinander. Ist es möglich, dass sich die Textbox ebenfalls nur in dem Plot der Linie bewegen lässt?

Vielen Dank schonmal für eure Hilfe
Grüße
Max
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.2015, 09:51     Titel: Re: Fragen zum Drag&Drop und Erstellung von Objekten(Lin
  Antworten mit Zitat      
Hallo MatlabErlerner,

Wenn Du statt der Text-Box ein patch oder surf nimmst, wird das gleiche Koordinatensystem wie beim LINE-Objekt verwendet. Ein Dreieck ist mit surf auch einfach.
Du könntest eine Box auch per line erstellen, sie wäre dann halt nicht ausgefüllt.

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

Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2015, 10:34     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort Jan Smile

Also mein Ziel ist letztendlich folgendes:
Ich möchte gerne in der Gui (also auf meinem Hauptfester der figure) drei Elemente als static text oder Button haben, die dann heißen sollen: Linie, Dreieck, Kreis. Wenn jetzt der Nutzer per Drag and Drop ein Element sich greift (bspw. zuerst die Linie), dann möchte ich, dass er diese frei in einem definierten Zeichenbereich platzieren kann.
Das ist so das erste Teilsziel.
Als nächstes greift sich der Nutzer bspw. einen Kreis. Diesen soll er allerdings nur an der zuvor platzierten Linie ablegen können. Sprich der Kreis soll mit der Linie 'verankert' sein.
Wie ist dies zu realisieren, wie gesagt, ich habe nahezu keine Erfahrungen in der Gui-Programmierung und auch meine Matlab-Kenntnisse sind noch sehr begrenzt.
Anbei habe ich mal ein Bild angefügt, wie ich mir in etwa das ganze vorstelle, was ich gerade beschrieben habe.

Vielen Dank weiterhin für eure Mühen!
Max

DragDrop.png
 Beschreibung:

Download
 Dateiname:  DragDrop.png
 Dateigröße:  28.74 KB
 Heruntergeladen:  363 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
MatlabErlerner
Themenstarter

Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2015, 11:31     Titel:
  Antworten mit Zitat      
Falls jemand anderes auch noch ein paar Tipps/Hilfestellungen parat hat, scheut euch nicht, ich bin um jede einzelne dankbar !
Private Nachricht senden Benutzer-Profile anzeigen
 
laternenjoe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 25.02.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 26.06.2015, 11:37     Titel:
  Antworten mit Zitat      
Ich würde das über klick- und mouse_move events machen. Weiß jetzt nicht, wie die in Matlab genau heißen.
Private Nachricht senden Benutzer-Profile anzeigen
 
MatlabErlerner
Themenstarter

Forum-Century

Forum-Century


Beiträge: 104
Anmeldedatum: 26.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2015, 12:54     Titel:
  Antworten mit Zitat      
Okay vielen Dank für die Antwort. Leider habe ich absolut keine Erfahrung mit Klick und MouseMove-Befehlen. Wie würdest du denn grundsätzlich die Linien, Kreise und Dreiecke zeichnen/erstellen? und wie kriege ich es hin, dass diese in dem Bereich der Axes ausschließlich verschiebbar sind?
Private Nachricht senden Benutzer-Profile anzeigen
 
laternenjoe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 25.02.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 27.06.2015, 07:23     Titel:
  Antworten mit Zitat      
Also mit fill kann man Polygone plotten, aber in der Matlabhilfe unter Matlab->Graphics->2-D and 3-D Plots sind einige Funktionen. Ka da musste mal suchen oder googeln, da findet sich bestimmt schnell was.
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.