three.js 陀螺儀

three.js 綁定陀螺儀實現例子如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<script>
<p id="CanvasBody">
<input id="onDevice" type="button" value="開啟陀螺儀">
</p>
<!-- 鼠標控制 (OrbitControls.js) -->
<script>
THREE.OrbitControls=function(object,domElement){return}event.preventDefault();event.stopPropagation();handleMouseWheel(event);scope.dispatchEvent(startEvent);scope.dispatchEvent(endEvent)}function onKeyDown(event){if(scope.enabled===false||scope.enableKeys===false||scope.enablePan===false){return}handleKeyDown(event)}function onTouchStart(event){if(scope.enabled===false){return}switch(event.touches.length){case 1:if(scope.enableRotate===false){return}handleTouchStartRotate(event);state=STATE.TOUCH_ROTATE;break;case 2:if(scope.enableZoom===false){return}handleTouchStartDolly(event);state=STATE.TOUCH_DOLLY;break;case 3:if(scope.enablePan===false)
</script>
<!-- 控制陀螺儀 (DeviceOrientationControls.js) -->
<!-- 代碼 -->
<script>
"use strict";
(function (CanvasBody, _window) {
var Scene = void 0,
Camera = void 0,
Renderer = void 0,
FpsStats = void 0,
AnimateFrame = void 0,
Controls = void 0,
Devices = void 0;
var onDevice = document.getElementById("onDevice");
var isDeviceing = 0;
/* 初始化函數 */
function initScene() {
Scene = new THREE.Scene();
}
// 初始化照相機
function initCamera() {
Camera = new THREE.PerspectiveCamera(60, CanvasBody.clientWidth / CanvasBody.clientHeight, 1, 3000);
Camera.position.set(1, 0, 0);
Camera.lookAt({ x: 200, y: 0, z: 0 });
}
// 初始化渲染器
function initRenderer() {
Renderer = new THREE.WebGLRenderer();
Renderer.setSize(CanvasBody.clientWidth, CanvasBody.clientHeight);
Renderer.setClearColor(0x000000, 1);
CanvasBody.appendChild(Renderer.domElement);
}
// 初始化監視器
function initFpsStats() {
FpsStats = new Stats();
CanvasBody.appendChild(FpsStats.domElement);
FpsStats.domElement.style.cssText = "position: absolute;top: 0;left: 0;";
}
// 初始化控制器
function initControls() {
Controls = new THREE.OrbitControls(Camera);
}
// 初始化陀螺儀
function initDevices() {
Devices = new THREE.DeviceOrientationControls(Camera);
}
/* 窗口改變事件 */
function windowChange() {
initCamera();
Renderer.setSize(CanvasBody.clientWidth, CanvasBody.clientHeight);
initDevices();
initControls();
}
/* 控制陀螺儀 */
function controlDevice(event) {
if (isDeviceing === 0) {
isDeviceing = 1;
onDevice.value = "關閉陀螺儀";
} else {
isDeviceing = 0;
onDevice.value = "開啟陀螺儀";
}
}
/* 動畫 */
function animate(time) {
FpsStats.begin();
Renderer.clear();
isDeviceing === 0 ? Controls.update() : Devices.update();
Renderer.render(Scene, Camera);
FpsStats.end();
AnimateFrame = requestAnimationFrame(animate);
}
/* 初始化 */
function init() {
// 初始化
initScene();
initCamera();
initRenderer();
initFpsStats();
initControls();
initDevices();
// 初始化綁定陀螺儀
Devices.connect();
_window.addEventListener("resize", windowChange, false);
onDevice.addEventListener("click", controlDevice, false);
AnimateFrame = requestAnimationFrame(animate);
}
init();
/* 場景內物體 */
(function () {
var r = Math.sqrt(5000 * 1827 / 4 / Math.PI);
var texture = THREE.ImageUtils.loadTexture("http://cdn.attach.w3cfuns.com/notes/pics/201606/14/141100b7m85b4k8kb3337z.jpg", {}, function () {
var geometry = new THREE.SphereGeometry(r, 100, 100);
var material = new THREE.MeshLambertMaterial({
map: texture,
side: THREE.DoubleSide
});
var mesh = new THREE.Mesh(geometry, material);
Scene.add(mesh);
mesh.position.set(0, 0, 0);

var al = new THREE.AmbientLight(0xffffff);
Scene.add(al);
});
})();
})(document.getElementById("CanvasBody"), window);
</script>
</body>
</html>不太清楚陀螺儀是什么,留個我用
three.js寫的效果http://xuxweb.com/article/7.php

Opanorama.js?基于Threejs,同時支持手勢和陀螺儀的web全景JS庫。

<script src="https://threejs.org/build/three.js"></script>
<script src="/dist/Opanorama.js"></script>
const panorama = new Opanorama({
url: , ? ? ? ? ? ? ? ? ? ?//全景圖片
container: document.body, ? //容器
radius: 500, ? ? ? ? ? ? ? ?//球體半徑,可不填
fov: 90, ? ? ? ? ? ? ? ? ? ?//相機視角,可用于放大和縮小圖片,可不填
offsetLongitude: 0, ? ? ? ? //經度偏移量,可用于默認展示圖片位置,可不填
offsetLatitude: 0, ? ? ? ? ?//緯度偏移量,可用于默認展示圖片位置,可不填
supportTouch: true, ? ? ? ? //是否支持手指滑動,可不填
supportOrient: true ? ? ? ? //是否支持陀螺儀,可不填});

代碼示例網頁鏈接

ug3.0安裝在win7 快感三上悠亞畫面截圖 喜帖街中文版叫什么 蘋果一體機升級配置 dig around ipsec dh算法 js 清空table arcgis mxd文件 盈透證券活躍交易品種 數據有效性的使用方法 任天堂 switch聚會游戲 俄國游戲 孔雀魚要生的前兆 實現政企分離 那一次 我選擇了退縮 風痕磨石 mindmanager2015 key Ngau Hung—hoapro下載 blue peter 電視節目 口袋妖怪重制通用禮包 mavic air 遙控器 6s stayreal十周年 逍遙安卓玩王者榮耀 可變現凈值是什么意思 python 文件修改日期 孕婦能吃清燉老母雞嗎? 北京衛視回放昨天節目 勞斯萊斯價格最貴的車 crnn tensorflow 神龍擺尾玩具圖解步奏

Copyright 書香網 Some Rights Reserved

如反饋或投訴等情況聯系:une35498#163.com

吉林十一选五遗漏