Перейти к содержанию
Fire Monkey от А до Я

Bob32

Пользователи
  • Постов

    109
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент Bob32

  1. СПАСИБО! ) а "получаете углы" - имеется ввиду углы наклона телефона из IFMXScreenService.GetScreenOrientation - верно? те - этот код нужно вставить между getRotationMatrix и getOrientation и getOrientation передавать OutMatrix вместо FMatrix, как сейчас. так?
  2. а как этот remapCoordinateSystem вызывать? сорри - это для вас "простая обертка" - я на Дельфи 2.0 15 лет назад программировал. Все эти "андроидовские штучки" не знаю. если книжку или ссылку путевую про это посоветуете - буду также крайне признателен.
  3. конечно выложу, если ума хватит )))) откомпилировал Ваше приложение = все работает, получаем данные акселерометра, магнитного датчика и углы (их я перевел в градусы для большей наглядности). но тут наступает вот какой момент (возможно, Вы именно о нем писали, когда упоминали об ориентации экрана)… когда телефон горизонтально (смотришь на экран сверху) - четко видно, что в первом углу = Азимут на север, который меняется от -180 до +180. 0 - север. когда поднимаешь телефон вертикально (смотришь на телефон сбоку) - этот угол "едет" - те он начинает показывать что-то, но не азимут на север. предыдущая статья на хабре этого автора (я тоже читал обе эти статьи когда пытался разобраться сам), где он использует устаревший метод и потом выкладывает апк-шку - так вот в этой предыдущей версии (в ее апк-шке) углы определяются исключительно верно- поднимай телефон, крути, а азимут на север показывается четко. аналогично по двум другим углам. тем этот метод меня и зацепил.... Вы об этом говорили, когда писали про "ориентацию экрана" или имели ввиду что-то другое?
  4. Спасибо огромное! Сейчас буду изучать. если что - можно будет Вам голосом вопрос задать?
  5. сложновато это пока для меня. подожду завтрашнего дня ) спасибо огромное!!!!!
  6. а как это сделать? Подскажете? Да, я видел на примере других приложений, написанных под андроид-студио, что getRotationMantrix + getOrientation дает необходимый эффект. но как их вызывать из Дельфи? я в прошлом был Дельфи-программист (лет 10 назад). а сейчас FMX и фич Андроида не знаю ( вот, осваиваю методом проб и ошибок.
  7. плохо. это видно при отрисовке компонентов дополненной реальности, который я рисую. они скачут, нет плавности. здесь именно задача на сглаживание этих показателей. но не средним арифметическим а каким нить фильтром, например Калмана. Просто - это изобретение велосипеда. методы getrotationmatrix и getorientation из Андроид Студио делают нечто подобное в "стандартной комплектации", без самописных огородов. Может в Дельфи есть что-то подобное..... или какой-то простой воркэраунд.
  8. а я уже делаю среднее арифметическое последних 6 значений - все равно плохо. по всей видимости, эти методы, о которых я упомянул (getrotationmatrix и getorientation), используют математику похлеще - что то типа фильтров Калмана и Маджвика. я их сам не закодирую - они замороченные. есть код одного из них на cpp. Можно ли как-то из него сделать что-то типа модуля и вызвать из Дельфи?
  9. Добрый день, Друзья!Имеем Delphi 10.3 Community EditionПытаюсь с помощью компонент TOrientationSensor и TMotionSensor получить три адекватных угла - азимут на Север, и два угла наклона телефона.Действую так :(алгоритм и теорию взял отсюда https://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf )1) получаю данные акселерометра .Gx:=MotionSensor1.Sensor.AccelerationX;Gy:=MotionSensor1.Sensor.AccelerationY;Gz:=MotionSensor1.Sensor.AccelerationZ;2) получаю данный вектора магнитной индукцииBx:=OrientationSensor1.Sensor.HeadingX;By:=OrientationSensor1.Sensor.HeadingY;Bz:=OrientationSensor1.Sensor.HeadingZ;далее по формулам из ссылки рассчитываю эти углы. Все получается, но есть такая проблема:- Углы скачут, нет плавности, стоит пошатать немного телефон и получаешь разброс по 20..30 градусов.Это жутко контрастирует с плавностью хода, которые демонстрируют другие приложения, например компаса, на ПлейМаркете.Ставил в качестве теста apk-шку приложения под андроид, которое использует два метода - GetRotationMatrix и GetOrientation - работает офигенно плавно.Но алгоритм, исползуемый в этих методах неизвестен.ВОПРОС: решали ли кто-то адекватно эту задачу под Дельфи? как ? может как-то можно из среды Дельфи вызывать эти методы (GetRotationMatrix и GetOrientation)?Близок к отчаянию - вторую неделю бьюсь ( Буду признателен за любой дельный совет.
×
×
  • Создать...