javascript - HTML5 方向轴跳转

标签 javascript html orientation

我正在制作一个网络应用程序,我需要知道手机围绕深度轴的方向:就像如果手机像时钟表面的 ARM 一样旋转,它会在哪里。 Beta 轴告诉我这一点。

但是,当我以纵向模式将手机面向自己时,当我来回倾斜手机时(Rolodex 上顶卡的倾斜方式),所有值都会跳跃。看视频:

https://drive.google.com/file/d/0B5C3MHv2Hmc6VTI2RDlOSkJPVHc/view?usp=sharing

我已经在两部手机上试过了,它们是一致的。如何在不跳跃的情况下获得 beta 轴值?我确信有一种数学方法可以抵消跳跃,但我不确定从哪里开始。

最佳答案

我正要放弃,我想,“哎呀,我从来没有遇到过 Unity 的那种问题。但是,当然,Unity 有四元数。”这个想法让我认为 必须 有一个 JavaScript 的四元数库,而且确实是 there is。 .

这让我想到了这段代码:我只是“向上”旋转到转换为四元数的手机方向并捕获 z 轴:

let quaternion = new Quaternion();
let radian = Math.PI / 180;

$(window).on('deviceorientation', function(event) {
    event = event.originalEvent;
    quaternion.setFromEuler(
        event.alpha * radian,
        event.beta * radian,
        event.gamma * radian);
    let vector3 = quaternion.rotateVector([0, 1, 0]);
    let result = vector3[2];
});

这正是我需要的结果!

关于javascript - HTML5 方向轴跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43617454/

相关文章:

ios - 在 iOS 7 中启动 iPad 应用程序时 View 宽度错误

swift - 如何在 Swift 中检测横向方向并将其应用于 AVCaptureVideoPreviewLayer?

javascript - 在 Ember 中如何使用 View 更改 css 属性然后查看它?

jquery - 如何在此 Bootstrap 产品 slider 中为缩略图添加下一个上一个按钮?

html - 溢出 :hidden on div tag affects background color

javascript - 打开新的弹出窗口并返回值

javascript - 如果根/父元素向上/向下滚动则显示按钮,如果不是则隐藏该按钮

javascript - 遍历DOM回传一张图片

javascript - 更改背景图像 css 导致添加额外的 div

android - 保存以编程方式添加的方向更改 View ?