第一个Three的demo实例

news2024/10/7 14:21:55

Three的第一个Demo

  • 前言
  • 效果图
  • 1、导入threejs
  • 2、创建场景
  • 3、创建相机
  • 4、创建渲染器
  • 5、创建几何图形
  • 6、创建材质
  • 7、创建网格
  • 8、将网格添加到场景中
  • 9、设置相机的位置
  • 10、渲染
  • 11、整体代码

前言

创建第一个demo实例—旋转的方格

效果图

在这里插入图片描述

1、导入threejs

import * as THREE from 'three'

2、创建场景

const scene = new THREE.Scene()

3、创建相机

const camera = new THREE.PerspectiveCamera(
  45, //视角
  window.innerWidth / window.innerHeight, //宽高比
  0.1, // 近平面
  1000 // 远平面
)

4、创建渲染器

const renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)

5、创建几何图形

const geometry = new THREE.BoxGeometry(1, 1, 1)

6、创建材质

const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 })

7、创建网格

const cube = new THREE.Mesh(geometry, material)

8、将网格添加到场景中

scene.add(cube)

9、设置相机的位置

camera.position.z = 5
camera.lookAt(0, 0, 0)

10、渲染

function animate () {
  requestAnimationFrame(animate)
  cube.rotation.x += 0.01
  cube.rotation.y += 0.01
  renderer.render(scene, camera)
}

// 开始渲染
animate()

11、整体代码

<template>
</template>

<script setup>
// 导入threejs
import * as THREE from 'three'

// 创建场景
const scene = new THREE.Scene()

// 创建相机
const camera = new THREE.PerspectiveCamera(
  45, //视角
  window.innerWidth / window.innerHeight, //宽高比
  0.1, // 近平面
  1000 // 远平面
)

// 创建渲染器
const renderer = new THREE.WebGLRenderer()
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: 0x00ff00 })

// 创建网格
const cube = new THREE.Mesh(geometry, material)

// 将网格添加到场景中
scene.add(cube)

// 设置相机的位置
camera.position.z = 5
camera.lookAt(0, 0, 0)

// 渲染
function animate () {
  requestAnimationFrame(animate)
  cube.rotation.x += 0.01
  cube.rotation.y += 0.01
  renderer.render(scene, camera)
}

// 开始渲染
animate()

</script>

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

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

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

相关文章

漏洞赏金猎人开源工具集合,自动辅助渗透测试工具

漏洞赏金猎人开源工具集合&#xff0c;自动辅助渗透测试工具。 公开收集的一个国外白帽子用的比较多的开源工具列表 这是一款半自动渗透测试的工具&#xff0c;当前版本多用于渗透测试的信息搜集&#xff0c;每周保持更新&#xff0c;最终的目标是类似于linpeas的全自动渗透测…

直接插入排序、希尔排序详解。及性能比较

直接插入排序、希尔排序详解。及性能比较 一、 直接插入排序1.1 插入排序原理1.2 代码实现1.3 直接插入排序特点总结 二、希尔排序 ( 缩小增量排序 )2.1 希尔排序原理2.2 代码实现2.3 希尔排序特点总结 三、直接插入排序和希尔排序性能大比拼 !!!3.1 如何对比性能&#xff1f;准…

4款视频号数据分析平台!

很多人在做视频号的时候就会有创作参考的需求&#xff0c;那么你们知道视频号中有哪些数据平台&#xff1f;今天就和大家来分享一下 接下来就总结一下视频号数据平台有哪些&#xff1f;排名不分前后。 1&#xff1a;视频号助手&#xff08;channels.weixin.qq.com&#xff09…

旋转的正方体-第15届蓝桥杯第一次STEMA测评Scratch真题精选

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第151讲。 第15届蓝桥杯第1次STEMA测评已于2023年8月20日落下帷幕&#xff0c;编程题一共有6题&#xff0c;分别如下&a…

C 风格文件输入/输出---错误处理---(std::clearerr,std::feof,std::ferror,std::perror)

错误处理 清除错误 std::clearerr void clearerr( std::FILE* stream ); 重置给定文件流的错误标志和 EOF 指示器。 参数 stream-要重置错误标志的文件流 返回值 &#xff08;无&#xff09; 调用示例 #include <iostream> #include <cstdio>using names…

微服务保护-降级

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

『C语言进阶』指针进阶(二)

&#x1f525;博客主页&#xff1a; 小羊失眠啦 &#x1f516;系列专栏&#xff1a; C语言 &#x1f325;️每日语录&#xff1a;上天是公平的&#xff0c;有付出就有收获 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前言 在上篇指针进阶中&#xff0c;我们对字符指针、指针…

计网 - 图解OSI 七层模型 和 TCP/IP 四层模型

文章目录 OSI 七层模型TCP/IP四层模型图解 OSI图解 TCP/IP小结 OSI 七层模型 OSI&#xff08;开放系统互联模型&#xff0c;Open Systems Interconnection Model&#xff09;是一个用于理解和描述计算机网络体系结构的标准化框架&#xff0c;由国际标准化组织&#xff08;ISO&…

基于Xml方式Bean的配置-beanName个别名配置

SpringBean配置详解 Bean的基础配置 例如前文涉及到的配置文件 <bean id"userService" class"com.example.Service.Impl.UserServiceImpl"/>此时存储到Spring容器&#xff08;singleObjects单例池&#xff09;中的beanName是userService&#xf…

【Java】IDEA 将 Java 项目打包成 Jar 包

在工件中添加 JAR 构建&#xff08;Build&#xff09;工件&#xff0c;JAR 包会生成在 out 目录下

【系统架构】什么是集群?为什么要使用集群架构?

什么是集群&#xff1f;为什么要使用集群架构&#xff1f; 1.什么是集群&#xff1f;2.为什么要使用集群&#xff1f;2.1 高性能2.2 价格有效性2.3 可伸缩性2.4 高可用性2.5 透明性2.6 可管理性2.7 可编程性 3.集群的常见分类3.1 负载均衡集群3.2 高可用性集群3.3 高性能计算集…

Vue2+Vue3

文章目录 Vue快速上手Vue是什么第一个Vue程序插值表达式Vue核心特性&#xff1a;响应式 Vue指令v-htmlv-show 与 v-ifv-else 与 v-else-ifv-onv-bindv-forv-model指令修饰符 计算属性watch侦听器&#xff08;监视器&#xff09;watch——简写watch——完整写法 Vue生命周期 和 …

c语言输出杨辉三角

#include<stdio.h> int main() {int x 0; //表示杨辉三角的的大小int y 1;printf("请输入x的值: ");scanf("%d", &x);for (int i 0; i < x; i) {for (int j 0; j < i; j) {if (j 0 || i 0) {y 1;}else {y y * (i - j 1) / j;}pri…

[mockjs]-mockjs的使用

Mock主要是用于前后端分离时&#xff0c;模拟交互时的返回数据 接下来介绍一下其它几种Mock的方式 json-server 与 express 之前介绍过json-server,可以启动一个express创建的mock的服务&#xff0c;通过接口获取数据&#xff1b;json-server也可以通过命令直接启动一个json…

【深度学习】大模型卷到机器人上了

当一项变革性技术出现后&#xff0c;以此为基础的技术就会像雨后春笋般蔓延。 就像Transformer出现后&#xff0c;以此为基础的大语言模型ChatGPT&#xff0c;视觉基础模型Segment Anything相继横空出世&#xff0c;并展现出强大的涌现能力。生成式AI可谓百花齐鸣&#xff0c;…

性能测试-性能工程落地的4个阶段(21)

性能工程按照不同的内容和目的划分为4个阶段,分别是线下单系统压测分析阶段、线下全链路压测分析阶段、生产只读业务压测及容量评估阶段、生产读写业务全链路压测及容量评估阶段。(也可以理解为一个企业性能测试体系的发展阶段) 线下单系统压测分析阶段 针对单系统的性能…

那些你不得不知道的CSS知识点

目录 1、CSS的盒子模型1.1 css盒子模型有哪些&#xff1a;1.2 css盒子模型的区别1.3 通过css如何转换css盒子模型 2、css优先级3、line-height和height的区别4、如果用css画一个三角形&#xff1f;5、CSS选择符有哪些&#xff1f;哪些属性可以继承&#xff1f;6、一个盒子不给宽…

《已解决 Go Error: panic: runtime error: index out of range BUG 》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e; 猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f4a1; 后端技术 Backend: 编程语言: &#…

【计算机视觉】Image Data Augmentation算法介绍合集(二)

文章目录 一、Random Grayscale二、GridMask三、Adversarial Color Enhancement四、Population Based Augmentation五、MaxUp六、SuperpixelGridCut, SuperpixelGridMean, SuperpixelGridMix七、InstaBoost八、Random Mix-up九、Sample Redistribution十、Batchboost十一、CutB…

人工智能前景如何?人工智能所对应到企业中是什么样的岗位呢?

目录 分布式计算在硕士阶段主要是在干什么呢&#xff0c;主要修的课程是些什么呢&#xff1f; 分布式计算所对应到企业中是什么样的岗位呢&#xff1f; 分布式计算前景如何&#xff1f; 人工智能在硕士阶段主要是在干什么呢&#xff0c;主要修的课程是些什么呢&#xff1f;…