Hey hey,
ich schlag mich jetzt schon gute 2 stunden damit rum ein video in matlab zu machen...
Jetzt dacht ich mir ich poste es mal... weil des eig sehr einfach sein sollte...
ich hab meinen code mal sehr stark vereinfacht und möchte davon jetzt ein video abspeichern (am besten avi)
Code:
Y = 2;
for i=1:100 plot(i, Y , 'o', 'MarkerSize', 10, 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'r');
A(:,i)=getframe;
end
Generate initial data and set axes and figure properties.
Z = peaks; surf(Z);
axis tight
set(gca,'nextplot','replacechildren');
set(gcf,'Renderer','zbuffer');
Setting the Renderer property to zbuffer or Painters works around limitations of getframe with the OpenGL renderer on some Windows systems.
Create a set of frames and write each frame to the file.
for k = 1:20
surf(sin(2*pi*k/20)*Z,Z)
frame = getframe;
writeVideo(writerObj,frame);
end
Generate initial data and set axes and figure properties.
Z = peaks; surf(Z);
axis tight
set(gca,'nextplot','replacechildren');
set(gcf,'Renderer','zbuffer');
Setting the Renderer property to zbuffer or Painters works around limitations of getframe with the OpenGL renderer on some Windows systems.
Create a set of frames and write each frame to the file.
for k = 1:20
surf(sin(2*pi*k/20)*Z,Z)
frame = getframe;
writeVideo(writerObj,frame);
end
close(writerObj);
Passt das?
Andreas
Hey... damit habe ich es auch schon versucht... ich willlnicht sagen das es falsch ist aber ich bekomm es einfahc nicht gebacken.... also wenn du vielleicht die zeit hättest es mit meinem codbeispiel, Beispielhaft zu verdeuttlichen... des wär super!
mit deinem Beispiel Funktioniert es schon, bloß du siehst die Änderung nicht weil der Punkt bewegt sich nicht sondern Axes, also muss du vorher die Axes entsprechend skalieren. PLOT hat eine Eigenschaft Axes zurückzusetzen.
Das kann man zwar über HOLD stoppen, aber dann bleiben die ursprünglich Punkte stehen wie hier:
Code:
hf = figure('Renderer','zbuffer');
Y = 2;
axis([010103]) hold on
for i=1:45 plot(i, Y , 'o', 'MarkerSize', 10, 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'r');
A(:,i)=getframe;
end
MOVIE kann nur wenige Frames abspielen, bei mir bricht schon nach 45 Frames ab. Kann es nicht sagen woran es liegt.
Deswegen wenn du bis 100 Punkt bewegen willst muss die Schrittweite erweitern
Code:
hf = figure('Renderer','zbuffer');
Y = 2;
hPlot = plot(1, Y , 'o', 'MarkerSize', 10, 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'r');
axis([010103])
k = 1;
A = struct('cdata',[],'colormap',[]);
for x=1:3:100 set(hPlot, 'XData', x)
A(:,k)=getframe;
k=k+1;
end
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.