为什么 System.Numerics Matrix4x4 使用转置表示法?

发布于 2025-01-16 12:17:08 字数 523 浏览 0 评论 0原文

传统上,变换矩阵的表示法如下:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文