gpt4 book ai didi

c# - 矩阵结构给出错误的输出

转载 作者:行者123 更新时间:2023-11-30 14:44:39 24 4
gpt4 key购买 nike

在 .Net Framework 4.6.2(及更早版本)中,System.Numerics 命名空间中有 Matrix4x4 结构。该结构有一个属性Translation,显然是用来存储翻译部分的。但是,使用此属性时,它会将值存储在最后一行

例子:

var test = Matrix4x4.CreateTranslation(new Vector3(1, 2, 3));

产生以下矩阵:

1, 0, 0, 0

0, 1, 0, 0

0, 0, 1, 0

1, 2, 3, 1

但应该是

1, 0, 0, 1

0, 1, 0, 2

0, 0, 1, 3

0 ,0 ,0 ,1

在我看来。

这是一个错误还是我完全错了?

最佳答案

平移矩阵是“转置”的,因为 System.Numerics 定义了向量:

For matrix transformations, the Vector2, Vector3, and Vector4 instances are represented as rows: a vector v is transformed by a matrix M with vM multiplication.

( source )

数学计算如下:

            / 1 0 0 0 \
[a b c 1] * | 0 1 0 0 | = [a+A b+B c+C 1]
| 0 0 1 0 |
\ A B C 1 /

关于c# - 矩阵结构给出错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58712092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com