three.js环境及使用教程

开发环境

npm i three@0.156.1
npm i @types/three@0.156.0

入门代码

index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><!-- <link rel="stylesheet" href="demo.css" /> --><style>body {margin: 0;}</style><!-- 核心依赖 --><scriptasyncsrc="https://unpkg.com/es-module-shims@1.8.3/dist/es-module-shims.js"></script><script type="importmap">{"imports": {"three": "../../node_modules/three/build/three.module.js"}}</script></head><body><script type="module" src="demo.js"></script></body>
</html>

demo.js

import * as THREE from "three";//! 场景
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);
window.onresize = function () {renderer.setSize(window.innerWidth, window.innerHeight);//camera.setViewOffset(window.innerWidth,window.innerHeight,0,0,window.innerWidth,window.innerHeight);
};//! 线
{// 定义材质const material = new THREE.LineBasicMaterial({ color: 0x00ff00 });// 创建几何体const points = [];points.push(new THREE.Vector3(-3, 0, 0));points.push(new THREE.Vector3(0, 3, 0));points.push(new THREE.Vector3(3, 0, 0));points.push(new THREE.Vector3(0, -3, 0));points.push(new THREE.Vector3(-3, 0, 0));const geometry = new THREE.BufferGeometry().setFromPoints(points);// 创建 Lineconst line = new THREE.Line(geometry, material);// 添加到场景scene.add(line);
}//! 立方体
{// 定义材质const material = new THREE.MeshBasicMaterial({ color: 0x0ffff0 });// 几何对象const geometry = new THREE.BoxGeometry(1, 1, 1);// 创建 Cubeconst cube = new THREE.Mesh(geometry, material);// 添加到场景scene.add(cube);// 动画效果function animate() {// 向浏览器发起一个执行某函数的请求(一般默认保持60FPS的频率)requestAnimationFrame(animate);// 旋转 Cubecube.rotation.x += 0.01;cube.rotation.y += 0.01;// 旋转 Cameracamera.rotation.z += 0.01;// 刷新相机renderer.render(scene, camera);}animate();
}

摄像机(Camer)

TODO

材质(Mesh)

TODO

图层(Layers)

TODO

基本几何图形

TODO

加载3D模型

TODO

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

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

相关文章

Pytorch 复习总结 5

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为&#xff1a;Pytorch 卷积神经网络。 本文先介绍了 Pytorch 语法汇总&#xff1a; Pytorch 张量的常见运算、…

【数据结构】顺序表和链表的对比,在各种情况下如何选择

顺序表详细内容&#xff1a; 【数据结构】线性表 顺序表&#xff08;动态、静态分配&#xff0c;插入删除查找基本操作&#xff09;解析完整代码 单链表详细内容&#xff1a; 【数据结构】单链表解析完整代码&#xff08;插入、删除、尾插法、头插法、按值和按位查找、前插和后…

IDEA开发环境的安装与编写第一个程序

1.下载 IDEA&#xff08;全称IntelliJ IDEA&#xff09;是用于Java程序开发的集成环境&#xff08;也可用于其他语言&#xff09;&#xff0c;它在业界被公认是最好的Java开发工具之一&#xff0c;尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代…

【Java万花筒】医学图像处理的“探索”:探索更多可能性和应用场景

使用 Java 库打造医学图像处理的“神器” 前言 随着医学图像在医疗保健领域中的不断发展&#xff0c;医学图像处理也成为了一项非常重要的研究领域。在此背景下&#xff0c;本文将介绍三个常用的 Java 医学图像处理库&#xff1a;ImageJ、MIPAV 和 ITK。这些库提供了丰富的图…

代码随想录算法训练营day46| 139. 单词拆分、背包问题总结

139、单词拆分&#xff1a; class Solution(object):def wordBreak(self, s, wordDict):""":type s: str:type wordDict: List[str]:rtype: bool"""n len(s)dp [False] * (n 1)dp[0] Truemap_word set(wordDict)for j in range(1, n 1):f…

3月1日.开始记录

今天事项安排 打算今天开始&#xff0c;每天工作日记录&#x1f4dd;一下当天大致的事项。 有说法是每天开始工作前记录下自己的清单&#xff0c;可以让当天做事太过发散。这对于我这种喜欢发散的人是个有用的技巧&#xff08;笑 上午 把昨天的日报交了 30 min 把今天的工作放…

算法日记——前缀和、差分

文章目录 洛谷 B3612 求区间和洛谷 P1387 最大正方形洛谷 P3397 地毯 洛谷 B3612 求区间和 题目链接&#xff1a;洛谷 B3612 求区间和 思路&#xff1a; 一维前缀和的模板题。所谓前缀和&#xff0c;就是对原数组前i个元素求和&#xff0c;这个值作为新元素放在下标i的位置。 …

C++智能指针_C++回顾

发展历史 C98中产生了第一个智能指针auto_ptr&#xff1b; Cboost给出了更实用的scoped_ptr和shared_ptr和weak_ptr&#xff1b; CTR1&#xff0c;引入了shared_ptr等&#xff0c;不过TR1并不是标准版&#xff1b; C11引入了unique_ptr和shared_ptr和weak_ptr。需要注意的是…

Mamba与MoE架构强强联合,Mamba-MoE高效提升LLM计算效率和可扩展性

论文题目&#xff1a; MoE-Mamba: Efficient Selective State Space Models with Mixture of Experts 论文链接&#xff1a; https://arxiv.org/abs/2401.04081 代码仓库&#xff1a; GitHub - llm-random/llm-random 作为大型语言模型&#xff08;LLM&#xff09;基础架构的后…

新一代科学计算与系统建模仿真平台MWORKS 2024a震撼发布:产品强势进化,更新亮点速览!

2月25日&#xff0c;同元软控成功举办MWORKS 2024产品发布会&#xff0c;会上公布了新版MWORKS的设计理念、关键技术、版本亮点、产品特性以及重大改进。当前&#xff0c;科学计算与系统建模仿真平台MWORKS 2024a已正式上线&#xff0c;开放下载。 MWORKS已成为全球第4个完整的…

全量知识系统问题及SmartChat给出的答复 之6 三套工具之1

Q15. 提出想法和问题 前面说过&#xff0c;DDD在我要设计的全量知识系统中位于中间层&#xff0c;是专门用来解决“知识汤”问题的。 解决的思路就是以将为在特定领域中的公司经营提供一个责任-权限平面为目的&#xff0c;帮助他们调整商业模式以及组建恰当的组织&#xff0c…

C# 高阶语法 —— Winfrom链接SQL数据库的存储过程

存储过程在应用程序端的使用的优点 1 如果sql语句直接写在客户端&#xff0c;以一个字符串的形式体现的&#xff0c;提示不友好&#xff0c;会导致效率降低 2 sql语句写在客户端&#xff0c;可以利用sql注入进行攻击&#xff0c;为了安全性&#xff0c;可以把sql封装在…

嘉立创专业版导入SW模型的板框

1、SW新建一个需要的模型&#xff0c;例如下图&#xff0c; 2、点击另存为.dxf 文件&#xff08;是.dxf文件&#xff09; 3、选择要保存模型的视图&#xff0c;如上视图&#xff0c;确定后出现上视图板框形状&#xff0c;然后保存即可。 4、打开嘉立创&#xff0c;点击文件——…

Linux中的awk命令

AWK是一种在Linux系统中经常使用的文本处理工具&#xff0c;它可以根据指定的模式对文本文件进行处理和分析。下面是一些关于AWK命令的使用说明和举例&#xff1a; 1. 基本语法&#xff1a; awk pattern { action } file 2. 使用字段分隔符&#xff1a; 默认情况下&#xf…

整数编码【华为OD机试-JAVAPythonC++JS】

题目描述 实现一种整数编码方法&#xff0c;使得待编码的数字越小&#xff0c;编码后所占用的字节数越小。 编码规则如下: 编码时7位一组&#xff0c;每个字节的低7位用于存储待编码数字的补码 字节的最高位表示后续是否还有字节&#xff0c;置1表示后面还有更多的字节&#xf…

pytorch -- GPU优化写法套路

1. GPU优化的点 网络模型 数据&#xff08;输入、标注) 损失函数 .cuda方式 代码&#xff1a; import torch.optim import torchvision from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter# 1. 准备数据集 t…

C++实现XOR加解器

#include <Windows.h> #include <iostream> #include <fstream> #include <string>// 加解密函数&#xff0c;使用XOR运算 void XORCrypt(char* data, int size, const std::string& key) {int keyLength key.length();for (int i 0; i < siz…

日志系统项目实现

日志系统的功能也就是将一条消息格式化后写入到指定位置&#xff0c;这个指定位置一般是文件&#xff0c;显示器&#xff0c;支持拓展到数据库和服务器&#xff0c;后面我们就知道如何实现拓展的了&#xff0c;支持不同的写入方式(同步异步)&#xff0c;同步:业务线程自己写到文…

万卡集群:字节搭建12288块GPU的单一集群

文章目录 论文Reference 论文 MegaScale: Scaling Large Language Model Training to More Than 10,000 GPUs 论文链接&#xff1a;https://arxiv.org/abs/2402.15627 从结构上讲&#xff0c;网络是基于Clos的“胖树”结构。其中一个改进是在顶层交换机上把上行与下行链路分开&…

三、《任务列表案例》前端程序搭建和运行

本章概要 整合案例介绍和接口分析 案例功能预览接口分析 前端工程导入 前端环境搭建导入前端程序 启动测试 3.1 整合案例介绍和接口分析 3.1.1 案例功能预览 3.1.2 接口分析 学习计划分页查询 /* 需求说明查询全部数据页数据 请求urischedule/{pageSize}/{currentPage} 请…