Javascript 谁知道Windows Phone上的设备方向?
设备定向事件的w3c标准: W3C标准描述了当设备绕其z轴旋转时,该事件的alpha属性应该如何改变 当您直视屏幕时,将手机放在面前时,z轴指向您。它是与屏幕重合的平面的法向量 在我看来,在我的windows phone上,情况似乎有点不同。alpha属性也会随着x轴的旋转而改变(即在portait模式下) 如何重复:Javascript 谁知道Windows Phone上的设备方向?,javascript,html,internet-explorer,windows-phone-8,Javascript,Html,Internet Explorer,Windows Phone 8,设备定向事件的w3c标准: W3C标准描述了当设备绕其z轴旋转时,该事件的alpha属性应该如何改变 当您直视屏幕时,将手机放在面前时,z轴指向您。它是与屏幕重合的平面的法向量 在我看来,在我的windows phone上,情况似乎有点不同。alpha属性也会随着x轴的旋转而改变(即在portait模式下) 如何重复: 将手机举在面前(在portait模式下) 确保gamma为负数,这意味着手机会稍微向后倾斜 现在确保alpha约为零度,这意味着手机位于y轴的中心 将手机稍微向左倾斜,使alp
编辑:刚刚在iPhone上测试过,似乎与windows phone的表现相同…回答:他们又这么做了 现在,大多数CSS和JS已经标准化了PolyFill,大型浏览器和操作系统供应商已经决定实现不同的方式来处理设备定位数据,并将其传递给web开发人员。此外,该标准不是气密的 我发现: 这是不同供应商应用程序之间差异的一个非常有用的总和,但(不幸的)不是一个有效的多边形填充。对于我的项目,我正在慢慢填补空白,并期望在几个月内达到一个完整的多边形填充。同时,这里有一个脚本,它将WP IE坐标转换为工作的偏航/俯仰/滚转坐标集 //[[音高]]
if ( event.gamma < 0 ) {
normalized.pitch = -90 - event.gamma ;
} else {
normalized.pitch = 90 - event.gamma ;
}
可能是Hi Joffrey的复制品,不幸的是,这不能回答问题。我了解横向模式和纵向模式之间的差异,并且知道如何检测它们之间的差异。我的问题是关于设备报告的实际角度与其在3D空间中的方向的关系。这些角度的报告方式似乎不符合W3C制定的标准,而且在横向模式和纵向模式之间似乎有所不同。
if ( normalized.pitch > 0 && event.alpha > 180 ) {
normalized.yaw = event.alpha - 180 ;
} else if ( normalized.pitch > 0 && event.alpha < 180 ) {
normalized.yaw = event.alpha + 180;
}
if ( normalized.pitch > 0 ) {
var sign = Math.abs( event.beta ) / event.beta;
normalized.roll = sign * 180 - event.beta ;
}