看看如何用Python绘制小米新版天价logo


Posted in Python onApril 20, 2021

最终呈现效果

哈哈,咋们在讲述之前,首先看看最终呈现的效果吧,整体来说还是很不错的。

看看如何用Python绘制小米新版天价logo

小米 “新” 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
from PIL import Image

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

x = np.linspace(-1, 1, 1000)
y = + pow(1-abs(pow(x, 3)), 1/3) # 注意公式的写法
z = - pow(1-abs(pow(x, 3)), 1/3) # 注意公式的写法
plt.figure(figsize=(12, 12)) # 画布大小

plt.plot(x, y, color=(255/255, 103/255, 0))
plt.plot(x, z, color=(255/255, 103/255, 0))
plt.fill(x, y, color=(255/255, 103/255, 0)) # 填充颜色
plt.fill(x, z, color=(255/255, 103/255, 0)) # 填充颜色
plt.axis('off') # 不显示坐标轴
plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
plt.margins(0, 0)
plt.savefig('fill.png', transparent=True, dpi=100) # 设置保存图片的透明值

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

image_1 = Image.open('old.png')
image_2 = Image.open('fill.png')

w, h = image_1.size

for i in range(w):
    for j in range(h):
        data = image_1.getpixel((i, j))
        if data == (255,)*4:
            image_2.putpixel((i, j), (255,)*4)

image_2.save('new.png')

获取资源

以上图片和代码,均已打包,大家可以自由获取哦!

链接:https://pan.baidu.com/s/1K1Kjmwnsj8NFtZRqWbZW6g
提取码:deoy

以上就是看看如何用Python绘制小米新版天价logo的详细内容,更多关于python绘制小米logo的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python引用(import)文件夹下的py文件的方法
Aug 26 Python
Python常用模块介绍
Nov 21 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
python中__call__内置函数用法实例
Jun 04 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
在Python中使用gRPC的方法示例
Aug 08 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
Django实现celery定时任务过程解析
Apr 21 Python
Pandas实现一列数据分隔为两列
May 18 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
python爬取代理ip的示例
Dec 18 Python
anaconda python3.8安装后降级
Jun 11 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
SONY ICF-SW7600的电路分析
2021/03/02 无线电
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
js仿360开机效果
2019/12/26 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
讲解Python中fileno()方法的使用
2015/05/24 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
django缓存配置的几种方法详解
2018/07/16 Python
python之super的使用小结
2018/08/13 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
大学毕业感言
2014/01/10 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
英文感谢信范文
2015/01/21 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
农村老人去世追悼词
2015/06/23 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript