2012-08-29 48 views
0

我有一個仿射變換矩陣的重建問題。 翻譯矩陣重建工作得很好,但不是旋轉。解決旋轉變換

謝謝你們!

(*Works just fine*) 
Clear["Global`*"] 
data = RandomReal[10, {100, 3}]; 
data0 = TranslationTransform[{1, -1, 1}]@data; 
{dX0, dY0, dZ0} /. 
Solve[data0 == TranslationTransform[{dX0, dY0, dZ0}]@data, {dX0, dY0, 
    dZ0}] 


(*Yields {} ????*) 
Clear["Global`*"] 
data = RandomReal[10, {10, 3}]; 
data0 = RotationTransform[10 , {1, 0, 0}]@data; 
Solve[data0 == RotationTransform[aZ0 Degree, {0, 0, 1}]@data, {aZ0}] 

回答

0

你只有一個變量的方程式太多。

data = RandomReal[1, {10, 3}]; 
data0 = RotationMatrix[1/2, {1, 0, 0}].# & /@ data; 
Solve[Thread[data[[1]] == RotationMatrix[aZ0, {1, 0, 0}].data0[[1]]][[2]], {aZ0}] 
(* 
-> -0.5 
*)