国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Threejs入門之十四:Threejs中的組(Group)對象

這篇具有很好參考價(jià)值的文章主要介紹了Threejs入門之十四:Threejs中的組(Group)對象。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

組其實(shí)就是一個(gè)集合,將不同的物體添加到一個(gè)組中,就形成了一個(gè)集合;
比如我們可以創(chuàng)建兩個(gè)物體,然后將這兩個(gè)物體使用group.add方法添加到同一個(gè)組中

// 創(chuàng)建幾何體
const geometry = new THREE.BoxGeometry(50,50,50)
// 創(chuàng)建材質(zhì)
const material = new THREE.MeshBasicMaterial({
  color:0x00ff00
})
// 創(chuàng)建物體A
const cubeA = new THREE.Mesh(geometry,material)
cubeA.position.set(100,0,0)
// 創(chuàng)建物體B
const cubeB = new THREE.Mesh(geometry,material)
cubeB.position.set(-100,0,0)
// 創(chuàng)建組
const group = new THREE.Group()
// 將物體A添加到組中
group.add(cubeA)
// 將物體B添加到組中
group.add(cubeB)
// 將group添加到scene中
scene.add(group)

Threejs入門之十四:Threejs中的組(Group)對象
Group的特性
在Threejs的官方文檔中介紹Group時(shí)說它幾乎與Object3D相同,因此,Group的屬性和Object3D的相同
.children屬性
使用group.children屬性可以查看所有g(shù)roup的子對象

console.log('group的子對象',group.children)

.name屬性
使用group.name屬性可以給組命名

group.name='幸?;▓@小區(qū)建筑'

.visible
對象的顯示和隱藏

group.visible = false  //隱藏

平移縮放旋轉(zhuǎn)
組的平移縮放旋轉(zhuǎn)等操作會影響組里面的子對象,即子對象會跟隨組對象一起變化
使用group.translate對組進(jìn)行平移

group.translateX(100)

Threejs入門之十四:Threejs中的組(Group)對象
子對象的坐標(biāo)跟著平移了
使用group.scale.set來設(shè)置組的縮放

group.scale.set(0.5,0.5,0.5)

Threejs入門之十四:Threejs中的組(Group)對象
注意看這里同時(shí)使用了向x軸平移和縮放,其對各個(gè)物體的位置影響是綜合作用的結(jié)果。
使用group.rotate設(shè)置組的旋轉(zhuǎn)
group.rotateY(Math.PI/4)
.traverse()方法 遞歸遍歷
可以通過遞歸遍歷的算法去遍歷Threejs一個(gè)模型對象包含的所有后代

group.traverse(function(obj){
  console.log(obj);
  // 判斷子對象是否是物體,如果是,更改其顏色
  if(obj.isMesh){
    obj.material.color.set(0x0000ff)
  }
})

.getObjectByName()方法 通過名稱查詢某個(gè)模型

const cubeANode = group.getObjectByName ("cubeA")

.remove() 移除對象
可以通過.remove() 方法刪除父對象中的一個(gè)子對象

group.remove(cubeA)

可以一次移除多個(gè)子對象

group.remove(cubeA,cubeB)

本地坐標(biāo)
本地坐標(biāo)也叫局部坐標(biāo),任何一個(gè)模型對象的本地坐標(biāo)都是其自身的position屬性,通過設(shè)置position屬性設(shè)置模型對象的本地坐標(biāo)

cubeA.position.set(0,10,0)

世界坐標(biāo)
世界坐標(biāo)是模型自身position和所有父對象position累加的坐標(biāo)。
這里要注意一點(diǎn),改變父對象的position,其子對象也會受到影響,做相應(yīng)的改變,因此,此時(shí)子對象的position應(yīng)該是父對象.position和子對象.position疊加的結(jié)果。

.getWorldPosition() 獲取世界坐標(biāo)
可以通過.getWorldPosition()方法來獲取世界坐標(biāo),要獲取世界坐標(biāo),首先需要先定義一個(gè)三維向量
然后通過.getWorldPosition()方法將世界坐標(biāo)傳遞給三維向量

// 聲明一個(gè)三維向量用來表示某個(gè)坐標(biāo)
const worldPosition = new THREE.Vector3()
// 獲取物體的世界坐標(biāo)
cubeA.getWorldPosition(worldPosition)

給子對象添加輔助坐標(biāo)系
可以通過.add()方法給子對象添加一個(gè)輔助的局部坐標(biāo)系,方便觀察

const cubeAaxesHelper = new THREE.AxesHelper(50)
cubeA.add(cubeAaxesHelper)

好了,關(guān)于Threejs中的Group對象,就介紹到這里,更多的功能可以查看官方文檔,喜歡的關(guān)注點(diǎn)贊哦文章來源地址http://www.zghlxwxcb.cn/news/detail-462640.html

到了這里,關(guān)于Threejs入門之十四:Threejs中的組(Group)對象的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Threejs入門之四:Threejs中的光

    Threejs入門之四:Threejs中的光

    前面我們用Threejs創(chuàng)建了一個(gè)3D立方體到瀏覽器,并使其跟隨鼠標(biāo)旋轉(zhuǎn)和縮放,但是,上帝說要有光,于是就有了光~~~額,好吧,這一節(jié)我們來認(rèn)識下Threejs中的燈光,Threejs提供了很多燈光的API,這里我們主要了解下環(huán)境光(AmbientLight)、點(diǎn)光(PointLight)、平行光(DirectionalLight)、和聚

    2024年02月12日
    瀏覽(23)
  • Threejs進(jìn)階之十五:在Thereejs 使用自定義shader

    Threejs進(jìn)階之十五:在Thereejs 使用自定義shader

    先看下這次代碼最終要實(shí)現(xiàn)的效果, 效果分析: 要實(shí)現(xiàn)上述效果,我們需要兩張圖片,作為紋理貼圖,使其圖案產(chǎn)生明暗效果;然后通過定義ShaderMaterial對象通過自定義Shader實(shí)現(xiàn)上述效果;后面代碼中會進(jìn)行詳細(xì)分析; 這里我們先介紹下基礎(chǔ)知識 Shader(著色器)是一種在圖

    2024年02月05日
    瀏覽(28)
  • Threejs進(jìn)階之十:讓模型移動到鼠標(biāo)點(diǎn)擊的指定位置

    Threejs進(jìn)階之十:讓模型移動到鼠標(biāo)點(diǎn)擊的指定位置

    上一節(jié)中我們實(shí)現(xiàn)了物體沿指定軌跡移動的動畫效果,這一節(jié)我們來實(shí)現(xiàn)讓模型移動到鼠標(biāo)點(diǎn)擊的制定位置的動畫效果。 先看下實(shí)現(xiàn)后的最終效果 要實(shí)現(xiàn)上面的動畫效果,我們需要通過以下步驟來實(shí)現(xiàn) 我們需要監(jiān)聽鼠標(biāo)的點(diǎn)擊事件,獲取鼠標(biāo)點(diǎn)擊點(diǎn)相對瀏覽器可視區(qū)域左上

    2024年02月09日
    瀏覽(89)
  • Threejs進(jìn)階之十一:使用FontLoader和TextGeometry創(chuàng)建三維文字

    Threejs進(jìn)階之十一:使用FontLoader和TextGeometry創(chuàng)建三維文字

    在Threejs中我們可以通過FontLoader和TextGeometry結(jié)合使用來創(chuàng)建三維文字,F(xiàn)ontLoader用于加載JSON格式的字體,F(xiàn)ontLoader返回值是表示字體的Shape類型的數(shù)組;TextGeometry用于將文本生成為單一的幾何體。下面我們先來了解下這兩個(gè)類 用于加載JSON格式的字體的類。返回font, 返回值是表示

    2024年02月06日
    瀏覽(24)
  • Verilog基礎(chǔ)之十四、FIFO實(shí)現(xiàn)

    Verilog基礎(chǔ)之十四、FIFO實(shí)現(xiàn)

    目錄 一、FIFO 1.1 定義 1.2 實(shí)現(xiàn)方式 1.3 實(shí)現(xiàn)原理?? 二、代碼實(shí)現(xiàn) 三、仿真結(jié)果 3.1 復(fù)位階段 3.2 寫入階段 3.3?讀取階段 3.4?同時(shí)讀寫或不讀不寫 四、參考資料 ????FIFO(First in First out)為先進(jìn)先出隊(duì)列,具有存儲功能,可用于不同時(shí)鐘域間傳輸數(shù)據(jù)以及不同的數(shù)據(jù)寬度進(jìn)行數(shù)據(jù)

    2024年02月13日
    瀏覽(20)
  • 軟件設(shè)計(jì)模式系列之十四——代理模式

    軟件設(shè)計(jì)模式系列之十四——代理模式

    代理模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,它允許一個(gè)對象(代理)充當(dāng)另一個(gè)對象的接口,以控制對該對象的訪問。代理模式通常用于控制對真實(shí)對象的訪問,以實(shí)現(xiàn)一些額外的功能,例如延遲加載、權(quán)限控制、日志記錄等。這種模式屬于結(jié)構(gòu)型設(shè)計(jì)模式,因?yàn)樗P(guān)注對象之間的組

    2024年02月08日
    瀏覽(25)
  • Threejs進(jìn)階之十三:CSS3DRenderer與Tween.js實(shí)現(xiàn)粒子小球按規(guī)律變化

    Threejs進(jìn)階之十三:CSS3DRenderer與Tween.js實(shí)現(xiàn)粒子小球按規(guī)律變化

    今天我們使用CSS3DRenderer+Tween.js實(shí)現(xiàn)Threejs官方示例中的粒子小球按規(guī)律變化的效果,先看下最終實(shí)現(xiàn)的效果 先來分析下,這個(gè)頁面的動畫效果是由512個(gè)小球組合起來的四種不同變化,分別是曲面、立方體、隨機(jī)和圓球四種變化;下面我們來實(shí)現(xiàn)下這個(gè)效果 老套路,要實(shí)現(xiàn)上面

    2024年02月03日
    瀏覽(18)
  • JavaCV的攝像頭實(shí)戰(zhàn)之十四:口罩檢測

    JavaCV的攝像頭實(shí)戰(zhàn)之十四:口罩檢測

    這里分類和匯總了欣宸的全部原創(chuàng)(含配套源碼):https://github.com/zq2599/blog_demos 本文是《JavaCV的攝像頭實(shí)戰(zhàn)》系列的第十四篇,如標(biāo)題所說,今天的功能是檢測攝像頭內(nèi)的人是否帶了口罩,把檢測結(jié)果實(shí)時(shí)標(biāo)注在預(yù)覽窗口,如下圖所示: 整個(gè)處理流程如下,實(shí)現(xiàn)口罩檢測的關(guān)鍵

    2024年02月12日
    瀏覽(19)
  • Windows server 2016:無法打開此計(jì)算機(jī)上的組策略對象。你可能沒有相應(yīng)的權(quán)限。

    Windows server 2016:無法打開此計(jì)算機(jī)上的組策略對象。你可能沒有相應(yīng)的權(quán)限。

    使用服務(wù)器管理器打開本地安全策略,或使用win+R快捷鍵,輸入gpedit.msc打開系統(tǒng)組策略時(shí), 出現(xiàn)報(bào)錯(cuò): 無法打開此計(jì)算機(jī)上的組策略對象。你可能沒有相應(yīng)的權(quán)限。 1、使用win+E快捷鍵打開資源管理器,點(diǎn)擊”查看“,勾選”隱藏的項(xiàng)目“,因?yàn)镃:WindowsSystem32GroupPolicy是一個(gè)

    2024年02月08日
    瀏覽(22)
  • Linux ALSA 之十四:ASOC DAPM 之 Widget & Path & Route 分析

    Linux ALSA 之十四:ASOC DAPM 之 Widget & Path & Route 分析

    在前面文章已經(jīng)介紹了 DAPM 基本知識,了解了代表音頻控件的 widget,并且系統(tǒng)中注冊的各種 widget 需要互相連接在一起才能協(xié)調(diào)工作,故對于 ASOC Driver 中當(dāng)使用到 DAPM 時(shí)需要定義 Widget 以及連接路徑的 routes(ASOC DAPM Core 注冊 Route 時(shí)會對連接的兩個(gè) widget 建立 path)。在本節(jié)中

    2024年02月06日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包