- Qt 5.3
- Qt Sensors
- Qt Sensors - Cube House QML Accelerometer example
- Qt 5.3.2 Reference Documentation

# Qt Sensors - Cube House QML Accelerometer example

The Cube House example demonstrates the use of the accelerometer to drive a camera to create a pseudo-3D effect.

## Overview

To write a QML application that will use the QML Accelerometer type from the QtSensors import you need to to the following steps:

Import the QtSensors declarative plugin:

    import QtSensors 5.0

Add the Accelerometer QML types into your qml file.

        Accelerometer {
            id: accel
            active: true
            dataRate: 20

In additional two properties are added to save the calculated pitch and roll values:

            property double pitch: 0.0
            property double roll: 0.0

Reading out the Accelerometer data can be done by implementing the 'onReadingChanged' slot and accessing the 'reading' property from the Accelerometer type:

            onReadingChanged: {
                pitch = -(Math.atan2(reading.x, Math.sqrt(reading.y * reading.y + reading.z * reading.z)) * 180) / Math.PI;
                roll = (Math.atan2(reading.y, Math.sqrt(reading.x * reading.x + reading.z * reading.z)) * 180) / Math.PI;
            }
        }

By using a timer the view can be rotated using the pitch and roll properties from the Accelerometer type:

        Timer {
            interval: 50; running: true; repeat: true

            onTriggered: {
                view.rotateY(accel.pitch);
                view.rotateX(accel.roll);
            }
        }

Files:

- cubehouse/Cube.qml
- cubehouse/Room.qml
- cubehouse/Table.qml
- cubehouse/cubehouse.qml
- cubehouse/main.cpp
- cubehouse/cubehouse.pro
- cubehouse/cubehouse.qrc