好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 基于HTML5 Canvas的3D動態Chart圖表的示例

基于HTML5 Canvas的3D動態Chart圖表的示例

熱門標簽:鎮江智能外呼系統有效果嗎 江蘇智能電銷機器人哪家好 當涂高德地圖標注 成都智能外呼系統平臺 四川點撥外呼系統 電銷機器人電話用什么卡 云南大理400電話申請官方 黃島區地圖標注 南寧點撥外呼系統哪家公司做的好

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

動態效果圖如下:

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

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

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

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

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);

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

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

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 文字,呈現 3d 文字需要一個 json 格式的 typeface 字體,然后通過 ht.Default.loadFontFace 來加載 json 格式的字體到內存中,詳情請參考 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 字體的繪制方式是無數個三角形構成的一個字,會占用很大的內存,所以我把圖形的曲線的精細度調得較低,但是還是很清晰,如果你們能找到性能更好的字體,可以使用并且告知我一下,我們目前沒找到占用內存小的字體。

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

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” 就起到了決定性的作用,我用這個屬性來存儲變量,而且可以任意更改變量的值,這樣就能實現動態綁定的效果了。

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:西寧 佳木斯 廣西 淮安 酒泉 南京 咸寧 十堰

巨人網絡通訊聲明:本文標題《基于HTML5 Canvas的3D動態Chart圖表的示例》,本文關鍵詞  基于,HTML5,Canvas,的,動態,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于HTML5 Canvas的3D動態Chart圖表的示例》相關的同類信息!
  • 本頁收集關于基于HTML5 Canvas的3D動態Chart圖表的示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产老师制服丝袜裤视频| 欧美成人做爰猛烈床戏| 色噜噜精品一区二区三区| 激情六月综合| 高贵美妇跪趴高撅肥臀| 韩国三级电影hd| 国产视频一| 扒开jk美女?狂揉?韩国网站| 日本自慰片A片免费播放| 精品国产乱码久久久A片软件 | 女厕嘘嘘嘘视频69| 熟妇高潮一区二区在线播放| 2021理论在线理论| 女人与黑人做爰XXx| 色淫小说app免费观看的软件| 插鸡软件| 一晚嫩模贝贝两次播放中| 一级做a爰片久久毛片A片鱼鱼鱼| 纹身在线观看高清完整版| 夜夜躁狠狠躁日日躁aab苏桃| 四虎东方va私人影库在线观看| 3D动漫???无尽蒂法| 午夜丁老福利无码中文字幕视频| 粉嫩小嘴胯下羞涩吞含| 色欲久久久天天天综合网精品调教| AV拍摄现场被肉H文| 迈开腿让我看看你的草莓图| Chinese痞帅Gay裸体自慰腹肌| 国产成人精品免费大全| 欧美性xxxxx极品娇小| 免费看男女高潮又爽又猛视| 国产精品无码丰满熟妇区久久| 国产成人高清在线| 骚虎影院在线| 99视频在线播放| 高h猛烈失禁双性| 一个人www在线观看免费资源| 灌满堵住精撞击小腹鼓起h| 免费黄网址| 52高成人网站入口| 国产69精品久久|