溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Three.js如何加載三維管線

發(fā)布時(shí)間:2021-12-03 14:28:53 來源:億速云 閱讀:338 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“Three.js如何加載三維管線”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Three.js如何加載三維管線”這篇文章吧。

準(zhǔn)備知識(shí):
1、  three.js:三維模型加載量測(cè)試  
2、  Three.js開發(fā):修改默認(rèn)鼠標(biāo)操控
3、  GIS開發(fā):Threejs加載gltf模型
three.js中能夠加載一定量的三維模型數(shù)據(jù),當(dāng)然也能夠加載一定量的管線數(shù)據(jù),three.js的鼠標(biāo)操控,會(huì)影響到管線的擺放。  
大多數(shù)三維平臺(tái)中,加載管線的原理都差不多,只不過對(duì)應(yīng)三維引擎中的API,渲染會(huì)有不同。
管線系統(tǒng)一般有兩種數(shù)據(jù):管線數(shù)據(jù)和管件數(shù)據(jù),這里簡(jiǎn)單的說一下如何在three.js中加載簡(jiǎn)單的三維管線數(shù)據(jù)。 
管線數(shù)據(jù)雖然是線數(shù)據(jù),但是又不等同于線數(shù)據(jù),因?yàn)楣芫€是圓柱體和長(zhǎng)方體形狀的,在三維引擎中,一般是將一條管線做為單個(gè)位置的對(duì)象來加載,而不是常規(guī)的線狀數(shù)據(jù)。
管線的兩種顯示方式:使用three.js中自帶api畫管線,使用現(xiàn)有的三維模型;
  • 自帶的圓柱體對(duì)象代碼實(shí)現(xiàn),設(shè)置管線的管徑、長(zhǎng)度;

      let geometry = new THREE.CylinderGeometry(2, 2, 60, 32);

      let material = new THREE.MeshBasicMaterial({

         color: 0xffff00

       });

      let cylinder = new THREE.Mesh(geometry, material);

      scene.add(cylinder);

  • 三維模型形式(參見3-Threejs加載gltf模型),通過修改模型的比例,實(shí)現(xiàn)管徑、長(zhǎng)度的展現(xiàn);

        let loader = new THREE.GLTFLoader();

loader.load('data/pipetype1.glb', function(gltf) {

model = gltf.scene;

scene.add(model);

model.traverse(function(object) {

if (object.isMesh) {

object.castShadow = true;

    }

  });

 model.scale.set(2, 2, 60);

 model.position.set(4000, -1.0, 2000);

      });

簡(jiǎn)單實(shí)現(xiàn)效果:  

Three.js如何加載三維管線

后續(xù)關(guān)于管線的其他信息設(shè)置,抽空會(huì)進(jìn)行介紹。  

以上是“Three.js如何加載三維管線”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI