读书人

地心引力感应代码

发布时间: 2012-09-28 00:03:35 作者: rapoo

重力感应代码
例子:

//======================Orientation=======================================var coordinate = {x : 0,y : 0,z : 0};function Orientation(selector) {}Orientation.prototype.init = function() {window.addEventListener('deviceorientation', this.orientationListener,false);window.addEventListener('MozOrientation', this.orientationListener,false);window.addEventListener('devicemotion', this.orientationListener,false);}var orientDate = 0;Orientation.prototype.orientationListener = function(evt) {// For FF3.6+if (!evt.gamma && !evt.beta) {// angle=radian*180.0/PI 在firefox中x和y是弧度值,evt.gamma = (evt.x * (180 / Math.PI)); //转换成角度值,evt.beta = (evt.y * (180 / Math.PI)); //转换成角度值evt.alpha = (evt.z * (180 / Math.PI)); //转换成角度值}/* beta:  -180..180 (rotation around x axis) *//* gamma:  -90..90  (rotation around y axis) *//* alpha:    0..360 (rotation around z axis) (-180..180) */var gamma = evt.gammavar beta = evt.betavar alpha = evt.alphaif (evt.accelerationIncludingGravity) {// window.removeEventListener('deviceorientation', this.orientationListener, false);gamma = event.accelerationIncludingGravity.x * 10beta = -event.accelerationIncludingGravity.y * 10alpha = event.accelerationIncludingGravity.z * 10}if (this._lastGamma != gamma || this._lastBeta != beta) {//document.querySelector("#test2").innerHTML = "c-x: "+beta.toFixed(2)+"  c-y:"+gamma.toFixed(2)+"  c-z:"+(alpha != null ? alpha.toFixed(2) : 0)+ "<br>  o-x: " + coordinate.x + " o-y: " + coordinate.y + " o-z: " + coordinate.z;coordinate.x = beta.toFixed(2);coordinate.y = gamma.toFixed(2);coordinate.z = (alpha != null ? alpha.toFixed(2) : 0);//websocket("coor",coordinate.x+","+coordinate.y+","+coordinate.z);/* document.querySelector("#test").innerHTML = "x: " + coordinate.x+ " y: " + coordinate.y + " z: "+ coordinate.z; *///Math.max()this._lastGamma = gamma;this._lastBeta = beta;}};$(function(){(new Orientation()).init();});

PS: coordinate为得到重力感应的x,y,z坐标

读书人网 >Web前端

热点推荐