Remove underlying graph and eliminate flickering.
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Hello, I have a code that shows a dot moving up and down on a picture. However, the dot is moving on an underlying sin curve so when I run the program, the whole thing flickers. I want to remove the flickering and only show the dot moving on the picture without seeing the sine curve. How would I do this? 
x = 0:.01:50; %linspace of x
y = sin(x); %wave equation
px = 10; %initial x plot 
py = 0; %initial y plot
img =imread('AvgBscan.tiff'); %read in image 
for i=1:630 %loop
    imshow(img);
    set(gcf,'DoubleBuffer', 'off');
    h = patch([0 1 0 1], [0 1 1 0], 'r');
    hold on
    figure(100);%so code will replot over the previous figure, and not make a new one.
    hold off 
    py = y(i)
    plot(x,y, px, py,'o'); %circle point
    pause(0.05); %speed of moving point
0 Kommentare
Antworten (1)
  Steven Lord
    
      
 am 15 Aug. 2020
        Don't keep plotting and deleting graphics objects. I recommend the "Update the properties of a graphics object and display the updates on the screen" approach described on this documentation page. The first two Related Topics on that page demonstrate two techniques by which you can do that.
Siehe auch
Kategorien
				Mehr zu Graphics Objects finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

