Xcode simd - problema con la matriz de traducción y rotación Ejemplo

Not solo está usando la columna principal frente a la fila principal contra-intuitiva, la documentación de Apple sobre "Trabajar con matrices" exacerba aún más la confusión por sus ejemplos de "construir" una "Matriz de traducción" y una "Matriz de rotación" en 2D.

Translate Matrix según la documentación de Apple ()

Translate Una matriz de traducción toma la siguiente forma:

1  0  0
0  1  0 
tx ty 1

La biblioteca simd proporciona constantes para matrices de identidad (matrices con unos a lo largo de la diagonal y ceros en otros lugares). La matriz de identidad de flotante 3 x 3 es matrix_identity_float3x3.

La siguiente función devuelve una matriz simd_float3x3 utilizando los valores de traducción tx y ty especificados configurando los elementos en una matriz de identidad:

func makeTranslationMatrix(tx: Float, ty: Float) -> simd_float3x3 {
    var matrix = matrix_identity_float3x3

    matrix[0, 2] = tx
    matrix[1, 2] = ty

    return matrix 
}

Mi problema con él

La línea de códigomatrix[0, 2] = tx establece el valor de la primera columna y la tercera fila entx. let translationMatrix = makeTranslationMatrix(tx: 1, ty: 3) e imprimir la segunda columnaprint(translationMatrix.columns.2) rendiráfloat3(0.0, 0.0, 1.0). Estoy muy confundido con respecto a por qué es la última fila que contiene los valores de traducción, en lugar de la columna. Esta convención no se usa cuando se usaSCNMatrix4MakeTranslation y creando unasimd_float4x4 fuera deSCNMatrix4 objeto.

var A = SCNMatrix4MakeTranslation(1,2,3)
var Asimd = simd_float4x4(A)

A.m41 // 1
A.m42 // 2
A.m43 // 3
A.m44 // 1

Asimd.columns.3 // float4(1.0, 2.0, 3.0, 1.0)

AmbosSCNMatrix4 ysimd_float4x4 siga elcolumna mayor convenio de denominación. En el ejemplo 2D de Apple, es la última fila que contiene los valores de traducción, mientras que conSCNMatrix4 y convertir asimd_float4x4, es la última columna que contiene los valores de traducción. El ejemplo de Apple parece estar haciendo lo mismo con las Matrices de rotación también.

¿Qué me estoy perdiendo

Respuestas a la pregunta(1)

Su respuesta a la pregunta