Статьи

31 день Windows 8 для HTML5 | День № 27: Инклинометр

Эта статья посвящена Дню № 27 из 31-й серии Windows 8 . Каждая из статей этой серии будет опубликована как для HTML5 / JS, так и для XAML / C # . Вы можете найти дополнительные ресурсы, загрузки и исходный код на нашем сайте .логотип

Как человек, который никогда не писал ни игры, ни даже приложения, требующего такой физики, как эвристика, мне стало ясно, что получение данных с датчика — действительно легкая часть. Я думаю, что также довольно ясно, что ни один датчик никогда не может использоваться отдельно, а скорее в партнерстве с другими. Все устройства в некотором роде действительно дополняют друг друга и в зависимости от того, что вы создаете, в то время как простые в работе с ними важны для общего опыта, который вы пытаетесь создать для своего клиента.

Сегодня завершается наша серия бесед с датчиками устройств, которые вы можете найти на вашем новом устройстве Windows 8. Сегодня мы очень кратко рассмотрим устройство, называемое инклинометром. Так что же такое инклинометр? Ну, скорее всего, вы, вероятно, были взяты где-то в самолете. Когда самолет поворачивает, он фактически показывает все три оси, чтобы выполнить свой поворот. Чтобы заставить самолет вращаться в приятной гладкой усадьбе, у нас есть три простых шага (по крайней мере, для пилота):

  • Наклоните план в направлении движения, отрегулировав элероны (предположительно в противоположных направлениях, чтобы разбить плоскость). Это наша ось Y или поле.
  • Отрегулируйте лифт вверх (или вниз). Это помогает подтянуть нос самолета вверх (или вниз), помогая направить шум в направлении желаемого поворота. Это наша ось X или рулон.
  • Отрегулируйте руль. С рулем мы можем заставить игру поворачиваться из стороны в сторону. Если вы когда-либо оказывались в ветреной ситуации, и план ощущался вбок, это потому, что это было так, и они используют руль, чтобы взвести заднюю часть плана вбок. Это наша ось Z или Yaw.

Изображение предоставлено MSDN: http://msdn.microsoft.com/en-us/library/windows/apps/jj155767.aspx

В то время как физический пример хорош, как это можно отнести к нашим компьютерам в руках?

Изображение предоставлено MSDN: http://msdn.microsoft.com/en-us/library/windows/apps/jj155767.aspx

Как вы можете догадаться, работать с инклинометром так же, как и с другими нашими датчиками. Всего несколько простых шагов, и мы получаем данные:

  • Инициализируйте датчик.
  • Если это доступно,

    • создайте обработчик события, измененный для чтения .
    • В обработчиках событий возьмите данные с датчика и запишите их на экран.

Here’s my the entirety of my code and it looks well super duper scary similar to that of the other sensors.

    var _pitch, _yaw, _roll, _timestamp;

    function onReadingChanged(e) {
        _pitch.innerText = e.reading.pitchDegrees.toFixed(2);
        _yaw.innerText = e.reading.yawDegrees.toFixed(2);
        _roll.innerText = e.reading.rollDegrees.toFixed(2);
        _timestamp.innerText = e.reading.timestamp;
    }

    function getDomElements() {
        _pitch = document.querySelector("#pitch");
        _yaw = document.querySelector("#yaw");
        _roll = document.querySelector("#roll");
        _timestamp = document.querySelector("#timestamp");
    }

    function startInclinometer() {
        var inclinometer = Windows.Devices.Sensors.Inclinometer.getDefault()

        if (inclinometer) {
            var minimumReportInterval = inclinometer.minimumReportInterval;
            var reportInterval = minimumReportInterval > 16 ? minimumReportInterval : 16;
            inclinometer.reportInterval = reportInterval;

            inclinometer.addEventListener("readingchanged", onReadingChanged);
        }
    }

    app.onloaded = function () {
        getDomElements();
        startInclinometer();
    }

Once again, no real surprises here. We get to our data in the same basic was as we did with the other sensors. Wire up to an event, which will fires on an desired interval giving us the X, Y, Z values. No real magic here other than the software you’re building to consume it.

Summary

Today we briefly looked at getting data from our inclinometer. Working with each of these sensors is pretty much the same but what you do with them is entirely up to you.

If you’d like to download my working sample that uses the code from this article, click the icon below:

 downloadHTML

Tomorrow, we’re going to look at the Inclinometer.  See you then!

downloadTheTools