看看如何用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 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
深入解析Python中的WSGI接口
May 11 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
Python脚本处理空格的方法
Aug 08 Python
python daemon守护进程实现
Aug 27 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
使用Python处理BAM的方法
Sep 28 Python
Python闭包思想与用法浅析
Dec 27 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
详解用Python进行时间序列预测的7种方法
Mar 13 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
python如何删除列为空的行
Jul 17 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
php堆排序(heapsort)练习
2013/11/13 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
react 应用多入口配置及实践总结
2018/10/17 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
python自动重试第三方包retrying模块的方法
2018/04/24 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
python实现小球弹跳效果
2019/05/10 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
几个人围成一圈的问题
2013/09/26 面试题
中医专业应届生求职信
2013/11/17 职场文书
后备干部推荐材料
2014/12/24 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS