欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何利用Canvas做出3D動態(tài)的Chart圖表

這期內(nèi)容當中小編將會給大家?guī)碛嘘P如何利用Canvas做出3D動態(tài)的Chart圖表,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了平遠免費建站歡迎大家使用!

發(fā)現(xiàn)現(xiàn)在工業(yè)SCADA上或者電信網(wǎng)管方面用圖表的特別多,雖然絕大部分人在圖表制作方面用的是echarts,他確實好用,但是有些時候我們不能調(diào)用別的插件,這個時候就得自己寫這些美麗的圖表了,然而圖表輕易做不成美麗的。。??吹接幸粋€網(wǎng)站上在賣的圖表,感覺挺好看的,就用 HT for Web 3D 做了一個小例子,挺簡單的,也挺好看的,哈哈~

動態(tài)效果圖如下:

如何利用Canvas做出3D動態(tài)的Chart圖表

這個例子用 HT 實現(xiàn)真的很容易,首先創(chuàng)建一個 HT 中最基礎的 dm 數(shù)據(jù)模型,然后將數(shù)據(jù)模型添加進 g3d 3d 組件中,再設置 3d 中的視角并把 3d 組件添加進 body 元素中:

dm = new ht.DataModel();
g3d = new ht.graph4d.Graph4dView(dm);
g3d.setEye(0, 185, 300);
g3d.addToDOM();
g3d.getView().style.background = '#000';

接著就是造這五個chart圖表條了,我的思路是這樣的,里層有一個節(jié)點,外層一個透明的節(jié)點,底部一個 3d 的文字顯示當前的百分比。

里層的節(jié)點非常容易,我直接用的 HT 封裝的 ht.Node 創(chuàng)建了一個新的節(jié)點對象,然后通過 node.s 方法來設置 node 節(jié)點的樣式:

var node = new ht.Node();
node.s({
    'shape3d': cylinderModel,
    'shape3d.color': color,
    '3d.movable': false
});
node.a({
    'myHeight': s3[1],
});
node.p3([p3[0], s3[1]/2, p3[2]]);
node.s3(s3);
dm.add(node);

其中要說明的是,'shape3d':cylinderModel 這個樣式的設置,首先,shape3d 屬性指定顯示為 3d 模型的圖標效果,cylinderModel 是用 HT 自定義的一個 3d 模型,可參考 HT for Web 建模手冊:

cylinderModel = ht.Default.createCylinderModel(1000, 0, 1000, false, false, true, true);

然后設置了一個動態(tài)變化的屬性 myHeight,在 HT 中,node.a 方法是預留給用戶存儲業(yè)務數(shù)據(jù)的,我們可以在這邊添加任意多個屬性。

接下來我們要創(chuàng)建的是外部的透明節(jié)點,這個節(jié)點的構造方式基本上與內(nèi)部節(jié)點相同,就是多了一點“透明”的樣式設置:

var cNode = new ht.Node();
cNode.s({
    'shape3d': cylinderModel,
    'shape3d.transparent': true,
    'shape3d.opacity': 0.2,    
    'label.color': '#fff',
    '3d.movable': false
});
cNode.p3([p3[0], 50, p3[2]]);
cNode.s3(20, 100, 20);
dm.add(cNode);

要先設置 ‘shape3d.transparent’ 為true,再設置 ‘shape3d.opacity’ 透明度。

最后是 3d 文字,呈現(xiàn) 3d 文字需要一個 json 格式的 typeface 字體,然后通過 ht.Default.loadFontFace 來加載 json 格式的字體到內(nèi)存中,詳情請參考 HT for Web 3D 手冊:

ht.Default.loadFontFace('./wenquanyi.json', function(){
    //......
    var text = new ht.Node();
    text.s3([5, 5, 5]);
    text.p3(cNode.p3()[0]-5, -10, 0);
    dm.add(text);
    text.s({
        'shape3d' : 'text',
    'shape3d.text': node.a('myHeight')+'%',
    'shape3d.text.curveSegments': 1,
    '3d.movable': false
    });
});

因為我們用的 typeface 字體的繪制方式是無數(shù)個三角形構成的一個字,會占用很大的內(nèi)存,所以我把圖形的曲線的精細度調(diào)得較低,但是還是很清晰,如果你們能找到性能更好的字體,可以使用并且告知我一下,我們目前沒找到占用內(nèi)存小的字體。

最后,要動態(tài)的變化 chart 圖表中的柱形圖,我們得設置動畫,并且將 3d 字體也同步更新數(shù)值:

setInterval(function(){
    if(node.a('myHeight') < 100){
        node.a('myHeight', (node.getAttr('myHeight')+1));
    node.s3(20, node.a('myHeight'), 20);
    node.p3(p3[0], node.a('myHeight')/2, p3[2]);
    }else{
        node.a('myHeight', 0);
    node.s3([20, 0, 20]);
    node.p3([p3[0], 0, p3[2]]);
    }
    if (text) text.s('shape3d.text', node.a('myHeight')+'%');
}, 100);

這里,我自定義的屬性 “myHeight” 就起到了決定性的作用,我用這個屬性來存儲變量,而且可以任意更改變量的值,這樣就能實現(xiàn)動態(tài)綁定的效果了。

還有不懂的可以留言,或者直接去我們官網(wǎng)上查看手冊 HT for Web,有更多你想不到的效果能快速實現(xiàn)哦~

上述就是小編為大家分享的如何利用Canvas做出3D動態(tài)的Chart圖表了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:如何利用Canvas做出3D動態(tài)的Chart圖表
文章URL:http://aaarwkj.com/article4/igoeie.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、響應式網(wǎng)站動態(tài)網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站改版網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
风流少妇奶真白摸的好爽| 美腿丝袜清纯唯美亚洲另类| 日本午夜熟女九色视频| 中国亚洲视频一区二区| 男人天堂在线视频网站| 天天日天天天干夜夜操| 精品久久久久久久久无| 成年人免费在线不卡视频| 日本国产在线一区二区 | 国产精品伊人久久精品| 日本少妇人妻一区二区| 老湿机午夜在线免费观看| 激情亚洲综合一区二区| 草草在线成年免费视频| 国产成人免费视频一区| 日韩av在线播放亚洲天堂| 高清偷自拍亚洲精品三区 | 亚洲天堂福利视频网站| 日韩美女后入式在线视频| 老司机看片午夜久久福利| 午夜福利片免费在线观看| 黑人一区二区三区在线| 最新亚洲国产高清激情| 亚洲精品一区二区三区中文字幕| 日韩亚洲欧美另类精品| 免费直接在线看亚洲黄色| 日日干天天日夜夜操| 亚洲av产在线精品亚洲第| 日韩伦理高清在线观看| 涩五月婷婷开心中文字幕| 中国一区二区三区毛片| 海外成人永久免费视频| 桃色av一区二区三区| 成人嚼牙特别黑黄怎么办| 中文色婷婷国产精品视频| 日本午夜福利免费在线播放| 欧美日韩精品久久影院| jk黑丝白丝国产精品| 2021天天操夜夜爽| 日韩激情中文字幕一区二区三区| 久久综合婷婷亚洲五月|