考虑以下:
>>>Matrix44.from_translation( np.array([1,2,3]))
Matrix44([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[1, 2, 3, 1]])
>>> Matrix44.from_x_rotation(0.5 * np.pi)
Matrix44([[ 1.0, 0.0, 0.0, 0.0],
[ 0.0, 0.0, -1.0, 0.0],
[ 0.0, 1.0, 0.0, 0.0],
[ 0.0, 0.0, 0.0, 1.0]])
平移矩阵显示矩阵的布局是列优先的,但旋转矩阵令人困惑地表明它是行优先的,如果您考虑以行优先表示法读取的围绕 X 的标准右手 3x3 旋转矩阵读取:
0.0 0.0 0.0
0.0 cos(a) -sin(a)
0.0 sin(a) cos(a)
似乎是返回的结果from_x_rotation
。有谁知道这是一个错误,还是我误解了什么?