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.pswp.cn/news/710995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/710995.shtml
英文地址,請注明出處:http://en.pswp.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} 請…