акселерометр iphone: проблема с поворотом изображения - PullRequest
0 голосов
/ 17 апреля 2011

Привет всем, я француз, так что поищите меня за мой английский. Так что у меня есть проблема. Когда я поворачиваю устройство влево или вправо с помощью акселерометра, изображение поворачивается в направлении, противоположном направлению вращения устройства, это создает крутой эффект, но когда я поворачиваю устройство с помощью акселерометра, изображение вращается, но всегда дрожит, вибрирует движение не плавно. Что я могу сделать ? вот код:

#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

1 Ответ

1 голос
/ 17 апреля 2011

Вам нужно сделать трюк, который называется фильтром верхних частот. Фильтрует дрожь, только значительные изменения пройдут.

Вы можете погуглить или выполнить поиск в StackOverflow. Например, здесь: Как реализовать фильтр высоких частот для акселерометра IPhone?

...