教你用Python绘制谷歌浏览器的3种图标
off999 2025-07-10 20:01 4 浏览 0 评论
前两天在浏览matplotlib官方网站时,笔者无意中看到一个挺有意思的图片,就是用matplotlib制作的火狐浏览器的logo,也就是下面这个东东(网页地址是
https://matplotlib.org/gallery/showcase/firefox.html#
sphx-glr-gallery-showcase-firefox-py)。顿时再次感到Python的强大,Python真是除了生孩子神马都能干,当时就有了一个想法,笔者最常用的是Chrome浏览器,能不能用Python制作一个Chrome的logo呢,于是乎就动手试了一下,没想到还真成功了,下面就分享一下制作的过程。
首先给大家展示一下Chrome浏览器官方的logo,就是下面的这个图片。Chrome的logo实际上非常简单,比火狐的要容易不少,基本上就是红、绿、黄三部分和中间的那个圆,中间的圆圈很好处理,主要就是红、绿、黄这三部分复杂一些,因为每个色块都是一个不规则图形。但我们仔细观察就会发现,每个色块其实可以分为两个规则的图形,大致就是一个扇形的顶部(即扇形去掉下面的三角形)加上一个小三角形,这样分解一下就容易多了。如果看到这里还没明白,不要紧,后面会一步一步分析一下。
首先还是导入需要的各种包。
import matplotlib.pyplot as plt
from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle, Wedge, Polygon
接下来一步一步分析。首先从3个色块开始处理,刚才说了,每个色块相当于一个扇形顶部+一个小三角形,那么我们先画出3个扇形,每个扇形是三分之一个圆。代码如下。
fig, ax = plt.subplots(figsize=[8, 8])
plt.ylim([0,40])
plt.xlim([0,40])
patches = []
w1 = Wedge(center=[20,20], r=10, theta1=30, theta2=150, facecolor='red', edgecolor=None, zorder=1)
w2 = Wedge(center=[20,20], r=10, theta1=150, theta2=270, facecolor='green', edgecolor=None, zorder=1)
w3 = Wedge(center=[20,20], r=10, theta1=270, theta2=390, facecolor='yellow', edgecolor=None, zorder=1)
patches.extend([w1, w2, w3])
为了把这3个色块的效果展示出来,我们还要再加上下面3行代码。这3行代码我们暂且称为"显示代码",用来显示结果,之所以分得如此细致,是因为要让大家了解每个步骤的原理,实际上最后的代码是全部连在一起的,这3行"显示代码"是在全部代码的最后。
p = PatchCollection(patches, match_original=True)
ax.add_collection(p)
plt.show()