Objective c 如何纠正在landscapeLeft模式下旋转设备导致的图像翻转

Objective c 如何纠正在landscapeLeft模式下旋转设备导致的图像翻转,objective-c,trigonometry,Objective C,Trigonometry,也许我错过了学校的数学课,但我想不出这一点 我正在从加速度计读取数据,并旋转有关加速度计数据的图像。LandscapeRight的一切都正常工作,但在landscapeLeft中,我的imageView颠倒了。我怎样才能纠正这个问题 简化代码如下: - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { double acceleratio

也许我错过了学校的数学课,但我想不出这一点

我正在从加速度计读取数据,并旋转有关加速度计数据的图像。LandscapeRight的一切都正常工作,但在landscapeLeft中,我的imageView颠倒了。我怎样才能纠正这个问题

简化代码如下:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{

    double accelerationX = acceleration.x;
    double accelerationY = -acceleration.y;
    double currentRawReading = atan2(accelerationY, accelerationX);
    [self.sw1 setTransform:CGAffineTransformMakeRotation((CGFloat) -currentRawReading)];

}

cGraffineTransformMakeRotation
需要弧度,因此如果从
currentRawReading
中添加或减去
M_PI
,您的
sw1
应旋转180°