我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在vue中如何使用three.js

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在vue中如何使用three.js

这篇文章主要讲解了“在vue中如何使用three.js”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在vue中如何使用three.js”吧!

1.首先安装three.js、引入

npm install three

在你需要的页面内引入three.js

//import * as THREE from 'three' import * as Three from 'three'

前边这个名字是自己定义的

2.在页面内写入three.js

首先写过three.js基础的要分为几部分:

01:创建场景

const scene = new THREE.Scene()

02.创建相机

代表着相机:角度、宽高比、近看、远

const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)

这代表相机的位置:x y z

camera.position.set(0, 0, 10)

把相机添加到场景中

scene.add(camera)

03.创建一个几何体

这是一个正方体

const Geometry = new THREE.BoxGeometry(1, 1, 1)// 几何体材质const texture = new THREE.MeshBasicMaterial({  color: 0xffff})// 将几何体和材质创建成物体const mesh = new THREE.Mesh(Geometry, texture)// 将几何体添加到场景中scene.add(mesh)

04.创建渲染器

// 设置渲染器的大小render.setSize(window.innerWidth, window.innerHeight)// 将渲染器添加到页面 将webgl渲染的canves添加到bodydocument.body.appendChild(render.domElement)

下边是把three.js写入vue2中:

上面介绍了three.js的基础写法,下边是vue2的写法

01.引入

轨道控制器为了让模型显示的更为自然

import * as Three from 'three'// 导入轨道控制器import {  OrbitControls} from 'three/examples/jsm/controls/OrbitControls'// import {RGBELoader} from 'three/examples/jsm/loaders/RGBELoader'let scene = null,camera=null,renderer=null,mesh=null

02.页面div的承载

<template>  <div id="container">     </div></template>

03.js中获取div、创建相机场景

我用的是最原始js获取的,在vue中可以使用ref

let container = document.getElementById('container');      // 添加相机      camera = new Three.PerspectiveCamera(70, container.clientWidth/container.clientHeight, 0.01, 1000);      // 相机的位置      camera.position.z = 0.1      // 场景      scene = new Three.Scene()

04.创建物体

我这里边创建的是一个比较大的模型,用的贴图纹理,也可以创建正方体之类的,上面有介绍到

let geometry=new Three.SphereBufferGeometry(5,32,32)       let a=new Three.TextureLoader().load(`static/image/8.jpg`)              let material = new Three.MeshBasicMaterial({map: a });      mesh = new Three.Mesh(geometry, material);  mesh.geometry.scale(1, 1, -1);  scene.add(mesh);

05.初始化渲染器

 // 初始化渲染器      renderer = new Three.WebGLRenderer({antialias:true});      // 渲染器的大小      renderer.setSize(container.clientWidth,container.clientHeight);      // 将渲染器添加到页面      container.appendChild(renderer.domElement);

06.轨道控制器

 // 创建轨道控制器 相机围绕模型看到的角度      const OrbitControl = new OrbitControls(camera, renderer.domElement)      // 设置轨道自然      OrbitControl.enableDamping = true      // 设置惯性      OrbitControl.update()

07.浏览器自动渲染

animate(){      // 浏览器自动渲染下一帧      requestAnimationFrame(this.animate);           // 渲染到页面      renderer.render(scene,camera);     }

以上是three.js在vue的写法,是要放到事件里边的,下面我会吧完整代码拿出来

遇到的问题:要把图片放到publice下面

在vue中如何使用three.js

<!--  --><template>  <div id="container">     </div></template><script>import * as Three from 'three'// 导入轨道控制器import {  OrbitControls} from 'three/examples/jsm/controls/OrbitControls'// import {RGBELoader} from 'three/examples/jsm/loaders/RGBELoader'let scene = null,camera=null,renderer=null,mesh=nullexport default {  data () {    return {            };  },  methods:{    init(){      let container = document.getElementById('container');      // 添加相机      camera = new Three.PerspectiveCamera(70, container.clientWidth/container.clientHeight, 0.01, 1000);      // 相机的位置      camera.position.z = 0.1      // 场景      scene = new Three.Scene()      // 创建球      let geometry=new Three.SphereBufferGeometry(5,32,32)       let a=new Three.TextureLoader().load(`static/image/8.jpg`)              let material = new Three.MeshBasicMaterial({map: a });      mesh = new Three.Mesh(geometry, material);  mesh.geometry.scale(1, 1, -1);  scene.add(mesh);            // 初始化渲染器      renderer = new Three.WebGLRenderer({antialias:true});      // 渲染器的大小      renderer.setSize(container.clientWidth,container.clientHeight);      // 将渲染器添加到页面      container.appendChild(renderer.domElement);      // 创建轨道控制器 相机围绕模型看到的角度      const OrbitControl = new OrbitControls(camera, renderer.domElement)      // 设置轨道自然      OrbitControl.enableDamping = true      // 设置惯性      OrbitControl.update()    },    animate(){      // 浏览器自动渲染下一帧      requestAnimationFrame(this.animate);           // 渲染到页面      renderer.render(scene,camera);     }  },  mounted(){      this.init()      this.animate()  }}</script><style scoped>#container{    width: 100vw;    height: 100vh;}</style>

感谢各位的阅读,以上就是“在vue中如何使用three.js”的内容了,经过本文的学习后,相信大家对在vue中如何使用three.js这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在vue中如何使用three.js

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在vue中如何使用three.js

这篇文章主要讲解了“在vue中如何使用three.js”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在vue中如何使用three.js”吧!1.首先安装three.js、引入npm inst
2023-07-05

手把手教你在vue中使用three.js

最近在vue3项目中通过three.js实现了实际的三维效果demo,下面这篇文章主要给大家介绍了关于在vue中使用three.js的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-03-01

vue中使用three.js报错怎么办

小编给大家分享一下vue中使用three.js报错怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言最近在学习three.js,同时也学习一下vue3,然后
2023-06-29

如何在vue中使用moment

如何在vue中使用moment?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、moment是什么?moment 是一个 JavaScript 日期处理类库。安装 mome
2023-06-15

three.js Mool3D模型类如何使用

这篇文章主要介绍“three.js Mool3D模型类如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“three.js Mool3D模型类如何使用”文章能帮助大家解决问题。Model类场景加载
2023-07-05

如何在vue中使用ant-design-vue组件

这篇文章主要介绍了如何在vue中使用ant-design-vue组件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-01-29

如何在vue中使用backtop组件

如何在vue中使用backtop组件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码: