Xcode simd - problema com o exemplo de conversão e matriz de rotação

Não é apenas contra-intuitivo coluna-contra-fila-principal, a documentação da Apple sobre "Trabalhar com matrizes" agrava ainda mais a confusão com seus exemplos de "construção" de uma "Matriz de translação" e de uma "Matriz de rotação" em 2

Translate Matrix De acordo com a documentação da Apple ()

Translate Uma matriz de conversão assume o seguinte formato:

1  0  0
0  1  0 
tx ty 1

A biblioteca simd fornece constantes para matrizes de identidade (matrizes com aquelas ao longo da diagonal e zeros em outros lugares). A matriz de identidade 3 x 3 Float é matrix_identity_float3x3.

A função a seguir retorna uma matriz simd_float3x3 usando os valores de conversão tx e ty especificados, definindo os elementos em uma matriz de identidade:

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

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

    return matrix 
}

Meu problema com ele

A linha de códigomatrix[0, 2] = tx define o valor da primeira coluna e da terceira linha comotx. let translationMatrix = makeTranslationMatrix(tx: 1, ty: 3) e imprimir a segunda colunaprint(translationMatrix.columns.2) renderáfloat3(0.0, 0.0, 1.0). Estou muito confuso a respeito de por que é a última linha que contém os valores da tradução, e não a coluna. Esta convenção não é usada ao usarSCNMatrix4MakeTranslation e criando umsimd_float4x4 Fora 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 esimd_float4x4 Segue ocolumn major convenção de nomes. No exemplo 2D da Apple, é a última linha que contém os valores de conversão, enquanto que comSCNMatrix4 e convertendo parasimd_float4x4, é a última coluna que contém os valores de conversão. O exemplo da Apple parece estar fazendo o mesmo com as matrizes de rotação també

O que estou perdendo

questionAnswers(1)

yourAnswerToTheQuestion