"대향"(참 또는 북쪽을 기준으로할지 여부는 중요하지 않음)을 계산해야합니다. iOS 장치에서 볼 수 있듯이 CLLocationManager
에 의해 반환 된 CLHeading
개체는 해당 속성에 따라 참 및 자기 머리글을 제공합니다. 또한 이러한 값은 장치 상단 (장치 좌표계의 양의 Y 축)과 관련된 것이므로 내 용도에 적합하지 않음을 쉽게 알 수 있습니다. 실제로 필요한 것은 장치의 화면과 관련된면 (Z 축)을 계산하는 것입니다.이 때 나침반은 필요하지 않지만 AG 응용 프로그램의 왕이 필요합니다. 문제는 장치를 가로 방향으로 돌릴 때 마주 보는 방향에서 왼쪽 또는 오른쪽 방향 값을 얻는 것입니다. 결국 내가 필요한 것입니다. 저는 자이로 스코프 "원시"데이터 (자이로 스코프 "오일"천사 (세 가지 유형이 있습니다)와 함께 자력계 "원시"데이터 (각 장치 축에 대해 128에서 -128 사이의 값을 가진 마이크로 테라 단위로 제공)를 얻을 수 있습니다. , 회전 행렬 또는 쿼터니언). 내가 필요한 것은 "표제"대신에 "마주 보는"방향을 취하는 사람들에게 어떤 계산을 적용해야 하는지를 알려주는 것입니다.자력계 및 자이로 스코프를 기반으로 한 북 계산
2
A
답변
4
얼마전에 해봤지만 대답이 없으므로 여기 ... 같은 질문에 대한 답을 검색 할 수 있습니다 사람들을 위해
_motionManager = [[CMMotionManager alloc]init];
if (_motionManager.gyroAvailable) {
_motionManager.deviceMotionUpdateInterval = 1.0/20.0;
[_motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler:^(CMDeviceMotion *motion, NSError *error)
{
CMAcceleration gravity = motion.gravity;
CGPoint tiltVector = CGPointMake(-gravity.x, -gravity.y);
_tiltAngle = [self angleYAxisToVector:tiltVector];
CLLocationDirection heaqding = [[SVSession sharedSession] heading].trueHeading;
double newHeading = fmod(heaqding + _tiltAngle, 360.0);
self.azimuth = degreesToRadian(newHeading);
[self updateLocations]; //this function updates my ui for the new heading
}];
} else {
NSLog(@"No gyroscope on device.");
[_motionManager release],_motionManager = nil;
}
여기 내 솔루션을 넣고이 예제를 이해하는 데 도움이 될 몇 가지 추가 조각은 다음과 같습니다
-(double)angleYAxisToVector:(CGPoint)vector{
double dX = vector.x;
double dY = vector.y;
if(dY == 0){
if(dX > 0){
return 0.0;
}else{
if(dX < 0){
return 180.0;
}else{
return -1;
}
}
}
double beta = radiansToDegrees(atan(dX/dY));
double angle;
if(dX > 0){
if (dY < 0){
angle = 180 + beta;
}else{
angle = beta;
}
}else{
if (dY < 0){
angle = 180 + beta;
}else{
angle = 360 + beta;
}
}
// NSLog(@"angle = %f, normalized = %f",beta,angle);
return angle;
}
#define degreesToRadian(x) (M_PI * (x)/180.0)
#define radiansToDegrees(x) ((x) * 180.0/M_PI)
#define degreesToRadians(x) degreesToRadian(x)
#define radiansToDegree(x) radiansToDegrees(x)
해피 코딩. ..
관련 문제
- 1. iphone - 가속도계, 자이로 스코프 및 자력계 대신 장치 모션 사용
- 2. Android 가속도계 및 자이로
- 3. 나침반과 자이로 스코프를 이용한 센서 융합 : 0도에서 360도 사이
- 4. Accelerometer와 Digital Compass를 결합하여 정밀 자이로 스코프를 얻을 수 있습니까?
- 5. iPhone 자이로 스코프를 사용하여 이것을 프로그래밍 할 수 있습니까?
- 6. 사용 사례를 기반으로 한 작업량 계산
- 7. 페이스 북 프로필을 기반으로 한 사용자 분석?
- 8. 트위터 멘션 및 페이스 북 좋아하는 것을 기반으로 한 트렌드
- 9. 텍스트 열을 기반으로 한 SQL 수학 계산
- 10. GPS 신호가 낮을 때 가속도계 및 자이로 스코프를 사용하여 차량 추적
- 11. iOS - 자이로 스코프 샘플
- 12. 식별자를 기반으로 계산 간격을
- 13. 속성을 기반으로 개체 그룹화 및 계산
- 14. 자이로 스코프 데이터의 회전 각도 작업
- 15. BlackBerry 자력계 방향 - 어느 방향으로?
- 16. 안드로이드의 자력계 소프트 리셋
- 17. 자력계 샘플 속도 (나침반)
- 18. IOS 가속도계/자이로 스코프 질문
- 19. MDX - "레코드 시간 범위"를 기반으로 한 동시 계산?
- 20. IOS에서 자이로 스코프 피드를 시뮬레이트하는 방법은 무엇입니까?
- 21. Open Office Calc를 기반으로 한 Java 기반 계산 엔진
- 22. 계산 된 시간 슬롯을 기반으로 한 SQL 필터링
- 23. 내 1 축 자이로 스코프를 통해 쿼터니온을 어떻게 얻을 수 있습니까?
- 24. 확장 된 칼만 필터 자력계 요우 드리프트
- 25. 다중 계산 된 값을 기반으로 한 MySQL의 뷰
- 26. 로그인 한 페이스 북 계정을 기반으로 자동 암호 생성
- 27. 자이로 센서 드리프트 및 정확한 각도 추정
- 28. 미리 계산 된 해시를 기반으로 한 문자열 거리 비교
- 29. 회전 각도를 기반으로 한 X Y 이동 계산?
- 30. 현재 레코드를 기반으로 한 하위 폼에 대한 계산 된 컨트롤
코드에서 SVSession은 무엇입니까? 나는 그것을 찾을 수 없다 –
오 ... 당신은 그것을 찾을 수 없을거야. 내 수업 중 일부 야. 나는 거기에 마지막으로 제목을 저장하는 데 사용했습니다. – Ariel
이것은 매우 유용합니다. 이를 찾는 사람들은이 코드가하는 일을 100 % 명확하게 밝히지는 못하지만, 가로 또는 세로 방향에 관계없이 장치의 방향을 찾으려면이 작업을 수행하십시오. – ratana