用python matplotlib绘图库画微信图标

微信恐怕是我们最常用的手机软件了,其logo也经历了多次变化,这次我们就用最经典的微信绿色图标来作为例子,给大家展示一下如何用Python来进行设计。

整体的画布设计

这里操作系统是Windows7,编程软件为Anaconda 2019.10版,所有库均为Anaconda自带,这次主要使用matplotlib绘图库来进行绘制。

首先还是导入各种需要的库。

接下来因为我们要在matplotlib的画布中进行设计,所以要进行相关的设置。

比如颜色,然后要去掉x,y轴的设置,把画布背景变为绿色等等。

这里的变量color就是微信logo的绿色主色调,我们把画布设置成一个正方形,x轴和y轴的坐标范围都设为0-40,这个数字可以随意设定,主要是为了在画图时找准图形的坐标,同时去掉x轴和y轴的坐标,然后再设置一下画布的颜色,就是微信的绿色,最后的变量patches用于存放一系列图形,后面会用到。

分析微信的logo

接下来我们就分析一下微信logo的组成。实际上我们可以把微信的主体logo看成三大部分:

第一部分是:两个椭圆,这两个椭圆一大一小(左边的更大一些),叠加在一起,就是图1中的主要白色的部分;

第二部分是:四个小圆圈,分别是这两个椭圆的那两对小眼睛,左边的小眼睛要稍微大一些,右边的稍微小一些;

最后是:每个椭圆的箭头,左边椭圆的箭头朝向左侧,右边椭圆的箭头朝向右侧。分析完我们就按照这三部分的顺序依次来绘制。

1).首先是两个椭圆的代码

es1 = Ellipse([15,24], width=21, height=18, facecolor=’white’, zorder=1)

es2 = Ellipse([26,16], width=18, height=15, facecolor=’white’, linewidth=5, edgecolor=color, zorder=1)

es1就是左侧的大椭圆,es2是小椭圆,这里es2要设置一下边框线的宽度和边框线的颜色,这样才能产生叠加效果,zorder是图层顺序,数字越大图层越靠上,这里es1和es2的zorder都设置为1,但因为es2后绘制,所以会产生es2叠加在es1之上的效果,如下图所示。

图2. 两个椭圆的效果图

2).绘制小眼睛

在这里我们为了能让每部分的效果展示出来,需要加上下面三行代码。这三行代码实际上是放在所有代码之后,所有代码是连在一起的。接下来绘制四个小眼睛,代码如下。

每对小眼睛都要关于各自所在椭圆的中线对称,左边的小眼睛要大一些,右边的小一些,把所有小眼睛的颜色都设置为绿色。效果如下图。

图3. 四个小圆圈的效果图

3).最后就是绘制两个箭头,代码如下

绘制这两个箭头可以说是最大的难点,但其绘制方法有多种,比如可以绘制一个三角形,用三角形的一个角来充当这个箭头,也可以用matplotlib的annotate方法来绘制一个箭头,然后进行填充,这两种方法都可用。

但要设置多个坐标同时还难以控制其形状,所以笔者就用了另外一种方法——用扇形的中心角来充当箭头。这种方法的好处是只需要设置一个顶点坐标,同时容易控制中心角的角度,最后的成图效果如下。

图4. 微信logo成图

一些人在这里可能没太看明白这两个箭头是怎么画的,那么我们把其他所有图形去掉,只画两个扇形,效果如下。从下图我们可以看到扇形的中心角充当了箭头,而上部的弧形部分和两个椭圆重叠在了一起,因为颜色相同,所以就被隐去了,看不出来了。

图5. 两个扇形的效果图

大功告成

最后我们再放上微信另外一个版本logo的图片,这和上面的设计方法完全一样,只是要把两个椭圆和各自的扇形的颜色改变一下,左边的椭圆和扇形的颜色代码为“#A1CC3F”,右边的颜色代码为“#E9E9E9”,同时把右边椭圆的边线去掉,把四个小眼睛设置为黑色,最后把画布背景设置为白色就OK了。

图6. 微信另一版本logo成图效果

从这个例子中我们可以看到matplotlib在应对简单的图形绘制时还是非常的得心应手,简单的数行代码就完成了一个微信图标的设计。

《用python matplotlib绘图库画微信图标》有一个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注