久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

基于HTML5的WebGL實現(xiàn)json和echarts圖表展現(xiàn)在同一個界面

這篇文章主要介紹了基于HTML5的WebGL實現(xiàn)json和echarts圖表展現(xiàn)在同一個界面的相關(guān)資料,需要的朋友可以參考下

突然有個想法,如果能把一些用到不同的知識點放到同一個界面上,并且放到一個盒子里,這樣我如果要看什么東西就可以很直接顯示出來,而且這個盒子一定要能打開。我用HT實現(xiàn)了我的想法,代碼一百多行,這么少的代碼能實現(xiàn)這種效果我覺得還是牛的。

先來看看效果圖:

基于HTML5的WebGL實現(xiàn)json和echarts圖表展現(xiàn)在同一個界面

這個例子最基礎(chǔ)的就是最外層的盒子了,所以我們先來看看如何實現(xiàn)它:

 var box = new ht.CSGBox();
 dataModel.add(box);

用HT可以很輕易地實現(xiàn)這個盒子,在HT中封裝了很多基礎(chǔ)圖元類型,我們經(jīng)常用到的ht.Node也是其中一個,這樣我們可以不用反復(fù)地寫相同的代碼來完成基礎(chǔ)的實現(xiàn)。

這個例子中用的封裝好的基礎(chǔ)圖元是ht.CSGBox,一個盒子模型,可以參考HT for Web 建模手冊,我們在手冊中可以看到,在CSGBox中我們只能操作這個盒子的各個面,如果你想要自己設(shè)置一些特殊的功能,只需要操作ht.Style(HT for Web 風格手冊)即可。

要想實現(xiàn)在盒子上的一個面上添加貼圖,我能想到的只有HT封裝的ht.Default.setImage函數(shù)了。

這邊我實現(xiàn)的方法是參考HT的editor來運作的,重新聲明一個graphview組件和一個datamodel數(shù)據(jù)模型,然后通過ht.Default.xhrLoad方法調(diào)用json,在方法中用ht.Default.parse將text轉(zhuǎn)成json格式,然后反序列化將json里面的內(nèi)容展現(xiàn)成可視化的界面,再設(shè)置動畫,再立即刷新用到這個json的界面,否則就算設(shè)置了動畫,畫面也不會改變。

ht.Default.xhrLoad('displays/demo/pump.json', function(text){
    const json = ht.Default.parse(text);
    pumpDM.deserialize(json);
    var currentRotation = 0;
    var lastTime = new Date().getTime();
    setInterval(function(){
        var time = new Date().getTime();
        var deltaTime = time - lastTime;
        currentRotation += deltaTime * Math.PI / 180 * 0.3;
        lastTime = time;
        pumpDM.getDataByTag('fan1').setRotation(currentRotation);
        pumpDM.getDataByTag('fan2').setRotation(currentRotation);
        box.iv();
        // g3d.iv();這邊也可以刷新g3d,但是局部刷新更省
        pumpGV.validateImpl();
    }, 10);
}, 10);

這個時候我不能把pumpGV和g3d都加到底層div上,并且我的意圖是把pumpGV加到g3d中的CSGBox中的一面上,所以為了讓pumpGV顯示出來 必須設(shè)置pumpGV的寬高,而這個寬高必須比我json畫出來的圖占的面積要大,不然顯示不完整。如果想看這個寬高對顯示的影響,可以自己改改看來玩玩。

 pumpGV.getWidth = function() { return 600;}
 pumpGV.getHeight = function(){ return 600;}
 pumpGV.getCanvas().dynamic = true;//設(shè)置這個是為了讓canvas能動態(tài)顯示

echarts圖表的顯示也是很基礎(chǔ)的,只要再加上 canvas.dynamic = true,并且實時刷新gv即可。

最后,只需要將這兩個回傳的canvas傳入ht.Default.setImage中即可:

 ht.Default.setImage('echart', charts(option));
 ht.Default.setImage('pump', pumpGV.getCanvas());

ht.Default.drawImage函數(shù)生成新的圖實際上就是在canvas上畫圖,所以我們只要把我們已經(jīng)畫好的canvas傳到ht.Default.setImage就可以生成圖片了。

有一點需要改進的,我們可以看到盒子上的線段,圖形,文字周邊都有一圈的鋸齒,因為我們在設(shè)置字體時,同時設(shè)置了半透明,在處于半透明的情況下“blend”樣式會被關(guān)閉,這個時候我們就沒法控制樣式了,一般有透明度的時候需要將“all.transparent”設(shè)置為true,

我們可以設(shè)置需要顯示的面的transparent: true即可。看下完成后的效果圖:

基于HTML5的WebGL實現(xiàn)json和echarts圖表展現(xiàn)在同一個界面

總結(jié)

以上所述是小編給大家介紹的基于HTML5的WebGL實現(xiàn)json和echarts圖表展現(xiàn)在同一個界面,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對網(wǎng)站的支持!

【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了有關(guān)HTML5頁面在iPhoneX適配問題,需要的朋友可以參考下
本篇文章主要介紹了html5中canvas圖表實現(xiàn)柱狀圖的示例,本文使用canvas來實現(xiàn)一個圖表,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
Adobe公司出品的多媒體處理軟件產(chǎn)品線較多,涵蓋了音視頻編輯、圖像處理、平面設(shè)計、影視后期等領(lǐng)域。這篇文章主要介紹了Adobe Html5 Extension開發(fā)初體驗圖文教程,非常不錯,需要的朋
這篇文章主要介紹了基于HTML5的WebGL經(jīng)典3D虛擬機房漫游動畫,需要的朋友可以參考下
這篇文章主要介紹了html5實現(xiàn)移動端適配完美寫法,需要的朋友可以參考下
本篇文章主要介紹了HTML5響應(yīng)式(自適應(yīng))網(wǎng)頁設(shè)計的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 黄a免费看| 成人激情视频免费在线观看 | 国产成人黄色 | 成人av一区二区三区 | 久久国内精品 | 欧美成人aaa级毛片在线视频 | 国产精品免费观看 | 国产三级日本三级 | 国产精久久久久久 | 综合精品久久久 | 亚洲一区二区三区四区在线观看 | 久久久久久久一区 | 99re99| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲国产精品久久久久秋霞不卡 | 日本精品一区二区三区四区 | 黄色网毛片 | 亚洲va国产日韩欧美精品色婷婷 | 国产目拍亚洲精品99久久精品 | 视频二区在线观看 | 欧美成视频 | 91精品国产综合久久国产大片 | 一级毛片大全免费播放 | 影音先锋中文字幕在线观看 | 涩涩导航 | 日本一本视频 | 国产日产久久高清欧美一区 | 亚洲九色| 国产精品不卡 | 亚洲欧美日韩精品久久亚洲区 | 91av亚洲| 91成人精品| 国产精品国产三级国产aⅴ无密码 | 国产日产欧产精品精品推荐蛮挑 | 精品久久久久久久久久久 | 深夜福利亚洲 | 一区二区中文字幕 | 欧美日韩国产一区二区三区 | 精品久久久久一区二区国产 | 亚洲国产精品一区二区久久 | 美女爽到呻吟久久久久 |