Vue里引入three.js
最近因为three.js的项目要用Vue.js 来重构,所以不太清楚在Vue里面怎么引入。找了很多方法都是一直报错,最后在Stack Overflow找到了。首先是下载包,直接用 npm install three --save 就行了。然后就是在component里面引入。<template><div><div id=&quo
·
最近因为three.js的项目要用Vue.js 来重构,所以不太清楚在Vue里面怎么引入。找了很多方法都是一直报错,最后在Stack Overflow找到了。
首先是下载包,直接用 npm install three --save 就行了。
然后就是在component里面引入。
<template>
<div>
<div id="container"></div>
</div>
</template>
<script>
import * as Three from 'three'
export default {
name: 'ThreeTest',
data() {
return {
camera: null,
scene: null,
renderer: null,
mesh: null
}
},
methods: {
init: function() {
let container = document.getElementById('container');
this.camera = new Three.PerspectiveCamera(70, container.clientWidth/container.clientHeight, 0.01, 10);
this.camera.position.z = 1;
this.scene = new Three.Scene();
let geometry = new Three.BoxGeometry(0.2, 0.2, 0.2);
let material = new Three.MeshNormalMaterial();
this.mesh = new Three.Mesh(geometry, material);
this.scene.add(this.mesh);
this.renderer = new Three.WebGLRenderer({antialias: true});
this.renderer.setSize(container.clientWidth, container.clientHeight);
container.appendChild(this.renderer.domElement);
},
animate: function() {
requestAnimationFrame(this.animate);
this.mesh.rotation.x += 0.01;
this.mesh.rotation.y += 0.02;
this.renderer.render(this.scene, this.camera);
}
},
mounted() {
this.init();
this.animate()
}
}
</script>
<style scoped>
#container {
height: 400px;
}
</style>
更多推荐
已为社区贡献5条内容
所有评论(0)