问题描述
|
大家好,我是法国人,所以请教我英语。所以我有一个问题。我正在做的是,当我用加速度计向左或向右转动设备时,图像以与设备旋转相反的方向旋转会产生很酷的效果,但是当我用加速度计旋转设备时,图像在旋转,但始终在颤抖,振动不平稳。我能做什么 ?这是代码:
#import \"QuartzCore/QuartzCore.h\"
#define CONST_fps 100.
#define CONST_map_shift 0.05
@implementation MapViewRotationViewController
- (void)viewDidLoad {
[super viewDidLoad];
// accelerometer settings
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / CONST_fps)];
}
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIacceleration *)acceleration
{
static CGFloat ZZ = 0.;
CGFloat z = (atan2(acceleration.x,acceleration.y) + M_PI);
if (fabsf(ZZ - z) > CONST_map_shift)
{
viewToRotate.layer.transform = CATransform3DMakeRotation(ZZ=z,0.,10.);
}
}
@end
解决方法
您需要做一个技巧,称为高通滤波器。它可以过滤颤抖,只有重大的变化才能通过。
您可以用谷歌搜索,也可以在StackOverflow上搜索。例如,在这里:如何为iPhone加速度计实现高通滤波器?