WEB 3D技术 以vue3+vite环境为例 讲解vue项目中使用three

news2024/11/23 17:20:18

上文 WEB 3D 技术,通过node环境创建一个three案例 中 我们打造了自己的第一个Web 3D界面
那么 今天 我们就来结合vue来开发我们的3D界面

这里 我们先创建一个文件夹 作为文件目录 千万不要放C盘
在这里插入图片描述
我们 依旧是在终端执行命令

npm init vite@latest

输入一下项目名称
在这里插入图片描述
这里 我们选择第二个 vue框架
在这里插入图片描述
这里 为了项目看着简单 我们就选择js就好了
在这里插入图片描述
好 那我们的第一个vue项目就打造好了
在这里插入图片描述
这里 我们先用编辑器打开自己的项目
在这里插入图片描述
然后 我们终端运行

npm install

然后 终端运行

npm run dev

这样 我们项目就起来了
在这里插入图片描述
浏览器访问链接即可看到我们的项目效果啦
在这里插入图片描述
然后 我们要安装一下three
终端执行

npm install three

看到 package.json 这时 我们的 three就进来了
在这里插入图片描述
然后 我们在 App.vue组件 编写代码如下

<script setup>
  import * as THREE from "three";
  //创建场景
  const scene = new THREE.Scene();

  //创建相机
  const camera = new THREE.PerspectiveCamera(
      45, //视角 视角越大  能看到的范围就越大
      window.innerWidth / window.innerHeight,//相机的宽高比  一般和画布一样大最好
      0.1,  //近平面  相机能看到最近的距离
      1000  //远平面  相机能看到最远的距离
  );

  //c创建一个canvas容器  并追加到 body上
  const renderer = new THREE.WebGLRenderer(0);
  renderer.setSize(window.innerWidth, window.innerHeight);
  document.body.appendChild(renderer.domElement);

  //创建一个几何体
  const geometry = new THREE.BoxGeometry(1, 1, 1);
  //创建材质
  const material = new THREE.MeshBasicMaterial({ color:0x08ffe });
  //创建网格
  const cube = new THREE.Mesh(geometry, material);
  //将网格添加到场景中
  scene.add(cube);
  //设置相机位置   这里 我们设置Z轴  大家可以试试  S Y 和 Z  都是可以的
  camera.position.z = 5;
  //设置相机默认看向哪里   三个 0  代表 默认看向原点
  camera.lookAt(0, 0, 0);
  //将内容渲染到元素上
  renderer.render(scene, camera);
  function animate() {
      requestAnimationFrame(animate);
      cube.rotation.x += 0.01;
      cube.rotation.y += 0.01;
      renderer.render(scene, camera);
  }
  animate();
</script>

<template>
  <div>
  </div>
</template>

<style>
*{
  margin: 0;
  padding: 0;
}
canvas {
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 108vw;
  height: 108vh;
}
</style>

其实要做的事情就两件 引入 three
然后new一个实例并挂到页面上
在这里插入图片描述
vue3的这个setup直接可以执行 如果你用的vue2 建议将代码放在 mounted生命周期中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[GWCTF 2019]我有一个数据库1

提示 信息收集phpmyadmin的版本漏洞 这里看起来不像是加密应该是编码错误 这里访问robots.txt 直接把phpinfo.php放出来了 这里能看到它所有的信息 这里并没有能找到可控点 用dirsearch扫了一遍 ####注意扫描buuctf的题需要控制扫描速度&#xff0c;每一秒只能扫10个多一个都…

vue2 echarts不同角色多个类型数据的柱状图

前端代码&#xff1a; 先按照echarts插件。在页面里引用 import * as echarts from "echarts";设置div <div style"width:100%;height:250px;margin-top: 4px;" id"addressChart"></div>方法: addressEcharts() {const option {g…

vue 将后端返回的二进制流进行处理并实现下载

什么是二进制流文件&#xff1f; 二进制文件是一种计算机文件格式&#xff0c;它的数据以二进制形式存储&#xff0c;与文本文件不同。二进制文件可以包含任意类型的数据&#xff0c;例如图像、音频、视频、可执行文件、压缩文件等&#xff0c;而文本文件则仅仅包含 ASCII 码或…

<JavaEE> 网络编程 -- 网络通信基础(协议和协议分层、数据封装和分用)

目录 一、IP地址 1&#xff09;IP地址的概念 2&#xff09;IP地址的格式 二、端口号 1&#xff09;端口号的概念 2&#xff09;端口号的格式 3&#xff09;什么是知名端口号&#xff1f; 三、协议 1&#xff09;协议的概念 2&#xff09;协议的作用 3&#xff09;TC…

Python (八)网络编程

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

RT-Smart 官方 aarch64 平台 musl gcc 工具链下载

前言 RT-Smart 的开发离不开 musl gcc 工具链&#xff0c;用于编译 RT-Smart 内核与用户态应用程序 RT-Smart 当前的 musl gcc 工具链未开源&#xff0c;但可以下载到 官方 最新的 musl gcc 工具链 aarch64 平台 比如 RT-Smart 最好用的 qemu 平台&#xff1a; qemu-virt64-…

龙迅# LT9211C 是一款高性能转换器,可在 MIPI DSI/CSI-2、双端口 LVDS 和 TTL 之间进行互转换,分辨率高达4K30HZ。

1. 描述LT9211C 是一款高性能转换器&#xff0c;可在 MIPI DSI/CSI-2、双端口 LVDS 和 TTL 之间进行互转换&#xff0c;但 24 位 RGB TTL 到 24 位 RGB TTL 除外。不建议在 2 端口 10 位 LVDS 和 24 位 RGB TTL 之间进行转换。LT9211C对输入的MIPI/LVDS/TTL视频数据进行反串&am…

fl studio2024中文版下载安装教程 亲测有效

fl studio是一款功能强大的编曲软件&#xff0c;今天小编就为大家带来了详细的安装教程&#xff0c;需要的朋友一起看看吧&#xff01;fl studio2024是一款功能强大的编曲软件&#xff0c;也就是众所熟知的水果软件。它可以编曲、剪辑、录音、混音&#xff0c;让您的计算机成为…

【ProcessOn】流程图咏道图Axure自定义元件使用----含流程图案例

目录 一&#xff0c;ProcessOn 1.1 ProcessOn是什么 1.2 ProcessOn应用场景 1.3 流程图 1.4 泳道图简介 1.5 Process网址与界面简介 二&#xff0c;流程图案例 2.1 门诊流程图 2.2 住院流程图 2.3 药房药库流程图 2.4 会议OA流程图 三&#xff0c;Axure自定义元件 …

WPF Icon矢量库 MahApps.Metro.IconPacks

文章目录 前言MahApps.Metro.IconPacksIconPacks.Browser简单使用简单使用案例代码Icon版本个人推荐 Icon自定义版权问题 前言 为了更快的进行开发&#xff0c;我找到了一个WPF的矢量图库。这样我们就不用去网上找别人的矢量库了 MahApps.Metro.IconPacks MahApps.Metro.Icon…

手机笔记如何添加文件 在笔记中添加文件方法

在忙碌的工作和生活中&#xff0c;我经常需要记录一些重要的笔记&#xff0c;并且需要添加一些相关的文件以便查阅。但是&#xff0c;我发现很多笔记软件并不支持添加文件&#xff0c;这让我感到非常困扰。 有一次&#xff0c;我需要记录一个会议的重要内容&#xff0c;并且需…

【问题处理】—— lombok 的 @Data 大小写区分不敏感

问题描述 今天在项目本地编译的时候&#xff0c;发现有个很奇怪的问题&#xff0c;一直提示某位置找不到符号&#xff0c; 但是实际在Idea中显示确实正常的&#xff0c;一开始以为又是IDEA的故障&#xff0c;所以重启了IDEA&#xff0c;并执行了mvn clean然后重新编译。但是问…

VBA技术资料MF95:打开工作薄后自动定位某个工作表

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

Linux:ELF

文章目录 前置知识从文本文件到可执行文件经历的阶段编译器gcc目标文件 ELFSection&#xff08;节&#xff09;Segment&#xff08;段&#xff09;从链接角度和从程序角度看ELF文件1. Section Header Table:2. Program Header Table: 参考 前置知识 从文本文件到可执行文件经历…

dockerfile,Docker镜像的创建

dockerfile&#xff1a;创建镜像&#xff0c;创建自定义的镜像。包括配置文件&#xff0c;挂载点&#xff0c;对外暴露的端口。设置环境变量。 docker的创建镜像的方式&#xff1a; 1、基于已有镜像进行创建。根据官方提供的镜像源&#xff0c;创建镜像&#xff0c;然后拉起容…

3分钟打造私人微信ChatGPT助手:新手友好指南!

接上文&#xff1a; https://mp.weixin.qq.com/s/RCqX0rx7TEu1gIwHEBBWKQ 本文适用于小白用户&#xff0c;技术大佬勿入&#xff01; 前言 这里教大家如何快速的拥有一个属于自己的微信GPT助手 我个人其实不是这么部署的&#xff0c;但是为了方便小白用户&#xff0c;探索了一个…

python算法例17 下一个稀疏数

1. 问题描述 如果一个数是稀疏数&#xff0c;则它的二进制表示中没有相邻的1&#xff0c;例如5&#xff08;二进制表示为101&#xff09;是稀疏数&#xff0c;但是6&#xff08;二进制表示为110&#xff09;不是稀疏数&#xff0c;本例将给出一个n&#xff0c;找出大于或等于n…

记深圳盐田IBM X3550 m4服务器board故障维修一例

故障服务器型号&#xff1a;ibm system x3550 m4 服务器故障问题&#xff1a;无法开机 面板叹号黄灯&#xff0c;小面板board故障亮灯 响应时效&#xff1a;当天工程师带配件到现场检修并恢复操作系统和业务系统 维修过程&#xff1a;工程师经过与用户的交流中大致判定了故障…

Unity与Android交互通信系列(1)

运行于Android平台的原生App直接调用Android接口&#xff0c;可以享受近水楼台先得月的优势&#xff0c;而使用Unity开发的Android应用App则像是二等公民&#xff0c;使用Android原生功能特性就要麻烦得多&#xff0c;比如WiFi、蓝牙等&#xff0c;特别是一些高级功能特性&…

ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角

本节课的内容&#xff0c;就让我们来学习一下ArrayList集合的应用&#xff0c;ArrayList的本质就是一个顺序表&#xff0c;那下面一起来学习吧 目录 一、杨辉三角 1.题目详情及链接 2.剖析题目 3.思路及代码 二、洗牌算法 1.创造牌对象 2.创造一副牌 3.洗牌操作 4.发…