2009-02-20 16 views
23

Qual è la differenza tra i due?CATransform3D vs. CGAffineTransform?

Sono sicuro che hanno pro e contro, e le situazioni sono artisti migliori in.

Le risorse che mettono a confronto i due?

Uno è migliore per l'animazione (immagino CATransform3D)? Perché?

Inoltre, penso che ho letto da qualche parte che la chiarezza del testo può essere un problema, è uno migliore nel ridimensionamento del testo?

risposta

20

Come detto da MSN, vengono utilizzati in diversi casi. CGAffineTransform è utilizzato per la manipolazione 2-D di NSViews, UIViews e altri elementi di grafica core 2-D.

CATransform3D è una struttura di animazione di base che può eseguire manipolazioni 3D più complesse di CALayer. CATransform3D ha la stessa struttura interna di una matrice di visualizzazione del modello OpenGL, il che ha senso quando ci si rende conto che Core Animation è basato su OpenGL (i CALayer sono wrapper per trame OpenGL, ecc.). Ho scoperto che questa somiglianza della struttura interna, combinata con alcune belle funzioni di supporto fornite da Apple, può consentire di eseguire ottimizzazioni ottimizzate per OpenGL, poiché pubblichiamo lo here.

Quando si tratta di scegliere quale utilizzare, chiedetevi se lavorerete con le viste direttamente in uno spazio 2-D (CGAffineTransform) o con i livelli Core Animation sottostanti in 3-D (CATransform3D). Uso CATransform3D più spesso, ma è perché trascorro molto tempo con Core Animation.

7

Uno è per le trasformazioni lineari 2D, l'altro è per le trasformazioni proiettate in tre dimensioni. Almeno questo è quello che potrei ricavare dalla documentazione.

Se non è necessario eseguire il rendering 3d proiettato sullo schermo, utilizzare la trasformazione affine. Altrimenti, usa la trasformazione 3d. La trasformazione 3d è essenzialmente una matrice 4x4, mentre quella 2d affine è 3x2.

+0

2D Affine di solito è 3 larghe x 2 alte (con un'identità implicita invisibile nella riga inferiore). – plinth

+0

Stavo avendo un problema con sfarfallio/framerate ridotto e questo l'ha risolto! –

Problemi correlati