问题描述
我正在尝试使用CGAffineTransformMakeRotation,我参考Apple文档,其中说
因此,我传递参数90度,它应该逆时针旋转。
self.myView是灰色背景颜色视图,红色方块视图仅用于查看旋转方向
#define DEGREES_TO_RADIANS(x)(x * M_PI / 180.0)
CGAffineTransform rotation = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(90));
[self.myView setTransform:rotation];
但为什么它顺时针旋转?
我正在尝试在模拟器和设备中使用两者都有相同的结果,顺时针旋转
然后使用动画:
#define DEGREES_TO_RADIANS(x)(x * M_PI / 180.0)
CGAffineTransform rotation = CGAffineTransformMakeRotation (DEGREES_TO_RADIANS(90));
[UIView animateWithDuration:0.5
动画:^ {
self.myView.transform = rotation;
}
完成:^(BOOL完成){
NSLog(@%@,NSStringFromCGAffineTransform(self.myView.transform));
}];
它具有相同的结果,顺时针旋转。
有人可以解释原因,感谢您的回复。
这是文档中的错误。
说相反。
I'm trying to use CGAffineTransformMakeRotation, and I refer Apple document which says
So, I pass parameter 90 degree, it should counterclockwise rotation.
self.myView is gray background color view, and red square view is just for see rotation direction
#define DEGREES_TO_RADIANS(x) (x * M_PI/180.0)
CGAffineTransform rotation = CGAffineTransformMakeRotation( DEGREES_TO_RADIANS(90) );
[self.myView setTransform:rotation];
But why it clockwise rotation?
I'm trying use in simulator and device both have the same result, clockwise rotation
And then tring to use animation:
#define DEGREES_TO_RADIANS(x) (x * M_PI/180.0)
CGAffineTransform rotation = CGAffineTransformMakeRotation( DEGREES_TO_RADIANS(90) );
[UIView animateWithDuration:0.5
animations:^{
self.myView.transform = rotation;
}
completion:^(BOOL finished) {
NSLog(@"%@", NSStringFromCGAffineTransform(self.myView.transform));
}];
It has the same result, clockwise rotation.
Can somebody explain why, Thanks for the reply.
This is an error in documentation.
Here they describe matrix and provide equations which they use to do the transform:
If you do the math, you'll see that for positive angles, it gives rotation counterclockwise when Y axis direction is upwards as in OS X and clockwise when Y axis directed downwards as in iOS
For example you may try to transform point (5,0) with 90 degrees, you will get (0,5), which means clockwise for iOS and counterclockwise for OS X.
The same piece of documentation still have the (false) part you quoted:
Which is clearly wrong, because the equations (which are the part of the same document and are pretty standard rotation equations) say the opposite.
这篇关于关于CGAffineTransformMakeRotation旋转方向?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!