移動端二三事【四】:陀螺儀(重力感應器)實現手機位置、加速度感應以及常見應用。

來源:互聯網
上載者:User

標籤:add   nbsp   事件對象   listener   doc   ima   code   size   手機   

首先說明一下:陀螺儀感應需在真機環境下進行調試,PC端無效果。

1.擷取感應器

需在window上監聽devicemotion事件,再通過事件對象擷取accelerationIncludingGravity(內建重力加速度感應器)對象。代碼如下:

window.addEventListener(‘devicemotion‘, function(e) {        var motion = e.accelerationIncludingGravity;        var x = motion.x;        var y = motion.y;        var z = motion.z;        //x,y,z位三個軸方向上的重力加速度        console.log(x);        console.log(y);        console.log(z);});

x,y,z軸如下,畫的不好,多多包涵。(Z軸垂直於手機):

2.位置與重力加速度:

由上可瞭解到:擷取的數值為不同方向的重力加速度,所以位置不同x,y,z的數值也會不同:

此處提到的位置包括地理位置與手機擺放位置:

以石家莊(此處為家鄉打call)的地理位置來說(北緯37°27′~38°47′,東經113°30′~115°20′),重力加速度為9.7997。

現假設所在位置的重力加速度為9.8:,則:

將手機平躺放在案頭上,則x軸與y軸重力加速度為0,z軸重力加速度的值為9.8多;

將手機豎立防止(完全豎直),則x軸與z軸的重力加速度為0,y軸重力加速度的值為9.8多;

將手機橫立(完全橫立),則y軸與z軸的重力加速度為0,x軸重力加速度為9.8多。

 *可使用手機將以下代碼在伺服器環境運行,進行體驗:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,user-scalable=no" /><title>Document</title><style type="text/css">#box {    width: 200px;    height: 200px;    background: Red;    color: #fff;    font-size: 20px;}    </style></head><body><div id="box"></div><script type="text/javascript">    var box = document.querySelector(‘#box‘);    window.addEventListener(‘devicemotion‘, function(e) {        var motion = e.accelerationIncludingGravity;        var x = motion.x.toFixed(3);        var y = motion.y.toFixed(3);        var z = motion.z.toFixed(3);        box.innerHTML = "x:"+x;        box.innerHTML += "<br/>y:"+y;        box.innerHTML += "<br/>z:"+z;    });</script></body></html>

 

移動端二三事【四】:陀螺儀(重力感應器)實現手機位置、加速度感應以及常見應用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.