为什么 System.Numerics Matrix4x4 使用转置表示法?
传统上,变换矩阵的表示法如下:
R1 R2 R3 T1
R4 R5 R6 T2
R7 R8 R9 T3
0 0 0 1
C# System.Numerics.Matrix4x4 类似乎使用此约定: https://learn.microsoft。 com/fr-fr/dotnet/api/system.numerics.matrix4x4?view=net-6.0
R1 R4 R7 0
R2 R5 R8 0
R3 R6 R9 0
T1 T2 T3 1
这完全是转置的。这意味着必须相应地调整乘法: M1 * M2 必须更改为 M2_transpose * M1_transpose
这有什么原因吗?我从未在任何地方见过这种转置符号
Traditionally notation of a Transformation matrix is as such:
R1 R2 R3 T1
R4 R5 R6 T2
R7 R8 R9 T3
0 0 0 1
The C# System.Numerics.Matrix4x4 class seems to use this convention instead:
https://learn.microsoft.com/fr-fr/dotnet/api/system.numerics.matrix4x4?view=net-6.0
R1 R4 R7 0
R2 R5 R8 0
R3 R6 R9 0
T1 T2 T3 1
This is exactly transposed. This means multiplications must be adjusted accordingly:
M1 * M2 must be changed to M2_transposed * M1_transposed
Is there some reason for this? Ive never seen this transposed notation used anywhere
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论