function out=Raven(datos) %raven([A,B,C,tetaA,tetaB,tetaC,caso]), angulos en radianes A=datos(1); B=datos(2); C=datos(3); tetaA=datos(4); tetaB=datos(5); tetaC=datos(6); switch datos(end) case 1 % CASO 1 (A,B, ,tetaA,tetaB, )>(C,tetaC) ['[',num2str(A),', ',num2str(B),', C?, ',num2str(tetaA*pi/180),', ',num2str(tetaB*pi/180),', tetaC?]'] C=sqrt(A^2+B^2+2*A*B*cos(tetaB-tetaA)); tetaC=atan2((A*sin(tetaA)+B*sin(tetaB)),(A*cos(tetaA)+B*cos(tetaB))); [A,B,C,tetaA*180/pi,tetaB*180/pi,tetaC*180/pi] out=[A,B,C,tetaA,tetaB,tetaC]; case 2 % CASO 2 ( , ,C,tetaA,tetaB,tetaC)>(B,A) ['[A?, B?, ',num2str(C), ', ', num2str(tetaA*pi/180),', ',num2str(tetaB*pi/180),', ',num2str(tetaC*pi/180),']'] B=(sin(tetaC-tetaA)/sin(tetaB-tetaA))*C; A=(sin(tetaC-tetaB)/sin(tetaA-tetaB))*C; [A,B,C,tetaA*180/pi,tetaB*180/pi,tetaC*180/pi] out=[A,B,C,tetaA,tetaB,tetaC]; case 3 % CASO 3 ( ,B,C,tetaA, ,tetaC)>(A,tetaB) ['[A?, ',num2str(B),', ',num2str(C), ', ', num2str(tetaA*180/pi),', tetaB? ,',num2str(tetaC*180/pi),']'] tetaB1=tetaA+asin(C*sin(tetaC-tetaA)/B); tetaB2=tetaA+pi-asin(C*sin(tetaC-tetaA)/B); %tetaB2=tetaA+(pi-asin(C*sin(tetaC-tetaA)/B)); A1=C*cos(tetaC-tetaA)-B*cos(tetaB1-tetaA); A2=C*cos(tetaC-tetaA)-B*cos(tetaB2-tetaA); [A1,B,C,tetaA*180/pi,tetaB1*180/pi,tetaC*180/pi] [A2,B,C,tetaA*180/pi,tetaB2*180/pi,tetaC*180/pi] out=[[A1,B,C,tetaA,tetaB1,tetaC];[A2,B,C,tetaA,tetaB2,tetaC]]; case 4 % CASO 4 (A,B,C, , ,tetaC)>(tetaA,tetaB) [num2str(A),', ',num2str(B),', ',num2str(C), ', tetaA?, tetaB? ,',num2str(tetaC*pi/180),']'] tetaB1=tetaC+acos((C^2+B^2-A^2)/(2*B*C)); tetaB2=tetaC-acos((C^2+B^2-A^2)/(2*B*C)); tetaA1=tetaC-acos((C^2+A^2-B^2)/(2*A*C)); tetaA2=tetaC+acos((C^2+A^2-B^2)/(2*A*C)); [A,B,C,tetaA1*180/pi,tetaB1*180/pi,tetaC*180/pi] [A,B,C,tetaA2*180/pi,tetaB2*180/pi,tetaC*180/pi] out=[[A,B,C,tetaA1,tetaB1,tetaC];[A,B,C,tetaA2,tetaB2,tetaC]]; end