看看如何用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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
Python判断操作系统类型代码分享
Nov 22 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
python3+PyQt5重新实现QT事件处理程序
Apr 19 Python
python 切换root 执行命令的方法
Jan 19 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
python中判断文件结束符的具体方法
Aug 04 Python
python实现网页录音效果
Oct 26 Python
Python self用法详解
Nov 28 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
php文件怎么打开 如何执行php文件
2011/12/21 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
在Python下尝试多线程编程
2015/04/28 Python
Python中datetime常用时间处理方法
2015/06/15 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
详解python polyscope库的安装和例程
2020/11/13 Python
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
公交公司毕业生求职信
2014/02/15 职场文书
电钳工人个人求职信
2014/05/10 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
绿色校园广播稿
2014/10/13 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技