重力感应代码

例子:
//======================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();
});

PS: coordinate为得到重力感应的x,y,z坐标
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值