一、前言
六边形能力图如下,由 6 个 六边形组成,每一个顶点代表其在某一方面的能力。这篇文章我们就来看看如何基于 canvas 去绘制这么一个六边形能力图。当然,你也可以基于其他开源的 js 方案来实现,如 EChars.js 等。
详解基于 Canvas 手撸一个六边形能力图-1.jpg (17.59 KB, 下载次数: 0)
2020-7-13 15:29 上传
二、六边形绘制基础
六边形能力图有 6 个 六边形组成,那我们只要绘制出一个,另外 5 个则依次减小六边形的边长即可。那我们首先来分析一下,如何绘制出一个六边形。
详解基于 Canvas 手撸一个六边形能力图-2.jpg (9.84 KB, 下载次数: 0)
2020-7-13 15:29 上传
如上图,绘制一个六边形有以下几个关键点:
1.紫色矩形区域我们可以看成是 canvas 的画布。其大小可以认为是 (width,height)。center(centerX,centerY) 是其中心点,即 (width / 2, height / 2)。
2.绘制六边形的关键是计算出它的 6 个顶点的坐标。而如上图所示,这里面最关键的又是计算出六边形所在矩形区域的左上角坐标(left,top)。对照上图,(left,top) 的计算公式如下。
详解基于 Canvas 手撸一个六边形能力图-3.png (2.27 KB, 下载次数: 0)
2020-7-13 15:29 上传
要计算出 (left,top) 需要先计算出 x,y 。而 x,y 的值与六边形的边长有关。
3.如上的 x,y 的计算公式为
详解基于 Canvas 手撸一个六边形能力图-4.png (2 KB, 下载次数: 0)
2020-7-13 15:29 上传
4.因此,X1(x1,y1),X2(x2,y2),X3(x3,y3),X4(x4,y4),X5(x5,y5),X6(x6,y6) 的坐标计算为
详解基于 Canvas 手撸一个六边形能力图-5.png (3.38 KB, 下载次数: 0)
2020-7-13 15:29 上传