2011-08-20 7 views
7

Sto lentamente diventando più serio su Core Animation e apprezzerei molto una spiegazione composta da parole brevi pronunciate (digitate?) Che spiegano lentamente CATransform3DIdentity e perché il codice seguente fa quello che fa (ribalta lo strato intorno allo spazio '3D')Posso ottenere una spiegazione di base di CATransform3DIdentity?

kFaceUpTransform = kFaceDownTransform = CATransform3DIdentity; 
    // Construct a 180-degree rotation matrix: 
    kFaceDownTransform.m11 = kFaceDownTransform.m33 = -1; 

Ripensandoci, digita rapidamente e utilizza le parole multisillabo al contenuto del tuo cuore, ma per favore sii gentile.

PS. Ho l'impressione che dovrei diventare molto più a mio agio con l'algebra lineare se devo andare oltre con Animation ... è corretto?

+0

Sì, molto altro - Ho messo un link in fondo alla mia risposta che potrebbe aiutare. –

risposta

14

CATransform3DIdentity è una matrice identità:

http://en.wikipedia.org/wiki/Identity_matrix

Fondamentalmente, matrici in matematica animazione sono usati per trasformare un oggetto (inclinazione, spostare, ruotare ecc).

Una matrice di identità è quella che quando viene applicata a un oggetto, la reimposta alla sua geografia iniziale.

ex.
[1 0 0]
[0 1 0]
[0 0 1]

Non è facile da spiegare (io davvero non capisco correttamente me stesso in tutta onestà), ma queste matrici 3x3 utilizzare la posizione della griglia (m11, m33) per determinare come trasformare l'oggetto, in questo caso m11 lo sta facendo ruotare di 180 gradi, impostarlo su +1 e ruotare l'altra direzione. Impostalo su 0,5 e ruoterà di 90 gradi (iirc!).

ex.
[m11, m12, m13]
[m21, m22, m23]
[M31, M32, M33]

E 'un po' paura, ma le immagini qui tipo di aiuto:

http://en.wikipedia.org/wiki/Matrix_(mathematics)#Linear_transformations

e qui

http://en.wikipedia.org/wiki/Transformation_matrix

Infine, la tabella in fondo questo questo li st mostrare come vengono utilizzati i diversi campi di una matrice:

Provided via 'internet wayback machine': http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Layers.html

Infine, ricordo la lettura di questo qualche tempo fa, potrebbe essere di qualche aiuto come credo che le mie spiegazioni di cui sopra non sono che a portata di mano - io 'm dicendo che cosa, perché no - e credetemi, è necessario sapere il motivo per cui per entrare in questo tipo di programmazione correttamente:

http://chortle.ccsu.edu/vectorlessons/vectorIndex.html

Buona fortuna!

+1

Hai detto "Una matrice di identità è una che quando viene applicata a un oggetto, la reimposta alla sua geografia iniziale". Questo è sbagliato. Una matrice di identità non cambia affatto un oggetto. È diverso dal resettarlo al suo stato originale.Nella moltiplicazione, 1 è il valore dell'identità. Qualsiasi valore orario 1 è il valore originale. La stessa cosa vale per Matrix Matematica. –