2010-11-05 12 views
6

Non capisco come applicare il parametro "CGAffineTransform" che appare praticamente in ogni metodo CGPath, ad esempio:bisogno di esempi di come utilizzare CGAffineTransform in CGPaths

void CGPathAddRect (
    CGMutablePathRef path, 
    const CGAffineTransform *m, 
    CGRect rect 
); 

Diciamo che voglio ruotare un percorso rect , come potrei scrivere questa funzione? Dove ho la matrice di trasformazione?

risposta

7

si utilizza uso CGAffineTransformMakeRotation per creare un CGAffineTransform che ruota il rettangolo intorno al punto (0, 0).

CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI/4); // π/4 = 45° 
CGPathAddRect(path, &rotation, CGRectMake(0, 0, 80, 40)); 

Se avete bisogno di ruotare su eventuali altri punti (x, y), è necessario per comporre 2 traduzioni di muoversi (x, y) e (0, 0) e ritorno.

+0

Grazie per la risposta. La e commerciale è stato davvero il pezzo mancante, perché ho continuato a ottenere gli errori senza di essa. – anna