webgl three 項目常用操作

分組
    const group1 = new THREE.Group(); //所有高層樓的父對象group1.name = "高層";for (let i = 0; i < 5; i++) {const geometry = new THREE.BoxGeometry(20, 60, 10);const material = new THREE.MeshLambertMaterial({color: 0x00ffff});const mesh = new THREE.Mesh(geometry, material0);mesh.position.x = i * 30; // 網格模型mesh沿著x軸方向陣列group1.add(mesh); //添加到組對象group1mesh.name = i + 1 + '號樓';// console.log('mesh.name',mesh.name);}group1.position.y = 30;const group2 = new THREE.Group();group2.name = "洋房";// 批量創建多個長方體表示洋房for (let i = 0; i < 5; i++) {const geometry = new THREE.BoxGeometry(20, 30, 10);const material = new THREE.MeshLambertMaterial({color: 0x00ffff});const mesh = new THREE.Mesh(geometry, material0);mesh.position.x = i * 30;group2.add(mesh); //添加到組對象group2mesh.name = i + 6 + '號樓';}group2.position.z = 50;group2.position.y = 15;const model = new THREE.Group();model.name = '小區房子';model.add(group1, group2);model.position.set(-50, 0, -25);scene.add(model);console.log(scene.children)

把模型分組后可以通過group設置一些共有屬性 比如例子中的房子在x軸平鋪 y、z是相同的
子項的位置是相對于父項的位置確定的 比如父項x為-30 子項為0 那么子項的實際位置在-30
這樣設置有利于把一個整體一起放在圖上 而不用一個一個設置坐標

遍歷節點
//遍歷節點 obj為節點 obj.屬性可以進行判斷model.traverse(function (obj) {console.log('所有模型節點的名稱', obj.name);// obj.isMesh:if判斷模型對象obj是不是網格模型'Mesh'if (obj.isMesh) {//判斷條件也可以是obj.type === 'Mesh'obj.material.color.set(0xffff00);}});
指定屬性獲取
    // 通過name獲取const nameNode = scene.getObjectByName("4號樓");console.log(nameNode);//通過指定屬性獲取const nameNode1 = scene.getObjectByProperty("name", "3號樓");console.log(nameNode1);

根據id獲取會報錯 id是只讀屬性 最好還是不要使用id

獲取世界位 三維向量

大部分世界位不在屬性上

    //獲取指定模型的世界坐標const worldPosition = new THREE.Vector3();nameNode.getWorldPosition(worldPosition);//獲取縮放const worldScale = new THREE.Vector3();nameNode.getWorldScale(worldScale); console.log(worldPosition);
移除指定節點
  //移除要在要移除節點的父節點上移除group1.remove(nameNode);console.log(model.children);//移除多個group1.remove(nameNode, nameNode1);
顯示/隱藏
     //隱藏模型/組group1.visible = false;//隱藏材質 隱藏材質后所有相關的模型都會隱藏nameNode.material.visible =false;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15526.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15526.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15526.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux基礎(六):Linux 系統上 C 程序的編譯與調試

本篇博客詳細分析&#xff0c;Linux平臺上C程序的編譯過程與調試方法&#xff0c;這也是我們后續程序開發的基礎。 目錄 一、第一個hello world程序 1.1 創建.c文件 1.2 編譯鏈接 運行可執行程序 二、編譯鏈接過程 2.1 預編譯階段 2.2 編譯階段 2.3 匯編階段 2.4 鏈…

一千題,No.0025(Chess For Three)

描述 Three friends gathered to play a few games of chess together. In every game, two of them play against each other. The winner gets 2 points while the loser gets 0, and in case of a draw, both players get 1 point each. Note that the same pair of playe…

【MySQL精通之路】SQL語句(3)-鎖和事務語句

目錄 1.START TRANSACTION、COMMIT和ROLLBACK語句 2.無法回滾的語句 3.導致隱含COMMIT的語句 4.SAVEPOINT、ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT語句 5.LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE語句 6.LOCK TABLE和UNLOCK TABLES語句 6.1 表鎖獲取 6.2 表鎖釋放…

qemu+gdb調試linux內核

打開CONFIG_DEBUG_INFO,編譯內核 通過圖形菜單配置該宏,執行make menuconfig。 kernel hacking —> compile-time checks and compiler options —> compile the kernel with debug info 驗證是否打開成功,grep -nr “CONFIG_DEBUG_INFO” .config。 打開成功,然后…

plsql 學習

過程化編程語言 賦值&#xff1a;&#xff1a; ||&#xff1a;連接符號 dbms_output.put_line() :輸出的語句 var_name ACCOUNTLIBRARY.USERNAME%type; 變量名&#xff1b;某個表的數據類型&#xff1b;賦值給變量名 用下面的方法更好用 異常exception 循…

力扣HOT100 - 75. 顏色分類

解題思路&#xff1a; 單指針&#xff0c;對數組進行兩次遍歷。 class Solution {public void sortColors(int[] nums) {int p 0;int n nums.length;for (int i 0; i < n; i) {if (nums[i] 0) {int tmp nums[i];nums[i] nums[p];nums[p] tmp;p;}}for (int i p; i …

java庫和包的概念

在Java中&#xff0c;"庫"和"包"是兩個不同的概念&#xff0c;但它們之間存在著密切的關聯。 庫&#xff08;Library&#xff09; 定義&#xff1a;庫是一組已經編寫好的代碼和資源&#xff0c;用于解決特定的問題或提供特定的功能。它可以包含一個或多個…

【前端每日基礎】day19——回調函數

回調函數 回調函數是一種常見的編程概念&#xff0c;它是指在函數執行完畢后&#xff0c;將另一個函數作為參數傳遞給它&#xff0c;以便在特定條件滿足時調用這個函數。回調函數通常用于處理異步操作、事件處理、定時器等場景&#xff0c;以實現非阻塞式的程序設計。 特點和…

存儲+調優:存儲-IP-SAN-EXTENSION

存儲調優&#xff1a;存儲-IP-SAN-EXTENSION 文件系統的鎖標記 GFS&#xff08;鎖表空間&#xff09; ----------- ------------ ------------- 節點 | ndoe1 | | node2 | | node3 | ---------- ------…

斷更是我的錯

打算在暑假每天兩個文章&#xff0c;大概是6月20多號開始吧。

vue3中watch語法

在Vue 3中&#xff0c;watch仍然是一個用于觀察和響應Vue實例上的數據變化的選項。watch選項接受一個對象&#xff0c;該對象中的屬性對應要觀察的數據屬性&#xff0c;并指定對應的回調函數&#xff0c;用于處理數據變化時的邏輯。 watch選項的語法如下&#xff1a; watch: …

GNSS中的多路徑效應原理及計算方法

1 多路徑效應原理 圖1 多路徑效應原理圖 2 計算方法 如需原文&#xff0c;可加多源融合定位與智能控制討論群獲取,QQ群號&#xff1a;51885949

ORACLE 6節點組成的ACFS文件系統異常的分析思路

近期遇到多次6節點集群的ACFS文件系統環境異常問題&#xff1b;如24日中午12點附近出現ACFS文件系統訪問異常&#xff0c;通過查看集群ALERT日志、CSSD進程日志及OSW監控軟件的日志&#xff0c;可以發現OSW監控軟件在11:55-12:40分時沒有收集到虛擬機LINUX主機的監控數據&#…

【OceanBase診斷調優】—— 直連普通租戶時遇到報錯:Tenant not in this server

本文介紹了直連 OceanBase 數據庫中的普通租戶時&#xff0c;出現報錯&#xff1a;ERROR 5150 (HY000) : Tenant not in this server 的處理方法。 問題描述 在 n-n 或者 n-n-n (n>1) 的部署架構中&#xff0c;使用 2881 端口 直連 OceanBase 集群的普通租戶&#xff0c;可…

ChatGPT大語言模型發展歷史

技術背景與OpenAI成立 2010年代初&#xff1a;隨著深度學習技術的突破&#xff0c;特別是循環神經網絡(RNN)和長短時記憶網絡(LSTM)的成功應用&#xff0c;自然語言處理(NLP)領域開始經歷一場革命。2015年12月&#xff1a;OpenAI作為一個旨在確保人工智能(AI)研究造福全人類的…

Java并行流

Java并行流 什么是并行流&#xff1f;并行流的優缺點優點缺點 如何使用&#xff1f;1.創建流2.轉換為并行流3.流操作4.收集結果5.關閉流 并行流的本質1.任務劃分和調度2.并發處理數據3.任務結果合并4.性能優化 參考文獻官方文檔 什么是并行流&#xff1f; 并行流&#xff08;p…

【C++風云錄】揭秘醫療機器人:技術解析與應用探索

打造智能醫療&#xff1a;醫療機器人技術與手術輔助 前言 本文將在深度和廣度上探討六種尖端醫療機器人系統&#xff0c;并重點介紹其應用、C控制接口及其功能。這些機器人系統分別是ROSA Robot、Da Vinci Surgical SystemSDK、Intuitive Surgical’s da Vinci Xi、Medroboti…

黑龍江等保測評新要求下的政府信息化安全實踐案例分析

在數字化轉型的浪潮中&#xff0c;政府機構作為社會管理和公共服務的核心&#xff0c;其信息安全的重要性日益凸顯。近期&#xff0c;黑龍江省積極響應國家網絡安全戰略&#xff0c;依據最新的等級保護測評&#xff08;簡稱“等保測評”&#xff09;要求&#xff0c;對政府信息…

SpringBoot運維篇(打包,多環境,日志)

文章目錄 一、SpringBoot程序的打包與運行二、配置高級三、多環境開發四、日志 一、SpringBoot程序的打包與運行 剛開始做開發學習的小伙伴可能在有一個知識上面有錯誤的認知&#xff0c;我們天天寫程序是在Idea下寫的&#xff0c;運行也是在Idea下運行的。 ?但是實際開發完成…

CDH6.3.2集成Flink1.17

直接運行腳本即可&#xff0c;一鍵輸出相關依賴包 運行步驟已給到文檔 下載地址