文章目录

  • 一、Three.js 是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.开始绘制星空
  • 总结

关于使用three绘制星空效果的记录


一、Three.js 是什么?

Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。

二、使用步骤

1.引入库

首先npm install three

import * as THREE from "three";

2.开始绘制星空

data中定义变量

  data() {return {camera: null,scene: null,starsGeometry: null,starField:null,renderer: null,}},

创建相机渲染器等

    inti(){this.camera = new THREE.PerspectiveCamera(40, window.innerWidth / window.innerHeight, 1, 10000);this.camera.position.z = 1400;this.scene = new THREE.Scene();this.starInti()this.renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true,});this.renderer.setSize(window.innerWidth, window.innerHeight);// this.renderer.domElement.style.position = 'absolute';document.getElementById('threeStar').appendChild(this.renderer.domElement);},

生成星空

starInti() {//星空this.starsGeometry = new THREE.Geometry();//生成点的位置for (var i = 0; i < 12000; i++) {var star = new THREE.Vector3();//THREE.Math.randFloatSpread 在区间内随机浮动* - 范围 / 2 *到* 范围 / 2 *内随机取值。star.x = THREE.Math.randFloatSpread(2000);star.y = THREE.Math.randFloatSpread(2000);star.z = THREE.Math.randFloatSpread(2000);this.starsGeometry.vertices.push(star);}var starsMaterial = new THREE.PointsMaterial({ color: '#fff',sizeAttenuation: false });this.starField = new THREE.Points(this.starsGeometry, starsMaterial);this.scene.add(this.starField);},

定义动画

    animate() {requestAnimationFrame(this.animate);//星空旋转可通过镜头旋转或者物体旋转实现// this.camera.rotation.y = this.camera.rotation.y -0.0005 //镜头旋转this.starField.rotation.y+=0.0002this.starField.rotation.x+=0.0002this.starField.rotation.z+=0.0002this.render();},

渲染

render() {this.renderer.render(this.scene, this.camera);},

在mounted中调用方法

  mounted() {this.inti()this.animate()this.render()},

div

<template><div id="threeStar" ref="threeStar"></div>
</template>

样式

<style lang="scss" scoped>
#threeStar {width: 100%;height: 100%;position: absolute;top: 0;z-index: 9;//bottom: 4vh;
}
</style>


总结

以上就是使用threejs绘制简单星空效果,在要应用的vue页面引入该组件即可。

vue中使用three绘制星空效果相关推荐

  1. vue中使用Echarts绘制K线图

    一.需求问题 在开发项目中,我们可能会遇到这样的需求.在vue中使用Echarts绘制K线图,进行数据分析.下面是一个简单的K线图绘制,数据是伪造的,虽然不多,但是能够实现大致的K线图效果. 二.需求 ...

  2. vue中怎么实现吸顶效果

    在 web 应用中,我们经常需要让页面中的一个或多个元素在页面滚动时保持固定位置.这种效果通常被称为吸顶效果,因为它使元素像粘在页面顶部一样固定不动. 在 Vue 中,实现吸顶效果有不同的方法.本文将 ...

  3. 3d饼图 vue_在Vue中使用highCharts绘制3d饼图

    highcharts是国外知名基于javascript的图表库.由于中文官网的vue中使用highcharts配置繁琐并且需要引入jquery作为依赖,所以弃用. 接下来,给各位伙伴简要的讲叙下hig ...

  4. vue中使用bpmn-js绘制流程图,并实现汉化、自定义Palette及ContextPad。

    一.认识bpmn-is bpmn-js是一个BPMN2.0渲染工具包和web建模器, 使得画流程图的功能在前端来完成. 效果图如下(改造后): 二.在vue基本使用 安装bpmn-js npm ins ...

  5. vue中使用echarts绘制仪表盘

    效果图 目录 一.安装echarts 1.控制台使用命令进行安装 2.在package.json中配置echarts 3.在main.js中引用 二.vue中使用echarts 1.首先设置一个放置图 ...

  6. VUE中使用Echarts绘制地图迁移

    踩坑说明 很久以前写jsp时使用过echarts的china.js插件,不过echarts是2.0的,目前vue项目中使用echarts3.8.5,直接将china.js插件引入,代码复制,运行一看, ...

  7. vue中supermap iserver绘制使用的插件安装

    // 安装插件 npm install leaflet npm install @supermap/iclient-leaflet npm install leaflet-draw// 使用的vue文 ...

  8. vue中使用mapBox绘制圆形范围

    需求: 根据给定经纬度坐标绘制给定半径的圆形区域. 代码: <template><div><div id="map"></div>& ...

  9. vue中使用echart绘制柱状图、折现图、饼状图

    echarts有几个主要的字段,title.legend.xAxis. yAxis.tooltip.series. title 图表的标题 legend 用来标志图表数据,data字段的数组需要对应每 ...

最新文章

  1. Web的系统测试方法
  2. Kali Linux 网络扫描秘籍 第二章 探索扫描(二)
  3. Create directory命令
  4. JQuery+div+css实现无限级联树
  5. javascript 自定义对象的两种方法
  6. 计算机里pc是什么,什么是pc?pc是什么意思?
  7. ArcGIS中加载各种在线地图
  8. 嵌入式软件开发基础问题
  9. 2021年中国频谱分析仪行业市场规模、格局及专利情况分析:行业规模不断扩大,国外企业占据主导地位,国产企业发展空间较大[图]
  10. python包离线安装教程_离线安装python包(附示例:featuretools)
  11. ORA-01034ORA-27101错误
  12. 赛门铁克公司太不厚道
  13. 小乌龟没有relocate选项,项目迁移怎么办
  14. BMZCTF:Fix it
  15. 字符串长度计算(包含中文)
  16. IDEA+Java+JSP+Mysql+Tomcat实现Web学校教材管理系统
  17. QQ for Mac无法登陆
  18. 学习笔记:上网认证5 设置wifi(AP)通过FreeRadius认证
  19. 叮咚~您有一份GitHub2020年度报告待查收
  20. KEBA 控制器通过 NT50 连接西门子 PLC

热门文章

  1. 前端控制 隐藏手机号码中间四位
  2. 【python 乱码错误】网页乱码错误解决
  3. java求三角形周长 面积_Java代码计算三角形的周长和面积
  4. 什么是稀疏动量网络(加速训练)
  5. Win7+theano+CUDA+Keras血泪史
  6. windows10 Failed to initialize NVML: Unknown Error
  7. java反向映射_推荐一款Java对象映射神器,别再傻傻手动转换了!
  8. 常用Java技术社区
  9. 浏览器页面的缓存设置(不缓存设置)
  10. 制作带关闭按钮的固定广告