Make a point move up and down

I am trying to code for a point inserted on an image that is stationary on the x direction but is moving up and down in the y direction. I have set px = 0 but I am not sure what to do about py.
Here is what I have:
x = 0:.01:20; %linspace of x
y = sin(x); %wave equation
px = 0; %initial x plot
py = 0; %initial y plot
img =imread('AvgBscan.tiff'); %read in image
for i=1:100 %loop
imshow(img);
set(gcf,'DoubleBuffer', 'on');
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
plot(x,y, px, py,'o'); %circle point
pause(0.02); %speed of moving point
px = 0;
py = sin(px); %get that point to move
end

 Accepted Answer

x = 0:.01:20; %linspace of x
y = sin(x); %wave equation
px = 0; %initial x plot
py = 0; %initial y plot
img =imread('AvgBscan.tiff'); %read in image
for i=1:100 %loop
imshow(img);
set(gcf,'DoubleBuffer', 'on');
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.02); %speed of moving point
end

5 Comments

Thank you! To make it move down would I adjust the increments?
It should already be moving down, according to sin(x). You could modify the amount by using a multiplier times y(i), or you could change frequency by
py = sin(2*pi*frequency*x(i))
It does not seem to be moving down. It goes up from 0 and stops at 1. If I make it -1*y(i), it just goes down
Your loop is to 100 which gets you to x=0+99*0.01 which is 0.99 radians which is not enough to have started moving down again.
Got it, thank you once again

Sign in to comment.

More Answers (0)

Tags

Asked:

SS
on 7 Aug 2020

Commented:

SS
on 8 Aug 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!