程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> UWP開發中的方向傳感器,UWP開發方向傳感器

UWP開發中的方向傳感器,UWP開發方向傳感器

編輯:關於.NET

UWP開發中的方向傳感器,UWP開發方向傳感器


  在UWP開發中,我們能使用的到方向有三種: OrientationSensor下的四元數;Compass羅盤的HeadingMagneticNorth;以及SimpleOrientationSensor。

  先說下SimpleOrientationSensor,這個是用在比較簡單的情況下,它只能讀取6個方向:旋轉0,90,180,270,FaceUP,FaceDown。

        var simpleOrien = SimpleOrientationSensor.GetDefault().GetCurrentOrientation();
            switch (simpleOrien)
            {
                case SimpleOrientation.Facedown:
                    // To do ...
                    break;
                case SimpleOrientation.Faceup:
                    // To do ...
                    break;
                case SimpleOrientation.NotRotated:
                    // To do ...
                    break;
                case SimpleOrientation.Rotated180DegreesCounterclockwise:
                    // To do ...
                    break;
                case SimpleOrientation.Rotated270DegreesCounterclockwise:
                    // To do ...
                    break;
                case SimpleOrientation.Rotated90DegreesCounterclockwise:
                    // To do ...
                    break;
            }

羅盤:

        var compass = Compass.GetDefault().GetCurrentReading();
            var angle= compass.HeadingMagneticNorth;

使用很簡單,但是它讀取的似乎是你行進的方向,也就是說假如你站著不動的話,讀數是沒有意義的。

方向傳感器:

        var _sensor = OrientationSensor.GetDefault();
            var quaternion = _sensor.GetCurrentReading().Quaternion;
            var heading = 180 * Math.Atan2(2 * (quaternion.W * quaternion.Z + quaternion.X * quaternion.Y), 1 - 2 * (quaternion.Y * quaternion.Y + quaternion.Z * quaternion.Z)) / Math.PI;

這個可能要稍微麻煩一點,因為它涉及到四元數,有關四元數的知識請自行google或翻書

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved