Verfasst am: 01.12.2010, 22:36
Titel: Callback beim Drehen eines plots?
Hallo!
Ich würde gern Teile meines 3D-plots neu zeichnen, wenn die Kameraeinstellungen geändert wurden, z.B. weil das Bild mit der Maus im Raum gedreht wird.
Z.B. soll die Spitze eines 3D-Pfeiles nie in der Ebene liegen, in der auch die Kamera liegt. (Das ist aber nur ein Beispiel und ich möchte keine andere Lösung hierfür)
Gibt es eine Möglichkeit, dann eine Callback-Funktion aufzurufen?
Das einzige, was mir sonst einfällt, ist ein Timer, der 10 mal die Sekunde die Kameraposition auf Veränderung checkt.
versuch dies einmal (als function abspeichernn und ausführen):
Code:
function demo_mbd2
% Listen to rotate events surf(peaks);
h = rotate3d;
set(h,'ActionPreCallback',@myprecallback);
set(h,'ActionPostCallback',@mypostcallback);
set(h,'Enable','on');
%
function myprecallback(obj,evd) disp('A rotation is about to occur.');
%
function mypostcallback(obj,evd)
newView = round(get(evd.Axes,'View'));
msgbox(sprintf('The new viewis[%d %d].',newView));
Danke für die Antwort. Damit lässt sich schon einiges machen. Allerdings funktioniert es glaub ich nicht, wenn man mit der camera toolbar spielt. Gibts keine allgemeine redraw-callback funktion?
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.