← SEARCHABLE ARCHIVE
Mathematics · 2026-07-06

Convertir posición, rotación y escala usando matrices

Expresar la transformación de un objeto de juego como una matriz

INTERACTIVE READING MODE →

Los artículos escritos en este blog fueron creados con el objetivo de enseñar. Además, la información del artículo puede ser incorrecta, así que tenga cuidado.

La posición, rotación y tamaño de un objeto del juego se pueden expresar como una matriz. Primero verifiquemos la transformación basada en el origen en 2D.

conversión de tamaño

[ sx  0 ] [ x ] = [ sx * x ]
[ 0  sy ] [ y ]   [ sy * y ]

El eje X essx, el eje Y essyaumenta tanto como Si uno de los dos es negativo, se invierte según ese eje.

transformación de rotación

[ cosθ  -sinθ ] [ x ]
[ sinθ   cosθ ] [ y ]

Esta matriz rota el vector θ alrededor del origen. Tenga cuidado de no mezclar funciones que reciben grados con funciones que reciben radianes.

¿Por qué el movimiento es 3×3?

El origen no se puede mover a otra ubicación con solo una matriz de 2×2. Entonces en coordenadas 2Dw = 1Utilice coordenadas homogéneas con la adición de .

[ 1 0 tx ] [ x ]   [ x + tx ]
[ 0 1 ty ] [ y ] = [ y + ty ]
[ 0 0  1 ] [ 1 ]   [   1    ]

En 3D se utiliza una matriz de 4×4 por el mismo motivo.

Resultados de cambios de orden

Duplicar el tamaño de un objeto y luego moverlo 10 grados hacia la derecha da resultados diferentes que moverlo primero y luego duplicar todas las coordenadas.

Scale → Translate
La posición se mueve en 10

Translate → Scale
La cantidad de movimiento se puede duplicar

Dado que cada motor y biblioteca matemática difiere en si los vectores se colocan en filas o columnas, el orden de multiplicación del código debe verificarse en la documentación. Es más importante en qué sistema de coordenadas y en qué orden se aplica que la propia matriz.