2010-11-05 56 views
6

使用CGAffineTransform需要的例子,我不明白,出現在幾乎每一個CGPath方法如何應用「CGAffineTransform」參數,如:對於如何在CGPaths

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

比方說,我想旋轉一個矩形路徑,我會如何寫出這個函數?我在哪裏得到變換矩陣?

回答

7

您可以使用使用CGAffineTransformMakeRotation來創建一個CGAffineTransform旋轉關於點(0,0)的矩形。

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

如果你需要它繞任何其他點(X,Y),就需要撰寫2名翻譯移動(X,Y)爲(0,0)和背部。

+0

謝謝你的回答。 「&」符號確實是缺失的部分,因爲我一直在沒有它的情況下發生錯誤。 – anna 2010-11-05 21:36:04