国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

利用d3.js實現蜂巢圖表帶動畫效果

2019-11-19 10:55:13
字體:
來源:轉載
供稿:網友


以上是效果圖,本圖表使用d3.js v4制作。圖表主要功能是在六邊形格子中顯示數據,點擊底部圖標可以切換指定格子高亮顯示,圖表可以隨瀏覽器任意縮放。

1.圖表的主體結構是由正六邊形組成,使用d3生成六邊形可以使用d3-hexbin.js,生成六邊形比較方便,只要給定中心點坐標和半徑即可生成六邊形路徑,例如:

var r = 10;// 六邊形半徑var pos = [[5,5],[10,10]]; // 六邊形中心點坐標數組var hexbin = d3.hexbin() // 使用hexbin.hexagon()即可生成路徑.radius(r);var bins = hexbin(pos); // 得到生成后的六邊形中心點坐標數組

2.圖表的主體使用了高斯模糊濾鏡,使畫面表現出發光效果,背景高亮顏色使用了顏色漸變濾鏡。在svg中使用濾鏡,必須定義在defs中。

高斯模糊濾鏡:

// 創建defsvar defs = svg.append("defs");// 添加模糊濾鏡var filterBlur = defs.append('filter').attr('id', 'filterBlur').attr('x', -1.2).attr('y', -1.2).attr('width', 4).attr('height', 4);// 添加輔助濾鏡filterBlur.append('feOffset').attr('result', 'offOut').attr('in', 'SourceGraphic').attr('dx', 0).attr('dy', 0);// 添加模糊濾鏡filterBlur.append('feGaussianBlur').attr('result', 'blurOut').attr('in', 'SourceGraphic').attr('stdDeviation', 2);// 添加輔助濾鏡filterBlur.append('feBlend').attr('in', 'SourceGraphic').attr('in2', 'blurOut').attr('mode', 'multiply');

重點說一下最后的feBlend,它的作用是把濾鏡效果和原圖混合起來。使用濾鏡的話,直接給元素添加style('filter', 'url(#filterBlur)')即可。

背景高亮使用了顏色漸變濾鏡:

// 添加放射性變換,生成空心填充顏色var warnBg = defs.append("radialGradient").attr("id", "bg").attr('cx', 0.5).attr('cy', 0.5).attr('r', 0.5);// 添加顏色warnBg.append('stop').attr('offset', 0.5).attr('style', 'stop-color:rgb(200,200,200);stop-opacity:0.4');warnBg.append('stop').attr('offset', 1).attr('style', 'stop-opacity:1;stop-color:rgb(123,123,123)');

其中涉及到的關鍵性技術就是這些,其他方面只要使用通用的d3方法就可實現。

需要注意的是,程序的結構要預先規劃好,最好把主要的功能模塊放在單獨一個函數中,方便調用和后期修改。

如果大家有什么想法或意見可以交流一下。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 措勤县| 迁西县| 黎平县| 通山县| 安宁市| 普宁市| 桂阳县| 伽师县| 平顺县| 新宾| 渑池县| 瑞丽市| 嘉荫县| 寿宁县| 缙云县| 利辛县| 通城县| 大余县| 工布江达县| 广丰县| 买车| 叙永县| 嘉兴市| 水富县| 郸城县| 滦南县| 河津市| 东宁县| 枣庄市| 南华县| 宕昌县| 宜川县| 南投县| 淮南市| 佛学| 黄冈市| 香港 | 灵川县| 东光县| 揭西县| 华宁县|