360度全景与移动设备传感器控制
360 degrees panorama with mobile device sensor control
你熟悉Youtube上的这些360度视频吗?下面是一个示例,如果您不是。最重要的是尝试在您的移动设备上查看它。相机的移动由移动设备传感器控制。
我正在尝试对图像做同样的事情。我在这里找到了这个不错的脚本。我所做的只是更改图像:
var folder = "images/360_degrees/";
var sides = [
[folder + "back.png", 0, 0, 100, 0, 0, 0],
[folder + "front.png", 100, 0, 0, 0, 1.57, 0],
[folder + "left.png", 0, 0, -100, 0, 3.14, 0],
[folder + "right.png", -100, 0, 0, 0, 4.71, 0 ],
[folder + "bottom.png", 0, 100, 0, 4.71, 0, 0 ],
[folder + "top.png", 0, -100, 0, 1.57, 0, 0 ]
];
但是,我在这个脚本中遇到了一些问题:
- 我想使特定图像成为中心,这意味着我希望它始终从同一"立方体"侧(该图像)打开并从这一点进行旋转。有可能做到吗?毕竟,这些视频总是从同一个点开始......
- 通常(嗯,实际上大多数时候),当我完成旋转我的设备时,这个立方体的运动会自行继续。设备停止移动后如何停止它?
也许如果网上有任何其他代码可以做同样的事情 - 我也很高兴有指向它们的链接。
如果删除以下代码,
window.addEventListener("deviceorientation", function(e) {
camera.rotation.set (
!e.beta ? 0 : e.beta * deg2rad,
!e.gamma ? 0 : e.gamma * deg2rad,
!e.alpha ? 0 : e.alpha * deg2rad
);
}, false);
你会看到泛香气在一个初始点是静态的。
现在调整值,
cube.rotation.x = -90; // tweak it to 0, 30 etc
就像明智的你得到y
,
cube.rotation.y = 0; // tweak it to 0, 30 etc
调整上面的内容将回答您关于如何从特定点开始全景的第一个问题。
第二个问题的答案在于deviceorientation
事件侦听器。 您可以定义何时更改相机值的阈值。
// this can be any condition.
if ( ( e.beta * deg2rad ) > 1.1 || ( e.gamma * deg2rad ) > 0.01 )
{
camera.rotation.set (
!e.beta ? 0 : e.beta * deg2rad,
!e.gamma ? 0 : e.gamma * deg2rad,
!e.alpha ? 0 : e.alpha * deg2rad
);
}
相关文章:
- JS编译器/包管理器,用于版本控制
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 如何控制组件'的createContent函数被激发
- 节点协同与生成器和Promise并行流量控制
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- 使用:new Image()控制加载html.src=html_URL
- 传单缩放控制位置错误
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 使用jQuery控制来自图像的音频
- CORS:否'访问控制允许来源'header-但是php设置头文件
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- 为什么可以't我将检索到的文档分配给控制台中的变量
- CORS:访问控制允许原点不等于提供的原点
- javascript window.open将无法在Chrome控制台上工作
- onmousedown更改光标;可能需要控制事件冒泡
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- django没有访问控制允许删除原始标头
- 360度全景与移动设备传感器控制