2011-08-20 13 views
7

Poco a poco me estoy volviendo más serio sobre Core Animation y agradecería mucho una explicación compuesta de palabras cortas (¿mecanografiadas?) Que explican CATransform3DIdentity y por qué el siguiente código hace lo que hace (voltea la capa en el espacio '3D')¿Podría obtener una explicación básica de CATransform3DIdentity?

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

Pensándolo bien, escriba rápidamente y utilice palabras de varias sílabas para el contenido de su corazón, pero sea amable.

PS. Me da la impresión de que debería estar mucho más cómodo con el álgebra lineal si quiero llegar mucho más lejos con Animación ... ¿es correcto?

+0

Sí, mucho más: he puesto un enlace en la parte inferior de mi respuesta que podría ayudar. –

Respuesta

14

CATransform3DIdentity es una matriz de identidad:

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

Básicamente, Matrices en matemáticas de animación se utilizan para transformar un objeto (skew, mover, rotar etc).

Una matriz de identidad es aquella que cuando se aplica a un objeto, lo restablece a su geografía inicial.

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

No es fácil de explicar (que realmente no entiendo correctamente a mí mismo para ser justos), pero estas matrices 3x3 uso la ubicación de la cuadrícula (m11, m33) para determinar cómo transformar el objeto, en este caso m11 lo está haciendo girar 180 grados, ajústelo a +1 y giraría en la otra dirección. Ajústelo a 0.5 y giraría 90 grados (iirc!).

ex.
[m11, m12, m13]
[m21, m22, m23]
[m31, m32, m33]

Es un poco de miedo, pero los cuadros aquí el tipo de ayuda:

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

y aquí

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

por último, la tabla en la parte inferior de este este li st mostrar cómo se utilizan los diferentes campos de una matriz:

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

Por último, recuerdo haber leído esto hace un tiempo, que podría ser de alguna ayuda, ya que creo que mis explicaciones anteriores no son tan práctico - I estoy que le dice qué, por qué no - y créanme, es necesario saber por qué entrar en este tipo de programación correctamente:

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

mejor de las suertes!

+1

Usted dijo "Una matriz de identidad es aquella que cuando se aplica a un objeto, lo restablece a su geografía inicial". Eso está mal. Una matriz de identidad no cambia un objeto en absoluto. Eso es diferente a restablecerlo a su estado original.En la multiplicación, 1 es el valor de identidad. Cualquier valor multiplicado por 1 es el valor original. Lo mismo se aplica a la matemática matricial. –

Cuestiones relacionadas