clear all R = 100; L = 200; a = 0:pi/20:4*pi; %--- Eq. de Posição do Mecanismo --- %--- Usando o Looping --- for i=1:length(a), b(i) = acos(R*cos(a(i))/L); yC(i) = R*sin(a(i)) + L*sin(b(i)); end %--- Fazendo direto --- b = acos(R*cos(a)/L); yC = R*sin(a) + L*sin(b); % subplot(2,1,1) % plot(a*180/pi,yC,'b-') % xlabel('Ângulo \alpha (graus)') % ylabel('Deslocamento do Pistão (mm)') % axis([0 360 0 300]) % grid on % % subplot(2,1,2) % plot(a*180/pi,b*180/pi,'r-') % hold on % plot([0 360],[90 90],'k--') % hold off % xlabel('Ângulo \alpha (graus)') % ylabel('Ângulo \beta (graus)') % axis([0 360 0 180]) % grid on %--- ANIMAÇÃO --- for i=1:length(a), b(i) = acos(R*cos(a(i))/L); yC(i) = R*sin(a(i)) + L*sin(b(i)); xB = R*cos(a(i)); yB = R*sin(a(i)); plot([0 xB],[0 yB],'r-','linewidth',3) hold on plot(0,yC(i),'ks','markersize',30,'markerfacecolor',[0.6 0.6 0.6]) plot([xB 0],[yB yC(i)],'b-','linewidth',2) plot(0,0,'ko','markersize',10,'markerfacecolor','w') plot(xB,yB,'ko','markersize',10,'markerfacecolor','w') plot(0,yC(i),'ko','markersize',10,'markerfacecolor','w') hold off axis([-200 200 -100 300]) text(0,20,'A') text(xB+20,yB,'B') text(20,yC(i),'C') axis square grid on pause(0.1) end