大家好,我是法国人,所以我的英语让我感到非常震惊。所以我有一个问题。我正在做的是当我用加速度计向左或向右转动设备时,图像在设备旋转的相反方向旋转它会产生很酷的效果但是当我用加速度计旋转设备时图像正在旋转,但它总是颤抖,振动运动不顺畅。我能做什么 ?这是代码:
#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., 0., 10.);
}
}
@end
答案 0 :(得分:1)
你需要做一个叫做高通滤波器的技巧。它会过滤颤抖,只会发生重大变化。
您可以谷歌搜索,或搜索StackOverflow。例如,这里:How do you implement a Highpass filter for the IPhone accelerometer?