背景
https://lettvin.com/newbbk/orientation.html
我写了此HTML5移动浏览器应用程序,以报告alpha/beta/gamma和肖像/景观角度。它还强制执行肖像模式的视觉显示角度。没问题。随意在我的应用程序上"查看源"。它是以开发人员友好的风格编写的。我建议单击"展开"按钮以全屏进行全屏,并避免使用显示器的位置栏干扰。
我的目标是显示3D对象,其中旋转设备应旋转对象,以便从各个角度看到。
问题在于,从某些重要角度来看,角度的值可能会突然变得不稳定,并不可预测地变化。其中一些角度是常见的设备位置,例如直线肖像或背面平坦。这个问题似乎是设备方向事件的固有。
我看到的应用程序保持稳定的3D显示,独立于这样的不稳定性:
:https://richtr.github.io/marine-compass/
我已经浏览了一个多星期,试图找到一个相当简单的JavaScript解决方案,但没有发现任何简单的适应性。
问题
我如何获得稳定的角度,例如海洋指南针应用,这样我就可以在没有不稳定性的情况下将设备扭曲。我不需要可靠的北方方向;仅可靠的移动设备扭转角。
代码:(并不相关,但请求)
function deviceOrientationListener(event) {
if (typeof event.alpha === "number") {
var angles = {
alpha : parseInt(event.alpha),
beta : parseInt(event.beta ),
gamma : parseInt(event.gamma),
screen: screen.orientation.angle,
};
turnPortrait(angles);
fillTabular (angles);
drawGraphics(angles);
}
}
我决定限制视角以避免不稳定性。
我将使用10< = beta< = 80和-45< = gamma< = 45支持翻译-90< = b< = 90和-90< = C< = 90其中B和C将用于旋转3D对象。
欢迎所有人查看应用程序。