IOS 장비별 개발: 가속도를 사용한 "상향 포지셔닝"

2507 단어
아이폰은 아이폰의 3개의 서로 수직인 축(왼쪽/오른쪽(x축), 위/아래(y축), 앞/뒤(z축)를 따라 가속 능력을 측정하는 데 사용되는 3개의 기재 센서를 제공한다.이 값들은 아이폰에 작용하는 힘을 가리키며 중력과 사용자의 이동에서 나온다.머리 주위에서 아이폰(중심력)을 흔들거나 고층 건물에서 던져(자유낙하)함으로써 어떤 정력 피드백을 얻을 수 있다.
아이폰 가속계에 구독 대상을 업데이트하려면 의뢰를 설정할 수 있습니다.위임으로 설정된 객체는 UIACcelerometerDelegate 프로토콜을 실행해야 합니다.
가속도 센서 사용 단계는 다음과 같습니다.
① UIACcelerometer 소환하기;
② UIACcelerometer의 업데이트Interval 속성을 설정하면 알림 간격을 설정합니다.
③ UIACcelerometer의 delegate 속성에 구체적인 처리를 담당하는 의뢰 클래스를 설정합니다.
④ 의뢰 방법accelerometer:didAccelerate: 가속도 알림을 받기;
⑤accelerometer:didAccelerate:방법의 두 번째 매개 변수 UIacceleration 실례와 관련된 속성에서 가속도 얻기
    
    
@interface ViewController ()
{
    UIImageView *arrow;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
   UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
    accelerometer.updateInterval = 10.0/60.0;
    accelerometer.delegate =self;
    
    arrow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow.png"]];
    [self.view addSubview:arrow];
}
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    //Determine up from the x and y acceleration components
    float xx = -acceleration.x;
    float yy = acceleration.y;
    float angle = atan2(yy, xx);
    [arrow setTransform:CGAffineTransformMakeRotation(angle)];
}

 
전재 대상:https://www.cnblogs.com/haibosoft/p/4178579.html

좋은 웹페이지 즐겨찾기