clc;
clear;
close all;
format SHORTG
a=50;% Crank
b=70;% Coupler Link
c=90 %Output Link
d=100;% fixed Link
e=33;% CouplerExtension
alpha=40;% Coupler Extenstion Angle
ar=alpha*pi/180;% Degree to radian of Coupler Extenstion Angle
theta=50:1:410;% Initial angle with limit of rotation
T=theta*pi/180;% Degree to radian of Initial angle
f=sqrt(a*a+d*d-2*a*d* cos(T));
%% Section 2: Calculations
% Angles and Coupler curve Coordinates
%%
for i=1: length(theta)
%calculation of Angles
G(i)=atan((a* sin(T(i)))/(d-a* cos(T(i))));
Bita(i)=acos((f(i).*f(1,i)+b*b-c*c)/(2*b*f(i)))-G(i);
%Coordinates
X(i)=a*cos(T(i))+e*cos(ar+Bita(i));
Y(i)=a*sin(T(i))+e*sin(ar+Bita(i));
%%Section 3:Plotting and Animation
hold on;
title('FourBar Coupler curve plotting')
xlim([-60,120])
ylim([-60,120])
plot(X,Y,'b','Linewidth',1)
Trace=viscircles([X(i) Y(i)],2,'color','k');
Cx=[0 a*cos(T(i)) b*cos(Bita(i))+a*cos(T(i)) d a*cos(T(i))+e*cos(Bita(i)+ar)];
Cy=[0 a*sin(T(i)) b*sin(Bita(i))+a*sin(T(i)) 0 a*sin(T(i))+e*sin(Bita(i)+ar)];
crank=line([0 Cx(2)],[0 Cy(2)],'color','r','linewidth',5);%tlink 1
coupler=line([Cx(2) Cx(3)],[Cy(2) Cy(3)],'color','g','linewidth',5);%tlink 2
output=line([Cx(3) d],[Cy(3) 0],'color','y','linewidth',5);%tlink 3
fix=line([0 d],[0 0],'color','k','linewidth',5);%link4
eline=line([Cx(2) Cx(5)],[Cy(2) Cy(5)],'color','c','linewidth',3);
eoline=line([Cx(5) Cx(3)],[Cy(5) Cy(3)],'color','c','linewidth',3);%link e joint
%Animation of Plotting by Deleting the previous plotting
pause(0.005)
delete(crank)
delete(coupler)
delete(output)
delete(eline)
delete(eoline)
delete(Trace)
end
% Back to Initial Position
crank=line([0 Cx(2)],[0 Cy(2)],'color','r','linewidth',5);%link 1
coupler=line([Cx(2) Cx(3)],[Cy(2) Cy(3)],'color','g','linewidth',5);%link 2
output=line([Cx(3) d],[Cy(3) 0],'color','y','linewidth',5);%link3
fix=line([0 d],[0 0],'color','k','linewidth',5);%links 4
eline=line([Cx(2) Cx(5)],[Cy(2) Cy(5)],'color','c','linewidth',3);
eoline=line([Cx(5) Cx(3)],[Cy(5) Cy(3)],'color','c','linewidth',3);%link e joint