当前位置: 首页 > article >正文

Vue3炫酷可旋转的3D地球

首先,我们需要安装Three.js库:

npm install three

接下来,我们创建一个Vue3项目,并在项目中引入Three.js库。在src/main.js文件中,编写以下代码:

import { createApp } from 'vue'
import App from './App.vue'
import * as THREE from 'three'

const app = createApp(App)

app.config.globalProperties.$three = {
  init: () => {
    // 创建场景
    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)
    document.body.appendChild(renderer.domElement)

    // 创建地球
    const geometry = new THREE.SphereGeometry(1, 32, 32)
    const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 })
    const earth = new THREE.Mesh(geometry, material)
    scene.add(earth)

    // 渲染循环
    const animate = () => {
      requestAnimationFrame(animate)

      // 旋转地球
      earth.rotation.y += 0.01

      renderer.render(scene, camera)
    }

    animate()
  }
}

app.mount('#app')

src/App.vue文件中,编写以下代码:

<template>
  <div id="app">
    <canvas ref="earthCanvas"></canvas>
  </div>
</template>

<script>
export default {
  mounted() {
    this.$refs.earthCanvas.getContext('webgl').call(this.$three.init(), this)
  }
}
</script>

现在,运行项目,你将看到一个可旋转的3D地球。你可以根据需要修改地球的颜色、大小等属性。


http://www.kler.cn/a/159810.html

相关文章:

  • flutter下拉刷新上拉加载的简单实现方式三
  • 【MySQL】MySQL函数之JSON_EXTRACT
  • 【C++】一种针对代码的连续条件检查方案,累计布尔结果
  • 24.11.13 Javascript3
  • Jmeter基础篇(22)服务器性能监测工具Nmon的使用
  • java模拟键盘实现selenium上下左右键 table中的左右滚动条实现滚动
  • 【500强 Kubernetes 课程】第4章 dockerfile基础篇-基本语法
  • Qt Creator 11.0.3同时使用Qt6.5和Qt5.14.2
  • Kafka 的特点和优势
  • 电脑出现蓝屏提示0xc0000001错误的解决办法,解决错误代码0xc0000001
  • 基于c++版本链栈改-Python思维总结
  • Java八股文面试全套真题【含答案】-XML篇
  • CSU计算机学院2023秋C语言期中题目思路分享(前三道题)
  • 一起学docker系列之十七Docker Compose 与手动操作的比较与优势分析
  • Linux(gRPC):Ubuntu22.04安装gRPC
  • 程序员都在收藏的免费好用API接口
  • Python Pandas处理csv文件常用操作代码
  • MAC笔记本里Spyder python 的安装问题 和 虚拟环境VENV的创建
  • 大话数据结构-查找-多路查找树
  • SimplePIR——目前最快单服务器匿踪查询方案
  • 基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含pytho、JS工程源码)+数据集+模型(二)
  • 输入日期求n天后
  • 二叉树的前、中和后序遍历的递归与迭代实现
  • Springboot 项目关于版本升级到 3.x ,JDK升级到17的相关问题
  • Boost:asio捕获信号
  • 【BroadcastReceiver】