How to connect a line between two moving points?

조회 수: 3 (최근 30일)
Pablo González de la Parra
Pablo González de la Parra 2020년 10월 15일
댓글: Pablo González de la Parra 2020년 10월 22일
Hello! I am trying to model a sliding-crank mechanism using fanimator's and simple fplot's. I´ve managed to model the movement of the "crank" or the circle, and also the movement of the "slide" or the horizontal movement. But I am asked to unite these moving points with a line (that can move obviously with them and without changing its lenght) in order to represent the "connecting rod" to finish the mechanism. So, how can I make this line so when the "animation" runs the mechanism looks complete?
r=5;
l=20;
f = @(t) plot(r*cos(t), r*sin(t), "ro", "MarkerFaceColor", "r", "MarkerSize", 16);
fanimator(f,"AnimationRange", [0 6*pi]);
hold on
g = @(t) plot(r*cos(t)+sqrt(l^2-r^2*sin(t)*.2),0, "ro", "MarkerFaceColor", "r", "MarkerSize", 16);
fanimator(g,"AnimationRange", [0 25]);
hold off
syms t
x = r*cos(t);
y = r*sin(t);
x1 = t;
y1 = t-t;
hold on
fplot(x, y, [0,2*pi])
title("Circulo")
hold off
hold on
fplot(x1, y1, [15, 25])
title("Linea Recta")
hold off

채택된 답변

Swatantra Mahato
Swatantra Mahato 2020년 10월 19일
Hi Pablo,
Assuming you want to join the points representing the "crank" and the "slide", you can do this in a similar way how you generated the points. You can include the following lines in your script:
rod=@(t)plot([r*cos(t),r*cos(t)+sqrt(l^2-r^2*sin(t)*.2)],[r*sin(t),0]);
fanimator(rod,"AnimationRange",[0 6*pi]);
Here rod is a line connecting the points representing the "crank" and the "slide" and fanimator enables the rod to move along with the points for the same time as "crank" (6*pi).
Hope this helps

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Modeling에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by