2012-11-05 144 views
-1

我有一個比特的碼,其試圖找出正確的邊界框爲正在旋轉-5度的矩形:CGRectApplyAffineTransform結果不正確?

CGRect rectangleToRotate = CGRectMake(0,0,104.949, 131.017); 
CGAffineTransform rotateTransform = CGAffineTransformMakeRotation((M_PI * -5)/180); 
CGRectApplyAffineTransform (rectangleToRotate, rotateTransform); 

所產生的結果是具有尺寸的矩形:{115.968, 139.664}其中,由於某些原因太大而不能緊緊包圍矩形。然而,當我在Adobe Illustrator中採用相同的場景時,邊界框是:{104.659, 132.143},這是正確的。

我在這裏錯過了什麼?

+0

是不是360度? –

+1

插圖大小不能正確,因爲旋轉後的矩形將始終比原始大。 –

回答

3

我猜你在做插圖畫家的事情是錯誤的。在5度旋轉之後,邊界框應該如何變小(104.9到104.6)......這只是錯誤的。

CGRect的結果非常正確。我在Photoshop中測試它。
一個105x131px矩形會在旋轉-5度後產生一個117x141px的邊界框。