章節二、three.js開發入門與調試設置02;

一、軌道控制器查看物體;

1、基本概念

? ? ?軌道控制器(OrbitControls)可以使得相機圍繞目標進行軌道運動;

?2、代碼樣例

// 七、創建軌道控制器(相機圍繞著物體捕捉視角)
const controls = new OrbitControls(camera,renderer.domElement,)function render() {renderer.render(scene , camera);// 請求動畫幀:渲染下一幀的時候,會重新執行這個函數requestAnimationFrame(render);
}// 起始動畫
render();

二、添加坐標輔助器;

1、基本概念

? ? ? 用于簡單模擬3個坐標軸的對象;紅色代表X軸、綠色代表Y軸、藍色代表Z軸;

2、代碼樣例

// 八、添加坐標軸輔助器,數字代表軸的線段長度,默認為1
const axesHelper = new THREE.AxesHelper(5);
scene.add(axesHelper);

三、設置物體移動;

1、基本概念

? ? ? 物體對象的position熟悉,表示對象局部位置的Vector3,默認值為 (0,0,0)? ;

2、代碼片段

// 修改物體的位置方法1 (X,Y,Z)
// cube.position.set(5,0,0);// 修改屬性改變X軸的位置方法2
cube.position.x = 3;
function render() {// 1.實時移動cube物體位置cube.position.x += 0.01;if(cube.position.x > 5){cube.position.x = 0;} // 2.渲染畫面renderer.render(scene , camera);// 請求動畫幀:渲染下一幀的時候,會重新執行這個函數requestAnimationFrame(render);
}

四、物體的縮放與旋轉;

1、基本概念

???????設置物體的縮放屬性:scale;

???????設置物體的局部旋轉屬性:rotation,以弧度來表示;屬性order值應用于旋轉順序,默認值為'XYZ':意味著先繞X軸旋轉,然后是Y軸,最后是Z軸;?

2、代碼片段

// 01、設置物體的縮放
cube.scale.set(3,2,1);
cube.scale.x = 5;// 02、設置物體的局部旋轉,以弧度來表示;
// 屬性order值應用于旋轉順序,默認值為'XYZ':意味著先繞X軸旋轉,然后是Y軸,最后是Z軸;
cube.rotation.set(Math.PI / 4, 0 , 0, 'XYZ');
function render() {// 1.實時移動cube物體位置cube.position.x += 0.01;if(cube.position.x > 5){cube.position.x = 0;} // 2.循環旋轉cube.rotation.x += 0.01;// 3.渲染畫面renderer.render(scene , camera);// 請求動畫幀:渲染下一幀的時候,會重新執行這個函數requestAnimationFrame(render);
}

五、應用 requestAnimationFrame 正確處理動畫運動;

1、基本概念

? ? ? 動畫運動時快時慢,如何保證其性能?

2、代碼片段

function render(time) {// 1.實時移動cube物體位置// cube.position.x += 0.01;// if(cube.position.x > 5){//     cube.position.x = 0;// }// 循環旋轉角度// cube.rotation.x += 0.01;// 2.正常的電腦1秒是60幀,每一幀的間隔時間是 1000ms / 60幀 = 16毫秒;// 傳入time,表示當前幀的時間,每一幀時間間隔不均勻,導致前進的距離大小不等; // 移動距離 = 速度(速度為1) * 時間;就可以保證物體移動距離均勻,不是時快時慢;let t = (time / 1000) % 5;cube.position.x = t * 1;console.log("time", time);console.log("position", t);// 3.渲染畫面renderer.render(scene , camera);// 請求動畫幀:渲染下一幀的時候,會重新執行這個函數    requestAnimationFrame(render);
}

六、通過Clock跟蹤時間處理動畫;

1、基本概念

?????該對象用于跟蹤時間

2、代碼片段

七、Gsap動畫庫基本使用與原理;

1、基本概念

2、代碼片段

八、Gsap控制動畫屬性與方法;

1、基本概念

2、代碼片段

九、根據尺寸變化實現自適應畫面;

1、基本概念

2、代碼片段

十、調用js接口控制畫布全屏 和 退出全屏;

1、基本概念

2、代碼片段

十一、應用圖形用戶界面更改變量;

1、基本概念

2、代碼片段

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

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

相關文章

吳恩達機器學習全課程筆記第五篇

目錄 前言 P80-P85 添加數據 遷移學習 機器學習項目的完整周期 公平、偏見與倫理 P86-P95 傾斜數據集的誤差指標 決策樹模型 測量純度 選擇拆分方式增益 使用分類特征的一種獨熱編碼 連續的有價值特征 回歸樹 前言 這是吳恩達機器學習筆記的第五篇&#xff0c…

《2023跨境電商投訴大數據報告》發布|亞馬遜 天貓國際 考拉海購 敦煌網 阿里巴巴

2023年,跨境電商API接口天貓國際、京東國際和抖音全球購以其強大的品牌影響力和市場占有率,穩坐行業前三的位置。同時,各大跨境電商平臺消費糾紛問題層出不窮。依據國內知名網絡消費糾紛調解平臺“電訴寶”(315.100EC.CN&#xff…

javaEE--后端環境變量配置

目錄 pre 文件準備 最終運行成功結果 后端運行步驟 1.修改setenv文件 2.運行setenv,設置環境變量 3.查看jdk版本 4.修改mysql文件夾下的my文件 前端運行步驟 1.nodejs環境配置 2.查看node和npm版本 3.下載并運行npm 4.注冊登錄 pre 文件準備 最終運行…

VR轉接器:破解虛擬與現實邊界的革命性設備

VR轉接器,這一革命性的設備,為虛擬現實體驗帶來了前所未有的自由度。它巧妙地連接了虛擬與現實,使得用戶在享受VR眼鏡帶來的奇幻世界的同時,也能自由地在現實世界中活動。這一設計的誕生,不僅解決了VR眼鏡續航的瓶頸問…

2、云原生安全之可視化界面rancher的部署

文章目錄 1、rancher的部署1.1、安裝rancher1.2、配置k8s2、部署helm3、容器安全工具neuvector此時已經部署好了k8s,使用rancher來管理 rancher簡化了使用k8s的流程,可以圖形化管理k8s。 參考: https://blog.51cto.com/u_15343792/5000311https://docs.rancher.cn/docs/ra…

你們團隊是否有RocketMQ創建Topic、GID創建規范呢

這里是weihubeats,覺得文章不錯可以關注公眾號小奏技術 背景 早期在使用RocketMQ的時候,系統和開發人員不算多。所以topic的創建會非常隨意,各種千奇百怪的topic 比如: order_topic、ORDER_TOPIC、order-topic 各種奇奇怪怪的風格,用_的&a…

GO結構體

1. 結構體 Go語言可以通過自定義的方式形成新的類型,結構體就是這些類型中的一種復合類型,結構體是由零個或多個任意類型的值聚合成的實體,每個值都可以稱為結構體的成員。 結構體成員也可以稱為“字段”,這些字段有以下特性&am…

JS清空數組方法

清空數組的方法有多種,以下是幾種常見的方式: 1.使用 array.length 屬性將數組的長度設為0,這樣會移除數組中的所有元素: var arr [1, 3, 5]; arr.length 0; console.log(arr); // [] 2. 使用 array.splice() 方法,…

STM32 | 零基礎 STM32 第一天

零基礎 STM32 第一天 一、認知STM32 1、STM32概念 STM32:意法半導體基于ARM公司的Cortex-M內核開發的32位的高性能、低功耗單片機。 ST:意法半導體 M:基于ARM公司的Cortex-M內核的高性能、低功耗單片機 32:32位單片機 2、STM32開發的產品 STM32開發的產品&a…

【論文筆記】Improving Language Understanding by Generative Pre-Training

Improving Language Understanding by Generative Pre-Training 文章目錄 Improving Language Understanding by Generative Pre-TrainingAbstract1 Introduction2 Related WorkSemi-supervised learning for NLPUnsupervised pre-trainingAuxiliary training objectives 3 Fra…

Java 網絡面試題解析

1. Http 協議的狀態碼有哪些?含義是什么?【重點】 200:OK,客戶端請求成功。 301:Moved Permanently(永久移除),請求的URL已移走。Response中應該包含一個Location URL,…

steam++加速問題:出現顯示443端口被 vmware-hostd(9860)占用的錯誤。

目錄 前言: 正文: 前言: 使用Steam對GitHub進行加速處理時,建議使用2.8.6版本。 下載地址如下:Release 2.8.6 BeyondDimension/SteamTools GitHub 下載時注意自己的系統位數 正文: 使用GitHub時會使…

NOC2023軟件創意編程(學而思賽道)python初中組初賽真題

軟件創意編程 一、參賽范圍 1.參賽組別:小學低年級組(1-3 年級)、小學高年級組(4-6 年級)、初中組。 2.參賽人數:1 人。 3.指導教師:1 人(可空缺)。 4.每人限參加 1 個賽項。 組別確定:以地方教育行政主管部門(教委、教育廳、教育局) 認定的選手所屬學段為準。 二、…

Mybatis-Plus+SpringBoot多數據源注解方式@DS

前言 最近接到一個新需求需要處理多數據源的問題 &#xff0c;今天就來和大家一起學習一下。 一、使用步驟 1.引入庫 代碼如下&#xff08;示例&#xff09;&#xff1a; <!--配置多數據源--><dependency><groupId>com.baomidou</groupId><artif…

藍橋杯Java B組歷年真題(2013年-2021年)

一、2013年真題 1、世紀末的星期 使用日期類判斷就行&#xff0c;這里使用LocalDate&#xff0c;也可以使用Calendar類 答案 2099 使用LocalDate import java.time.LocalDate; import java.time.format.DateTimeFormatter; // 1:無需package // 2: 類名必須Main, 不可修改p…

常見問題和解決方案

OOM overview 發現監控告警 定位日志java.lang.OutOfMemoryError 避免參數配置代碼規范 example jvm性能調優實戰 -55RPC調用引發的OOM故障-阿里云開發者社區 (aliyun.com) 發現監控告警 定位日志java.lang.OutOfMemoryErrorA rpc BMAT打開堆快照文件分析histogram右擊看引…

CentOS7 Hive2.3.8安裝

CentOS7 Hive2.3.8 安裝 建議從頭用我的博客&#xff0c;如果用外教的文件到 一、9)步驟了&#xff0c;就用他的弄完&#xff0c;數據庫不一樣&#xff0c;在9步驟前還能繼續看我的 一、 安裝MySQL 0.0&#xff09;查詢mariadb,有就去0.1&#xff09;&#xff0c;沒有就不管…

python3裝飾器

裝飾器 它允許你修改函數或類的行為&#xff0c;而不更改其源代碼。實質上&#xff0c;裝飾器是接受另一個函數作為參數并返回一個包裝原始函數的新函數。這樣&#xff0c;你可以在不修改原始函數的情況下&#xff0c;添加一些額外的功能或邏輯。 def time_cost(func):"…

排隊接水問題

時間限制&#xff1a;1秒 內存限制&#xff1a;128M 題目描述 有n個人在一個水龍頭前排隊接水&#xff0c;假如每個人接水的時間為Ti&#xff0c;請編程找出這n個人排隊的一種順序&#xff08;若有多種順序則編號小的在前&#xff09;&#xff0c; 使得n個人的平均時間…

ARCGIS進行視域分析及地形圖制作

問題說明 開發商要在本區域建造觀景亭,希望在觀景亭上能看到優美的景色。根據提供的數據,完成以下要求。 一、 數據說明(見“題目3”文件夾) 1. DEM.tif:研究區域的數據高程模型數據。 2. 觀察點.shp:需要建造觀景亭的位置。