How to translate, rotate and scale a meshgrid between two points in 3D space I am trying to translate, rotate and scale a meshgrid between two points in 3D space, however, I cannot seem to get it right. I need my meshgrid to follow the points in order to make an animated 3D figure.
I have attached an illustration of my problem (A) and what I would like to achieve (B) here. 
So what I would like is to:


*

*Translate the meshgrid (D,C,A,B,E) so D overlap point F. 

*Rotate the mesh grid so vector DE is matching vector FG.

*Scale the meshgrid to match the length of vector FG


I tried to rotate the grid using the following trigonometry, but it doesn't look right:
v = pointG- pointF
theta = np.arctan2(v[1], v[0])
phi = np.arctan2(np.linalg.norm(v[:2]), v[2])

Can you help me? And sorry if my question is badly formulated. I am not home in mathematics.

1) Translate everything to bring $F$ to the origin (i.e. subtract $\vec {OF}$):
the points become $A',B', \cdots$
2) Translate the object bringing $D' \to  F'=O$:
 points are $A'', B'', \cdots$
3) Now you have three point $E'', G''$ and the $O=F'$. They define a plane in which they lie. 
4)In that plane you have to make a dilation (length $|OE''| = |OG''|$) and a rotation
 to finally bring $E''$ to $G''$
5) revert the first translation
