使用Python怎么绘制一个小米新版的标志

  

这期内容当中小编将会给大家带来有关使用Python怎么绘制一个小米新版logo,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

python是什么意思

Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

小米 “新” logo背后的数学

前段时间,小米公司发布了一条微博,引发了热议,原来小米换了新logo了。

使用Python怎么绘制一个小米新版logo

很多人,都觉得雷总被骗了。说实话,我当时猛的一看,也是很蒙蔽,可能咋们不懂美学,不懂新logo背后蕴藏的文化底蕴吧!

使用Python怎么绘制一个小米新版logo

但是,原设计者原研哉说到:最新设计的小米logo,融入了东方哲学的思考,从而提出了一个具有「超椭圆」数学之美的小米新 LOGO,同时还增加了黑色和科技银来作为小米品牌色彩的新搭档。

原研哉还说到:在验证的过程中,用到了一个数学公式。

使用Python怎么绘制一个小米新版logo

从上面的公式可以看到,这里有一个n,因此可以知道:上述公式能够绘制出n种类型的超椭圆。而设计者最终推荐使用n=3这一形状。

使用Python怎么绘制一个小米新版logo

使用Python怎么绘制一个小米新版logo

Python绘制新logo流程

① 绘图原理
在正式绘图之前,我们先来讲述一下Python绘制新logo的“绘图原理”。掌握了原理后,剩下的问题就交给代码吧。

  • ① 利用 “超椭圆” 公式,绘制一个带填充色的椭圆;

  • ② 遍历 “旧logo” 上的像素值,保留白色 “米字” 处的像素值;

  • ③ 将带“米字” 的像素值,写入第一步的超椭圆中;

② 重要知识点的普及
关于整个代码,有几个函数需要给大家提一下,为了大家更够很快学习。但是不会讲解的很详细,大家可以根据说明,自行下去查阅相关资料。

  • ① plt.fill():用于给图形填充颜色;

  • ② plt.axis():用于打开/取消坐标轴展示;

  • ③ plt.subplots_adjust()和plt.margins():用于去掉图形外侧多余的留白;

  • ④ image.getpixel():用于读取图片的像素值;

  • ⑤ image.putpixel():用于在指定坐标位置处,写入像素值;

③ 上代码
首先我们先导入相关库:

import matplotlib.pyplot as plt
  import  numpy  as  np
  得到PIL  import 图像

接着,利用上面提到的公式,绘制一个不留白的n=3的超椭圆。

x =, np.linspace (1,, 1,, 1000)   y =, +,战俘(1-abs(战俘(x), 3)),, 1/3), #,注意公式的写法   z =,安康;战俘(1-abs(战俘(x), 3)),, 1/3), #,注意公式的写法   plt.figure (figsize=(12,, 12)), #,画布大小      plt.plot (x, y,,颜色=(255/255,103/255,,0))   plt.plot (x, z,颜色=(255/255,103/255,,0))   plt.fill (x, y,,颜色=(255/255,103/255,,0)),#,填充颜色   plt.fill (x, z,颜色=(255/255,103/255,,0)),#,填充颜色   plt.axis(& # 39;从# 39;),#,不显示坐标轴   plt.subplots_adjust(=1,,=0,,=1,,左=0,水平间距=0,,wspace=0)   plt.margins (0, 0)   plt.savefig (& # 39; fill.png& # 39;,,透明=True, dpi=100), #,设置保存图片的透明值

然后,遍历旧标志的像素值,保留“米字”那一块儿。将该像素值,写入上面”的填补。png”中。有一点需要注意的是:白色的rgb值是255,255,255 .

image_1 =, Image.open (& # 39; old.png& # 39;)   时间=image_2  Image.open (& # 39; fill.png& # 39;)      w, h =image_1.size      for 小姐:拷贝范围(w):   ,,,for  j 拷贝范围(h):   ,,,,,,,data =, image_1.getpixel ((i, j))   ,,,,,,,if  data ==,(255年)* 4:   ,,,,,,,,,,,image_2.putpixel ((i, j),(255年)* 4)      image_2.save (& # 39; new.png& # 39;)

使用Python怎么绘制一个小米新版的标志