Почему System.Numerics Matrix4x4 использует транспонированную запись?C#

Место общения программистов C#
Ответить
Anonymous
 Почему System.Numerics Matrix4x4 использует транспонированную запись?

Сообщение Anonymous »

Традиционно матрица преобразования обозначается следующим образом:

Код: Выделить всё

R1 R2 R3 T1
R4 R5 R6 T2
R7 R8 R9 T3
0  0  0  1
Вместо этого класс C# System.Numerics.Matrix4x4 использует это соглашение:
Структура Matrix4x4

Код: Выделить всё

R1 R4 R7 0
R2 R5 R8 0
R3 R6 R9 0
T1 T2 T3 1
Это именно транспонировано. Это означает, что умножения необходимо соответствующим образом скорректировать:
M1 * M2 необходимо изменить на M2_transpose * M1_transpose
Есть ли для этого какая-то причина? Я никогда не видел, чтобы эта транспонированная запись использовалась где-либо.

Подробнее здесь: https://stackoverflow.com/questions/715 ... d-notation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»