Verfasst am: 30.04.2021, 07:54
Titel: Rechteck in GUI
Hallo,
ich probiere mich an einer GUI.
Folgendes will ich realisieren:
Einen Schieberegler, mit dem ein Winkel zwischen 0° und 90° ausgewählt werden kann.
Ein Rechteck innerhalb der Grafik, welches durch die Eckpunkte (-2;0.1), (0.2;0.1), (0.2; -0.1), (-0.2;-0.1) gegeben ist. Hier komme ich im Editor nicht zurecht, wie ich zum einen den Achsenbereich richtig vorgebe (soll -10 bis + 10 auf x un y) und zum anderen nicht, wie ich die rectangle Funktion aufrufe.
Die rectangle Fkt clipt mir momentan das Recheck an die Achsen, was ich nicht möchte. Wie ist hier der Ansatz.
In einem späteren Schritt soll das Rechteck gedreht werden (winkel vom Schieberegler), wofür ich auch Rotationsfkt gestellt bekommen habe.
% --- Executes just before erstling is made visible. function erstling_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to erstling (see VARARGIN)
% Choose default command line output for aufgabe
handles.output = hObject;
% --- Outputs from this function are returned to the command line. functionvarargout = erstling_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on slider movement. function slider3_Callback(hObject, eventdata, handles) % hObject handle to slider3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider
% --- Executes during object creation, after setting all properties. function slider3_CreateFcn(hObject, eventdata, handles) % hObject handle to slider3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: slider controls usually have a light gray background. ifisequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);
end
Die rectangle Fkt clipt mir momentan das Recheck an die Achsen, was ich nicht möchte.
Was meinst du mit clip? Das englische Wort heißt meines Wissens "abgeschneiden", aber hier wird doch nichts abgeschnitten?
Falls du mehr Platz um das Rechteck haben willst: mit xlim und ylim kannst du die Skalierung der Achsen ändern, z.B.
In einem späteren Schritt soll das Rechteck gedreht werden (winkel vom Schieberegler), wofür ich auch Rotationsfkt gestellt bekommen habe.
Hast du dazu eine Frage? Wenn ja, was ist sie?
GUIDE würde ich übrigens nicht mehr für neue Projekte verwenden, sondern App Designer.
Zitat:
The GUIDE environment will be removed in a future release. After GUIDE is removed, existing GUIDE apps will continue to run in MATLAB® but they will not be editable in GUIDE.
To continue editing an existing GUIDE app, see GUIDE Migration Strategies for information on how to help maintain compatibility of the app with future MATLAB releases. To create new apps interactively, Develop Apps Using App Designer instead.
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Hallo Harald,
danke für deine Nachricht.
Mit clip meinte ich Festklammern. Ich habe Probleme, die Grafik anzupassen und komme mit dem Editing im App Designer nicht zurecht. Und ja, habe guide versucht wegen den Problemen im App Designer.
Habe das so probiert:
Code:
pgon = polyshape([0022],[2002]); % erste Klammer alle x Koord, zweite Klammer alle y Koord. plot(pgon)
Als nächstes möchte ich im App Designer einen Slider einbauen und mit dem einzustellenden Wert zw. 0 und 90° einen Drehwinkel vorgeben. Um diesen SliderDegree-Wert will ich an einem mit chooseEdge gewählten Punkt die Form drehen.
Ich brauche den Wert des Sliders, den ich wohl so bekomme:
Code:
function SliderValueChanging(app, event)
changingValue = event ;
SliderDegree = changingValue.Value ;
end
Wie kann ich für eine unbestimmte Anzahl an Rotationen mein Rechteck drehen und in der Grafik den Plot erneuern?
Code:
for k = 1:inf
newPgon = rotate(pgon,SliderDegree, PointA); % Wenn es geht Point.. ueber chooseEdge zu waehlen, waere es optimal plot(newPgon) pause(0.5);
end
Ich habe Probleme, die Grafik anzupassen und komme mit dem Editing im App Designer nicht zurecht.
Welche konkreten Probleme hast du?
Zitat:
Und ja, habe guide versucht wegen den Problemen im App Designer.
Das ist in etwa so, als ob du auf Windows 98 wechselst, weil du Probleme mit Windows 10 hast.
Zitat:
Um diesen SliderDegree-Wert will ich an einem mit chooseEdge gewählten Punkt die Form drehen.
Was ist chooseEdge?
Zitat:
Wie kann ich für eine unbestimmte Anzahl an Rotationen mein Rechteck drehen
Eine for-Schleife über eine unbestimmte Anzahl ist nicht sinnvoll. Wenn, dann solltest du while verwenden.
Du meintest aber doch, du willst um einen bestimmten Winkel drehen?
Insgesamt schreibst du zwar ausführlich, was du machst oder machen willst. Mir wird daraus aber nicht recht klar, welche Probleme oder Fragen du dazu hast.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Bin ich mit dem Aufrufen unter der openingFunction auf dem richtigen Weg?
In der openingFunction müssen die Befehle stehen, die beim Starten der GUI ausgeführt werden sollen. Wenn du dort die Position des Sliders abfragen willst, dann ist der Aufruf dort richtig - ansonsten nicht.
Sowohl die Zeile als auch openingFunction legen für mich die Verwendung von GUIDE nahe, und so gesehen ist man dann automatisch nicht auf dem richtigen Weg.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
% Create UIFigure and components function createComponents(app)
% Create UIFigure and hide until all components are created
app.UIFigure = uifigure('Visible', 'off');
app.UIFigure.Position = [100100640480];
app.UIFigure.Name = 'UI Figure';
In der App Designer Maske konnte ich nur die Auswahl auf "A" festlegen
Code:
% Value changing function: chooseedgepointEditField function A(app, event)% ich moechte aber das dieses Feld auch auf die Eingabe von B, C oder D reagiert
changingValue = event.Value;
Point = PointA;
end
die Fehlermeldung sollte nicht überraschen, denn jeder Callback ist eine eigene Funktion / Methode und hat somit einen eigenen Workspace. Abhilfe: pgon als Property definieren und dann mit app.pgon darauf zugreifen. Das wird, wenn ich mich recht erinnere, auch im integrierten Tutorial von App Designer gezeigt.
Zitat:
In der App Designer Maske konnte ich nur die Auswahl auf "A" festlegen
Ich habe keine Ahnung, von welcher "Maske" du sprichst. Was soll es bezwecken, die Funktion A zu nennen?
Wenn eine Auswahl zwischen A, B, C und D getroffen werden soll, dann würden sich doch Radio Buttons anbieten?
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ja, stimmt! Ich probiere Radio Buttons aus, vielen Dank für den weiteren Tipp!
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.