<template>
<div id="app"></div>
</template>
<script>
import * as THREE from "three";
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
export default {
data() {
return {
camera: null,
scene: null,
renderer: null,
mesh: null,
};
},
mounted() {
this.init();
this.animate();
window.addEventListener('resize', this.onWindowSize())
},
methods: {
//初始化
init() {
// 创建场景对象Scene
this.scene = new THREE.Scene();
//网格模型添加到场景中
let geometry = new THREE.BoxGeometry(20, 20, 20);
let material = new THREE.MeshBasicMaterial({
color: 0xff0000
});
this.mesh = new THREE.Mesh(geometry, material);
this.scene.add(this.mesh);
/**
* 相机设置
*/
let container = document.getElementById("app");
this.camera = new THREE.PerspectiveCamera(
70,
container.clientWidth / container.clientHeight,
0.01,
1000
);
this.camera.position.set(50, 50, 50)
this.camera.lookAt(this.scene.position)
/**
* 创建渲染器对象
*/
this.renderer = new THREE.WebGLRenderer({ antialias: true });
this.renderer.setSize(container.clientWidth, container.clientHeight);
this.renderer.setPixelRatio(window.devicePixelRatio)
container.appendChild(this.renderer.domElement);
//创建控件对象
new OrbitControls(this.camera, this.renderer.domElement);
},
// 窗口变化
onWindowSize() {
let container = document.getElementById("app");
this.camera.aspect = container.clientWidth / container.clientHeight,
this.camera.updateProjectionMatrix()
this.renderer.setSize(container.clientWidth, container.clientHeight);
},
// 动画
animate() {
requestAnimationFrame(this.animate);
this.mesh.rotation.x += 0.01;
this.mesh.rotation.y += 0.02;
this.renderer.render(this.scene, this.camera);
}
}
};
</script>
<style>
#app {
position: absolute;
width: 100%;
height: 100%;
}
</style>
vue中引入three.js
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 🎈本篇文章主要针对小白在使用threejs中所遇到的问题,因为我就是小白,接下来会和大家一起慢慢成长。 🎈推荐几个...
- 1、首先利用淘宝镜像,操作命令为: cnpm install three2.接下来利用npm安装轨道控件插件: n...
- Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义...
- 初学threejs,使用vue开发,按照网上教程写demo的需要引入ThreeBSP这个库,按照demo安装Thr...
- 1.第一步,安装依赖包 2.第二步,配置文件,vue-cli3.0之后没有了webpack.base.conf.j...