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

【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生

這篇具有很好參考價值的文章主要介紹了【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生,數(shù)字孿生 | 3D可視化框架,3d,數(shù)據(jù)可視化,javascript

博主:_LJaXi Or 東方幻想郷
專欄: 數(shù)字孿生 | 3D可視化框架
開發(fā)工具:ThingJS在線開發(fā)工具

ThingJs 低代碼開發(fā)

注意點

有問題直接戳官網(wǎng): ThingJs 在線開發(fā)工具

對象拾取: 只有物品編輯了 UserID Name 或者添加 自定義屬性 之后, 導(dǎo)入到 ThingJs 中才能成為獨立的管理對象,被程序讀取或修改

場景效果配置

燈光配置

app.lighting = {}

后期設(shè)置(美化效果)

app.postEffect = {}

天氣效果

app.fog = {} // 霧化效果
apep.create // 接口創(chuàng)建粒子,實現(xiàn)雨雪效果
例子類型:'ParticleSystem'

動態(tài)天空及天空盒

app.ksyEffect = {}

【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生,數(shù)字孿生 | 3D可視化框架,3d,數(shù)據(jù)可視化,javascript

層級

層級常用API

app.level.change(object); // 層級切換到指定對象
app.level.back(); // 返回當(dāng)前層級的父物體層級
app.level.current; // 獲取當(dāng)前的層級對象
app.level.previous; // 獲取之前的層級對象

實例化 Thing,加載場景

var app = new THING.App({
    url: '', // 場景url
    background: '#00000', // 場景顏色
    env: ‘Seaside' // 主題吧,忘了
})

load 加載函數(shù)

app.on('load', (ev) => {
    app.level....
})

ThingJs 層級關(guān)系圖

【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生,數(shù)字孿生 | 3D可視化框架,3d,數(shù)據(jù)可視化,javascript

查找層級

app.query('.Building'); // 查找物體類是 Building 的對象
app.query("car01")[0]; // 查詢名稱(name)是 car01 的對象
app.query("[alarm]"); // 有物體類型屬性的,無論值是什么
app.query('["userData/物體類型"="糧倉"]'); // 查詢物體類型屬性是糧倉的對象
app.query("[levelNum>2]"); // 查詢levelNum大于2的對象,支持 <=, <, =, >, >=

// 支持鏈?zhǔn)讲樵?/span>
app.query('.Building').query("[alarm]");

// 正則表達(dá)式(RegExp)對象
app.query(/car/); 
/
var reg = new RegExp(/car/);
app.query(reg);

層級切換完成

complete() {
    console.log("層級切換完成")
}

飛行完成

flyComplete() {
    console.log("場景飛行完成")
}

樓層

層級事件常用API

EnterLevel; // 進(jìn)入層級事件 (包含4個內(nèi)置響應(yīng))
LeaveLevel; // 退出層級事件 (包含1個內(nèi)哭響應(yīng))
LevelFlyEnd; // 層級切換飛行結(jié)束事件

進(jìn)入層級時的場景控制 THING.EventTag.LevelSceneOperations,如進(jìn)入建筑時顯示所有樓層;進(jìn)入物體時,設(shè)置兄弟物體半透明

進(jìn)入層級時的飛行控制 THING.EventTag.LevelFly,如進(jìn)入各個層級時的飛行控制 (飛行時間、視角等)

進(jìn)入層級時背景熱制 THING.EventTag,LevelSetBackground,如進(jìn)入建筑后隱藏天空盒

進(jìn)入層級時的 Pick 設(shè)置 THING.EventTag.LevelPickedResultFunc,如進(jìn)入建筑后是只能 Pick 樓層還是也能 Pick 樓層下的物體

退出層級時的場景控制 THING.EventTag.LevelSceneOperations,如從園區(qū)進(jìn)入建筑層級 (即退出園區(qū)) 后,園區(qū)隱藏

監(jiān)聽層級切換事件

//第二個參數(shù)可以輸入.Building/.Floor/.Thing,來監(jiān)聽是建筑、樓層、物體的層級切換,不輸入默認(rèn)監(jiān)聽所有層級
// 監(jiān)聽進(jìn)入樓層事件
app.on(THING.EventType.EnterLevel, '', function (ev) {
    if (ev.current.name == '1樓') {
        //進(jìn)入一樓顯示兩個設(shè)備數(shù)據(jù)
    	//todo
		//...
    }else{
    	//todo
		//...
    }
}, '進(jìn)入樓層顯示面板')

獲取當(dāng)前選中的物體

app.on(THING.EventType.EnterLevel, '.Thing', function (ev) {
	var object = ev.object;
}, 'customEnterThingOperations')

停止進(jìn)入物體層級默認(rèn)行為

// 停止進(jìn)入物體層級的默認(rèn)行為
app.pauseEvent(THING.EventType.EnterLevel, '.Thing', THING.EventTag.LevelSceneOperations);

在應(yīng)用程序中,THING.EventType.EnterLevel 事件代表進(jìn)入樓層的事件類型。當(dāng)用戶進(jìn)入某個樓層時,系統(tǒng)會默認(rèn)執(zhí)行一些與層級場景相關(guān)的操作,比如加載和顯示該樓層的模型、攝像機(jī)切換等

使用 app.pauseEvent 方法可以暫?;蛲V固囟ㄊ录哪J(rèn)行為。在您的代碼中,通過調(diào)用 app.pauseEvent 方法來停止 ‘THING.EventType.EnterLevel’ 事件與 ‘.Thing’ 類相關(guān)的默認(rèn)行為

換句話說,當(dāng)用戶進(jìn)入樓層并且當(dāng)前對象是 ‘.Thing’ 類的實例時,通過停止默認(rèn)行為,您可以自定義處理事件并阻止系統(tǒng)默認(rèn)的操作

創(chuàng)建按鈕(兩種方法)

new THING.widget.Button('按鈕文本', function () {
	// 寫邏輯
}, "方法描述(隨便寫)")
new THING.widget.Button('文本',綁定方法(注意不是字符串))

添加攝像頭

// 視頻url地址,但是url必須是https協(xié)議的,
// 其本質(zhì)是將https協(xié)議的一個攝像頭html網(wǎng)頁引入一個iframe的panel面板中。
var panel2 = null;
// 將視頻嵌入到3D場景中
if (panel2) {
    panel2.destroy();
    panel2 = null;
} else {
    // 將視頻頁面作2D界面元素 通過快捷界面庫 panel 的iframe組件進(jìn)行添加
    panel2 = new THING.widget.Panel({
        titleText: "視頻監(jiān)控",
        dragable: true,
        hasTitle: true,
        width: "400px",
        closeIcon: true
    });
    var iframe = panel2.addIframe({ url: 'https://jiafei.imdo.co/test2/play.html?serial=34020000001320001293&code=34020000001320000001' }, 'url').caption("").setHeight('400px');
    panel2.position = [50, 50];
    // 關(guān)閉 panel 時,移除嵌入視頻的 iframe 頁面
    panel2.on("close", function() {
        // panel.remove(iframe);
        panel2.destroy();
        panel2 = null;
    });
}

創(chuàng)建管線

var pos = [[10.298, 3, -6.635], [-8.702, 3, -6.635], [-8.702, 3, 3.365], [-5.702, 3, 3.365], [-5.702, 3, 1.365]];
// 創(chuàng)建管線
line1 = app.create({
  type: 'PolygonLine',
  points: pos,
  width: 0.15,
  style: {
    image:'https://www.thingjs.com/static/images/poly_line_01.png', // 管線中的紋理資源
  }
});
line1.scrollUV = true;
app.query('.PolygonLine').style.alwaysOnTop = true;
line1.play({
  time: 8000
})

【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生,數(shù)字孿生 | 3D可視化框架,3d,數(shù)據(jù)可視化,javascript

管線切換

var pos = [[10.298, 3, -6.635], [-8.702, 3, -6.635], [-8.702, 3, 3.365], [-5.702, 3, 3.365], [-5.702, 3, 1.365]];
// 創(chuàng)建管線
line1 = app.create({
    type: 'PolygonLine',
    points: pos,
    width: 0.1,
    style: {
        image: 'https://www.thingjs.com/static/images/line01.png', // 管線中的紋理資源
    }
});
line1.scrollUV = true;
app.query('.PolygonLine').style.alwaysOnTop = true;
line1.play({
    time: 8000
})

【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生,數(shù)字孿生 | 3D可視化框架,3d,數(shù)據(jù)可視化,javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-668402.html

鼠標(biāo)操作

app.on(THING.EventType.MouseEnter,'.Deploy',(ev)=>{
	//觸發(fā)事件后執(zhí)行的操作
	ev.object.hoverState();
},'mouseEnterDeploy');

app.on(THING.EventType.MouseLeave,'.Deploy',(ev)=>{
	//觸發(fā)事件后執(zhí)行的操作
	ev.object.hoverState();
},'mouseLeaveDeploy');

app.on(THING.EventType.Click,'.Deploy',(ev)=>{
	//觸發(fā)事件后執(zhí)行的操作
	ev.object.hoverState();
});

設(shè)置物體樣式

/**
 * 獲取當(dāng)前樓層的屋頂
 */
function getFloorRoof() {
    var floor = app.level.current; // 當(dāng)前樓層
    var roof = floor.roof; // 樓層屋頂
    roof.style.opacity = 0.8; // 設(shè)置屋頂透明度
    roof.style.color = '#0000ff'; // 設(shè)置屋頂顏色
    roof.visible = true;
}

循環(huán)動作

function carmove(){
    car.moveTo({
        // position: [-8.967, 0.02, -2.714], // 移動到世界位置
        offsetPosition: [0, 10, 0], // 相對自身 向后移動到 10m 處
        time: 0.5 * 1000,
        'complete': function () {
            carinit();
        }
        // lerpType:null, // 插值類型 默認(rèn)為線性插值
    });
}

function carinit(){
    car.moveTo({
        // position: [-8.967, 0.02, -2.714], // 移動到世界位置
        offsetPosition: [0, -10, 0], // 相對自身 向后移動到 10m 處
        time: 0 * 1000,
        'complete': function () {
            carmove();
        }
        // lerpType:null, // 插值類型 默認(rèn)為線性插值
    });
}

到了這里,關(guān)于【ThingJS | 3D可視化】開發(fā)框架,一站式數(shù)字孿生的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 使用Open3D實現(xiàn)3D激光雷達(dá)可視化:以自動駕駛的2DKITTI深度框架為例(下篇)

    使用Open3D實現(xiàn)3D激光雷達(dá)可視化:以自動駕駛的2DKITTI深度框架為例(下篇)

    原創(chuàng) | 文 BFT機(jī)器人? 【原文鏈接】使用Open3D實現(xiàn)3D激光雷達(dá)可視化:以自動駕駛的2DKITTI深度框架為例(上篇) 05 Open3D可視化工具 多功能且高效的3D數(shù)據(jù)處理:Open3D是一個全面的開源庫,為3D數(shù)據(jù)處理提供強(qiáng)大的解決方案。它具有優(yōu)化的后端架構(gòu),可實現(xiàn)高效的并行化,非常適

    2024年02月04日
    瀏覽(47)
  • 使用Open3D實現(xiàn)3D激光雷達(dá)可視化:以自動駕駛的2DKITTI深度框架為例(上篇)

    使用Open3D實現(xiàn)3D激光雷達(dá)可視化:以自動駕駛的2DKITTI深度框架為例(上篇)

    原創(chuàng) | 文 BFT機(jī)器人? 3DLiDAR傳感器(或)三維光探測和測距是一種先進(jìn)的發(fā)光儀器,能夠像我們?nèi)祟愐粯釉谌S空間中感知現(xiàn)實世界。這項技術(shù)特別徹底改變了地球觀測、環(huán)境監(jiān)測、偵察和現(xiàn)在的自動駕駛領(lǐng)域,它提供準(zhǔn)確和詳細(xì)數(shù)據(jù)的能力有助于促進(jìn)我們對環(huán)境和自然資源

    2024年02月03日
    瀏覽(32)
  • 案例分享 | 3D開發(fā)工具HOOPS加速「全球知名礦業(yè)軟件」可視化創(chuàng)新與突破!

    案例分享 | 3D開發(fā)工具HOOPS加速「全球知名礦業(yè)軟件」可視化創(chuàng)新與突破!

    近日,某全球知名的三維礦業(yè)軟件公司(以下簡稱“客戶”)與慧都科技攜手合作,慧都將聯(lián)合數(shù)字化合作伙伴Tech Soft 3D-HOOPS,為客戶注入3D渲染及可視化核心動力,賦能客戶產(chǎn)品實現(xiàn)在地質(zhì)勘探、地質(zhì)模型可視化等方向的創(chuàng)新與突破,構(gòu)建強(qiáng)勁的產(chǎn)品競爭力,為礦業(yè)發(fā)展提

    2024年02月03日
    瀏覽(55)
  • 基于threejs開發(fā)的3D地球大屏可視化,支持2D地圖模式,飛線,漣漪,配置簡單易上手

    基于threejs 封裝的3D可視化地球組件,開箱即用 主要實現(xiàn)功能 根據(jù)geojson格式的json文件,渲染平面2D 和3D地圖,地圖可配置區(qū)域色,邊界色 支持以貼圖的方式實現(xiàn)用戶設(shè)計的個性化地圖圖片的3D地球渲染(2D的支持正在開發(fā)) 通過本組件提供的方法可實現(xiàn) 新增飛線動畫 和 標(biāo)記

    2024年02月08日
    瀏覽(21)
  • 除了three.js,還有許多其他前端開發(fā)語言和庫可以用于創(chuàng)建3D可視化大屏

    除了three.js,還有許多其他前端開發(fā)語言和庫可以用于創(chuàng)建3D可視化大屏

    hello老鐵們...本人熟悉html5,vue對bootsrap,uniapp,layui,element,vite,antd,echarts,jq響應(yīng)式尤其擅長,ui設(shè)計等技能,如果ui前端工作中有遇到煩惱可私信關(guān)注評論我們共同交流進(jìn)步!謝謝?? ? ? 隨著前端技術(shù)的飛速發(fā)展,3D可視化已經(jīng)成為許多應(yīng)用場景中不可或缺的一部分。在

    2024年03月15日
    瀏覽(97)
  • 利用qiankun框架在自己項目中集成拖拽式低代碼數(shù)據(jù)可視化開發(fā)平臺

    目前微前端已經(jīng)是很成熟的技術(shù)了,各大公司都推出了自己的微前端框架,比如螞蟻的qiankun,京東的micro-app,如果你的子應(yīng)用不使用vite構(gòu)建的話,我會更加推薦后者,micro-app使用更加簡單,micro-app并沒有沿襲 single-spa 的思路,而是借鑒了WebComponent的思想,是目前市面上接入

    2024年02月15日
    瀏覽(21)
  • 優(yōu)化算法3D可視化

    優(yōu)化算法3D可視化

    分別畫出 ?和? 的3D圖 這段代碼我試了老師給的代碼,不對勁,不能動,而且沒有軌跡,更過分就是一會兒就自動關(guān)閉了,還有再優(yōu)化優(yōu)化 改了一上午,終于好了,我修改了 以下是我的代碼: ? 用網(wǎng)頁做的竟然還帶水印 ?不在意水印的推薦 1、 SGD ? ?SGD從圖像上來看,呈現(xiàn)

    2024年02月03日
    瀏覽(433)
  • Python 3D可視化(一)

    Python 3D可視化(一)

    本篇目錄: 一、寫在前面的話 二、簡介 三、環(huán)境安裝 四、python 3D實例集錦 (1)、圓柱體 (2)、箭頭 (3)、球形 (4)、平面 (5)、線型 (6)、立方體 (7)、圓錐體 (8)、六邊形 (9)、空心六邊形 (10)、茶壺 (11)、兔子 (12)、飛機(jī) 五、總結(jié) ? 作者:北宋蘇

    2023年04月12日
    瀏覽(102)
  • 【數(shù)據(jù)可視化】2D/3D動畫

    【數(shù)據(jù)可視化】2D/3D動畫

    ? CSS3 transform屬性允許你旋轉(zhuǎn),縮放,傾斜或平移給定元素。 ? Transform是形變的意思(通常也叫變換),transformer就是變形金剛 ? 常見的函數(shù)transform function有: ----? 平移:translate(x, y) ----? 縮放:scale(x, y) ----? 旋轉(zhuǎn):rotate(deg) ----? 傾斜:skew(deg, deg) ? 通過上面的幾個函數(shù),我們

    2024年02月08日
    瀏覽(87)
  • QtDataVisualization 數(shù)據(jù)3D可視化

    QtDataVisualization 數(shù)據(jù)3D可視化

    ????????Data Visualization的三維顯示功能主要由三種三維圖形來實現(xiàn),分別是三維柱狀圖Q3DBars,三維空間散點Q3DScatter,三維曲面Q3DSurface。這三個類的父類都是QAbstract3DGraph,從QWindow繼承而來。 ????????Data Visualization與Qt Charts類似都是基于Qt Graphics View的圖形視圖結(jié)構(gòu),所以

    2024年02月14日
    瀏覽(87)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包