Ho scritto un programma Web che può essere utilizzato per giocare con le matrici di trasformazione. Permette tipi preimpostati e personalizzati.

Play with it online o grab the source.
Dovrebbe essere facile giocare con i numeri e vedere immediatamente come influenza il disegno della casa. Guarda il codice disponibile online per determinare cosa sta facendo e dovresti essere in grado di capire cosa sta succedendo.
Se hai problemi, rendersi conto che la matrice 3 × 3 viene semplicemente moltiplicato per ogni vertice (X & coordinata Y) a forma casa. La moltiplicazione di matrici con il vertice (faremo ora riferimento ad esso come un vettore) e una trasformazione di matrice sembra così ...
1 0 0 1
0 1 0 * 2
0 0 1 0
Sulla sinistra è un identity matrix (una matrice idempotente che non influisce il vettore) e un vettore di 1, 2, 0 (supponiamo che questo mappa per posizionare X1 e Y2 nel programma menzionato sopra il grafico e ignorare l'ultimo 0
).
Matrix multiplication possono essere visualizzati in questo modo ...
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
Quindi, nel nostro esempio, che sarebbe ...
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
fare che la matematica e otteniamo il vettore finale .. .
1
2
0
Dato che abbiamo detto la nostra matrice identità non dovrebbe modificare i valori, possiamo vedere sopra che t il cappello è il caso in quanto il vettore risultante corrisponde all'originale.
Per spiegare ulteriormente, considerare quando è necessario tradurre il vettore. Diciamo che vogliamo tradurre la casa per 5
pixel lungo l'asse X. Vogliamo iniziare con la matrice identità, ma modificare il numero in alto a destra su 5
e creare la dimensione aggiuntiva nel vettore 1
(vedrete perché 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
facciamo la matematica ancora una volta ...
6
2
1
Possiamo vedere che il primo numero (X nelle nostre coordinate) è stata tradotta lungo l'asse X di 5
. Provalo nel programma collegato sopra.
Il motivo per cui abbiamo creato il terzo valore 1
è così quando è stata eseguita la matematica, è stata considerata la traduzione. Se fosse stato 0
, verrà ignorato, poiché qualsiasi numero moltiplicato per 0
risulta in 0
.
Se hai ancora problemi, guarda i video online (this one, ad esempio) che possono aiutarti a spiegarlo in modo più visivo.
Ricorda: praticamente chiunque può guidare un'auto, e praticamente chiunque può imparare questo, nonostante una scarsa comprensione della matematica da parte di sé stessi. Continuate a farlo: la persistenza è la chiave. In bocca al lupo.
Con prospettiva dell'applicazione? Hai creato un'applicazione? – Guru
Sto provando a cogliere le trasformazioni di CSS3 e webkits matrix3d. http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariCSSRef/Articles/Functions.html – gargantuan