Escribí un programa web que se puede usar para jugar con las matrices de transformación. Permite tipos preestablecidos y personalizados.
Play with it online o grab the source.
Debe ser fácil jugar con los números y ver al instante cómo afecta el dibujo de la casa. Mire el código disponible en línea para determinar qué está haciendo, y usted debería ser capaz de entender qué está pasando.
Si tiene problemas, tenga en cuenta que la matriz 3 × 3 simplemente se multiplica por cada vértice (X & Coordenada Y) en la forma de la casa. La multiplicación de matrices con el vértice (que ahora vamos a referir a ella como un vector) y una transformación de matriz parece tan ...
1 0 0 1
0 1 0 * 2
0 0 1 0
de la izquierda es un (una matriz idempotente identity matrix que no afecta el vector) y un vector de 1, 2, 0 (suponga que se asigna a las posiciones X1 e Y2 en el gráfico del programa mencionado anteriormente e ignore el 0
final).
Matrix multiplication pueden ser visualizados como tal ...
a b c x a * x + b * y + c * z
d e f + y = d * x + e * y + f * z
g h i z g * x + h * y + i * z
Así, en nuestro ejemplo, eso sería ...
1 0 0 1 1 * 1 + 0 * 2 + 0 * 0
0 1 0 * 2 = 0 * 1 + 1 * 2 + 0 * 0
0 0 1 0 0 * 1 + 0 * 2 + 1 * 0
hacer eso matemáticas y obtenemos el vector final ..
1
2
0
Como dijimos que nuestra matriz de identidad no debería modificar los valores, podemos ver más arriba que t es el caso, ya que el vector resultante coincide con el original.
Para explicarlo más, considere cuándo necesita traducir el vector. Digamos que queremos traducir la casa por 5
píxeles a lo largo del eje X. Queremos comenzar con la matriz de identidad, pero cambie el número superior derecho a 5
y haga la dimensión extra en el vector 1
(verá por qué brevemente).
1 0 5 1 1 * 1 + 0 * 2 + 5 * 1
0 1 0 * 2 = 0 * 1 + 1 * 2 + 0 * 1
0 0 1 1 0 * 1 + 0 * 2 + 1 * 1
que hacemos los cálculos de nuevo ...
6
2
1
Podemos ver que el primer número (X en nuestras coordenadas) se ha traducido a lo largo del eje X por 5
. Pruébalo en el programa vinculado arriba.
La razón por la que hicimos el tercer valor 1
es así cuando se realizaron las operaciones matemáticas, se consideró la traducción. Si hubiera sido 0
, se ignorará, ya que cualquier número multiplicado por 0
da como resultado 0
.
Si aún tiene problemas, mire videos en línea (this one, por ejemplo) que pueden ayudar a explicarlo de una manera más visual.
Recuerde: prácticamente todo el mundo puede manejar un automóvil, y casi cualquiera puede aprenderlo, a pesar de cualquier conocimiento auto evaluado de las matemáticas. Solo mantenlo: la persistencia es la clave. Buena suerte.
¿Con la perspectiva de la aplicación? ¿Estás construyendo alguna aplicación? – Guru
Estoy tratando de familiarizarme con las transformaciones matrix3d de CSS3 y webkits. http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariCSSRef/Articles/Functions.html – gargantuan