1

Remove["Global`*"]

a={3,2,1}; v1={4,2,5}; v2={3,4,-4}/Norm[{3,4,-4}] Norm[v1];

v1.v2

u=Cross[v1,v2]/Norm[Cross[v1,v2]] Norm[v1]

u//N

p[11]=a;     p[12]=a+v1;  p[13]=p[12]+v2;p[14]=a+v2;;
p[21]=p[11]+u;p[22]=p[12]+u;p[23]=p[13]+u; p[24]=p[14]+u;

q1[x_]:=Point[p[x]];
q[x_]:=q1[x];
s1=Show[Graphics3D[{PointSize[0.05],q[11],q[12],q[13],q[14],q[21],q[22],q[23],q[24],Line[{p[11],p[12],p[13],p[14],p[11]}],Line[{p[21],p[22],p[23],p[24],p[21]}],Line[{p[11],p[21]}],Line[{p[12],p[22]}],Line[{p[13],p[23]}],Line[{p[14],p[24]}]}]];

v3=p[23]-p[11]+v1;
a1=a;
a=a+v3;

p[11]=a;     p[12]=a+v1;  p[13]=p[12]+v2;p[14]=a+v2;;
p[21]=p[11]+u;p[22]=p[12]+u;p[23]=p[13]+u; p[24]=p[14]+u;
q1[x_]:=Point[p[x]];
q[x_]:=q1[x];
s2=Show[Graphics3D[{PointSize[0.05],q[11],q[12],q[13],q[14],q[21],q[22],q[23],q[24],Line[{p[11],p[12],p[13],p[14],p[11]}],Line[{p[21],p[22],p[23],p[24],p[21]}],Line[{p[11],p[21]}],Line[{p[12],p[22]}],Line[{p[13],p[23]}],Line[{p[14],p[24]}]}]];

Show[s1,s2];

Print[v1.v2]//Chop;
v11 = {v1[[1]],v1[[2]]}; e1 = {1,0}; Print[v11];
α = ArcCos[v11.e1/Norm[v11]]//N; Print[α];
m1[α_]:= {{Cos[α],-Sin[α],0},{Sin[α],Cos[α],0},{0,0,1}};
v12 = m1[-α].v1//Chop; Print[v12];
v22 = m1[-α].v2//Chop; Print[v22, " ", v12.v22//Chop];
v13 = {v12[[1]],v12[[3]]}; e1 = {1,0};  Print[v13];
β = ArcCos[v13.e1/Norm[v13]]//N; Print[β];
m2[β_]:= {{Cos[β],0,-Sin[β]},{0,1,0},{Sin[β],0,Cos[β]}};
v14 = m2[-β].v12 //Chop;  Print[v14];
v24 = m2[-β].v22 //Chop;  Print[v24, " ", v14.v24//Chop];
γ = 120 Degree;
m3 = {{1,0,0},{0,Cos[γ],-Sin[α]},{0,Sin[γ],Cos[γ]}};
v25 = m3.v24 //Chop;  Print[v25 , " ", v14.v25//Chop];
v26 = m2[β].v25 //Chop;  Print[v26, " ", v12.v26//Chop];
v27 = m1[α].v26 //Chop;  Print[v27, " ", v1.v27//Chop];

a={3,2,1}; v1={4,2,5}; v2=v27/Norm[v27] Norm[v1];
v1.v27//Chop

v1.v2//Chop

u=Cross[v1,v2]/Norm[Cross[v1,v2]] Norm[v1]

p[11]=a;     p[12]=a+v1;  p[13]=p[12]+v2;p[14]=a+v2;;
p[21]=p[11]+u;p[22]=p[12]+u;p[23]=p[13]+u; p[24]=p[14]+u;
q1[x_]:=Point[p[x]];
q[x_]:=q1[x];
s3=Show[Graphics3D[{PointSize[0.05],q[11],q[12],q[13],q[14],q[21],q[22],q[23],q[24],Line[{p[11],p[12],p[13],p[14],p[11]}],Line[{p[21],p[22],p[23],p[24],p[21]}],Line[{p[11],p[21]}],Line[{p[12],p[22]}],Line[{p[13],p[23]}],Line[{p[14],p[24]}]}]];

Show[s1,s2,s3];

Show[s1,s2,s3,ViewPoint->{-1.880, -4.260, 1.110}];