引入three.js

<script src="https://johnson2heng.github.io/three.js-demo/lib/three.js"></script>

<script src="https://johnson2heng.github.io/three.js-demo/lib/js/controls/OrbitControls.js"></script>

<style lang="less" scoped>

#ltz{

width: 500px;

height: 300px;

background-color: #fff;

}

</style>

<template>

<div>

<div id="ltz" ref='ltz'></div>

</div>

</template>

<script>

export default {

data(){

return{

renderer:'',

camera:'',

scene:'',

light:'',

stats:'',

controls:'',

gui:'',

mesh:'',

url:'../../../static/img/tencen.jpg'

}

},

methods:{

initRender() {

this.renderer = new THREE.WebGLRenderer({antialias: true});

//this.renderer.setClearColor(new THREE.Color(0xEEEEEE, 1.0)); //设置背景颜色

this.renderer.setSize(400, 300);

let ltzdom = document.getElementById('ltz')

console.log( ltzdom,'this.renderer')

ltzdom.appendChild(this.renderer.domElement);

},

initCamera() {

this.camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 5000);

this.camera.position.set(10, 0, 0) //设置相机位置

this.camera.target = new THREE.Vector3( 0, 0, 0 );

},

initScene() {

this.scene = new THREE.Scene();

},

initModel() {

//轴辅助 (每一个轴的长度)

var object = new THREE.AxesHelper(500);

this.scene.add(object); //坐标轴确定

//声明一个球体

var geometry = new THREE.SphereBufferGeometry( 500, 32, 32 );

// 反转X轴上的几何图形,使所有的面点向内。

geometry.scale( -1, 1, 1 );

//声明球体纹理

var material = new THREE.MeshBasicMaterial( {

map: new THREE.TextureLoader().load(this.url) //加载一整张纹理图片

} );

this.mesh = new THREE.Mesh( geometry, material );

this.scene.add( this.mesh );

},

//初始化性能插件

initStats() {

this.stats = new Stats();

let ltzdom = document.getElementById('static/img/tencen.jpg')

// console.log(this.stats,'document.getElementById()')

// ltzdom.appendChild(this.stats.dom);

},

//用户交互插件 鼠标左键按住旋转,右键按住平移,滚轮缩放

initControls() {

this.controls = new THREE.OrbitControls(this.camera, this.renderer.domElement);

// 如果使用animate方法时,将此函数删除

//this.controls.addEventListener( 'change', render );

// 使动画循环使用时阻尼或自转 意思是否有惯性

this.controls.enableDamping = true;

//动态阻尼系数 就是鼠标拖拽旋转灵敏度

//this.controls.dampingFactor = 0.25;

//是否可以缩放

this.controls.enableZoom = true;

//是否自动旋转

this.controls.autoRotate = false;

//设置相机距离原点的最远距离

this.controls.minDistance = 20;

//设置相机距离原点的最远距离

this.controls.maxDistance = 10000;

//是否开启右键拖拽

this.controls.enablePan = false;

},

//生成gui设置配置项

// initGui() {

// //声明一个保存需求修改的相关数据的对象

// this.gui = {

// };

// var datGui = new dat.GUI();

// //将设置属性添加到gui当中,gui.add(对象,属性,最小值,最大值)

// },

render() {

this.renderer.render(this.scene, this.camera);

},

//窗口变动触发的函数

onWindowResize() {

this.camera.aspect = window.innerWidth / window.innerHeight;

this.camera.updateProjectionMatrix();

this.render();

this.renderer.setSize(window.innerWidth, window.innerHeight);

},

animate() {

//更新控制器

this.controls.update();

this.render();

//更新性能插件

// this.stats.update();

requestAnimationFrame(this.animate);

},

init(){

this.initRender();

this.initScene();

this.initCamera();

this.initModel();

this.initControls();

// this.initStats();

// this.initGui();

this.animate();

// window.onresize = onWindowResize;

}

},

created(){

this.$nextTick(()=>{

this.init()

})

}

}

</script>

<style scoped>

</style>

https://blog.csdn.net/qq_30100043/article/details/79069954

全景图 three.js VR 3D全景 VUE组件相关推荐

  1. Vue.js解析(十)【Vue组件间通信】

    什么是Vue组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊 ...

  2. vue 把组件挂载到视图_vue.js中,在一个vue组件中,想通过点击按钮,才加载另外一个目标vue组件,要怎么实现?...

    展开全部 { data: { showcom: false } methods: { onclick: function () { this.showcom = true; } } } Vue.js( ...

  3. html调用手机陀螺仪,前端基于THREE.js的3D全景,支持鼠标控制和手机陀螺仪的切换...

    /p> 'use strict' ;(function(_window) { var navigatorUserAgent = navigator.userAgent var iPhone = ...

  4. 六十二、Js中的冒泡和捕获点击事件和Vue组件绑定原生事件

    2020/10/18 . 周日.今天又是奋斗的一天. @Author:Runsen @Date:2020/10/18 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是 ...

  5. vue快速修改数组的某个值_详解vue组件三大核心概念

    前言 本文主要介绍属性.事件和插槽这三个vue基础概念.使用方法及其容易被忽略的一些重要细节.如果你阅读别人写的组件,也可以从这三个部分展开,它们可以帮助你快速了解一个组件的所有功能. 本文的代码请猛 ...

  6. Three.js打造H5里的“3D全景漫游”秘籍

    近来风生水起的VR虚拟现实技术,抽空想起年初完成的"星球计划"项目,总结篇文章与各位分享一下制作基于Html5的3D全景漫游秘籍. QQ物联与深圳市天文台合作,在手Q"发 ...

  7. vue 项目使用three.js 实现3D看房效果

    0.前言 该教程能帮助直接写出vue项目的3D看房效果!!! 先上效果图 1.安装依赖 npm i three 2.vue代码 这里文件名为three.vue <template>< ...

  8. Vue里使用three.js实现3D模型小案例

    Vue里使用three.js实现3D模型小案例 1.下载three.js包 npm install three --save 或者 yarn add three --save 2.组件代码 <t ...

  9. 3d全景的市场如何?该如何做好3d全景图?

    我们现在看图片或者是看电视已经不仅仅是看清楚这么简单了,随着品味的上升,我们不再以简单的标清为标准,而开始追求高清以及超清画质.图片更加接近实物,就更加让人喜欢,因此很多行业对3d全景更加青睐.在互联 ...

最新文章

  1. hive udf 分组取top1_Hive的经典面试题
  2. MySQL-source报错1064
  3. UVA 610 Street Directions 双连通分量
  4. 在Windows XP里,设置USB只读
  5. tcp 四次挥手_TCP三次握手和四次挥手
  6. C#序列化和反序列化
  7. P6669 [清华集训2016] 组合数问题
  8. Session共享的四种方法
  9. 华为手机投屏电脑_华为手机如何实现无线投屏?
  10. SDL2源代码分析4:纹理(SDL_Texture)
  11. 从尾到头打印链表(六)
  12. [转]vs2005(c#)水晶报表
  13. c语言编译器不支持c99,Visual Studio2013的C语言编译器对C99标准的支持情况
  14. jflash烧录教程_Jflash烧录(windows)原理分析
  15. PLC系统的选型以及应用方法
  16. ACdream 1121 喵喵的IDE
  17. 2020-08-31 ubuntu18.04下安装gitlab,以及使用邮箱注册
  18. 163手机邮箱如何注册登陆?
  19. Nginx 代理缓存
  20. css文件插入背景音乐,在HTML中添加背景音乐

热门文章

  1. Linux服务器时间同步chrony详解+案例
  2. 【RedHat Linux 操作系统安装配置规范】
  3. linux 下远程桌面连接
  4. 商用无人机的飞行感知技术
  5. c语言程序在什么结束执行,c程序的执行是从什么开始到什么结束?
  6. 今日头条的利润如何来算
  7. ASO行业公司及现状概述
  8. 【kindle笔记】读书记录-总
  9. 物联网卡定向后引起网络通频繁掉线
  10. Mcafee email gateway 全新安装(一)