重力感应代码

例子:
//======================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.gamma
var beta = evt.beta
var alpha = evt.alpha
if (evt.accelerationIncludingGravity) {
// window.removeEventListener('deviceorientation', this.orientationListener, false);
gamma = event.accelerationIncludingGravity.x * 10
beta = -event.accelerationIncludingGravity.y * 10
alpha = 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();
});

[color=red]PS: coordinate为得到重力感应的x,y,z坐标[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值