导语
这一节我们通过创建一个vue项目,并在vue中使用three.js绘制一个几何体。

1、创建项目
1.第一步:安装vue-cli
cnpm install vue-cli -g //全局安装 vue-cli

查看vue-cli是否成功,不能检查vue-cli,需要检查vue

vue init webpack testthree


现在项目已经创建好了,那就让项目先安装下依赖再运行一下,会出现下面的页面,操作指令是:
cnpm install
cnpm run dev



项目运行成功
2、安装threed.js

3、在项目中使用three.js
修改APP.VUE文件的内容如下:
<template><div class="container" ref="container"></div></template><script >import * as THREE from "three";import { ref } from "vue";//添加一个轨道控制器import { OrbitControls} from "three/examples/jsm/controls/OrbitControls";export default {name: 'App',data() {return {renderer: null,scene: null,camera: null,}},beforeCreate() {console.log("beforeCreate");},beforeMount() {console.log("beforeMount");},created() {},mounted() {//初始化场景const scene = new THREE.Scene();//初始化相机const camera = new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight,0.1,1000);//设置相机位置camera.position.z =5;//初始化渲染器const renderer = new THREE.WebGLRenderer();renderer.setSize(window.innerWidth,window.innerHeight);// const container = ref(null);//添加控制器const controls = new OrbitControls(camera,this.$refs['container']);controls.enableDamping = true;//阻尼this.$refs['container'].appendChild(renderer.domElement);this.renderer=renderer;this.scene=scene;this.camera=camera;this.renders();// renderer.render(scene,camera);/* const render {renderer.render(scene,camera);requestAnimationFrame(renderer);} *///添加立方体const geometry = new THREE.BoxGeometry(1,1,1);const material = new THREE.MeshBasicMaterial({color: 0X00FF00});const cube = new THREE.Mesh(geometry,material);scene.add(cube);},methods: {renders(){this.renderer.render(this.scene,this.camera);// requestAnimationFrame(this.renders());//此行代码会出现threejs requestAnimationFrame 导致的call stack超出上限的问题requestAnimationFrame( this.renders.bind(this) );}}}</script><style>*{margin: 0;padding: 0;}.container{height: 100vh;width: 100vw;background-color: #f0f0f0;}</style>
重新启动项目后,就可以看到一个绿色可拖动的几何体了

原文作者:小南瓜开发平台;如有侵权,请联系管理员删除。