看看如何用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函数参数类型*、**的区别
Apr 11 Python
Python 操作MySQL详解及实例
Apr 30 Python
python实现俄罗斯方块
Jun 26 Python
Django Rest framework频率原理与限制
Jul 26 Python
详解一种用django_cache实现分布式锁的方式
Sep 01 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
Oct 14 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 Python
pytorch实现MNIST手写体识别
Feb 14 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
Pycharm及python安装详细教程(图解)
Jul 31 Python
pandas 数据类型转换的实现
Dec 29 Python
Python正则表达式中flags参数的实例详解
Apr 01 Python
基于python制作简易版学生信息管理系统
基于python的matplotlib制作双Y轴图
90行Python代码开发个人云盘应用
基于python实现银行管理系统
python爬虫框架feapde的使用简介
Apr 20 #Python
python实现大文本文件分割成多个小文件
Apr 20 #Python
Python绘制分类图的方法
You might like
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
JS中操作JSON总结
2020/12/06 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
Python中的map、reduce和filter浅析
2014/04/26 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
Python当中的array数组对象实例详解
2019/06/12 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
初中政治教学反思
2014/01/17 职场文书
学雷锋月活动总结
2014/04/25 职场文书
2014年国庆标语
2014/06/30 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
小型婚礼主持词
2015/06/30 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
SpringBoot详解执行过程
2022/07/15 Java/Android