我正在制作一个可以准确检查表面平整度的应用程序,但问题是当使用核心运动获取加速度计数据时,即使表面平整,返回的值也不会得到修复。那么如何检查表面是否平坦?
http://i.stack.imgur.com/nea3G.png
#define DRIFT_HZ 10
#define DRAFT_RATE 10
CMMotionManager *mManager = [CMMotionManager shareMotionManager];
if ([mManager isAccelerometerAvailable]) {
[mManager setAccelerometerUpdateInterval:1/DRIFT_HZ];
[mManager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
CGPoint center = self.bubbleImageView.center;
center.x -= accelerometerData.acceleration.y * DRAFT_RATE;
if (CGRectContainsPoint(self.capsuleImageView.bounds, center)) {
[self.bubbleImageView setCenter:center];
}
}];
}