Я использую CMMotionManger для получения показаний отклонения от курса с помощью следующего кода.
Независимо от ориентации UIInterfaceOrientation, я пытаюсь получить показания минус 1,5708 рад, если отклонение от курса на 90 градусов вправо, и положительное значение 1,5708 рад, если устройство повернуто на 90 градусов влево (полярность не важна, поскольку при необходимости ее можно поменять местами).
Я могу заставить его делать то, что хочу, когда устройство находится в портретной ориентации. В радианах это дает мне около -1,5708, когда устройство поворачивается на 90 градусов вправо, и около 1,5708 рад, когда вращается влево.
Но когда устройство находится в портретная перевернутая ориентация, когда рыскание поворачивается вправо, оно начинается от -2,4 до примерно -3,14, затем скачет до ~3,14 и до 2,6. Как сделать его плавным и непрерывным от 0 до -1,5708 рад?
Мне также нужно скорректировать ландшафт слева и справа.
if motionManager == nil {
motionManager = CMMotionManager()
}
let updateInterval: NSTimeInterval = 1 / 24.0 //24hz
if (motionManager!.accelerometerAvailable) {
motionManager!.accelerometerUpdateInterval = updateInterval
motionManager!.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { (motion:CMDeviceMotion?, error: NSError?) -> Void in
print("\(motion!.attitude.yaw)")
switch (TDTDeviceUtilites.interfaceOrientation()) {
case UIInterfaceOrientation.Portrait:
// No correction needed
break;
case UIInterfaceOrientation.PortraitUpsideDown:
//need to apply correction
break;
case UIInterfaceOrientation.LandscapeRight:
//need to apply correction
break;
case UIInterfaceOrientation.LandscapeLeft:
//need to apply correction
break;
}
})
}
Подробнее здесь: https://stackoverflow.com/questions/379 ... rientation
Исправлено отклонение CMMotionManager для текущей ориентации UIInterfaceOrientation. ⇐ IOS
Программируем под IOS
1719832291
Anonymous
Я использую CMMotionManger для получения показаний отклонения от курса с помощью следующего кода.
Независимо от ориентации UIInterfaceOrientation, я пытаюсь получить показания минус 1,5708 рад, если отклонение от курса на 90 градусов вправо, и положительное значение 1,5708 рад, если устройство повернуто на 90 градусов влево (полярность не важна, поскольку при необходимости ее можно поменять местами).
Я могу заставить его делать то, что хочу, когда устройство находится в портретной ориентации. В радианах это дает мне около -1,5708, когда устройство поворачивается на 90 градусов вправо, и около 1,5708 рад, когда вращается влево.
Но когда устройство находится в портретная перевернутая ориентация, когда рыскание поворачивается вправо, оно начинается от -2,4 до примерно -3,14, затем скачет до ~3,14 и до 2,6. Как сделать его плавным и непрерывным от 0 до -1,5708 рад?
Мне также нужно скорректировать ландшафт слева и справа.
if motionManager == nil {
motionManager = CMMotionManager()
}
let updateInterval: NSTimeInterval = 1 / 24.0 //24hz
if (motionManager!.accelerometerAvailable) {
motionManager!.accelerometerUpdateInterval = updateInterval
motionManager!.startDeviceMotionUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { (motion:CMDeviceMotion?, error: NSError?) -> Void in
print("\(motion!.attitude.yaw)")
switch (TDTDeviceUtilites.interfaceOrientation()) {
case UIInterfaceOrientation.Portrait:
// No correction needed
break;
case UIInterfaceOrientation.PortraitUpsideDown:
//need to apply correction
break;
case UIInterfaceOrientation.LandscapeRight:
//need to apply correction
break;
case UIInterfaceOrientation.LandscapeLeft:
//need to apply correction
break;
}
})
}
Подробнее здесь: [url]https://stackoverflow.com/questions/37933299/correct-cmmotionmanager-yaw-for-current-uiinterfaceorientation[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия