Verfasst am: 14.02.2008, 16:25
Titel: Unmittelbare Ausgabe im Plot
Servus,
meine Frage:
wie kann ich unmittelbar bzw. simultan zu einer Berechnung/Userinteraktion bereits beendete Ergebnisse/Editierungen in einem Plot ausgeben?
In meiner Implementierung soll beispielsweise der Anwender mit dem Befehl ginput aneinanderhängende lineare Züge beliebiger Länge im Plot definieren, bis er seine Auswahl mit der Entertaste beendet.
Nach Abschluss wird dieser Polygonzug im Plot gezeichnet:
Nun soll aber der Polygonzug nicht erst nach Ende der gesamten Userinteraktion sondern jede einzelne Gerade unmittelbar nach ihrer Definition gezeichnet werden, so dass der User sofort nachvollziehen kann, welchen Polygonzug er bereits gewählt hat.
Mein Gedanke war, den Polygonzug aufzuteilen und den Plot innerhalb einer for-Schleife ablaufen zu lassen, à la:
Um das gewünschte Ergebnis zu erreichen, müsste jedoch nun auch der ginput-Befehl in diese Schleife irgendwie miteingepackt werden und dementsprechend dynamisch ablaufen.
Kann man dies dementsprechend so implementieren oder gibt es bzw. kann man Befehle wie drawnow benutzen, um unmittelbar den Plot ausgeben zu lassen, oder pause, um die ginput-Funktion mit der nächsten Gerade warten zu lassen, bis die vorherige gezeichnet ist?
Merci, vielen Dank für die Hilfe, das klappt schon mal!
Eine Frage wär noch, ob es auch möglich ist die Anzahl der lines n, die hier auf 5 gesetzt ist, variabel zu gestalten, d.h. dass der Benutzer beliebig viele (oder wenige) aneinanderhängende lines definieren kann, bis er eine bestimmte (Return-, Maus- oder etc.-Taste) drückt und so seine Aktion abschließt?
Über das Beispiel zur ginput-Fkt. bin ich draufgekommen.
Etwas umständlicher als zuvor, aber klappt:
Code:
ab = []; n = 0;
mou = 1; i=1;
while mou == 1 [ai,bi,mou] = ginput(1);
% Plot der ausgewählten Polygonpunkte plot(ai,bi,'ro')
n = n+1;
ab(:,n) = [ai;bi];
[u,k]=size(ab);
if k >=2 for i=2:k
abs=[ab(1,i-1), ab(1,i); ab(2,i-1), ab(2,i)];
% Plot des jeweils aktuellen Straßenzugs plot(abs(1,:), abs(2,:), 'r');
end end end
% Plot des endgültigen Polygonzugs
p2=plot(ab(1,:),ab(2,:)); set(p2,'Color','r'); set(p2,'LineWidth',2);
die image processing toolbox hab' ich leider nicht, wär aber wohl nicht verkehrt.
gruß
jochma
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.