资讯详情

krpano 陀螺仪 相关问题

首先 陀螺仪的使用地址必须是

本地测试时可以通过更改vue.config.js (如果没有vue.config.js然后新建一个)

// vue.config.js module.exports = { 
             devServer: { 
               proxy: { 
                 '/api': { 
                   target: 'url',           changeOrigin: true,           pathRewrite: { 
                     '^/api': ''           }         }       },       // 此处开启 https       **https: true**     }   } 

在xml还应注意文件 主要有以下核心代码

<plugin name="gyro" url="%SWFPATH%/plugins/gyro2.js" enabled="false" sensor_mode="0" sensor="0" friction="0.9" softstart="1" /> 

各属性值如下

<plugin name="gyro"    devices="html5"          keep="true"         url="gyro2.js"  //引入插件         enabled="false"   陀螺仪是否启用?         camroll="true"  ///根据设备旋转调整观看位置         friction="0.0"   0.0-0.99或者auto  摩擦力,auto和zoom/fov/frame-rate有关 touch_mode="full" off(关闭)/horizontaloffset(横向)/full(全部)/disablegyro(),触摸方式 sensor_mode="1" 传感器类型 softstart="0.5" 启用陀螺时,方向改变的时间,为0将立即使用gyro-tracked值 autocalibration="false" 自动校准陀螺仪 onavailable="" onunavailable="" onenable="" ondisable="" /> 

第二就是在xml文件中,如果有scene标签,则plugin必须被scene标签包裹否则不生效

第三就是默认enable为true有可能会影响开场动画效果建议js中写方法用按钮触发

this.krpano.call("switch(plugin[gyro].enabled);");
//switch(plugin[陀螺仪标签名].enabled);用来切换陀螺仪enable

第四就是我在触发陀螺仪之后发现很严重的一个问题就是抖动

我先后调整了很多参数,发现比较重要的几个参数有

friction=""  //数值在0.0-0.99之间,数值越大摩擦力越大,摩擦力大就可以用来降低陀螺仪的灵敏度
sensor_mode="0" 
//sensor_mode:传感器类型
//0 =直接使用最新的可用的传感器数据。 没有内插或外推法。 根据sensor-time-intervals的浏览器 运动可以是不平稳的或平滑。
//1 =最新之间顺利插入 可用的传感器数据。 这将给一个非常光滑但延迟运动。
//2 =预测设备传感器数据之间的旋转,然后插入。
//3 =推断最新可用的传感器数据 当前帧的时间。 这将给一个快速响应和平滑运动,但可以有抽搐 当外推/预测数据和实际运动不匹配。
//4 =预测当前帧的旋转装置。 这将给一个快速响应和平滑运动,但可以有抽搐 当外推/预测数据和实际运动不匹配。
//5 =预测设备旋转和推断 传感器数据从最新的事件当前帧时间。

//这个参数也相对重要,除了0跟1之外,其余的都会有很强烈的抖动问题,0最平滑

sensor=""//最重要的一个参数
//默认是1,但是需要设置成0才能防止陀螺仪的灵敏度过高以及抖动的问题
//定义用于设备移动跟踪的浏览器事件:
**//0 - deviceorientation 事件**
//这里传感器融合将由浏览器本身完成。
//不幸的是,来自此事件的数据在许多 Android 设备和 Android 浏览器中存在错误或错误(缓慢、不准确、错误)。
**//1 - devicemotion事件(默认)**
//此处传感器融合将由 krpano 完成。
//浏览器提供来自加速度和陀螺仪传感器的原始数据,krpano 将它们组合起来以获得最终的设备旋转:
//陀螺仪数据非常快速和准确,但陀螺仪传感器仅测量相对旋转,因此随着时间的推移它会偏离真实的物理方向。
//为了补偿这种漂移,使用了加速度传感器。该传感器测量地球的重力加速度,可用作绝对参考。
//但是加速度数据非常嘈杂,它只能用于检测“倾斜”旋转(向左、向右、向上或向下倾斜)——加速度无法检测到围绕设备本身的旋转,为此需要陀螺仪数据。
//因此来自两个传感器的数据将被组合/融合。加速度数据将被低通滤波并用作慢速“稳定”和陀螺仪数据,以便在各个方向快速准确地移动。
//使用 devicemotion 事件(设置传感器 = 1)是默认的,通常应该没有必要或好处使用 deviceorientation 事件,除非可能是一些极端的浏览器错误......
//注 - 在 iOS 13.4/Safari 13.1 中,devicemotion 事件已损坏。因此,在这些系统上,传感器的默认值 设置为 0 以使用 deviceorientation 事件(正在工作)。

最后有一个问题就是需要注意krpano的版本与陀螺仪文件gyro2.js文件的版本是否合适

以上

标签: 陀螺仪传感器api陀螺仪力传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台