Из Qt doc. QGyroscopeReading Class :
QGyroscopeReading Units
Показание содержит 3 значения, измеренные в градусах в секунду, которые определяют движение устройства вокруг x, y иОси Z.В отличие от QRotationReading , значения представляют текущую угловую скорость, а не фиксированное вращение.Измерения выполняются в градусах в секунду.
Итак, преобразование qreal
в float
является вашей наименьшей проблемой, за исключением того, что вы просто хотите сохранить значения в QVector3D
(помните, что это нене представляет точку или вектор в трехмерном пространстве).Но если это так, то ваше обращение в порядке.(Хотя я не понимаю, почему не хранить показания гироскопа просто как QGyroscopeReading
.)
Если вы хотите применить QGyroscodeReading
к QVector3D
(например, для отображения эффекта), тогда выможет применить повороты к предопределенному вектору (например, QVector3D(0, 0, 1)
).Для кумулятивного обновления также потребуется время (для преобразования угловых скоростей в углы).
Для времени может быть интересным QGyroscopeReading::timestamp()
(т.е. определить длительность по текущемуотметка времени и предыдущая).Хотя, док.не очень обнадеживает:
Обратите внимание, что некоторые платформы не доставляют метки времени правильно. Приложения должны быть готовы к случайным проблемам, которые приводят к скачкам времени назад.