-1

-5度回転している長方形の正しいバウンディングボックスを見つけようとしているコードが少しあります。

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}ようになります。これは正しいです。

私はここで何が欠けていますか?

4

1 に答える 1

3

イラストレーターで何か間違ったことをしていると思います。5度回転した後、バウンディングボックスをどのように小さくする必要がありますか(104.9から104.6)..それは間違っています。

CGRect の結果はまったく正しいものです。Photoshop でテストしました。
105x131px の四角形は、-5 度回転すると 117x141px のバウンディング ボックスになります。

于 2012-11-05T10:50:11.177 に答える