首页 > 其他分享 >vue 2 接入three.js

vue 2 接入three.js

时间:2023-07-26 16:15:34浏览次数:43  
标签:vue const THREE three renderer new js

1、安装three.js

npm i [email protected]

2、在vue中引用(可以测试一下,是否ok,下面测试)

  1)、新建index.js

import * as THREE from 'three';
// 引入Three.js扩展库
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
// 创建场景
var scene = new THREE.Scene();
// 创建相机PerspectiveCamera(视野角度,长宽比,近截面(near)和远截面(far)) 透视相机
var camera = new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight, 0.1, 1000)
camera.position.z = 5;//将摄像机稍微向外移动一些
// 创建立方体
const geometry = new THREE.BoxGeometry();//立方体对象,包括顶点、面
const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); //MeshBasicMaterial立方体的材质
const cube = new THREE.Mesh( geometry, material );//网格,包括一个几何体以及作用在此几何体上的材质
// 创建渲染器
const renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
// document.body.appendChild( renderer.domElement );
// document.getElementById("texttt").appendChild(renderer.domElement)
scene.add( cube );//将物体添加到(0,0,0)坐标,的网格上
// 渲染函数
function animate() {
  requestAnimationFrame( animate );
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;
  renderer.render( scene, camera );
}
animate();

export {renderer};

  2)、在home.vue中引入上面的index.js文件

<template>
  <div id="texttt" ref="webgl">
    Home
  </div>
</template>

<script>
import { renderer } from "./index";
export default {
  name: 'Home',
  mounted(){
    this.initThree()
  },
  methods:{
    initThree(){
      this.$refs.webgl.appendChild(renderer.domElement)
    }
  }
}
</script>

  3)、查看渲染效果

 

标签:vue,const,THREE,three,renderer,new,js
From: https://www.cnblogs.com/yunjiao/p/17582716.html

相关文章

  • arcgis for js 4.x 加载 geoserver WMS WMTS
    arcgisforjs4.x加载geoserverwms代码如下<html><head><metacharset="utf-8"/><metaname="viewport"content="initial-scale=1,maximum-scale=1,user-scalable=no"/><ti......
  • three.js报错依赖,原因:three版本过高
    vue版本"devDependencies":{"webpack":"^3.6.0","webpack-bundle-analyzer":"^2.9.0","webpack-dev-server":"^2.9.1","webpack-merge":"^4.1.0"}&quo......
  • js值Set和Map类使用
    <script>//----------------------------------------------------Set----------------------//Set(集合)是一组唯一值的集合。每个值只能在Set中出现一次。Set可以容纳任何数据类型的值。//创建Setconstletters=newSet(["b","a","c"]);console.log(t......
  • 手机上vue页面返回时如何保持原来的位置
    1,问题的提出采用vue做手机评分页面的前端,页面显示多个评分项的分数和总分。每个评分项有个修改按钮,按下后弹出新的页面,用户填写分数后按提交按钮,则保存数据、关闭页面、回到前一页。此时,页面上显示的分数和总分会刷新,但是显示的页面位置未保留修改前的位置,而是回到了顶部显示。......
  • 如何快速在本地运行你vue打包的的dist文件
    要在本机启动运行前端提供的dist包,需要先安装一个HTTP服务器,例如Apache,Nginx,phpstudy。这里以使用Node.js的http-server为例进行说明首先,确保已经安装了Node.js。如果没有安装,可以从官网下载并安装。打开终端或命令行窗口,使用以下命令安装http-servernpminstall-g......
  • js校验IPv4/IPv6/域名/url等相关正则
    /***域名校验eg:www.baidu.com*@param{*}val需要校验的值*/exportfunctionisDomain(val){constreg=/^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/;returnreg.test(val);}/***ipv4校验eg:10.0.0.1*@param{*}val需要校验的值*/exportfunc......
  • Node.js低代码管理系统:只需点击鼠标,搭建属于你的企业应用
    低代码管理系统是一种通过可视化界面和简化的开发工具,使非专业开发人员能够快速构建和管理应用程序的系统。它提供了一套预先定义的组件和模块,使用户可以通过拖放操作来设计应用程序的界面和逻辑。低代码管理系统还提供了自动化的工作流程、数据管理和集成功能,使用户能够快速创建和......
  • 视频直播系统源码,vue自定义模拟滚动条
    视频直播系统源码,vue自定义模拟滚动条vscroll自定义滚动条模板 <template> <divclass="vui__scrollbar"ref="ref__box"@mouseenter="handleMouseEnter"@mouseleave="handleMouseLeave"v-resize="handleResize">  <div:......
  • 庆军之低代码vue模式
    原来render(h),h并不是一个对象。我一直以为,我可以写成render(h){ createuibycode(h,data,data.Data);returnh;},metchs:{createuibycode(h,ui,Data){....varuitype=ui....varuiprops=ui.propsvarsmh=h(uitype,uiprops,[]); }} 结果以上方案无法显......
  • EaselJS 源码分析系列--第四篇
    鼠标交互事件前几篇关注的是如何渲染,那么鼠标交互如何实现呢?Canvascontext本身没有像浏览器DOM一样的交互事件EaselJS如何在canvas内实现自己的鼠标事件系统?原理大致如下:Stage类内的canvas监听标准DOM鼠标事件(比如:mousedown),window或document对象下监听......