Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 旋转矩阵的Y旋转_C++_Math_3d_Matrix_Rotation - Fatal编程技术网

C++ 旋转矩阵的Y旋转

C++ 旋转矩阵的Y旋转,c++,math,3d,matrix,rotation,C++,Math,3d,Matrix,Rotation,这是我的斧子。我不知道该怎么称呼它。(是ZXY吗?) (这是摄像机看到的) 我想知道绕Y轴的平面旋转。目前是0度左右的Y 我就是这么做的 Matrix33 orientmatrix = body->getGlobalOrientation(); return Degree(-asin(orientmatrix[2][0])); 这将返回不正确的逆时针角度: 0..45..90..45..0..-45..-90..-45..0 应该是: 0…45…90…135…180…45…90…135

这是我的斧子。我不知道该怎么称呼它。(是ZXY吗?) (这是摄像机看到的)

我想知道绕Y轴的平面旋转。目前是0度左右的Y

我就是这么做的

Matrix33 orientmatrix = body->getGlobalOrientation();
return Degree(-asin(orientmatrix[2][0]));
这将返回不正确的逆时针角度: 0..45..90..45..0..-45..-90..-45..0

应该是: 0…45…90…135…180…45…90…135…0

我做错了什么

多谢各位


(这是食人魔,代码是C++)

你做错的是你在使用asin。它返回一个介于-pi/2到+pi/2或-90度到+90度之间的值

如果希望值跨越360度,则需要使用
atan2
。假设你的方向真的是围绕y旋转,你可以使用

Degree(atan2(orientmatrix[0][2], orientmatrix[0][0]))