Dot Products

b={2,1};
MatrixForm[b];
orig={0,0};


pic1[x_,y_]:=Graphics[{Thick,Red,Arrow[{orig,b}],Thick,Green,Arrow[{orig,{x,y}}]},AspectRatio->1,Axes->True,PlotRange->{{-3,3},{-3,3}}];
pic2[x_,y_]:=Graphics[{Green,Polygon[{{0,0},{0.3,0},{0.3,b.{x,y}},{0,b.{x,y}},{0,0}},VertexColors->{Green,Green, Black,Black}]},Axes->{False,True},AspectRatio->6,PlotRange->{-4,4}];

pic3[x_,y_]:=Graphics[{Green,Polygon[{{0,0},{0.3,0},{0.3,VectorAngle[b,{x,y}]},{0,VectorAngle[b,{x,y}]},{0,0}},VertexColors->{Green,Green, Black,Black}]},Axes->{False,True},AspectRatio->6,PlotRange->{0,Pi}];


Manipulate[{pic1[x,y],pic2[x,y],pic3[x,y]},
{x,2,-2,-.1},{y,2,-2,-.1}]

This shows cos (b, {x, y})

pic3[x_,y_]:=Graphics[{Green,Polygon[{{0,0},{0.3,0},{0.3,b.{x,y}/(Norm[b]*Norm[{x,y}])},{0,b.{x,y}/(Norm[b]*Norm[{x,y}])},{0,0}},VertexColors->{Green,Green, Black,Black}]},Axes->{False,True},AspectRatio->6,PlotRange->{-1,1}];

Manipulate[{pic1[x,y],pic3[x,y]},
{x,2,-2,-.1},{y,2,-2,-.1}]

3 D vectors work as well.

v1={1,2,3};
v2={-1,-1,0};

v1.v2

Interchange two vectors : same result.

v2.v1

Multiply a vector by a constant : dot product gets multiplied by that constant.

(2v1).v2