热点图heatMap.js V2.0 研究笔记

Heatmap.js 是目前应用最广的web动态热图javaScript库,最新版本是2.0。一、传送门官方地址:http://www.patrick-wied.at/static/heatmapjs/官方文档地址:http://www.patrick-wied.at/static/heatmapjs/docs.htmlheatMap原理:http://blog.corun
摘要由CSDN通过智能技术生成
Heatmap.js 是目前应用最广的web动态热图javaScript库,最新版本是2.0。

一、传送门
                http://huoding.com/2011/01/04/39
                          

二、代码结构
1、整个js库包裹在一个立即执行的匿名函数里,以避免污染全局命名空间。这也是很多js库的常见写法。
2、核心对象有三个:Store(数据)、Canvas2dRenderer(绘制工具)、HeatMap(构建器)。
3、通过global['h337']暴露创建工厂。

三、热力图渲染原理
  1、设置单点渲染模板
    核心方法是canvas的createRadialGradient方法,每个点设置渲染半径,由渐变因子blur确定内圆比例,内圆与外圆的圆周间进行无色的放射渐变,达到中间透明度高,边缘透明度低的效果。这个无色的透明度渐变的圆形即为点的模板。
  2、根据模板绘制全部点
    核心方法是canvas的drawImage方法在每个点的位置按照模板进行绘制,达到重叠部分透明度叠加的效果。
  3、构建0256的调色板
    核心方法是canvas的createLinearGradient方法
     示例代码如下:
       var gradient = paletteCtx.createLinearGradient(0, 0, 256, 1);
       for (var key in gradientConfig) {
           gradient.addColorStop(key, gradientConfig[key]);
       }
       paletteCtx.fillStyle = gradient;
       paletteCtx.fillRect(0, 0, 256, 1);


4、着色
    核心方法是canvas的putImageData方法对绘制的每个点进行着色,获取绘制的区域中每个像素,根据像素的透明度去调色板中取对应的颜色进行渲染,最后达到热力图的效果。

四、具体内容
1、heatmapFactory h337
heatmapFactory创建工厂对象
global['h337'] = heatmapFactory;通过h337属性名暴露给外界。

方法 描述
creat
创建heatmap对象
register
注册一个heatmap插件,即给插件一个key以管理

creat方法
create: function(config) {
      
return new Heatmap(config);
}
config为创建heatmap的参数配置信息,具体如下
    
    
    
名称
类型 描述
container DomNode heatmap载体,必须
backgroundColor
String
canvas背景色
gradient
Object
渐变色,用于制作调色板
radius
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值