三次元空間において原点を始点とし、ある点へ向いたベクトルがあります。
(移動前の点の座標をstartとする)

点をstartからへ移動させたとき、移動後の点へx軸、y軸、z軸周りにどのくらいの角度だけ回転させればよいかを求めたいです。
(移動後の座標をgoalとする)

x軸周りはyz平面、y軸周りはzx平面、z軸周りはxy平面に射影し、

atan2(goal.y, goal.x) - atan2(start.y, start.x)  x軸周りの回転角度・・・�@
atan2(goal.x, goal.z) - atan2(start.x, start.z)  y軸周りの回転角度・・・�A
atan2(goal.z, goal.y) - atan2(start.z, start.y)  z軸周りの回転角度・・・�B

として求め、再度

goal = Tx*Ty*Tz*start

として計算を行ってみたのですが、意図したgoalになりません。
(ただしTx、Ty、Tzは各軸を軸に回転する回転行列)

また、移動前の点がx軸上にあっても�@式の計算の時点でx軸周りに回転する角度が出てきたりするのはなぜなんでしょうか。
どこかまずいところがあれば指摘お願いいたします。