Clockface[x_,y_]:={Circle[{0,0},{x,y}],Arrowheads[0.03],Arrow[{{0,0},{x,0}}],Arrow[{{0,0},{0,y}}]};
Clocktext[x_,y_,strx_,stry_,fixangle_]:=With[{M={{Cos[fixangle],Sin[fixangle]},{-Sin[fixangle],Cos[fixangle]}}},{Black,Text[strx,({{x,0}}.M)[[1]]],Text[stry,({{0,y}}.M)[[1]]]}];
Manipulate[Module[{A={{a,c},{b,d}},m,g,sqrtff,r1,r2,s1,s2},
m=SingularValueDecomposition[A]//N;
g=m[[1]].Transpose[m[[3]]];
sqrtff=m[[3]].m[[2]].Transpose[m[[3]]];
r1=ArcTan@@Transpose[m[[3]]][[1]];
r2=ArcTan@@Transpose[g][[1]];
s1=m[[2,1,1]];s2=m[[2,2,2]];
{Show[
Graphics[If[ShowBoxes,{EdgeForm[{Thick,Dashed}],FaceForm[Opacity[0]],Rectangle[{0,0},{1,1}]},{}]],
Graphics[If[ShowBoxes,{EdgeForm[{Thick,Dashed,Red}],FaceForm[Opacity[0]],Polygon[{{0,0},Transpose[A][[1]],Plus@@Transpose[A],Transpose[A][[2]]}]},{}]],
Graphics[If[ShowEFrame,Rotate[Clockface[1,1],r1],{}]],
Graphics[If[ShowEFrame,Clocktext[1,1,"e1","e2",r1],{}]],
Graphics[If[ShowEFrame,{Magenta,Rotate[Clockface[s1,s2],r1]},{}]],
Graphics[If[ShowEFrame,Clocktext[s1,s2,"s1","s2",r1],{}]],
Graphics[If[ShowFFrame,{Blue,Rotate[Clockface[s1,s2],If[Det[g]>0,r1+r2,r2-r1]]},{}]],
Graphics[If[ShowFFrame,Clocktext[s1,s2,"f1","f2",If[Det[g]>0,r1+r2,r2-r1]],{}]],
Graphics[{Green,Disk[Transpose[A][[1]],1/8],Black,Text["fx",Transpose[A][[1]]],Purple,Disk[Transpose[A][[2]],1/8],Black,Text["fy",Transpose[A][[2]]]}],
Graphics[If[ShowEFrame&&ShowFFrame,{Orange,Circle[{0,0},s1,{Mod[r1,2Pi],Mod[If[Det[g]>0,r1+r2,r2-r1],2Pi]}]},{}]],
Axes->True,PlotRange->{{-4,4},{-4,4}},ImageSize->Large],
{{"A",Framed[A//MatrixForm]},
{"singular values",Framed[{m[[2,1,1]],m[[2,2,2]]}]},{"g",g//MatrixForm},{"\!\(\*SqrtBox[\(\(\(A\)\(^\)\)*\\ A\)]\)",sqrtff//MatrixForm}}//MatrixForm}],
{{a,1},-2,2},{{b,0},-2,2},{{c,0},-2,2},{{d,1},-2,2},
{{ShowBoxes,True},{True,False}},{{ShowEFrame,False},{True,False}},{{ShowFFrame,False},{True,False}}]