Looking to animate two lines with the angle between them changing?

Have an EMG signal which I've used to get a range of corresponding angles. would like to have 2 lines representing an arm where the angle I have is between them. From there i would like to animate the whole process with all angles. Cannot figure out how to do this?

Answers (2)

Are you wanting to animate this in real time or create a video file from the plot.
You may be interested in looking at these two functions:

1 Comment

create a video file from the plot. I cant seem to plot the lines with the associated angle?

Sign in to comment.

Bro, If you are working with EMG signals you should really know how to do Highschool trig... haha :-)
But anyway, here is an example of how you could do it using Unit Circle concepts and a line of length 1! Replace angles with your angles in degrees - This one animates from 30-90. (If your angles are in Radians use sin and cos instead of sind and cosd )
figure
for angles= [30:90];
x = cosd(angles);
y = sind(angles);
plot([0,1],[0,0],[0,x],[0,y])
axis([-1.5 1.5 -1.5 1.5])
pause(.01)
end

7 Comments

very true! :)
so if i wanted to run this in reverse would that be possible to show the arm being raised instead of being dropped?
Also the range of values i have are going up and down depending on the level of contraction so will that be able to cope with the change?
They can go up or down its fine. They dont have to be in order. There's a way to do anything with the arm. Have an example?
It could go up 30, skip every 5 down 120, then jump to some random number if you wanted to be honest. It can do whatever. Just put the angles in angles as a vector in the order you want them displayed (which is probably whatever you already have them in)
I dont know what you meant be being 'raised instead of dropped'. Do you mean the horizontal line coming up? You could do that.
for example i had my arm contraction at roughly 25% then stop then 50% then stop and so on so id like to animate the whole process. I have around 46000 angles ranging from 0 to around 140 degrees.
no i mean that instead of the moving line running left to right i wanted it to run right to left which would represent the arm being raised as opposed to being relaxed
25% and 50%... of the time lapse?
Also, this script pauses for .1 seconds for each angle to help see... but if you have 46000 angles thats way too long, you should edit that or else just read in every 100 angles or something if its extremely small changes
I think I am misunderstanding what you mean by raised. I am sorry.
On my plot, it already looks like the arm is being 'raised' [from the horizontal - to Vertical]...
no it was to do with the level of contraction which would result in a larger EMG which would then result in a smaller angle between the upper and lower arm as you are applying more force.
Ye it does take a long time all right. will have to take a sample value every so often in the entire vector to make it run a bit quicker.

Sign in to comment.

Asked:

on 25 Nov 2014

Edited:

on 25 Nov 2014

Community Treasure Hunt

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

Start Hunting!